使用PIL进行像素加载和评估

我想创建一个程序,加载图像中每个像素的RGB值,并将它们保存在某种列表/字典/元组中,然后当我输入一个值时,它会告诉我图像中有多少像素具有该值.到目前为止,我已经阅读了整个PIL文档,试图找到一个可以满足我需求的方法,并且我已经尝试了几种其他方法,例如.getpixel()或.load()函数,但是很难保存并评估每个像素的信息.
最佳答案
首先,您需要将图像转换为“RGB”模式,以便始终获得像素的(R,G,B)元组,即使对于灰度/单色图像也是如此.

image = image.convert("RGB")

然后,迭代getdata()以构建直方图.

colors = {}

for color in image.getdata():
    colors[color] = colors.get(color, 0) + 1

然后,您可以使用get()来检索给定颜色的像素数

print colors.get((255, 255, 255), 0)  # No. of white pixels

转载注明原文:使用PIL进行像素加载和评估 - 代码日志