介绍目前手机按键(按键精灵安卓版/IOS)在编写脚本中,都需要用到哪些方式进行图色识别。
惯例先讲好处:
1、找色,如何计算颜色相似度,解决不同款式手机中画面颜色差异的问题。
2、找图,不太推荐,我们来聊聊多点找色,解决找图缓慢不效率,判断不准确的问题。
科普小技巧:关于多点取色如何获取点阵特征(注意手机按键使用,多点找色取点不宜超过10个),请查看以下帖子
按键精灵(PC版):插件教学之《Color插件的多点找色原理介绍》
从零学起之安卓篇《如何简单获取手机画面导入PC按键抓抓》
正题一:找色,先介绍下手机按键自带的找色命令。
固定坐标获取单点颜色
注解:获取坐标X与Y位置的颜色值信息,返回存入变量col中。
- Dim col,x,y
- col=GetPixelColor(x,y)
- TracePrint "颜色=" & col
区域范围查找单点颜色
注解:变量intX, intY需要预先定义。如果您还没有定义该变量,请取消下面一行的注释。
如果没有找到,intX和intY的值都会被置为-1,那么这里我们只需要判断一个值就可以确认是否找到。
- Dim intX, intY
- FindColor 0, 0, 720, 1280, "0000FF", 0, 0.9, intX, intY
- //如果没有找到,intX和intY的值都会被置为-1,那么这里我们只需要判断一个值就可以确认是否找到。
- If intX > 0 Then
- //如果intX大于0,说明找颜色,IntX与IntY分别表示这颜色的位置坐标
- TracePrint "找到颜色,坐标=" & intX & "," & intY
- Else
- //否则
- TracePrint "没找到颜色"
- End If
要点讲解:如何判断两个颜色相似度,以便解决单点颜色判断上的误差问题,以下提供两个写好的函数模块给大家学习。
函数名称:IsCol
函数功能:通过计算16进制颜色值中的RGB平均差值,得出两个颜色值相似度是否到达对应百分比
函数参数:
参数1:字符串型,16进制颜色值
参数2:字符串型,16进制颜色值
参数3:整数型,相似度
返回值:True 或 False(符合或不符合)
函数范例:
- '判断两个16进制值相似度是否到达对应百分比
- Function IsCol(col1,col2,n)
- IsCol=False
- Dim r1,g1,b1
- Dim r2,g2,b2
- ColorToRGB col1,r1,g1,b1
- ColorToRGB col2,r2,g2,b2
- If 1 - (Abs(r1 - r2) + Abs(g1 - g2) + Abs(b1 - b2)) / 255 / 3 >= n Then IsCol=True
- End Function
函数名称:CmpCol
函数功能:获取固定坐标点16进制颜色值,传入IsCol函数进行相似度对比,得出两个颜色值相似度是否到达对应百分比
函数参数:
参数1:整数型,屏幕X坐标
参数2:整数型,屏幕Y坐标
参数3:字符串型,16进制颜色值
返回值:True 或 False(符合或不符合)
- '固定坐标单点模糊找色
- Function CmpCol(x,y,col,n)
- CmpCol=False
- If x < 0 or y < 0 Then Exit Function
- Dim temp_col
- temp_col=GetPixelColor(x,y)
- If temp_col=col Then
- CmpCol=True

最低0.47元/天 解锁文章
3546

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



