首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何将四维Numpy数组转换为PIL图像?

如何将四维Numpy数组转换为PIL图像?
EN

Stack Overflow用户
提问于 2019-07-21 23:07:55
回答 1查看 1.6K关注 0票数 1

我正在通过keras做一些图像机器学习,如果我把一张转换成numpy.array的图片放在我的模型中,它会返回一个4dnumpy数组(预测图片)。

我想使用PIL库中的Image.fromarray将该数组转换为图像。但Image.fromarray只接受二维数组或三维数组。

我预测的图片的数组形状是(1,256,256,3) 1表示数据的数量。所以1对图像来说是无用的数据。我想把它转换成(256,256,3)而不损坏图像数据。我该怎么办?耽误您时间,实在对不起。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-21 23:18:38

1不是无用的数据,它是一个奇异维。你可以省略它,数据的大小不会改变。

你可以用numpy.squeeze做到这一点。

此外,请确保您的数据格式正确,对于Image.fromarray,这是uint8。

示例:

import numpy as np
from PIL import Image

data = np.ones((1,16,16,3))
for i in range(16):
    data[0,i,i,1] = 0.0

print("size: %s, type: %s"%(data.shape, data.dtype))
# size: (1, 16, 16, 3), type: float64

data_img = (data.squeeze()*255).astype(np.uint8)

print("size: %s, type: %s"%(data_img.shape, data_img.dtype))
# size: (16, 16, 3), type: uint8

img = Image.fromarray(data_img, mode='RGB')
img.show()
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57134423

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档