Как по одному значению цвета в словаре определить цвета 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 шт):
Судя по описанию (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]
Таким образом имея значения гистограмы нельзя узнать конкретные цвета пикселей.