[英]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.