颜色相似度判断全部代码(带说明)

CoordMode,Pixel,Screen ;为多个命令设置坐标模式, 相对于活动窗口还是屏幕.
CoordMode,Mouse,Screen ;为多个命令设置坐标模式, Screen是相对于屏幕
kz := 0 ;使用变量kz控制热键触发顺序
^!F1::  ; Control+Alt+f1 热键.
kz := kz + 1

MouseGetPos, MouseX1, MouseY1 ;获取鼠标光标的坐标并赋值给变量MouseX1, MouseY1
PixelGetColor color1, %MouseX1%, %MouseY1%, RGB ;获取坐标MouseX1, MouseY1鼠标光标的颜色赋值给变量color1
MsgBox , , , 鼠标指向位置的初始颜色是 %color1%  `n鼠标指向位置的初始坐标是 %MouseX1%. %MouseY1%, 2

Sleep 3000
return 

^!F2::  ; Control+Alt+f2 热键.
if(kz >= 1) ;变量c控制流程,上面Control+Alt+Z 热键触发后,这个鼠标左键热键才能触发
{
    MouseGetPos, MouseX2, MouseY2 ;获取鼠标光标的坐标并赋值给变量MouseX2, MouseY2
    PixelGetColor, color2, %MouseX2%, %MouseY2%, RGB ;获取坐标MouseX1, MouseY1鼠标光标的颜色赋值给变量color1
    ysbj(Color1 , Color2)
    if  (ysbj(Color1 , Color2) = 1)
    MsgBox 鼠标指向位置的初始颜色是 %color2%  鼠标指向位置的初始坐标是 %MouseX2%, %MouseY2%`n颜色相似
    Else
    MsgBox 鼠标指向位置的初始颜色是 %color2%  鼠标指向位置的初始坐标是 %MouseX2%, %MouseY2%`n颜色不相似
    
}

ysbj(Color1 , Color2) ;定义颜色比较函数ysbj(),比较参数Color1 , Color2两个颜色的相似度
{
    ;在 RGB 颜色模型中 ,R,G,B 三个分量相当于三位空间的 x 轴 ,y 轴和 z 轴 
    ;这样一来 , 判断两象素的相似度即计算两个像素在 RGB 空间的距离 ( 色差 )
    a := color1 ;将颜色color1赋值给变量a
    ar := colourRGB(a).R ;调用函数获取a的R值并赋值给变量ar
    ag := colourRGB(a).G ;调用函数获取a的G值并赋值给变量ag
    ab := colourRGB(a).B ;调用函数获取a的B值并赋值给变量ab

    b := color2 ;将颜色color2赋值给变量b
    br := colourRGB(b).R ;调用函数获取b的R值并赋值给变量br
    bg := colourRGB(b).G ;调用函数获取b的G值并赋值给变量bg
    bb := colourRGB(b).B ;调用函数获取b的B值并赋值给变量bb

    fz := 10000 ;定义变量fz表示颜色相近的阀值,小于阀值的为相似
    ;比较两个颜色各色值的差的平方和是否小于阀值,小于则相似
    if( ((ar-br)*(ar-br)+(ag-bg)*(ag-bg)+(ab-bb)*(ab-bb)) < fz )
    {
        Return 1 ;返回值1
    }
    
}
return 
;如何获得颜色color的红、绿、蓝数值
;a := 0xFFFF00 ;定义变量a并给它赋值一个颜色
;ar := colourRGB(a).R ;调用函数获取a的R值并赋值给变量ar
;ag := colourRGB(a).G ;调用函数获取a的G值并赋值给变量ag
;ab := colourRGB(a).B ;调用函数获取a的B值并赋值给变量ab

colourRGB(colour) ;函数获取颜色R,G,B,的各个值
{
    R := (colour & 0xFF0000) >> 16
    G := (colour & 0x00FF00) >> 8
    B := (colour & 0x0000FF) >> 0
    return { R: R, G: G, B: B }
}
return 

给TA捐赠
共{{data.count}}人
人已捐赠
其他应用教程

[分享]visual studio 制作Mcode机器码

2021-12-21 16:23:19

应用

简单的游戏连发宏按键

2022-1-3 13:55:24

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
有新私信 私信列表
搜索