给定颜色,我如何找到最接近的颜色?

时间:2012-01-23 21:32:53

标签: colors

假设我有一个有效颜色值列表,如[0x67FF82,0x808080,0xffffff,...]并给出一个输入颜色,十六进制,我想找到输入颜色列表中哪种颜色输入颜色最接近。

我的想法是,我会找到红色,绿色和蓝色值差异的绝对值最小的颜色。这是对的吗?

1 个答案:

答案 0 :(得分:7)

听起来你正在寻找一种量化颜色之间“距离”的方法 - 在数学方面,他们称之为衡量标准。例如,很多人对Euclidean metric非常熟悉 - 它只是用尺子测量的两点之间的距离。在颜色的情况下,由于不同颜色的主观感知,事物更复杂。

有一个pretty mathy wikipedia article about color difference,其中包含指向不同实现的链接。

  

两种颜色之间的差异或距离是颜色科学中感兴趣的度量标准。它允许人们量化一个概念,否则这个概念会用形容词描述,这会损害任何工作颜色至关重要的人。通用定义在与设备无关的颜色空间中使用欧几里德距离。

特别是,Python Colormath是python中的一种实现,它在不同的颜色编码之间进行转换,并且似乎还具有计算两种颜色之间距离的功能。如果您恰好使用python进行编码,这听起来很有帮助,尽管我遗憾地对该工具没有任何个人经验。 MATLAB and Excel provided by the authors of CIE2000也有类似的资源,这是一种领先的色差公式。