Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x Python中的颜色检测与比较_Python 3.x_Opencv_Image Processing_Color Detection - Fatal编程技术网

Python 3.x Python中的颜色检测与比较

Python 3.x Python中的颜色检测与比较,python-3.x,opencv,image-processing,color-detection,Python 3.x,Opencv,Image Processing,Color Detection,我试图弄清楚图像中是否存在特定的颜色?我想编写一个Python代码,将给定的颜色值与来自图像特定位置坐标的颜色进行比较。我已经尝试过在颜色空间上分割图像,但是我做不到 我正在使用Python“OpenCV” 你能告诉我从哪里开始吗 我希望如果我在图像的某个区域给出矩形的坐标,那么它应该与我给定的颜色值进行比较。这可以通过简单的像素级比较和NumPy方法来完成 让我们看看下面的代码: 导入cv2 将numpy作为np导入 #读取输入图像 img=cv2.imread('images/colors.

我试图弄清楚图像中是否存在特定的颜色?我想编写一个Python代码,将给定的颜色值与来自图像特定位置坐标的颜色进行比较。我已经尝试过在颜色空间上分割图像,但是我做不到

我正在使用Python“OpenCV”

你能告诉我从哪里开始吗


我希望如果我在图像的某个区域给出矩形的坐标,那么它应该与我给定的颜色值进行比较。

这可以通过简单的像素级比较和NumPy方法来完成

让我们看看下面的代码:

导入cv2
将numpy作为np导入
#读取输入图像
img=cv2.imread('images/colors.png',cv2.imread\u COLOR)
cv2.imshow(“img”,img)
#感兴趣区域(x1、x2、y1、y2)
投资回报率=(200700,01000)
imgRoi=img[roi[2]:roi[3]、roi[0]:roi[1]]
cv2.imshow(“imgRoi”,imgRoi)
#感兴趣的颜色[B,G,R]
coi=[0,255,0]
#比较每个像素的颜色;逻辑和所有颜色(轴=2)
cmp=np.all(imgRoi==coi,轴=2)
#从这里开始,用这些信息做任何你喜欢的事情。。。
#例如,显示找到感兴趣颜色的遮罩
out=np.zero((imgRoi.shape[0],imgRoi.shape[1],1),np.uint8)
out[cmp]=255
cv2.imshow('out',out)
cv2.等待键(0)
输入图像如下所示:

感兴趣区域(ROI)如下所示:

作为示例性输出,这里是找到感兴趣的颜色
#00ff00
的掩码:

希望有帮助


另外,Python/NumPy大师可能会建议一种更优雅的方式,将
(x1,y1)
(x2,y2)
这两点“翻译”到索引
x1:x2
y1:y2
。现在,这个符号看起来很麻烦…

它在某种程度上起作用,但主要问题是我想获得交通信号的状态,然后我想对状态结果进行另一个处理。另一个问题是颜色是否有细微差别?就像各种颜色或ROI的阴影一样,其中包含不同的阴影。@AnantPatankar不幸的是,您最初的问题有(非常)有限的问题陈述。1) 您可以将我的方法封装在返回布尔值的函数中,指示颜色是否已在ROI中找到。这项工作留给你做。2) 检查OpenCV的方法。方法基本相同。将来,在询问有关StackOverflow的问题时,请制定您想要解决的实际问题,而不仅仅是其中的有限部分,以防止回答不全面。
I want to make program like:

given_color = Blue (Color Values)
if Blue == Color_values_detected_from_image:
    print("Blue Color is present at your given area")
else:
    print("Given Color Not Found")