我正在尝试提出一种算法,通过使用 PIL 遍历像素来为图像所包含的绿色量提供分数。到目前为止,我已经提出了几种不同的方法,但它们似乎都有缺陷。
第一个将 rgb 中 g 的所有值相加并将其除以所有 3 种颜色的总和。
def percent_green(img_file):
red = 0
green = 0
blue = 0
img = Image.open(img_file)
pixels = img.load()
width, height = img.size
for x in range(width):
for y in range(height):
rgb = pixels[x, y]
red += rgb[0]
green += rgb[1]
blue += rgb[2]
percent = green / (red + blue + green)
return percent * 100
Run Code Online (Sandbox Code Playgroud)
这种方法成功地根据图像的绿色程度对图像进行了排序,但仅由 rgb(100, 200, 100) 组成的图像尽管非常绿色,但只能获得 50% 的分数。
我想到的另一种方法是简单地确定包含比红色或蓝色更多的绿色像素的百分比。
def percent_green(img_file):
img = Image.open(img_file)
pixels = …Run Code Online (Sandbox Code Playgroud)