我在[0,1]中有一些RGB颜色,并想找到一种方法来评估它们的相似度,就像人类所感知到的那样。

我有两个想法,但是我敢肯定有还有其他选择,但是不确定哪个是最好的,或者也许没有最好的选择,而只有权衡取舍。

我的第一个想法是将RGB颜色视为XYZ点并计算它们的距离。

我的另一个想法是将RGB值视为直方图,并使用点积获得它们之间的相似性值,其中较大的值更好。

我知道但是,并不是所有的颜色通道都具有相同的感知亮度,所以也许在两种情况下我都应该对颜色通道进行加权?

我还认为我可能需要对sRGB进行校正颜色值(例如每个颜色通道的sqrt)。

我也知道存在其他颜色空间,所以也许其中一种颜色空间会更好地提供相似性值。

对此的另一个挑战可能是不同的显示器将以不同的方式显示相同的颜色值。不确定在这种情况下是否有意义。

任何人都可以提供帮助/指导吗?

评论

你看过这个吗? RGB不是用于进行与人类感知有关的比较的绝佳色彩空间。

好信息,谢谢!我当时在看cielab,但是那篇文章说那不是最好的。不幸的是,我正在处理RGB源数据,因此必须弄清楚如何从RGB转换为更好的数据,但是挑战似乎是RGB取决于设备,而cielab则不然。幸运的是,如果设备独立性在RGB源数据中实际上不可行,那么较小的近似值足以满足我的需求。

查阅Bruce Lindbloom的网站,尤其是各种DeltaE指标:brucelindbloom.com

有一个用于颜色科学的完整Python软件包,其中包括一些转换:colour-science.org。

#1 楼


我在[0,1]中有一些RGB颜色,并想找到一种方法来评估它们的相似度,就像人类所理解的那样。

这是一个巨大的课题,并且在颜色外观模型的旗帜下可以轻松找到。为什么不严格地说是一种更简单的形成是由于颜色的心理物理性质,因为该颜色不存在于人类以外。

我的第一个想法是将RGB颜色视为XYZ点并计算
它们的距离。
我的另一个想法是将RGB值视为直方图,并使用
点积获得它们之间的相似性值,其中较大的
值更好。
但是,我知道并不是所有的颜色通道都具有相同的亮度
,所以也许我应该对两种颜色的通道进行加权?


>最好的建议是,就像密码学一样,不要自己动手;您可能会遇到一个次优系统,在最佳情况下,该系统会遇到该领域其他研究人员已经遇到的难题。如果您基于现有模型和研究进行工作,则可能会发现它更符合您的需求[1]。
可以指出CAM的历史发展,但在这里建议您进行研究比较容易IPT颜色编码模型及其圆柱等效模型,用于将色彩和色调建模为一个角度。 IPT模型的演进克服了早期Lab模型的大部分问题,并简化了CIECAM02涉及的某些工作。

对此的另一个挑战可能是不同的显示器将显示
相同的颜色值不同。不确定在这种情况下是否有意义。

IPT以及与此相关的每个RGB颜色空间都固定在1931年CIE研究中。因此,这类问题可以在较低的层次上得到解决。
[1]扩展的答案是由于沃尔夫先生在下面的评论,试图解释为什么推出自己的解决方案可能不是最优方法。

评论


$ \ begingroup $
劝阻人们不要尝试图形,并使其与运输的手工加密算法相提并论是荒谬的。
$ \ endgroup $
–艾伦·沃尔夫(Alan Wolfe)
17年1月15日在19:34

$ \ begingroup $
@AlanWolfe鉴于已经有许多非常出色的博士类型已经花费了无数时间和精力来解决原始问题中的问题,我发现您的背景很荒谬。不要劝阻他们装满靴子并尝试重新发明轮子。
$ \ endgroup $
– Troy_s
17年1月15日在20:51



$ \ begingroup $
您应该听到活跃的图形研究人员推荐的简单技巧。像Peter Shirley所说的“点产品RGB,它的确确实表现出色”。
$ \ endgroup $
–艾伦·沃尔夫(Alan Wolfe)
17年1月15日在20:56



$ \ begingroup $
我继续前进,但是wave函数折叠的应用可用于过程图像和内容的创建。它部分地通过精确匹配像素来工作,因此最适合像素画。我一直在看它能够进行更柔和的匹配,以用于更逼真的图像,或用于不太严格的程序内容规则。查看此链接了解基本信息:github.com/mxgmn/WaveFunctionCollapse
$ \ endgroup $
–艾伦·沃尔夫(Alan Wolfe)
17年1月15日在23:04

$ \ begingroup $
这不是我的工作,但我正在尝试扩展它。我完全同意,这很酷!没有话题,但是这是我无关的工作,呵呵。 blog.demofox.org/2016/02/22/…
$ \ endgroup $
–艾伦·沃尔夫(Alan Wolfe)
17年1月15日在23:26

#2 楼

如果可以接受复杂指标,我建议您看一下这里介绍的基于感知的方法。该度量标准旨在拾取两个图像的感知差异。有两个主要测试:基于亮度和基于颜色。首先,通过基于对取决于图像空间频率的对比度变化的敏感性来估计不均匀的阈值因子,可以回答亮度变化有多重要的问题。第二个是基于CIE LAB颜色空间中的欧几里得距离,但略有修改,以使亮度在介观和暗视范围内时色差不太重要。与该指标有关的论文列表可以在这里找到。

评论


$ \ begingroup $
欢迎使用Computer Graphics SE!通常,强烈建议不要在SE上仅使用链接的答案,因为如果这些链接断开,它们可能会变得毫无用处。请提供其内容的简短摘要,以便人们仍然可以弄清楚您的实际建议,而不必依赖链接。
$ \ endgroup $
–马丁·恩德(Martin Ender)
16-11-28在13:15