簡體   English   中英

是否可以使用 Python 僅計算圖像中的白色像素?

[英]Is it possible to count white pixels only in an image using Python?

我一直在嘗試使用這里找到的漂亮代碼計算圖像中的白色像素。

import cv2
image = cv2.imread("pathtoimg", 0)
count = cv2.countNonZero(image)
print(count)

但是,此代碼不僅計算圖像中的白色像素,還計算所有非嚴格黑色的像素,包括非常暗的顏色,例如 rgb(0,0,1)。 所以總計數超過了白色像素計數。

所以,我正在尋找一個只計算白色像素 rgb(255,255,255) 的代碼

有任何想法嗎? 非常感謝你的幫助

你可以試試

np.sum(img == 255)

或者你可以做的是應用過濾器或反色,所以白色變成黑色,黑色變成白色,然后你可以簡單地做

gray = cv2.cvtColor("pathtoimg", cv2.COLOR_BGR2GRAY)
pixels = cv2.countNonZero(gray)

由於您希望匹配 RGB 值,在這種情況下只有白色,下面應該做你想做的。 注意:通過調整cv2.inRange函數中的下限和上限,此解決方案可以擴展到計算 RGB 值的范圍。

import cv2
import numpy as np

image = cv2.imread("pathtoimage")
dst = cv2.inRange(image, np.array([255,255,255], dtype=np.uint8), np.array([255,255,255], dtype=np.uint8))
count = cv2.countNonZero(dst)

print(count)

暫無
暫無

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

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