如何检查RGB图像是否只包含一种颜色?

Gré*_*het 4 python image colors python-imaging-library

我正在使用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)
Run Code Online (Sandbox Code Playgroud)

Aar*_*lla 5

试试ImageStat模块.如果返回的值extrema相同,则图像中只有一种颜色.