我正在使用OpenCV(Python)编写脚本,将图像分成不同的部分,以便稍后在其上的每个部分上运行OCR。我已经获得了将源图像分成我需要的所有框的脚本,但是它也附带了许多普通的白色图像。
我很好奇能否使用OpenCV检查图像是否仅为白色像素。我是这个图书馆的新手,所以有关此的任何信息都将有所帮助。
谢谢!
答案 0 :(得分:9)
方法1: np.mean
计算图像的平均值。如果等于ObjectId
,则图像由所有白色像素组成。
255
方法2: cv2.countNonZero
您可以使用if np.mean(image) == 255:
print('All white')
else:
print('Not all white')
来计数非零(白色)数组元素。这个想法是获得一个二进制图像,然后检查白色像素的数量是否等于图像的面积。如果匹配,则整个图像由所有白色像素组成。这是一个最小的示例:
输入图像#1(由于背景为白色,因此不可见):
全白
输入图片#2
不是全白的
cv2.countNonZero