¿Cómo leer una imagen de una matriz numpy en una imagen PIL?

Estoy tratando de leer una imagen de una matriz numpy usando PIL, haciendo lo siguiente:

from PIL import Image import numpy as np #img is a np array with shape (3,256,256) Image.fromarray(img) 

y estoy recibiendo el siguiente error:

 File "...Image.py", line 2155, in fromarray raise TypeError("Cannot handle this data type") 

Creo que esto se debe a que fromarray espera que la forma sea (height, width, num_channels) sin embargo, la matriz que tengo tiene la forma (num_channels, height, width) tal como está almacenada en esta base de datos de lmdb .

¿Cómo puedo remodelar la imagen para que sea compatible con Image.fromarray ?

No necesitas remodelar. Para esto es la rollaxis :

 Image.fromarray(np.rollaxis(img, 0,3)) 

Tratar

 img = np.reshape(256, 256, 3) Image.fromarray(img)