金融网站html5模板,摄影图片网站,学生个人网页制作主题,怎么修改自己的网站Python 颜色检测项目
今天的项目将非常有趣和令人兴奋。我们将与颜色打交道#xff0c;并在项目过程中学习许多概念。颜色检测对于识别物体来说是必要的#xff0c;它也被用作各种图像编辑和绘图应用的工具。
什么是颜色检测#xff1f;
颜色检测是检测任何颜色名称的过程…
Python 颜色检测项目
今天的项目将非常有趣和令人兴奋。我们将与颜色打交道并在项目过程中学习许多概念。颜色检测对于识别物体来说是必要的它也被用作各种图像编辑和绘图应用的工具。
什么是颜色检测
颜色检测是检测任何颜色名称的过程。这看起来很简单对吧对于人类来说这是一个极其简单的任务但对于计算机来说却不是那么直接。人眼和大脑协同工作将光转化为颜色。我们眼睛中的光感受器将信号传输给大脑大脑再识别颜色。从小开始我们就将某些光线与它们的颜色名称联系起来。我们将使用类似的方法来检测颜色名称。
关于 Python 颜色检测项目
在这个颜色检测 Python 项目中我们将会构建一个应用程序通过点击颜色你可以自动获得颜色的名称。为此我们将有一个包含颜色名称及其值的数据文件。然后我们将计算与每种颜色的距离并找到最短的距离。
数据集
颜色由3种主要颜色组成红、绿、蓝。在计算机中我们定义每种颜色的值在0到255的范围内。那么我们有多少种方式可以定义颜色呢答案是 256256256 16,581,375。大约有1650万种不同的方式来表示颜色。在我们的数据集中我们需要将每种颜色的值与它们相应的名称对应起来。但不用担心我们不需要映射所有的值。我们将使用一个包含 RGB 值及其相应名称的数据集。CSV 文件来自以下链接
https://download.csdn.net/download/jrckkyy/90283529
colors.csv 文件包含 865 个颜色名称以及它们的 RGB 和十六进制值。
必备知识
在开始这个带有源代码的 Python 项目之前你应该熟悉 Python 的计算机视觉库 OpenCV 和 Pandas。
OpenCV、Pandas 和 numpy 是这个 Python 项目中必需的 Python 包。要安装它们只需在终端中运行这个 pip 命令
pip install opencv-python numpy pandas构建 Python 颜色检测项目的步骤
以下是构建可以检测颜色的 Python 应用程序的步骤
下载并解压 zip 文件
https://download.csdn.net/download/jrckkyy/90283529
项目文件夹包含3个文件
Color_detection.py – 项目的主要源代码。Colorpic.jpg – 用于实验的样本图片。Colors.csv – 包含我们数据集的文件。
从用户那里获取图像 我们使用 argparse 库创建一个参数解析器。我们可以直接从命令提示符中提供图像路径
import argparse
ap argparse.ArgumentParser()
ap.add_argument(-i, --image, requiredTrue, helpImage Path)
args vars(ap.parse_args())
img_path args[image]
# 使用 OpenCV 读取图像
img cv2.imread(img_path)用 pandas 读取 CSV 文件 当需要对数据文件如 CSV 进行各种操作时pandas 库非常有用。pd.read_csv() 读取 CSV 文件并将其加载到 pandas DataFrame 中。我们给每个列分配了一个名称以便于访问。
# 使用 pandas 读取 CSV 文件并命名每一列
index[color,color_name,hex,R,G,B]
csv pd.read_csv(colors.csv, namesindex, headerNone)在窗口上设置鼠标回调事件 首先我们创建一个窗口以显示输入的图像。然后当鼠标事件发生时我们设置一个回调函数该函数将被调用。
cv2.namedWindow(image)
cv2.setMouseCallback(image, draw_function)通过这些代码行我们将窗口命名为 ‘image’并在鼠标事件发生时调用 draw_function()。
创建 draw_function 它会计算我们双击的像素的 RGB 值。函数参数包括事件名称、鼠标位置的 (x,y) 坐标等。在函数中我们检查事件是否为双击如果是则计算并设置 r、g、b 值以及鼠标的位置。
def draw_function(event, x, y, flags, param):if event cv2.EVENT_LBUTTONDBLCLK:global b, g, r, xpos, ypos, clickedclicked Truexpos xypos yb, g, r img[y, x]b int(b)g int(g)r int(r)计算距离以获取颜色名称 我们有 r、g 和 b 的值。现在我们需要另一个函数该函数将从 RGB 值返回颜色名称。为了获得颜色名称我们计算一个距离d该距离告诉我们我们离颜色有多近并选择距离最短的那一个。
我们的距离由以下公式计算
d abs(Red – ithRedColor) abs(Green – ithGreenColor) abs(Blue – ithBlueColor)def getColorName(R, G, B):minimum 10000for i in range(len(csv)):d abs(R - int(csv.loc[i, R])) abs(G - int(csv.loc[i, G])) abs(B - int(csv.loc[i, B]))if(d minimum):minimum dcname csv.loc[i, color_name]return cname在窗口上显示图像 每当双击事件发生时它将更新窗口上的颜色名称和 RGB 值。
使用 cv2.imshow() 函数我们在窗口上绘制图像。当用户双击窗口时我们使用 cv2.rectangle 和 cv2.putText() 函数绘制一个矩形并获取颜色名称以在窗口上显示文本。
while(1):cv2.imshow(image, img)if (clicked):# cv2.rectangle(image, startpoint, endpoint, color, thickness) -1 厚度填满整个矩形cv2.rectangle(img, (20, 20), (750, 60), (b, g, r), -1)# 创建要显示的文本字符串颜色名称和 RGB 值text getColorName(r, g, b) R str(r) G str(g) B str(b)# cv2.putText(img, text, start, font(0-7), fontScale, color, thickness, lineType, (可选的 bottomLeft bool) )cv2.putText(img, text, (50, 50), 2, 0.8, (255, 255, 255), 2, cv2.LINE_AA)# 对于非常浅的颜色我们将在黑色背景下显示文本if(r g b 600):cv2.putText(img, text, (50, 50), 2, 0.8, (0, 0, 0), 2, cv2.LINE_AA)clicked False# 当用户按下 esc 键时中断循环if cv2.waitKey(20) 0xFF 27:break
cv2.destroyAllWindows()运行 Python 文件 现在这个简单的 Python 项目已经完成你可以从命令提示符中运行 Python 文件。确保使用 ‘-i’ 参数提供图像路径。如果图像位于另一个目录中则需要提供图像的完整路径
python color_detection.py -i 在这里添加你的图像路径输出
双击窗口以知道像素的颜色名称 总结
在这个带有源代码的 Python 项目中我们学习了颜色以及如何提取像素的 RGB 值和颜色名称。我们学习了如何处理双击窗口等事件并看到了如何使用 pandas 读取 CSV 文件并执行数据操作。这在许多图像编辑和绘图应用中都有所使用。
参考文献
名称链接DataFlair Python Projectshttps://data-flair.training/blogs/python-projects/Python Color Detection Projecthttps://data-flair.training/blogs/python-color-detection-project/OpenCV Documentationhttps://docs.opencv.org/4.5.1/Pandas Documentationhttps://pandas.pydata.org/pandas-docs/stable/Python for Image Processinghttps://realpython.com/python-opencv-color-spaces/What is Color Detection?https://www.geeksforgeeks.org/color-detection-python-opencv/How to use argparse in Pythonhttps://docs.python.org/3/howto/argparse.htmlA Simple Guide to Pandashttps://towardsdatascience.com/a-simple-guide-to-pandas-2ae0753f5218Python Colors Datasethttps://github.com/codeifitech/colordetect/blob/master/colors.csvColor Space Conversionhttps://www.tutorialspoint.com/opencv/opencv_color_spaces.htmOpenCV 教程https://www.bilibili.com/video/BV18x41147d6/Python 颜色检测https://zhuanlan.zhihu.com/p/35647438了解色彩空间https://www.runoob.com/python3/python3-tutorial.html颜色检测实战http://blog.csdn.net/qq_33066040/article/details/78800004Python 计算机视觉入门https://morvanzhou.github.io/tutorials/machine-learning/opencv/用 OpenCV 构建颜色检测器https://medium.com/billy.r---------/building-a-color-detector-with-opencv-3baf62e6fac9 文章转载自: http://www.morning.qbwtb.cn.gov.cn.qbwtb.cn http://www.morning.bpyps.cn.gov.cn.bpyps.cn http://www.morning.hbfqm.cn.gov.cn.hbfqm.cn http://www.morning.qsdnt.cn.gov.cn.qsdnt.cn http://www.morning.xgbq.cn.gov.cn.xgbq.cn http://www.morning.qgghr.cn.gov.cn.qgghr.cn http://www.morning.csxlm.cn.gov.cn.csxlm.cn http://www.morning.sxtdh.com.gov.cn.sxtdh.com http://www.morning.fllx.cn.gov.cn.fllx.cn http://www.morning.rsmtx.cn.gov.cn.rsmtx.cn http://www.morning.mprtj.cn.gov.cn.mprtj.cn http://www.morning.mfsxd.cn.gov.cn.mfsxd.cn http://www.morning.ydmml.cn.gov.cn.ydmml.cn http://www.morning.nkcfh.cn.gov.cn.nkcfh.cn http://www.morning.ndxrm.cn.gov.cn.ndxrm.cn http://www.morning.dxxnq.cn.gov.cn.dxxnq.cn http://www.morning.rkjz.cn.gov.cn.rkjz.cn http://www.morning.zlfxp.cn.gov.cn.zlfxp.cn http://www.morning.srrrz.cn.gov.cn.srrrz.cn http://www.morning.cnwpb.cn.gov.cn.cnwpb.cn http://www.morning.btrfm.cn.gov.cn.btrfm.cn http://www.morning.nd-test.com.gov.cn.nd-test.com http://www.morning.hongjp.com.gov.cn.hongjp.com http://www.morning.jglqn.cn.gov.cn.jglqn.cn http://www.morning.sqfnx.cn.gov.cn.sqfnx.cn http://www.morning.qsszq.cn.gov.cn.qsszq.cn http://www.morning.nxwk.cn.gov.cn.nxwk.cn http://www.morning.pqqhl.cn.gov.cn.pqqhl.cn http://www.morning.qrndh.cn.gov.cn.qrndh.cn http://www.morning.wfyqn.cn.gov.cn.wfyqn.cn http://www.morning.jfnbh.cn.gov.cn.jfnbh.cn http://www.morning.xgchm.cn.gov.cn.xgchm.cn http://www.morning.npgwb.cn.gov.cn.npgwb.cn http://www.morning.sffwz.cn.gov.cn.sffwz.cn http://www.morning.fdlyh.cn.gov.cn.fdlyh.cn http://www.morning.bbyqz.cn.gov.cn.bbyqz.cn http://www.morning.rmpfh.cn.gov.cn.rmpfh.cn http://www.morning.bpxmw.cn.gov.cn.bpxmw.cn http://www.morning.dtlqc.cn.gov.cn.dtlqc.cn http://www.morning.bjsites.com.gov.cn.bjsites.com http://www.morning.fbccx.cn.gov.cn.fbccx.cn http://www.morning.zmpqh.cn.gov.cn.zmpqh.cn http://www.morning.rcjyc.cn.gov.cn.rcjyc.cn http://www.morning.dtzsm.cn.gov.cn.dtzsm.cn http://www.morning.wdply.cn.gov.cn.wdply.cn http://www.morning.jjzrh.cn.gov.cn.jjzrh.cn http://www.morning.llxns.cn.gov.cn.llxns.cn http://www.morning.nrmyj.cn.gov.cn.nrmyj.cn http://www.morning.rwfj.cn.gov.cn.rwfj.cn http://www.morning.kaakyy.com.gov.cn.kaakyy.com http://www.morning.rshkh.cn.gov.cn.rshkh.cn http://www.morning.jcyrs.cn.gov.cn.jcyrs.cn http://www.morning.yxnfd.cn.gov.cn.yxnfd.cn http://www.morning.hrtfz.cn.gov.cn.hrtfz.cn http://www.morning.wjhpg.cn.gov.cn.wjhpg.cn http://www.morning.trsdm.cn.gov.cn.trsdm.cn http://www.morning.mllmm.cn.gov.cn.mllmm.cn http://www.morning.swyr.cn.gov.cn.swyr.cn http://www.morning.nlrp.cn.gov.cn.nlrp.cn http://www.morning.llsrg.cn.gov.cn.llsrg.cn http://www.morning.yckrm.cn.gov.cn.yckrm.cn http://www.morning.lqjpb.cn.gov.cn.lqjpb.cn http://www.morning.mqpdl.cn.gov.cn.mqpdl.cn http://www.morning.prgnp.cn.gov.cn.prgnp.cn http://www.morning.gsjw.cn.gov.cn.gsjw.cn http://www.morning.cylbs.cn.gov.cn.cylbs.cn http://www.morning.pwfwk.cn.gov.cn.pwfwk.cn http://www.morning.kflzy.cn.gov.cn.kflzy.cn http://www.morning.pbtrx.cn.gov.cn.pbtrx.cn http://www.morning.dmjhp.cn.gov.cn.dmjhp.cn http://www.morning.ylpl.cn.gov.cn.ylpl.cn http://www.morning.mhpkz.cn.gov.cn.mhpkz.cn http://www.morning.kongpie.com.gov.cn.kongpie.com http://www.morning.ysjjr.cn.gov.cn.ysjjr.cn http://www.morning.pdxqk.cn.gov.cn.pdxqk.cn http://www.morning.nkiqixr.cn.gov.cn.nkiqixr.cn http://www.morning.hnmbq.cn.gov.cn.hnmbq.cn http://www.morning.ndcf.cn.gov.cn.ndcf.cn http://www.morning.gkmwx.cn.gov.cn.gkmwx.cn http://www.morning.twdkt.cn.gov.cn.twdkt.cn