Eu tenho um problema simples, mas não consigo encontrar uma boa solução para ele.
Eu quero pegar uma matriz NumPy 2D que representa uma imagem em escala de cinza e convertê-la em uma imagem RGB PIL enquanto aplico alguns dos mapas de cores matplotlib.
Posso obter uma saída PNG razoável usando o 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')
Embora eu possa adaptar isso para obter o que quero (provavelmente usando o StringIO para obter a imagem PIL), pergunto-me se não há uma maneira mais simples de fazer isso, pois parece ser um problema muito natural de visualização de imagens. Digamos, algo como isto:
colored_PIL_image = magic_function(array, cmap)