Python 如何保存解决此问题:使用PIL.Image保存图像
我想用PIL.Image保存图像时出错 代码如下:Python 如何保存解决此问题:使用PIL.Image保存图像,python,numpy,python-imaging-library,Python,Numpy,Python Imaging Library,我想用PIL.Image保存图像时出错 代码如下: from PIL import Image generated = np.load('/home/jovyan/GROUP_SHARED/Kimi.Zhang/cutout.npy') generated = generated[:25, :, :, :] print('image_size', generated.shape) j = Image.fromarray(generated) for i in range(len(generat
from PIL import Image
generated = np.load('/home/jovyan/GROUP_SHARED/Kimi.Zhang/cutout.npy')
generated = generated[:25, :, :, :]
print('image_size', generated.shape)
j = Image.fromarray(generated)
for i in range(len(generated)):
j.save('/home/jovyan/GROUP_SHARED/Kimi.Zhang/imagetest_' + str(i) +'.jpg')
“已生成”包含25幅图像,我想将它们逐个保存到jpg
结果是:
图像大小(25,3,32,32)
keyrerror回溯(最近一次调用)
/fromarray中的opt/conda/lib/python3.6/site-packages/PIL/Image.py(obj,模式)
2415 typekey=(1,1)+形状[2],arr['typestr']
->2416模式,rawmode=\u fromarray\u typemap[typekey]
2417键错误除外:
KeyError:((1,1,32,32),“试试这个,看看它是否有效。我所做的只是在for循环中取一行
for i in range(len(generated)):
j = Image.fromarray(generated[i])
j.save('/home/jovyan/GROUP_SHARED/Kimi.Zhang/imagetest_' + str(i) +'.jpg')
假设生成的中的数据有效
- 迭代第一个维度,跟踪索引
- 确保数据类型正确
- 创建图像
- 保存图像
当然,另外
KeyError Traceback (most recent call last)
/opt/conda/lib/python3.6/site-packages/PIL/Image.py in fromarray(obj, mode)
2415 typekey = (1, 1) + shape[2:], arr['typestr']
-> 2416 mode, rawmode = _fromarray_typemap[typekey]
2417 except KeyError:
KeyError: ((1, 1, 32), '<f4')
During handling of the above exception, another exception occurred:
TypeError Traceback (most recent call last)
<ipython-input-47-1316bb4844f6> in <module>()
7 #j = Image.fromarray(generated)
8 for i in range(len(generated)):
----> 9 j = Image.fromarray(generated[i])
10 j.save('/home/jovyan/GROUP_SHARED/Kimi.Zhang/imagetest_' + str(i)
+ '.jpg')
11
/opt/conda/lib/python3.6/site-packages/PIL/Image.py in fromarray(obj, mode)
2417 except KeyError:
2418 # print(typekey)
-> 2419 raise TypeError("Cannot handle this data type")
2420 else:
2421 rawmode = mode
TypeError: Cannot handle this data type
for i in range(len(generated)):
j = Image.fromarray(generated[i])
j.save('/home/jovyan/GROUP_SHARED/Kimi.Zhang/imagetest_' + str(i) +'.jpg')
...
prefix = '\my\path\prefix'
ext = 'jpg'
for suffix, data in enumerate(generated):
print(data.shape)
data.dtype = np.uint8
im = Image.fromarray(data, mode = 'RGB')
print(f'{prefix}_{suffix}.{ext}')
im.save(f'{prefix}_{suffix}.{ext}', 'JPEG')