一种新的颜色相似度定义及其计算方法(作者郑斯彬)

以下是最初理论,最新的算法实现请看此篇文章: https://blog.csdn.net/longkey_zsb/article/details/89211622

 

 

 

 优化方案三的相似度结果:
   色调差异=SX1-SX2                                              //色调值可以从公式计算出来
   if 色调差异<42  Then 
       方案三结果= (SX1-SX2)*Max(SN1,SN2)/255      //相同色调比较,毕竟浓度差异大时,公式结果直接会判断采用方案二的结果
   else 
     if (SN1,SN2)/辨识力)>1 then        //色彩浓度足够识别
          方案三结果=255                 
     else
        方案三结果=(Max(SN1,SN2)/辨识力)*255       //不相同色调比较,只看色彩浓度和辨识力
  end if

Set Color1  = (New rgbClass)(0,255,0)    ' T=Timer :Dim Color:Color=RGB(22,100,200)   
Set Color2  = (New rgbClass)(0,28,0)  
   WScript.Echo"Color1:"&Color1.GetColorMsg()&"("&Color1.R&","&Color1.G&","&Color1.B&") Color2:"&Color2.GetColorMsg()&"("&Color2.R&","&Color2.G&","&Color2.B&")"
   WScript.Echo  "浓度"& Color1.SN &"--"& Color2.SN &"       浓度差="&Abs(Color1.SN-Color2.SN)
   WScript.Echo  "亮度"& Color1.XLD &"--"& Color2.XLD &"   亮度差="&Abs(Color1.xld-Color2.xld)
   WScript.Echo  "色调"& Color1.SX &"--"& Color2.SX &"      色调="&Abs(Color1.sx-Color2.sx)  
    [亮度差]=Abs(Color1.xld-Color2.xld)
    [浓度差]=Abs(Color1.SN-Color2.SN)
    [色调距离]=Abs(Color1.sx-Color2.sx)
    [辨识力]=25
    If [色调距离]<42.5Then                               '同色调
       [色调差]=[色调距离]*Max(Color1.SN,Color2.SN)/255   
       WScript.Echo  "同色结果"&[色调差]
    Else '色调相差比较大
        If Max(Color1.SN,Color2.SN)/[辨识力]>1Then '色彩浓度比较大时 
           [色调差]=255
            WScript.Echo  "大距离色调结果1:"&[色调差]
        Else        
          [色调差]=Max(Color1.SN,Color2.SN)/[辨识力] * 255
           WScript.Echo  "大距离色调结果2:"&[色调差]
        EndIf
    EndIf
 [相似度]= Max( Max([亮度差],[浓度差]) , [色调差] )
  WScript.Echo  "最终相似度结果="&[相似度]

测试例子( 下图从操作系统自带画图软件截取,亮度和色调计算方式与本文不同)

 

 

程序输出结果

Color1:红-红(255,128,128) Color2:红-紫(255,128,158)
浓度:127--127          浓度差=0
亮度:191.5--191.5   亮度差=0
色调 :0--20               色调距离=20
同色结果:9.96078431372549
最终相似结果=9.96078431372549

计算方法还有点问题,过几天再修正了。
最新的算法实现请看此篇文章: https://blog.csdn.net/longkey_zsb/article/details/89211622

搜索

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值