【问题标题】:Finding images with pure colours寻找具有纯色的图像
【发布时间】:2011-03-07 14:43:47
【问题描述】:

我已经阅读了许多有关查找图像调色板的问题,但我的问题略有不同。我正在寻找由纯色组成的图像:开阔的天空、彩色照片背景、红砖墙等。

到目前为止,我已使用 App Engine Image.histogram() 函数生成直方图,过滤掉低于某个出现阈值的值,并将剩余的值平均下来。这似乎仍然存在于许多无关的照片中,在其他照片的混合袋中存在纯色斑点。

任何想法都非常感谢!

【问题讨论】:

标签: python image image-processing colors


【解决方案1】:

这样做怎么样?

  1. 使用一些快速模糊算法模糊图像。 (搜索堆栈模糊或框模糊)
  2. 计算 RGB 域中像素的标准偏差,每种颜色一次。
  3. 如果标准差超过某个阈值,则丢弃该图像。

【讨论】:

  • 你甚至可以尝试不模糊,只是一个标准偏差。
  • 我正在处理相当小的图像缩略图,所以我认为我确实可以放弃模糊。感谢您的建议!
  • 如果您正在寻找统一的颜色,这可能会起作用,其中一种情况是看到一半是红色的砖墙,另一半是黄色的砖墙。我相信 OP 正在寻找高饱和度。
【解决方案2】:

在我看来,直方图并不是完成这项任务的理想工具,因为它通常会分别查看每个颜色通道,这样您就会丢失这样的信息。因此,例如,如果您在 255 个红色、绿色和蓝色处获得峰值,这可能意味着图像中有很多红色 (0xFF0000)、绿色 (0x00FF00) 和蓝色 (0x0000FF),或者整个图像完全是白色的 ( 0xFFFFFF)。

我建议您在图像上使用颜色量化算法:http://en.wikipedia.org/wiki/Color_quantization 并让它返回 16 种最主要的颜色。然后可能将它们转换为 HSL 并检查具有高饱和度的值。

【讨论】:

  • 我认为高饱和度是这里所追求的(红砖墙)。而且我认为饱和度直方图在没有任何量化的情况下可以很好地工作。
  • 是的,你是对的 - 如果它只是关于饱和度并且你不关心特定的色调,那么饱和度直方图就可以正常工作(并且比量化计算更快)
猜你喜欢
  • 2016-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-10
  • 2020-10-23
  • 2012-08-27
  • 2015-06-09
  • 1970-01-01
相关资源
最近更新 更多