2016-04-10 8 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.load('outputfile.npy') 

np.save('outputfile', img) 

np.saveのいいところは、あなたが後であなたのnumpyのオブジェクトを回復することができるということです

あなたは形状、dtypeなどを気にする必要はありません。

+0

ありがとう、それは正常に動作します。書式付きtxtファイルに関するヒント – kanayamalakar

+1

np.savetxt( 'output.txt'、img、fmt = '%。3f')を使用してください。しかし、私は大きな画像のためにこれをお勧めしません。もちろん、fmtの値は希望のフォーマットに依存します。 – Alejandro

+0

しかし、この行を追加すると、次のメッセージが表示されます。 'TypeError:浮動小数点引数が必要です。numpy.ndarrayではありません。 ' – kanayamalakar

関連する問題