cv2.countNonZero
是 OpenCV 中的一個函數,用來計算二值圖像(或單通道圖像)中非零像素的數量。這個函數對於圖像處理中的許多操作非常有用,例如計算某個區域內的白色像素數量,從而幫助我們了解圖像的內容或進行進一步的分析。
假設您有一個二值圖像,其中白色像素(值為 255)表示前景,黑色像素(值為 0)表示背景。您可以使用 cv2.countNonZero
來計算圖像中前景像素的數量。
import cv2
import numpy as np
# 創建一個示例二值圖像
image = np.array([[0, 0, 255, 255],
[0, 255, 255, 0],
[0, 255, 0, 0],
[255, 0, 0, 0]], dtype=np.uint8)
# 計算非零像素的數量
non_zero_count = cv2.countNonZero(image)
print("非零像素的數量:", non_zero_count)
image
是一個 4x4 的二值圖像矩陣,其中 0
表示黑色像素,255
表示白色像素。cv2.countNonZero(image)
計算這個圖像中非零像素的數量。這裡 255
是非零值,所以這個函數將返回圖像中所有白色像素的數量。在上面的例子中,圖像中共有 6 個非零像素,因此輸出會是:
非零像素的數量: 6
cv2.countNonZero
只能用於單通道圖像(如灰度圖像或二值圖像)。如果您對多通道圖像(如 RGB 圖像)使用它,必須先將圖像轉換為灰度圖像或處理單個通道。