如何将自动编码器的 Numpy 数组输出保存为图像

数据挖掘 Python 喀拉斯 张量流 可视化 麻木的
2022-02-20 03:11:30

我有一个来自自动编码器解码器层的 256*256*3 numpy 数组“SP”,我想将其保存并打开为 .jpg 图像。我使用了类似以下python代码片段的东西:

img = Image.fromarray(SP, 'RGB')
img.save('my.jpg')
img.show()

但是我注意到数组“img”的尺寸是 256*256,图像只是一个噪音。显示图像的正确方法是什么?我已将数组附加为 output.npy 文件:---> https://ufile.io/410iu

1个回答

没错。您看到的大小是图像的帧大小,即高度和宽度。它不是指彩色图像数组的维数。要看到它试试这个

rgb = np.zeros((255, 255, 3), dtype=np.uint8)
img = Image.fromarray(rgb, 'RGB')
r = img.getchannel("R")
g = img.getchannel("G")
b = img.getchannel("B")
print(np.array(r.getdata()))
print(np.array(g.getdata()))
print(np.array(b.getdata()))

输出在哪里

[  0   1   2 ... 252 253 254]
[55 55 55 ... 55 55 55]
[  1   0 255 ...   5   4   3]

所以你有 3 个维度(或颜色)。关于噪音的重点在于dtype=np.uint8将您的数组转换为此,它将起作用。

你也可以简单地尝试

from scipy.misc import imsave
imsave("file_name.jpg", SP)

它完成了这项工作。

祝你好运!