我现在正在学习 Python 和 Open CV。我的问题是我需要确定我的图像是否为红色,如果它有红色则调用一个函数,如果它没有红色则调用另一个函数。 我有代码可以在我的图像中找到红色,问题是我不能写如果条件像 如果图像为红色,请执行此操作 否则这样做。
谁能帮我解决这个问题? 下面是我正在尝试使用的代码,它能够检测红色并打印图像,但无法在我的脚本中添加条件。请帮我解决这个问题。
import cv2
import numpy as np
img = cv2.imread("Myimage.png")
img_hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
mask1 = cv2.inRange(img_hsv, (0,50,20), (5,255,255))
mask2 = cv2.inRange(img_hsv, (175,50,20), (180,255,255))
mask = cv2.bitwise_or(mask1, mask2 )
croped = cv2.bitwise_and(img, img, mask=mask)
cv2.imshow("mask", mask)
cv2.imshow("croped", croped)
cv2.waitKey()
最佳答案
想法是使用 cv2.countNonZero()
检查蒙版图像中的白色像素。在使用 cv2.inRange()
进行颜色阈值处理后,您将获得一个二值掩码,其中任何像素处于白色的下限和上限 HSV 阈值内。因此,您可以简单地检查蒙版上是否存在白色像素,以确定图像中是否存在红色
# Binary mask with pixels matching the color threshold in white
mask = cv2.bitwise_or(mask1, mask2)
# Determine if the color exists on the image
if cv2.countNonZero(mask) > 0:
print('Red is present!')
else:
print('Red is not present!')
关于用于检查图像中是否存在红色并调用其他函数的 Python 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58340960/