如何在图像中查找颜色是否存在

3

我刚接触open cv,并尝试检测图片中是否存在绿色。

我使用cv2.range设置了上下颜色边界,当我使用cv2.bitwise_and查看颜色时,它显示有绿色,但我不知道如何打印绿色是否存在。

hsv_image= cv2.cvtColor(img,cv2.COLOR_BGR2HSV)
lg = np.array([56,255,251])        
ug = np.array([60,255,255])

gmask = cv2.inRange(hsv_image,lg ,ug)
color = cv2.bitwise_and(img,img,mask=gmask)


if gmask.equals(img):
    print("green exist")
else: 
    print("not found")

我期望在给定的图片中看到绿色存在作为输出结果

1个回答

0

您可以在掩膜图像上使用cv2.countNonZero()。由于cv2.inRange()返回所有最小/最大颜色阈值内的像素的二进制掩膜,因此如果掩膜上至少有一个白色像素,则表示该颜色存在。

pixels = cv2.countNonZero(gmask)
if pixels > 0:
    print("green exist")
else: 
    print("not found")

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接