Python 将图像转换为numpy数组,然后保存到txt文件,然后再次转换图像中的.txt

Python 将图像转换为numpy数组,然后保存到txt文件,然后再次转换图像中的.txt,python,numpy,python-imaging-library,Python,Numpy,Python Imaging Library,我有三个阶段: 1.将图像转换为numpy数组 2.将该数组保存在文本文件中 3.通过读取该文本文件将数组转换为图像 我尝试了下面的代码,它将图像转换为数组,然后再次从文本文件中读取相同的数组 从PIL导入图像 进口numpy im=Image.open(“a.jpg”)#img大小(480910,3) np_im=numpy.array(im) 以open('test.txt','w')作为输出文件: 对于np_im中的切片_2d: numpy.savetxt(outfile,slice_2d

我有三个阶段: 1.将图像转换为numpy数组 2.将该数组保存在文本文件中 3.通过读取该文本文件将数组转换为图像

我尝试了下面的代码,它将图像转换为数组,然后再次从文本文件中读取相同的数组

从PIL导入图像
进口numpy
im=Image.open(“a.jpg”)#img大小(480910,3)
np_im=numpy.array(im)
以open('test.txt','w')作为输出文件:
对于np_im中的切片_2d:
numpy.savetxt(outfile,slice_2d)
new_data=numpy.loadtxt('test.txt'))
新数据=新数据。重塑((480910,3))
img=Image.fromarray(新数据,'RGB')
img.save('my.bmp')
img.show()
如果我比较数组(保存之前和从文件加载之后以及重塑之后),数组看起来完全相同(除了点)。前


但我得到的图像完全扭曲了。为什么会这样?

经过一些练习,我得到了答案

img = Image.fromarray(new_data.astype(numpy.uint8),'RGB')

经过一些练习,我得到了答案

img = Image.fromarray(new_data.astype(numpy.uint8),'RGB')

你可能会对它感兴趣。听起来很像是你在尝试建造这个

还有一个补充

如果向savetxt提供一个以
.gz
结尾的文件名,它甚至会压缩数据。loadtxt同样理解它


这将适用于任意numpy阵列

您可能会感兴趣。听起来很像是你在尝试建造这个

还有一个补充

如果向savetxt提供一个以
.gz
结尾的文件名,它甚至会压缩数据。loadtxt同样理解它

这将适用于任意numpy阵列

可能的重复可能的重复