如何在OpenCV Python中检测全黑色图像?

时间:2016-12-31 07:55:36

标签: python python-2.7 opencv

我希望在python中编写代码,以便在输入图像完全是黑色且其中没有其他颜色时打印文本。哪个是要使用的功能?

2 个答案:

答案 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")