python - измерение яркости пикселей

Как я могу получить показатель яркости пикселей для определенного пикселя в изображении? Я ищу абсолютную шкалу для сравнения яркости разных пикселей. Спасибо

1 ответ

Решение

Чтобы получить значение RGB пикселя, вы можете использовать PIL:

import Image
imag = Image.open("yourimage.yourextension")
#Convert the image te RGB if it is a .gif for example
imag = imag.convert ('RGB')
#coordinates of the pixel
X,Y = 0,0
#Get RGB
pixelRGB = imag.getpixel((X,Y))
R,G,B = pixelRGB 

Тогда яркость - это просто масштаб от черного до белого, который можно извлечь, усреднив три значения RGB:

brightness = sum([R,G,B])/3 ##0 is dark (black) and 255 is bright (white)

ИЛИ вы можете пойти глубже и использовать формулу яркости, о которой прокомментировал Игнасио Васкес-Абрамс: ( Формула для определения яркости цвета RGB)

#Standard
LuminanceA = (0.2126*R) + (0.7152*G) + (0.0722*B)
#Percieved A
LuminanceB = (0.299*R + 0.587*G + 0.114*B)
#Perceived B, slower to calculate
LuminanceC = sqrt(0.299*R^2 + 0.587*G^2 + 0.114*B^2 )
Другие вопросы по тегам