各位前辈好,我想求图中黄绿色的面积百分比,应该从什么方向入手

各位前辈好,我想求图中黄绿色的面积百分比,应该从什么方向入手

问题描述:

题主给出的图片是RGBA模式的,其中黄绿色的像素点,其红色R通道和绿色G通道应该比蓝色B通道数值大。建议从全部像素中筛选符合条件的像素,像素之比就是题主所求的面积之比。下面的代码,筛选条件是R通道和G通道均比B通道数值大15,黄绿色像素占比约1.28%。题主可以尝试其他条件,直至筛选结果符合要求为止。

>>> import numpy as np
>>> from PIL import Image
>>> im = np.array(Image.open(r'D:\temp\csdn\1619250446148.png'))
>>> im.shape
(611, 837, 4)
>>> r, g, b, a = np.dsplit(im, 4)
>>> yellow_green = (r>(b+15))&(g>(b+15))
>>> yellow_green[yellow_green].shape
(6530,)
>>> 6530/(611*837)
0.012768694992442419
>>> r[~yellow_green] = 255
>>> g[~yellow_green] = 255
>>> b[~yellow_green] = 255
>>> im_check = np.dstack((r,g,b,a))
>>> im_check = Image.fromarray(im_check)
>>> im_check.show() # 查看过滤条件是否合适

过滤效果: