Ho un problema semplice, ma non riesco a trovare una buona soluzione.
Voglio prendere un array 2D NumPy che rappresenta un'immagine in scala di grigi e convertirlo in un'immagine PIL RGB mentre si applicano alcune delle mappe di colori matplotlib.
Posso ottenere un output PNG ragionevole usando il pyplot.figure.figimage
comando:
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')
Anche se potrei adattare questo per ottenere ciò che voglio (probabilmente usando StringIO ottieni l'immagine PIL), mi chiedo se non ci sia un modo più semplice per farlo, dal momento che sembra essere un problema molto naturale di visualizzazione delle immagini. Diciamo qualcosa del genere:
colored_PIL_image = magic_function(array, cmap)