以下是最初理论,最新的算法实现请看此篇文章: https://blog.csdn.net/longkey_zsb/article/details/89211622
优化方案三的相似度结果:
色调差异=SX1-SX2 //色调值可以从公式计算出来
if 色调差异 方案三结果= (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.5?Then???????????????????????????????‘同色调
???????[色调差]=[色调距离]*Max(Color1.SN,Color2.SN)/255???
???????WScript.Echo??“同色结果”&[色调差]
????Else ‘色调相差比较大
????????If?Max(Color1.SN,Color2.SN)/[辨识力]>1?Then ‘色彩浓度比较大时
???????????[色调差]=255
????????????WScript.Echo??“大距离色调结果1:”&[色调差]
????????Else????????
??????????[色调差]=Max(Color1.SN,Color2.SN)/[辨识力] * 255
???????????WScript.Echo??“大距离色调结果2:”&[色调差]
????????End?If?
????End?If?
?[相似度]=?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
搜索
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!