【问题标题】:Similarity Between Colors颜色之间的相似性
【发布时间】:2010-11-13 17:38:28
【问题描述】:

我正在编写一个处理图像的程序,有时我需要对图像进行分色处理。这意味着我需要对颜色进行分类,但我无法决定如何判断一种颜色与另一种颜色的接近程度。

给定 RGB 中的一种颜色,我至少可以想到两种方法来查看它们的不同之处:

  1. |r1 - r2| + |g1 - g2| + |b1 - b2|
  2. sqrt((r1 - r2)^2 + (g1 - g2)^2 + (b1 - b2)^2)

如果我进入 HSV,我可以考虑其他方法。

所以我问,忽略速度,判断两种颜色有多相似的最佳方法是什么?对人眼最准确的最佳含义。

【问题讨论】:

  • 如果你忽略了速度,你问的是什么标准,哪个是最好的?
  • 我的意思是最准确的人眼,但很好的捕捉,编辑。
  • @ReaperUnreal:其实posterize也意味着量化。
  • 在 HSV 中工作。到目前为止,色调对视觉来说是最重要的,S/V 差异只有一半左右

标签: math image-processing colors


【解决方案1】:

好吧,如果速度不是问题,最准确的方法是获取一些样本图像并使用各种距离截止值对它们应用滤镜(距离由 Color_difference 页面上的方程式之一确定asstander 链接到,这意味着您必须使用其中列出的颜色空间之一进行计算,然后转换为 sRGB 或其他东西[这也意味着如果不是,您需要先将图像转换为其他颜色空间开始时]),然后让大量的人检查图像以查看对他们来说最好的图像,然后使用大多数人认为最好的图像的截止值。

基本上,这主要是主观问题;事实上,这还取决于您希望图像的风格化程度,您甚至可能想要添加某种控制,以便您可以即时更改截止距离。

如果速度确实成为一个问题和/或您想要更简单,那么只需使用您的第二选择进行距离计算(这就是 CIE76 方程;只需确保使用Lab* 颜色空间),截止值约为 2 或 2.3。

【讨论】:

    【解决方案2】:

    您所说的“将图像分色”是什么意思?

    如果您尝试将颜色聚集到 bin 中,您应该查看 cluster analysis

    【讨论】:

    • 是的,但我需要能够分辨出不同的颜色如何能够将它们聚集在一起。
    【解决方案3】:

    如果您要迁移到 HSV(或类似空间),请发表评论:

    • H 上的差异:0° 和 359° 之间的差异在数值上很大,但在感知上可以忽略不计。

    • 如果 V 或 S 小,H 差 - 小。

    • 对于计算机视觉应用程序,更重要的不是感知差异(主要由油漆制造商使用),而是这些颜色是否属于同一对象/段。这意味着我们可能会部分忽略 V,它可能会因光照条件而改变。

    【讨论】:

      猜你喜欢
      • 2015-10-30
      • 1970-01-01
      • 1970-01-01
      • 2011-07-20
      • 1970-01-01
      • 2013-02-21
      • 2016-12-08
      • 1970-01-01
      相关资源
      最近更新 更多