【发布时间】:2012-02-01 10:42:36
【问题描述】:
是否有一种有效的方法来确定图像是灰度图像还是彩色图像?高效并不是指读取图像的所有像素然后查找每个 RGB 值。
例如,在 Python 中,Imaging 库中有一个名为“getcolors”的函数,它为整个图像返回一对 { (R G B) -> counter } 的散列,我只需要遍历该散列,只寻找一个颜色条目。
更新:
对于这篇文章的未来读者:我实现了一个逐像素读取图像的解决方案(正如@npinti 在他的链接上建议的那样),它似乎对我来说足够快(你应该花时间实现它,不会带你10多分钟)。看来逐像素方式的 Python 实现真的很糟糕(效率低且速度慢)。
【问题讨论】:
-
您希望如何实现 Python“getcolors”?
-
你认为 Python 中的库是如何工作的? 高效和好用不是一回事,这样的函数你可以自己写,如果你用Scala这样高级语言的话,就需要3代码行。
-
@TomaszNurkiewicz 我从来没有说过易于使用,我知道它们不是一回事。我只是想问你是否知道任何从图像中一次提取此类信息的函数库。
-
@ThorbjørnRavnAndersen 它可以实现寻找每一个像素 oooor 也许(我正在寻找)有人花时间解析图像上的某种原始字节或数据来这样做。
-
@josej30,据我所知,不存在这样的功能。此外,您可能需要考虑到,对于 JPEG 图像,由于压缩伪影,可能会出现多个相同颜色的色调。