【发布时间】:2017-05-15 08:43:18
【问题描述】:
我想在 python 中编写代码以在输入图像完全为黑色且其中不存在其他颜色时打印文本。要使用哪些功能?
【问题讨论】:
标签: python python-2.7 opencv
我想在 python 中编写代码以在输入图像完全为黑色且其中不存在其他颜色时打印文本。要使用哪些功能?
【问题讨论】:
标签: python python-2.7 opencv
试试这个:
# 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(黑色)。
【讨论】:
image = cv2.imread("image.jpg", 0)
if cv2.countNonZero(image) == 0:
print "Image is black"
else:
print "Colored image"
@ebeneditos 提供的上面的 sn-p 是一个好主意,但在我的测试中,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")
【讨论】: