【发布时间】:2017-04-05 07:09:12
【问题描述】:
我正在尝试创建一个 python 程序,它采用灰度、24*24 像素图像文件(我还没有决定类型,所以欢迎提出建议)并将其转换为从 0 开始的像素值列表(白色) 到 255(黑色)。
我打算用这个数组来创建一个类似MNIST的图片字节文件,可以被Tensor-Flow手写识别算法识别。
我发现Pillow library 在这项任务中最有用,它遍历每个像素并将其值附加到数组中
from PIL import Image
img = Image.open('eggs.png').convert('1')
rawData = img.load()
data = []
for y in range(24):
for x in range(24):
data.append(rawData[x,y])
然而这个解决方案有两个问题:
- 像素值不存储为整数,而是像素对象,无法进一步进行数学操作,因此无用。
- 即使Pillow docs 声明:
访问单个像素相当慢。如果您要遍历图像中的所有像素,则可能有更快的方法使用 Pillow API 的其他部分。
【问题讨论】:
-
当我在我的机器上运行你的代码时,
data是一个常规整数列表。 -
文档可能指的是getdata,我希望它比逐像素访问更快。
-
我不知道有任何 Python 库在单个像素访问方面并不慢。
标签: python image python-imaging-library mnist