Вывести количество каждого значения RGB изображения маски с помощью подушки? - PullRequest
1 голос
/ 11 июля 2020

Я пытаюсь извлечь количество каждого значения RGB из образца фотографии, как показано ниже, используя python подушку. Но изображение обрабатывает только зеленый цвет фона.

образец изображения

Я пробовал этот скрипт

i = Image.open(img_path, 'r')
r, g, b = i.getpixel((0, 0))
print("Red: {}, Green: {}, Blue: {}".format(r, g, b))

Но результат выглядит следующим образом.

Red: 0, Green: 255, Blue: 0

размер изображения (2048, 1536) и его PNG. Как мне узнать значение красных и синих пикселей? Я новичок в этом, любая помощь приветствуется.

`

1 Ответ

0 голосов
/ 11 июля 2020

Вы можете получить свои уникальные значения RGB следующим образом:

np.unique(np.array(i).reshape(-1,3),axis=0)

Однако ваше изображение имеет больше, чем просто зеленые / синие / красные точки:

Уникальные наборы RGB в вашем изображении:

[[  0  42 255]
 [  0  44 255]
 [  0  46 193]
 ...
 [255  64  44]
 [255  64  63]
 [255  65  44]]

или:

print(["Red: {}, Green: {}, Blue: {}".format(r, g, b) for (r,g,b) in colors])

['Red: 0, Green: 42, Blue: 255', 
'Red: 0, Green: 44, Blue: 255', 
'Red: 0, Green: 46, Blue: 193', 
'Red: 0, Green: 46, Blue: 207', 
'Red: 0, Green: 47, Blue: 215', 
'Red: 0, Green: 50, Blue: 255', 
'Red: 0, Green: 53, Blue: 255', 
'Red: 0, Green: 83, Blue: 90', 
'Red: 0, Green: 94, Blue: 100', 
'Red: 1, Green: 45, Blue: 238',
...
]
...