2016-04-10 84 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