在灰度图像的像素中找到“黑色水平”

时间:2019-06-27 23:04:01

标签: python python-imaging-library

我正在尝试计算像素的黑色百分比。例如,假设我有一个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%的黑色像素。

1 个答案:

答案 0 :(得分:0)

我不确定您要转换为的“ 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))

这是您要找的吗?