2017-04-14 80 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'是我所需要的。 –

相关问题