Как по одному значению цвета в словаре определить цвета RGB?

Ищу цвет определенного пикселя по моду RGB. На выводе имею два значения (цвет , кол-во пикселей). Так как RGB имеет 3 значения. Пример RGB(255,255,255) - Белый цвет.

Проблема в том что я не могу понять как по одному значению цвета в словаре определить цвета RGB.

im = Image.open("путь к картинке в формате png").convert("RGB")
his = im.histogram()

values = {}

for i in range(256):
    values[i] = his[i]

for j, k in sorted(values.items(), key=itemgetter(1), reverse=True)[:10]:
    print(j, k)

Вывод:

255 311822 250 111295 254 7339 253 5328 235 4362 237 3908 252 3892 251 3713 249 3140 234 3097


Ответы (1 шт):

Автор решения: Kromster

Судя по описанию (https://pythontic.com/image-processing/pillow/histogram и http://www.effbot.org/imagingbook/image.htm#tag-Image.Image.histogram), гистограма в PIL работает не совсем так. Это не частоты отдельных цветов. Это частоты компонентов отдельных каналов.

Для RGB изображения (3 цветовых канала) она отдаст всего 768 элементов - 256 для красного канала, 256 для синего и 256 для зеленого.

# Get the color histogram of the image
histogram = image.histogram()

# Take only the Red counts
l1 = histogram[0:256]

# Take only the Blue counts
l2 = histogram[256:512]

# Take only the Green counts
l3 = histogram[512:768]

Таким образом имея значения гистограмы нельзя узнать конкретные цвета пикселей.

→ Ссылка