繁体   English   中英

Python 检查图像是灰度还是彩色的最快方法?

[英]Python Fastest way to check if image is greyscale or color?

我想使用 Python 检查图像是灰度还是彩色。 我知道我们可以读取图像并轻松检查,但是,我想知道是否有一种方法可以在不阅读完整图像的情况下进行检查?

我有大约 2 亿张图像 (200x200),因此在运行时读取每张图像是不可行的。

谢谢

虽然我不能肯定这将是最有效的,但我确信它会比大多数操作执行得更好。

所以考虑使用 ImageStat 模块。

from PIL import Image, ImageStat

def is_grayscale(path="image.jpg")
    im = Image.open(path).convert("RGB")
    stat = ImageStat.Stat(im)
    if sum(stat.sum)/3 == stat.sum[0]: #check the avg with any element value
        return True #if grayscale
    else:
        return False #else its colour

stat.sum为我们提供了列表视图中所有像素的总和 = [R, G, B] 例如 [568283302.0, 565746890.0, 559724236.0]。 对于灰度图像,列表的所有元素都是相等的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM