list【】={color1, color2, color3,…,colorn}

给定一个颜色c,如何知道c和list中的哪个更接近呢?

其中c和list【】的值均为RBG表示。

一个很显然的答案是用公式(r1-r2)^2+(g1-g2)^2+(b1-b2)^2,来比较大小。

但事实说明,这个方法是有缺陷的。

似乎可行的方法是将RBG值转化为L*a*b值,然后再用距离公式。

http://en.wikipedia.org/wiki/Lab_color_space

如何转化呢?请看这个链接。

http://www.easyrgb.com/index.php?X=MATH

这里还有现成的java代码实现:http://imagej.nih.gov/ij/plugins/color-space-converter.html

Advertisements