我想创建一个程序,加载图像中每个像素的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