我想你是犯了个错误,比如。。TypeError: 'PixelAccess' object is not iterable。。。?
有关如何访问像素,请参阅Image.load文档。。
基本上,要获取图像中的像素列表,请使用PIL:from PIL import Image
i = Image.open("myfile.png")
pixels = i.load() # this is not a list, nor is it list()'able
width, height = i.size
all_pixels = []
for x in range(width):
for y in range(height):
cpixel = pixels[x, y]
all_pixels.append(cpixel)
它将每个像素追加到all_pixels-如果文件是RGB图像(即使它只包含黑白图像),则这些将是元组,例如:(255, 255, 255)
要将图像转换为单色,只需平均这三个值-因此,最后三行代码将变成。。cpixel = pixels[x, y]
bw_value = int(round(sum(cpixel) / float(len(cpixel))))
# the above could probably be bw_value = sum(cpixel)/len(cpixel)
all_pixels.append(bw_value)
或获得亮度(加权平均值):cpixel = pixels[x, y]