Python 3.x Python中的颜色检测与比较
我试图弄清楚图像中是否存在特定的颜色?我想编写一个Python代码,将给定的颜色值与来自图像特定位置坐标的颜色进行比较。我已经尝试过在颜色空间上分割图像,但是我做不到 我正在使用Python“OpenCV” 你能告诉我从哪里开始吗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.
我希望如果我在图像的某个区域给出矩形的坐标,那么它应该与我给定的颜色值进行比较。这可以通过简单的像素级比较和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")