我正在尝试创建一个Python程序,将一个24*24像素的灰度图像文件(我还没有决定具体类型,欢迎提供建议)转换为从0(表示白色)到255(表示黑色)的像素值列表。
我计划使用这个数组创建类似于MNIST的字节文件,可以被Tensor-Flow手写识别算法识别。
我发现Pillow库在这个任务中最有用,通过迭代每个像素并将其值附加到一个数组中。
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
是一个常规整数列表。 - Kevin