簡體   English   中英

使用 OpenCV 檢查圖像是否全為白色像素

[英]Check if image is all white pixels with OpenCV

我正在使用 OpenCV (Python) 編寫一個腳本,將圖像分成不同的部分,以便稍后在每個部分上運行 OCR。 我有腳本將源圖像分成我需要的所有框,但它也帶有一些純白色圖像。

我很好奇是否有辦法使用 OpenCV 檢查圖像是否只有白色像素。 我對這個圖書館很陌生,所以任何關於這方面的信息都會有所幫助。

謝謝!

方法#1: np.mean

計算圖像的平均值。 如果它等於255則圖像由所有白色像素組成。

if np.mean(image) == 255:
    print('All white')
else:
    print('Not all white')

方法#2: cv2.countNonZero

您可以使用cv2.countNonZero來計算非零(白色)數組元素。 這個想法是獲得一個二值圖像,然后檢查白色像素的數量是否等於圖像的面積。 如果匹配,則整個圖像由所有白色像素組成。 這是一個最小的例子:


輸入圖像 #1(不可見,因為背景是白色的):

在此處輸入圖片說明

全白

輸入圖像 #2

在此處輸入圖片說明

不是全白

import cv2
import numpy as np

def all_white_pixels(image):
    '''Returns True if all white pixels or False if not all white'''
    H, W = image.shape[:2]
    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    thresh = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)[1]

    pixels = cv2.countNonZero(thresh)
    return True if pixels == (H * W) else False

if __name__ == '__main__':
    image = cv2.imread('1.png')
    if all_white_pixels(image):
        print('All white')
    else:
        print('Not all white')
    cv2.imshow('image', image)
    cv2.waitKey()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM