透明图查找的两种方式
有两种方式可以查找透明图。一种是二值化查找,一种是梯度查找。
二值化查找的方式简单一些,但是遇到复杂的背景干扰,就找不到。
梯度查找,可以理解为特征查找。特点是无视色差、无视背景干扰、无视图片旋转角度,准确度极高。缺点是需要提前进行训练,操作上要多花一些时间。
下面举几个例子。要查找图中,右上角的放大镜图标/搜索图标。可以看到,不同视频的背景,干扰比较多。
测试机型
1、红米Note11 Pro,分辨率1080×2400
2、华为Mate20,分辨率2080×2244
开发工具
懒人精灵高级版1.4.9.4
二值化查找
经过跨分辨率测试,95%以上都可以找到搜索图标。
少量背景复杂有干扰的,无法匹配到。
local srcMat = imageHandler.captureScreenMat('png', 0, 0, 0, 0, 100)
local temp = imageHandler.readResMat('搜索图标.png')
local 反向二值化 = imageHandler.binaryzationMat(srcMat, 200, 255, 0)
local 小图二值化 = imageHandler.binaryzationMat(temp, 200, 255, 0)
local rects = imageHandler.findImgByPyramid(反向二值化, 小图二值化, 1080, 2400, 0.9, -1, 0, 0, 0, 10)
print(rects)
imageHandler.recycle(srcMat, 反向二值化, 小图二值化, temp)
梯度匹配查找
经过跨分辨率测试,匹配的结果非常准确,匹配度接近99.9999%,无视各种背景干扰
local srcMat = imageHandler.captureScreenMat('png', 0, 0, 0, 0, 100)
local names = imageHandler.loadYaml('', '图片.rc')
print('names:', names)
local rects2 = imageHandler.gradientShapeMatch(srcMat, names, 0, 0, 0, 0, 0.9, 5)
print(rects2)
imageHandler.recycle(srcMat)
在开发工具中测试,匹配结果如下。
可以看到,该方法使用了特征匹配,所以能无视分辨率,无视背景。
懒人精灵系列合集
1. 官方交流QQ群,添加多个不批。建议使用安卓手机或电脑申请。
飞云脚本圈: 586333520
Auto.js学习交流③群:286635606
Auto.js学习交流②群:712194666(满员)
IOS免越狱自动化测试群:691997586
2. 盗版,破解有损他人权益和违法作为,请各位会员支持正版。
3. 本站部分资源来源于用户上传和网络搜集,如有侵权请提供版权证明并联系站长删除。
4.如未特别申明,本站的技术性文章均为原创,未经授权,禁止转载/搬运等侵权行为。
5.全站所有付费服务均为虚拟商品,购买后自动发货。售出后概不接受任何理由的退、换。注册即为接受此条款。
6.如果站内内容侵犯了您的权益,请联系站长删除。
飞云脚本 » 【懒人精灵】全分辨率找图之透明图的跨分辨率查找
飞云脚本圈: 586333520
Auto.js学习交流③群:286635606
Auto.js学习交流②群:712194666(满员)
IOS免越狱自动化测试群:691997586
2. 盗版,破解有损他人权益和违法作为,请各位会员支持正版。
3. 本站部分资源来源于用户上传和网络搜集,如有侵权请提供版权证明并联系站长删除。
4.如未特别申明,本站的技术性文章均为原创,未经授权,禁止转载/搬运等侵权行为。
5.全站所有付费服务均为虚拟商品,购买后自动发货。售出后概不接受任何理由的退、换。注册即为接受此条款。
6.如果站内内容侵犯了您的权益,请联系站长删除。
飞云脚本 » 【懒人精灵】全分辨率找图之透明图的跨分辨率查找