因为我读了一篇文章HSL color scheme对于人眼配色方案非常准确我非常确定 HSL比较是检查两种颜色是否是最好的方法类似。
从此开始:
我有两种HSL颜色,如......
一种参考颜色:296° 100% 62%
(如[296, 100, 62]
)
另一种颜色:290° 100% 40%
(作为[290, 100, 40]
)
...我想计算一个象征其相似性的百分比。
所以这两种颜色([296, 100, 62]
和[290, 100, 40]
)看起来非常相似[296, 100, 62]
& [196, 30, 32]
没有。
如何计算欧几里德距离以获得差异值?
var color1 = [296, 100, 62]
var hue1 = color1[0], // hue (values: 0-360)
sat1 = color1[1], // saturation (values: 0-100)
lig1 = color1[2] // light (values: 0-100)
var color2 = [290, 100, 40]
var hue2 = color2[0], // hue (values: 0-360)
sat2 = color2[1], // saturation (values: 0-100)
lig2 = color2[2] // light (values: 0-100)
?? How to calculate there difference?
注意:您可以在这里查看euclidean distance
非常感谢任何帮助!
答案 0 :(得分:0)
气缸中的欧几里德距离......实际上是不可能的。
您应该在维基百科中查看https://en.wikipedia.org/wiki/Color_difference。您将看到欧几里德距离可以用RGB完成(三元组的每个值都可以变为无穷大)。但这种距离并不那么精确。
在上面的页面中,您将看到在1994年和2000年,CIE改进了以类欧几里德方式计算色差的方法,但使用了LCh色彩模型,这与HSL(色度与饱和度)没有太大差别。 2000版有一些修正因素。
在任何情况下,只有当dE小于6时,色差才有效。超过此限制,您无法比较dE。所以可以说颜色与其他颜色相似(或不相似),但如果dE很大,则无法比较非常不同的颜色(与参考颜色相比)。