计算两个颜色相似度

本文介绍了计算两个颜色相似度的算法,通过将RGB颜色转换为归一化的HSV颜色空间,然后计算三维空间坐标的距离来确定颜色的相似度。在Qt环境下提供了具体的实现代码,并给出了测试案例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mark-puls

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值