如何将图像转换为像素值并将其存储在文本文件中?

时间:2017-04-14 17:14:36

标签: python python-imaging-library

我有一个包含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+02 1.500000000000000000e+02 1.520000000000000000e+02

我想在每个文本文件中有48列x 48行,像素值在0到255之间。

示例图片:

sample image

如何使用python执行此操作?

1 个答案:

答案 0 :(得分:3)

这些数字是正确的。您正在使用np.savetxt方法,默认情况下将数字转换为科学记数法。为了将它们保存为整数,我相信你会这样做:

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