有没有办法比较两种颜色彼此的接近程度?如果说他们两个都是蓝色的.
目前我们比较它们的方法是手动将每种可能的颜色分配给颜色系列(红色,绿色,蓝色......).然后只是比较字符串:)
但是肯定可以将手动任务分配给一个整洁的小算法.
您可能希望将颜色转换为HSL模型(色调,饱和度,亮度),然后按照HSL的顺序比较阈值内的值.如果色调在被视为"接近"的容差范围内,则检查饱和度的"接近度",然后检查亮度.
Delta-e是表示两种颜色之间感知的"距离"的单个数字.数字越低,人眼的颜色越相似.
有几种不同的计算方法...... CIE76(又名CIE 1976或dE76)是最受欢迎的.
CIE76
CMC l:c
dE94
DE2000
每一个都以不同的方式处理事物,但是大多数情况下它们都要求您转换为比RGB更好的(用于比较)颜色模型.
对于CIE76,您基本上只需将颜色转换为LAB颜色空间,然后计算它们之间的3维距离.
维基百科有所有公式:http://en.wikipedia.org/wiki/Color_difference
您可以使用在线颜色计算器检查您的工作:
CIE76
CMC l:c
我不确定任何算法,您可能要考虑将RGB(红色,绿色,蓝色)值转换为HSB(色调,饱和度,亮度).
Hue本质上是"颜色",因此您可以简单地比较Hue值的接近程度.
请参见http://en.wikipedia.org/wiki/HSV_color_space