как преобразовать значение RGB в целое число на основе карты в python - PullRequest
0 голосов
/ 06 марта 2020

У меня большое изображение RGB, я хочу преобразовать каждое значение RGB в index_id на основе карты. Я делаю это следующим образом, но это очень медленно. Есть ли более быстрый способ сделать это?

NewDic = OrderedDict([
            ((0,0,0), 0),
            ((20,20,20), 1),
            ((100,20,3),2) ])


ann = Image.open(img_rgb)
ann = np.asarray(ann)
zeroann = np.zeros((ann.shape[0],ann.shape[1]))

for x in range(ann.shape[0]):
  for y in range(ann.shape[1]):  
     A = ann[x,y,:]
     zeroann[x,y] = NewDic[tuple(A)]

1 Ответ

0 голосов
/ 06 марта 2020

Требуется ли вам конкретное отображение c, иначе вы можете попробовать прямое отображение.

ann = Image.open(img_rgb)
ann = np.asarray(ann)
# define newann as:
newoann = ann[:, :, 0] + ann[:, :, 1] * 256 + ann[:, :, 2] * 256**2
# Then do the mapping

Это приведет к уникальному индексу для каждого значения RGB.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...