Tengo un problema simple, pero no puedo encontrar una buena solución.
Quiero tomar una matriz NumPy 2D que represente una imagen en escala de grises y convertirla en una imagen RGB PIL mientras se aplican algunos de los mapas de color matplotlib.
Puedo obtener una salida PNG razonable usando el 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')
Aunque podría adaptar esto para obtener lo que quiero (probablemente usando StringIO obtengo la imagen PIL), me pregunto si no hay una forma más sencilla de hacerlo, ya que parece ser un problema muy natural de visualización de imágenes. Digamos algo como esto:
colored_PIL_image = magic_function(array, cmap)