2024-08-20|閱讀時間 ‧ 約 23 分鐘

[OpenCV[Python]cv2.countNonZero計算圖像中像素數量

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)

解釋

  1. image 是一個 4x4 的二值圖像矩陣,其中 0 表示黑色像素,255 表示白色像素。
  2. cv2.countNonZero(image) 計算這個圖像中非零像素的數量。這裡 255 是非零值,所以這個函數將返回圖像中所有白色像素的數量。

在上面的例子中,圖像中共有 6 個非零像素,因此輸出會是:

非零像素的數量: 6

注意事項

  • cv2.countNonZero 只能用於單通道圖像(如灰度圖像或二值圖像)。如果您對多通道圖像(如 RGB 圖像)使用它,必須先將圖像轉換為灰度圖像處理單個通道
  • 此函數對於圖像分析中如計算某個區域的前景像素檢測物體、分割結果的評估等非常有用。


例如應用在計算OCR的面積


[OpenCV][Python]印出圖像中OCR面積及位置

分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.