计算图像中的绿色和白色像素



我需要计算图像中的白色和绿色像素。我尝试了以下代码来计算白色和黑色像素:

# 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)))

相关内容

  • 没有找到相关文章

最新更新