Как преобразовать массив Numpy в изображение PIL, применяя цветовую карту matplotlib



у меня есть простая проблема, но я не могу найти хорошее решение.



Я хочу взять массив NumPy 2D, который представляет собой изображение в оттенках серого, и преобразовать его в изображение RGB PIL при применении некоторых цветовых карт matplotlib.



Я могу получить разумный выход PNG с помощью :



dpi = 100.0
w, h = myarray.shape[1]/dpi, myarray.shape[0]/dpi
fig = plt.figure(figsize=(w,h), dpi=dpi)
fig.figimage(sub, cmap=cm.gist_earth)
plt.savefig('out.png')


хотя я мог бы адаптировать это, чтобы получить то, что я хочу (вероятно, используя StringIO do get the PIL image), мне интересно, нет ли более простого способа сделать это, поскольку это кажется очень естественной проблемой визуализации изображений. Скажем, что-то вроде этого:



colored_PIL_image = magic_function(array, cmap)


Спасибо за чтение!

621   1  

1 ответ:

довольно занят один лайнер, но вот это:

  1. сначала убедитесь, что Ваш массив numpy,myarray, нормализуется с максимальным значением в 1.0.
  2. применить цветовую карту непосредственно в myarray.
  3. изменить на

Comments

    Ничего не найдено.