2016-04-10 85 views
-2

我想写一个numpy数组到文件。但它不起作用。我的问题如下。写一个numpy矩阵到文件

我想要使用matplotlib.image获取图片的RGB像素值,并将从我的程序中获得的值保存到某个文件以供将来使用。

这些值以数组的形式返回,我尝试使用以下代码写入文本文件。但该文件无法打开。它也没有显示错误信息。

import matplotlib.pyplot as plt 
import matplotlib.image as mpimg 
import numpy as np 

img=mpimg.imread('kitten5.jpeg') 
print(img) 

f=open('kitten.dat','w') 
f.write(img) 
f.close() 

imgplot=plt.imshow(img) 
plt.show() 

有人可以帮忙吗?数据不一定要保存到文本文件中。其他建议同样受到欢迎。

+0

您确实需要格式化的txt文件吗?或者你可以有一个二进制文件,通常在处理图像时更有效率? – Alejandro

+0

是的二进制文件会做。知道一个格式化的txt文件也是有帮助的。但是对于我目前的目的,请指导我使用二进制文件。 – kanayamalakar

回答

2

将图像保存到一个numpy的二进制文件,你可能要使用:

np.save('outputfile', img) 

约np.save的好处是,你可以稍后恢复numpy的对象:

np.load('outputfile.npy') 

并且您不需要关心形状,dtype等。

+0

谢谢,它工作正常。有关格式化txt文件的任何提示? – kanayamalakar

+1

只需使用np.savetxt('output.txt',img,fmt ='%。3f')。但我不推荐这么做大图片。当然,fmt的价值取决于所需的格式。 – Alejandro

+0

但添加此行显示此消息:'TypeError:浮点参数所需,不是numpy.ndarray' – kanayamalakar