【问题标题】:Best color space for finding similar colors寻找相似颜色的最佳色彩空间
【发布时间】:2013-02-21 09:08:50
【问题描述】:

如果我想找到所有颜色相似的像素,我应该使用什么颜色空间?我尝试使用 GrayScale 并在图像中我想找到与之连接的相似像素的点运行 DFS,但似乎这不是正确的方法。我应该使用哪个颜色空间来帮助我找到从图像中的某个点开始连接的 a 中相似颜色的像素。最初我有 RGB 图像。

【问题讨论】:

  • 您可能想要使用Delta E 计算,这几乎总是在 Lab* 颜色空间中完成。

标签: c++ image colors rgb grayscale


【解决方案1】:

这取决于“相似”对您意味着什么。与计算机相似的颜色对人类的感知可能会非常不同。

OTOH,HSV 模型非常适合,因为它对于非机器人来说非常直观。

【讨论】:

  • 完全正确;您需要先定义“相似”的含义,然后找到正确的颜色模型。
【解决方案2】:

我曾经使用Lab 色彩空间和计算color difference 得到了很好的结果(CIE76 对我来说已经足够好了)。

来自the Wikipedia link

与 RGB 和 CMYK 颜色模型不同,Lab 颜色旨在接近人类视觉。

所以如果你对相似的定义是:“它们看起来很相似”,我会选择 Lab。

【讨论】:

    【解决方案3】:

    Lab 是一个非常好的色彩空间,但我知道由于它的非线性和通用性,它使用起来有点困难。

    如果您对色调感兴趣并且正在处理想要轻松消除阴影和反射的图像,HSV 是一个非常好的色彩空间。

    如果您对近似人类视觉感知感兴趣,YCrCb 是一个非常好的(但不如 Lab 复杂)色彩空间。考虑到对人类来说,R、G 和 B 成分会产生更强和更弱的刺激。

    【讨论】:

      【解决方案4】:
      【解决方案5】:

      您可以使用色彩空间 HSV(色相、饱和度、值或亮度)。

      将图像转换为 HSV 后,您必须将通道饱和度和值设置为常用值,例如 100 或任何其他强调颜色的值。通过这种转换,色调将是唯一有一些变化的通道,这应该足以只显示几乎没有变化的相似颜色。

      如果您想减少间隔,您可以在通道色调的直方图上生成您想要的间隔,并计算与其他直方图的差异。该计算的结果将是颜色之间的距离。

      【讨论】:

        猜你喜欢
        • 2011-12-12
        • 1970-01-01
        • 1970-01-01
        • 2012-07-22
        • 2011-05-09
        • 1970-01-01
        • 1970-01-01
        • 2010-11-13
        相关资源
        最近更新 更多