图像识别:微信跳一跳机器人
准备
IDE:VisualStudio
Language:VB.NET/C#
GitHub:AutoJump.NET
本文将向你介绍一种通过图像识别实现“跳一跳”机器人的方法。
第一节 图像识别
文中提到的所有方法和步骤均仅涉及简单的向量计算。
需要哪些计算?
比较像素点的颜色
求向量集合的中心
计算颜色的相似度
一个RGB颜色可以看作一个三维向量
比较两个颜色的相似度可以计算它们的欧几里得距离
也可以直接比较它们的夹角:夹角越小,两个颜色越相似,反之亦然
求平面向量集合的中心位置
首先,将集合中所有的向量相加得到向量S
再将向量S除以集合元素的个数,结果即为它们的中心
图1-1 识别效果预览
第二节 识别落点
找出盒子落点的前提是发掘每个盒子都具有的共同特征。
盒子特征
目标落点有两种类型,菱形或圆形的盒子
只有部分盒子的顶面颜色是大面积的纯色
盒子下方的地面背景是纯色,但随着游戏进行颜色会发生变化
顶点特征
顶点的上侧为背景色
顶点的左侧(可能不适用于圆形)、右侧(可能不适用于圆形)均为背景色
识别方法
从上向下逐行扫描像素找出盒子的顶点A
继续向下找出与A颜色相似的所有像素点集合C
求出C像素集合的中心点,即为落点
图2-1 盒子落点识别
第三节 识别角色
角色的颜色相对特殊,很容易从游戏图像中区分出来。
人物特征
角色呈国际象棋棋子状
角色整体颜色较为一致,部分区域有高光
顶点特征
角色的顶点颜色较深,易于区分
识别方法
从上向下逐行扫描像素找出角色的顶点A
继续向下找出与A颜色相似的所有像素点集合C
求出C像素集合的中心点,并向下偏移固定数值
中心点偏移后的像素D的位置即为角色的底部
图3-1 角色底部识别
第四节 识别干扰
通常,简单的方法只适应于绝大部分情况,特定情形时仍会出错。
哪些情况会导致识别错误
盒子顶部的颜色不一致时
角色顶部的位置高于目标盒子时
角色站立的盒子和目标盒子的顶部颜色一致时
其他干扰因素的解决方案
加分提示的动画:延时解决
击中中心的动画:延时解决
音乐盒的乐符动画:不要在音乐盒上停留ヾ(✿゚▽゚)ノ
图4-1 魔方(正确)
图4-2 商店(偏离中心)
图4-3 音乐盒 (偏离中心)
第五节 实测数值
程序的部分参数需要通过实际测试得出。
识别区域
仅屏幕中间的三分之一区域需要进行图像识别
触压时间
触压屏幕的毫秒数正好是角色与落点距离数值的两倍
例如,距离为500个像素点,那么就需要持续按下1000毫秒
图5-1 识别区域(阴影部分)
附录
运气好时,机器人可以自动玩到1000分:)
GitHub:AutoJump.NET
参考文章:.NET开发一个微信跳一跳辅助程序
参考书籍:《数学之美》[美] 吴军 著 人民邮电出版社
原文地址:https://www.cnblogs.com/experdot/p/8157666.html
.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com
图像识别:微信跳一跳机器人相关推荐
- 微信跳一跳辅助程序开发,基于C++与opencv图像识别
趁着期末这段时间,课程不多,在学习opencv,闲来无事,看到网上有大神用python实现了Wechat的跳一跳的辅助外挂,看了大概原理,似乎跟我最近学的opencv好像很沾边,但是鄙人实在不懂Pyt ...
- python 遍历usb设备_python程序员教你写脚本玩微信跳一跳,只要有耐心,你就是王者!...
温馨提示:微信已经开始检测分数异常高的情况了,请大家不要跑太高哦 游戏模式 这是一个 2.5D 插画风格的益智游戏,玩家可以通过按压屏幕时间的长短来控制这个「小人」跳跃的距离.可能刚开始上手的时候,因 ...
- python辅助脚本教程_微信跳一跳python辅助脚本实例分享
本文主要为大家整理了关于微信跳一跳的辅助脚本内容,这次我们给大家整理的是关于python的脚本内容,一起来学习下. 这段时间微信跳一跳这个游戏非常火爆,但是上分又非常的难,对于程序员来说第一个念头就是 ...
- 跳一跳python_微信跳一跳python怎么刷分?跳一跳python怎么使用?
最近,微信跳一跳小游戏可以说是火爆了微信好友圈,网上流传了Github大神分享的一个针对该游戏的开源项目,也就是一个Python脚本程序可以刷很高的分,下面就为大家带来跳一跳python使用教程. 微 ...
- 微信“跳一跳”外挂制作历程
微信"跳一跳"外挂制作历程 最近微信出了个"跳一跳"小游戏还挺火的,但是我这种手残人士,小手一滑,棋子就不知道飞哪儿去了.那我气啊,排行榜得拉到底才能看到我的名 ...
- python脚本自动消除安卓版_微信跳一跳脚本重出江湖,python实现安卓iOS自动版与手动版!...
前面一段时间在GitHub上看到有人利用Python玩一款名为"跳一跳"的微信小程序,于是打算自己也来试一试,毕竟这款小游戏最近吸引了众多人的目光. 演示工具 电脑系统:Win10 ...
- Python来帮你玩微信跳一跳
> 2017 年 12 月 28 日下午,微信发布了 6.6.1 版本,加入了「小游戏」功能,并提供了官方 DEMO「跳一跳」. >自己也是上瘾,玩了一百多局,也只有得到189分,后来看到 ...
- 跳一跳python刷分_微信跳一跳python怎么刷分 python脚本刷分技巧
随着微信跳一跳流行,很多小伙伴都想要得到高分,今天小编为大家带来的是通过python脚本来实现刷分,比较适合一些更专业人员来进行刷分.6JE亚风软件站_提供免费绿色软件下载_手机电脑软件下载 微信跳一 ...
- python微信使用教程全图_微信跳一跳python怎么刷分_微信跳一跳python使用教程_飞翔教程...
最近,跳一跳,可以说是火爆了微信好友圈,Github大神wangshub分享了一个针对该游戏的开源项目,也就是一个Python脚本程序可以刷很高的分,下面飞翔铭月为大家带来跳一跳python使用教程. ...
最新文章
- Java axis 配置host_Java AxisProperties类代码示例
- 独家 | 如何用简单的Python为数据科学家编写Web应用程序?(附代码链接)
- 千亿级市场赛道,阿里云视频云拿下 “三连冠”
- 狂神说spring笔记
- mysql 加减乘除取小数点_mysql加减乘除
- 《Windows高级调试》译者线上聊天活动获奖网友名单
- BiLSTM+CRF命名实体识别:达观杯败走记(下篇)
- linux内核源码目录结构
- 演化算法与适应度地形分析——再度思考
- 新MacBookAir (M1 2020)修改开机启登录密码
- 【JZOJ 4816】label
- 谷歌浏览器好用的复制粘贴插件_Chrome粘贴插件:将其粘贴
- 【CSS3】渐变背景
- 矩阵的Kronecker积的相关结论
- Zabbix网站pv_uv_ip的监控
- noip模拟赛 斐波那契
- 因微信网页授权调整解决方案
- 2016暑假集训小结
- CSS 实现倒三角形
- ubuntu编辑只读文件