|
最近在学习图色,使用大漠进行找图,发现由于显卡,或者使用显卡欺骗器等因素导致的连透明图都无法识别。
折腾了很久,最后基于上次发的同大小图片,找不同的思路,想到一个方向,不知道可不可行
思路:
截取数据:使用dm.GetScreenDataBmp函数获取绑定窗口范围(x1,y1,x2,y2)图片图像字节集
省略大部分,只取一小部分作比较
PC机A 截取数据 {54,64,68,255,54,64,68,255,54,64,68,255}
PC机B 截取数据 {54,64,68,255,35,64,68,255,35,38,38,255}
相同数据:{54,64,68,255,0,64,68,255,0,38,0,255}
通过算法将两数据中大于 设定的通道偏差 的部分全部置0 (自动排除255)
再使用 该相同数据作为样本 去判断 PC机C的相同位置图像是否类似,
PC机C 截取数据 {54,62,65,255,54,64,68,255,54,63,69,255}
将相同数据中0的部分跳过判断,只判断非0部分,在非0部分中,如果相减小于偏差,则相似个数+1,最后计算相似个数/非0个数
局限就是必须相同图片大小,目前测试拿来找按钮或者图标什么的,都挺准确的
希望有大佬能点评下!!!
|
|