How to read image from numpy array into PIL Image?

天大地大妈咪最大 提交于 2020-01-11 08:24:21

问题


I am trying to read an image from a numpy array using PIL, by doing the following:

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

and am getting the following error:

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

I think this is because fromarray expects the shape to be (height, width, num_channels) however the array I have is in the shape (num_channels, height, width) as it is stored in this was in an lmdb database.

How can I reshape the Image so that it is compatible with Image.fromarray?


回答1:


You don't need to reshape. This is what rollaxis is for:

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



回答2:


Try

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


来源:https://stackoverflow.com/questions/30345937/how-to-read-image-from-numpy-array-into-pil-image

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!