2017-04-14 20 views
0

私はnグレースケール48 * 48イメージのフォルダを持っています。画像をピクセル値に変換してテキストファイルに保存するには?

各画像のピクセル値を別々に抽出し、それを別々のテキストファイルに保存したい(nのテキストファイルがある)。

from PIL import Image 
import numpy as np 

im = Image.open('a.png') 

pixels = list(im.getdata()) 
width, height = im.size 
pixels = [pixels[i * width:(i + 1) * width] for i in xrange(height)] 
np.savetxt("pixel_data.txt", pixels, delimiter=" ") 

しかし、私はこのような値を取得しています:

私はこれを試してみました1.460000000000000000e+021.500000000000000000e+021.520000000000000000e+02

ピクセル値が0〜255のすべてのテキストファイルに48列×48行が必要です。

サンプル画像:

sample image

私のpythonでこれを行うことができますどのように?

+0

私たちはサンプル画像にリンクできますか? –

+0

これらの値は0-255の間ですが、科学的な表記法では浮動小数点ですが、 '' pixels''の値をintsに変換しようとしましたか? –

答えて

3

これらの数字は正しいです。デフォルトで数値を科学的表記法に変換するnp.savetxtメソッドを使用しています。それらをintとして保存するには、私はあなたがそうすると信じています:

np.savetxt("pixel_data.txt", pixels, fmt='%d', delimiter=" ") 
+0

私は48列×48行を持っている必要がありますが、私は325行と1027列を得ています。なにが問題ですか ? –

+0

あなたの画像は48x48ですか? – Grr

+0

間違いでした。返信いただきありがとうございます。fmt = '%d'はすべて私が必要としていました。 –

関連する問題