1.计算两个颜色相似度的公式如下:
  颜色QColor1(R1, G1, B1)转成h1,s1,v1
  颜色QColor2(R2, G2, B2)转成h2,s2,v2

  detah=h1-h2
  detas=s1-s2
  detav=v1-v2

  len = qsrt(detah * detah + detas * detas + detav * detav)
  if (len > 1) len = 1.0

  similarity = (1.0 - len) / 1.0

注:以上公式的h,s,v已经归一化

2.颜色相似度原理。
  把RGB颜色空间转为归一化的hsv颜色空间, 转化hsv颜色空间的三维坐标点,
  计算两个颜色的三维空间坐标点的距离,当两个颜色越相近,则两个颜色的
  坐标距离越接近于0, 反之,当两个颜色相差越远,则坐标距离越接近于1。

注:此处两个颜色相差最大的距离默认为1,理论上最大的距离是会超过1的, 从
   hsv颜色空间模型可以看出, 此算法默认大于1的颜色取为1。

计算两个颜色相似度-LMLPHP

3.计算QColor1和QColor2颜色相似度的算法步骤如下:
  3.1、把QColor1转为归一化的h1、s1、v1,把QColor2转为归一化的h2、s2、v2。
  3.2、h在hsv颜色空间中是角度, 把hsv转为三维空间坐标点(x, y, z)
       x1 = cos(h1) * s1
       y1 = sin(h1) * s1

12-08 09:36