Конвертировать 2d массив в цветное изображение в Python - PullRequest
0 голосов
/ 24 октября 2018

У меня есть 2d список таких типов:

list1 = [[1, 30, 50], [21, 45, 9], [97, 321, 100]]

Далее я собираюсь преобразовать это в массив numpy:

myarr = np.asarray(list1)

Затем я собираюсь преобразовать это в изображениеиспользуя PIL вот так:

img = Image.fromarray(myarr, "I")
img.save("my.png")

проблема в том, что я не хочу изображения в оттенках серого.Я не знаю, как преобразовать это в цветное изображение.Я должен использовать функцию карты ENY или что-то еще?

1 Ответ

0 голосов
/ 24 октября 2018

Способ сделать это с помощью numpy

import numpy as np
list1 = [[1, 30, 50], [21, 45, 9], [97, 321, 100]]
list1 = np.array(list1).reshape(-1, 3)

И теперь list1 будет иметь форму N x 3, где измерение 3 - это RGB.Если вы знаете размеры конечного изображения, вы можете сделать

np.array(list1).reshape(N, M, 3)

, и он будет преобразовывать ваш массив в RGB по мере необходимости.Затем, когда у вас есть массив NumPy, у вас есть ваш массив в форме изображения и можете сохранить его в PNG и т. Д.

...