牙叔教程 简单易懂

使用场景

查找图片中的透明按钮的位置

效果展示

透明按钮是齿轮按钮和双人按钮,

黄色矩形是找出来的位置


autojs版本

8.8.20-0

原理

观察图片, 可以明显的看到, 按钮的亮度是比周围高得多, 所以我们可以查找图片中最亮的部分,

找到的大概率就是我们要找的东西;

解决问题, 实事求是, 不同的需求, 不同的场景, 采用合适的方法;

如果此处的按钮, 明度不明显的话, 我们就要观察图片, 找出我们可以利用的特征,

比如颜色, 面积, 形状

本教程使用的二值化, 来提取图片的轮廓,

有兴趣的话, 大家可以试试边缘检测, 提取出来的轮廓

边缘检测, 效果如下:

步骤

  1. 灰度
  2. 二值化
  3. 抠图
  4. 模板匹配

二值化的可视化

为了找到合适的二值化阈值, 需要经过多次测试, 所以专门写了一个滑块来调整阈值,

经过多次测试, 这几张图片的最佳阈值在175

提高找图效率

找图我测试, 效率挺高的,

我专门用console.time打印了代码的运行时长,

脚本总时长: 2555ms

保存文件两次, 时长分别为: 1131ms, 1104ms

也就是说, 如果不保存文件, 那么实际上代码执行时间: 320ms

另外, 如果找图的时候, 可以在不影响效果的情况下,

可以对图片进行缩放, 图片越小, 找图效率越高,

模板图片是越大越好, 这样滑窗的次数会少很多,

滑动窗口的次数少了, 找图速度就快了

模板图片的选择

一开始我是把齿轮的全部都截图了下来, 但是有的图片二值化后找不到齿轮,

然后我就截取了特征最明显的部分, 也就是相对的稳定的特征

原来的齿轮

特征稳定的齿轮局部

双人

代码讲解

1. 灰度二值化
runtime.images.initOpenCvIfNeeded();
importClass(org.opencv.core.Mat);
importClass(org.opencv.core.CvType);let imgPath = "./res/4.jpg";
imgPath = files.path(imgPath);
let img = images.read(imgPath);
let grayImg = images.grayscale(img);
let threshold = 175;
let thresholdImg = images.threshold(grayImg, threshold, 255);
2, 抠图

我直接用的ps抠图, 电脑自带的画图也一样可以,

只要保证抠图能用, 用什么工具都可以

3. 模板匹配
let matchingResult = images.matchTemplate(thresholdImg, templateGray, {threshold: matchTemplateThreshold,
});
4. 画矩形
canvas.drawRect(left, top, left + templateWidth, top + templateHeight, paint);

声明

部分内容来自网络
本教程仅用于学习, 禁止用于其他用途

bilibili

牙叔教程

微信公众号 牙叔教程

QQ群

747748653

完整源码

autojs查找透明图相关推荐

  1. autojs查找轮廓相似的图片

    牙叔教程 简单易懂 效果展示 查找右上角的叉叉按钮 缘起 很多人都在想怎么查找右上角这个叉叉, 然后有人问我, 我就研究一下 环境 手机: Mi 11 Pro Android版本: 11 Autojs ...

  2. autojs查找图片相似轮廓

    牙叔教程 简单易懂 使用场景 查找和已有图片相似的轮廓 效果展示 查找轮廓结果 原图 要查找的图片 autojs版本 8.8.16-0 autojs自带opencv3.4.3 脚本简介 主要使用mat ...

  3. Autojs 查找控件

    通过uiautomatorviewer 获取不到控件,可以通过查询所有控件找到自己需要的控件 第一步: 编写打印所有控件的递归方法 function queryList(json) {     for ...

  4. js微信抢红包脚本代码_使用AutoJs实现微信抢红包的代码

    需要准备的工具有:AutoJs,VSCode,一部手机 1. 首先使用AutoJs的布局设置查找红包的Id 可以看出来红包的id为"aag" 关于这个红包的id请以自己看到的为准 ...

  5. 移动端自动化任务-AutoJs Pro v9使用教程(一)

    官网 - Auto.js Pro Github代码示例 教程与博客 (autojs.org) 开源版文档 Pro 版 API 旧文档 Pro 版 v9新文档 一.前言 本教程是本人学习 Auto.js ...

  6. AutoJs 4.1.1 实战教程、Hamibot

    Auto.js 中文文档:https://pro.autojs.org/docs/ pro 版本支持 Node.js AutoJs Pro 7.0.4-1 实战教程---史上最全快手.抖音极速版 :h ...

  7. autojs 开发文档集合

    加入我们的QQ群553908361,和各作者同群交流 教程会优先发布于收费脚本v群. 该代码选自于aj开发者的文档,群里有人反馈开发文档打开慢.所以做了这个.方便搜索.如有侵权,请私信我进行删除 同时 ...

  8. autoJS pro-手机自动化脚本(douyin App模拟人工操作点赞、评论、收藏、转发)

    autoJS自动化 本人是一个web前端开发工程师,没想到可以用javascript来实现手机自动化,就有了之后的一系列文章,有好建议的同学欢迎评论区分享 ;-) 专栏地址:点击此处 文章目录 aut ...

  9. autojs连模拟器_autojs-vue

    AutoJs-Vue 特性 帮助开发者,快速生产友好的AutoJS程序 1. 全面支持(信息量很大): AutoJS:全接口支持 VUE:著名的渐进式JavaScript框架(傻瓜->高手), ...

最新文章

  1. 3d 行为树编辑器_cocos creator主程入门教程——有限状态机和行为树
  2. 毕马威:2018全球科技创新报告(附PDF下载)
  3. javaweb回顾第十二篇监听器
  4. Codeforces 1338 题解
  5. CodeForces - 706D Vasiliy's Multiset(字典树删除操作)
  6. Spring系列之Bean生命周期
  7. 三星Galaxy S21 Ultra相机再升级:1.08亿主摄+全新传感器夜景更强
  8. 2017年山东省两化融合深度行临沂站成功举办
  9. C++面向对象高级编程(上) 第三周笔记 GeekBand
  10. (MSSQL)sp_refreshview刷新视图失败及更新Table字段失败的问题解决
  11. kubernetes视频教程笔记 (4)-服务发现-service和pod组建
  12. Exadata:Smart Scan(二) FAST FULL SCAN
  13. 物流配送快递管理系统javabean
  14. 伍德里奇计量经济学第三章课后计算机作业,伍德里奇---计量经济学第7章部分计算机习题详解(STATA)...
  15. Java错误:找不到或无法加载主类
  16. Mysql日常操作记录
  17. cad lisp 二次抛物线_cad画二次抛物线
  18. 解空间树和搜索空间树
  19. 红绿灯记忆游戏-第13届蓝桥杯Scratch选拔赛真题精选
  20. 微积分小课堂:微分(从宏观变化了解微观趋势)

热门文章

  1. C/C++大文件/数据网络传输方法总结
  2. Spring事务管理 1
  3. 软考系统设计架构师经验与教训分享
  4. 【机器学习】机器学习的基本概念/术语2
  5. android读取运动数据权限_Android 10 中身体活动数据的隐私保护
  6. python中set option_pd.set_option
  7. mysql 截断多个表_如何从MySQL数据库中截断所有表?
  8. 初识设计模式 - 解释器模式
  9. 连锁不平衡:linkage disequilibrium
  10. 大数据信息资料采集:刘润公众号历史商业评论文章采集评论搜集