我需要计算图像中的白色和绿色像素。我尝试了以下代码来计算白色和黑色像素:
# importing libraries
import cv2
import numpy as np
# reading the image data from desired directory
img = cv2.imread("img_1.png")
cv2.imshow('Image',img)
# counting the number of pixels
number_of_white_pix = np.sum(img == 255)
number_of_black_pix = np.sum(img == 0)
print('Number of white pixels:', number_of_white_pix)
print('Number of black pixels:', number_of_black_pix)
如何使用python代码获得绿色像素数而不是黑色像素数。
您当前的分析不正确。您的数据加载为3D:(高度、宽度、通道数(。在这里,通道将是红色、绿色和蓝色。
现在,您只是在计算3D矩阵中的所有255,这可能会导致比像素数更高的值。
根据您的需要,您可能需要使用:
# counting the number of pixels that have a value of 255 in the green channel
number_of_green_pix = np.sum(img[:,:,1] == 255)
如果您只想找到只包含绿色的像素,可以在np.sum中使用where
选项:
number_of_green_pix = np.sum(img[:,:,1] == 255, where=((img[:,:,0] == 0) & (img[:,:,2] == 0)))
#or
number_of_green_pix = np.sum(img[:,:,1] > 0, where=((img[:,:,0] == 0) & (img[:,:,2] == 0)))