【问题标题】:Determine if an image is b/w or colored in Java在 Java 中确定图像是黑白的还是彩色的
【发布时间】: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 图像,由于压缩伪影,可能会出现多个相同颜色的色调。

标签: java image colors


【解决方案1】:

如果您使用的是BufferedImagethis 之前的 SO 帖子应该会有所帮助。

【讨论】:

  • +1,它确实回答了这个问题,也没有回答这个问题——没有,因为作者不想这样做,而是这样做了——因为这是唯一的方法;-)
  • 是的,正如@TomaszNurkiewicz 所说,我已经检查了那个帖子,这正是我不想这样做的方式,但我会更深入地研究它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-04-14
  • 2013-12-02
  • 1970-01-01
  • 1970-01-01
  • 2012-01-09
  • 2010-10-13
  • 2021-12-13
相关资源
最近更新 更多