2017-04-14 85 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

我想在每個文本文件中有48列x 48行,像素值在0-255之間。

樣品圖片:

sample image

我怎樣才能做到這一點與Python?

+0

你能鏈接我們的示例圖像嗎? –

+0

這些值在0-255之間,但以科學計數法浮動,您是否嘗試過將「像素」中的值轉換爲整數? –

回答

3

這些數字是正確的。您正在使用np.savetxt方法,該方法默認將數字轉換爲科學記數法。爲了將它們保存爲整數,我相信你會這樣做:

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

我必須有48列* 48行,但我得到325行和1027列。哪裏不對 ? –

+0

你確定你的圖片是48 x 48嗎? – Grr

+0

這是一個錯誤。謝謝你的回覆fmt ='%d'是我所需要的。 –

相關問題