首页 > 解决方案 > 在灰度图像的像素中查找“黑色级别”

问题描述

我正在尝试计算一个像素的黑色百分比。例如,假设我有一个 75% 黑色的像素,所以是灰色的。我有 RGBA 值,那么如何获得黑色级别?

我已经完成了获取每个像素并将其替换为新的 RGBA 值,并尝试使用一些 RGBA 逻辑无济于事。

#Gradient Testing here
from PIL import Image
picture = Image.open("img1.png")

img = Image.open('img1.png').convert('LA')
img.save('greyscale.png')

# Get the size of the image

width, height = picture.size

# Process every pixel

for x in range(width):
   for y in range(height):

       #Code I need here
       r1, g1, b1, alpha = picture.getpixel( (x,y) )
       r,g,b = 120, 140, 99
       greylvl = 1 - (alpha(r1 + g1 + b1) / 765) #Code I tried

我想得到一个新变量,它给我一个值,比如 0.75,它代表 0.75% 的黑色像素。

标签: pythonpython-imaging-library

解决方案


我不太确定您要转换为的“LA”格式是什么;我会尝试“L”。

试试这个代码:(确保你使用的是 Python 3。)

from PIL import Image

picture = Image.open('img1.png').convert('L')
width, height = picture.size

for x in range(width):
    for y in range(height):
        value = picture.getpixel( (x, y) )
        black_level = 1 - value / 255
        print('Level of black at ({}, {}):  {} %'.format(x, y, black_level * 100))

这是你要找的吗?


推荐阅读