按键精灵官方吧 关注:218贴子:647
  • 6回复贴,共1

Color插件的多点找色原理

只看楼主收藏回复

对比找图的优势:快捷,精确,无需作图。
原理介绍:区域多点找色,顾名思义,是通过多个点阵颜色匹配程度来识别。对比找图是把整块矩阵范围全部像素点进行匹配,点阵识别方式只需核对少数点阵特征信息即可。
例子讲解:
//下面这句在屏幕区域范围内按方式0,查找多点颜色,返回左上角第一点颜色位置坐标
Dim str, arr, x, y
str = Plugin.Color.FindMutiColorEx(0, 0, 1024, 768, "FFFFFF", "2|0|FFFFFF,-6|1|FFFFFF,-3|1|FFFFFF,-6|3|FFFFFF,-3|3|FFFFFF,0|3|FFFFFF,4|3|FFFFFF,-1|5|FFFFFF,3|5|FFFFFF,-3|6|FFFFFF,-6|7|FFFFFF,1|8|FFFFFF,4|8|FFFFFF,-5|10|FFFFFF,-3|10|FFFFFF,4|10|FFFFFF", 1, 0)
//以上命令返回值格式是 x|y ,没找到则返回 -1|-1 ,找到返回 100|200
//下面这句用于分割字符串,VBS命令教学之《Split函数命令与数组的简单描述》:http://bbs.anjian.com/thread-404239-1-1.html
TracePrint str
If str 以上的结构例子我想大家都懂。
下面主要讲解下多点特征是什么原理。
简单提取一段
"FFFFFF", "2|0|FFFFFF,-6|1|FFFFFF,-3|1|FFFFFF"
多点找色匹配的时候,会在范围内搜索第一个点的颜色"FFFFFF"白色,当找到一个符合的点,则以该点为起点,匹配周围其余的点位置与颜色是否一致来确认是否符合特征。
2|0|FFFFFF:就是以第一个点偏移x坐标+2,y坐标+0不变,判断是否为"FFFFFF"白色
-6|1|FFFFFF:就是以第一个点偏移x坐标-6,y坐标+1,判断是否为"FFFFFF"白色
-3|1|FFFFFF:就是以第一个点偏移x坐标-3,y坐标+1,判断是否为"FFFFFF"白色
全部点都匹配则说明找到,返回第一个点的坐标。


IP属地:福建1楼2021-12-27 16:03回复
    楼主在嘛


    来自Android客户端2楼2021-12-31 22:04
    收起回复
      学习


      来自Android客户端3楼2022-02-17 15:03
      回复
        请问多点找色和区域找色有什么区别?


        IP属地:广东4楼2025-01-24 02:41
        收起回复