как конвертировать из файла изображения> массив numpy> список координат x / y одного цвета RGB - PullRequest
0 голосов
/ 11 апреля 2019

enter image description here

Создайте пустой массив из изображения размером 2x2 пикселя выше (увеличено для ясности):

import numpy as np
from PIL import Image

img = Image.open('2x2.png')
pixels = np.array(img)

Массив выглядит следующим образом, каждый пиксель представлен соответствующими значениями [R, G, B]:

>>> pixels
array([[[255,   0,   0],
        [  0, 255,   0]],

       [[  0,   0, 255],
        [255,   0,   0]]], dtype=uint8)

Теперь мне нужно создать массив координат x / y «всех красных пикселей», поэтому все элементы массива имеют значение [255, 0, 0]. Результирующий массив координат выглядит следующим образом:

array([[ 0,  0],
       [ 1,  1 ]])

Какой лучший способ добиться этого?

Ответы [ 2 ]

1 голос
/ 12 апреля 2019

Вы можете попробовать:

temp = (pixels == [255,0,0]).all(axis=-1)
# [[ True False]
#  [False  True]]
result = np.asarray(np.where(temp)).T
print(result)

# print
# [[0 0]
#  [1 1]]
0 голосов
/ 13 апреля 2019

Я обнаружил, что это работает:

np.argwhere((pixels==[255,0,0]).all(axis=2))
array([[0, 0],
       [1, 1]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...