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。

3.计算QColor1和QColor2颜色相似度的算法步骤如下
本文介绍了计算两个颜色相似度的算法,通过将RGB颜色转换为归一化的HSV颜色空间,然后计算三维空间坐标的距离来确定颜色的相似度。在Qt环境下提供了具体的实现代码,并给出了测试案例。
订阅专栏 解锁全文
4179

被折叠的 条评论
为什么被折叠?



