2009-01-29 54 views
22

有没有一种方法可以比较两种颜色彼此的接近程度?如果说他们俩都是蓝色的。
目前,我们比较他们的方式是手动将每种可能的颜色分配给一个颜色族(红色,绿色,蓝色......)。然后只是比较字符串:)
但肯定可以将这个手动任务分配给一个整洁的小算法。有没有简单的方法来比较两种颜色彼此间的接近程度

+1

我们谁是色盲,可能不同意什么颜色接近或不同... – 2011-09-04 13:18:03

回答

9

Delta-e,是表示两种颜色之间的感知“距离”的单个数字。数字越小,颜色越接近人眼。

有几种不同的计算方法...... CIE76(又名CIE 1976或dE76)是最受欢迎的。

每个人去了解不同的方式事情,但在大多数情况下,他们都需要你转换到一个更好的(用于比较)颜色模型比RGB。

对于CIE76,您基本上只是将您的颜色转换为LAB色彩空间,然后计算它们之间的三维距离。

维基百科有所有的公式:http://en.wikipedia.org/wiki/Color_difference

您可以在线色彩计算器检查您的工作:

22

您可能想要将颜色转换为HSL模型(色调,饱和度,亮度),然后按HSL顺序比较阈值内的值。如果色调在被认为“接近”的容差范围内,则检查饱和度的“接近度”,然后检查亮度。

+1

我认为这是比大卫更好的答案,罪恶不知道其他方面我会猜测与OP会发现基于HSL的比较将比基于RGB的比较更有用。 – 2009-01-29 16:05:24

+0

呃...操作,不与操作.... – 2009-01-29 16:05:55

9

我不确定任何算法,您可能需要考虑将RGB(红色,绿色,蓝色)值转换为HSB(色调,饱和度,亮度)。

色调本质上是“色彩”,所以你可以简单地比较色调值有多接近。

参见http://en.wikipedia.org/wiki/HSV_color_space

相关问题