我希望在python中编写代码,以便在输入图像完全是黑色且其中没有其他颜色时打印文本。哪个是要使用的功能?
答案 0 :(得分:9)
试试这个:
# open the file with opencv
image = cv2.imread("image.jpg", 0)
if cv2.countNonZero(image) == 0:
print "Image is black"
else:
print "Colored image"
您基本上检查所有像素值是否为0(黑色)。
答案 1 :(得分:3)
image = cv2.imread("image.jpg", 0)
if cv2.countNonZero(image) == 0:
print "Image is black"
else:
print "Colored image"
@ebeneditos提供的上述代码段是一个很好的想法,但是在我的测试中,opencv在捕获彩色图像时返回了断言错误。
根据opencv community, countNonZero()只能处理单通道图像。因此,一种简单的解决方案是在对像素计数之前将图像转换为灰度。在这里:
gray_version = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
if cv2.countNonZero(gray_version) == 0:
print("Error")
else:
print("Image is fine")