【发布时间】:2010-10-15 05:05:22
【问题描述】:
我正在使用 Python 和 PIL。
我有 RGB 格式的图像,我想知道那些只包含一种颜色(例如 #FF0000)或几种非常接近的颜色(#FF0000 和 #FF0001)的图像。
我在考虑使用直方图,但很难用 3 个色带找出一些东西,所以我正在寻找更聪明的算法。
有什么想法吗?
ImageStat 模块就是答案!谢谢亚伦。 我使用 ImageStat.var 来获取方差,并且效果很好。
这是我的一段代码:
from PIL import Image, ImageStat
MONOCHROMATIC_MAX_VARIANCE = 0.005
def is_monochromatic_image(src):
v = ImageStat.Stat(Image.open(src)).var
return reduce(lambda x, y: x and y < MONOCHROMATIC_MAX_VARIANCE, v, True)
【问题讨论】:
标签: python image colors python-imaging-library