准备

  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 

图像识别:微信跳一跳机器人相关推荐

  1. 微信跳一跳辅助程序开发,基于C++与opencv图像识别

    趁着期末这段时间,课程不多,在学习opencv,闲来无事,看到网上有大神用python实现了Wechat的跳一跳的辅助外挂,看了大概原理,似乎跟我最近学的opencv好像很沾边,但是鄙人实在不懂Pyt ...

  2. python 遍历usb设备_python程序员教你写脚本玩微信跳一跳,只要有耐心,你就是王者!...

    温馨提示:微信已经开始检测分数异常高的情况了,请大家不要跑太高哦 游戏模式 这是一个 2.5D 插画风格的益智游戏,玩家可以通过按压屏幕时间的长短来控制这个「小人」跳跃的距离.可能刚开始上手的时候,因 ...

  3. python辅助脚本教程_微信跳一跳python辅助脚本实例分享

    本文主要为大家整理了关于微信跳一跳的辅助脚本内容,这次我们给大家整理的是关于python的脚本内容,一起来学习下. 这段时间微信跳一跳这个游戏非常火爆,但是上分又非常的难,对于程序员来说第一个念头就是 ...

  4. 跳一跳python_微信跳一跳python怎么刷分?跳一跳python怎么使用?

    最近,微信跳一跳小游戏可以说是火爆了微信好友圈,网上流传了Github大神分享的一个针对该游戏的开源项目,也就是一个Python脚本程序可以刷很高的分,下面就为大家带来跳一跳python使用教程. 微 ...

  5. 微信“跳一跳”外挂制作历程

    微信"跳一跳"外挂制作历程 最近微信出了个"跳一跳"小游戏还挺火的,但是我这种手残人士,小手一滑,棋子就不知道飞哪儿去了.那我气啊,排行榜得拉到底才能看到我的名 ...

  6. python脚本自动消除安卓版_微信跳一跳脚本重出江湖,python实现安卓iOS自动版与手动版!...

    前面一段时间在GitHub上看到有人利用Python玩一款名为"跳一跳"的微信小程序,于是打算自己也来试一试,毕竟这款小游戏最近吸引了众多人的目光. 演示工具 电脑系统:Win10 ...

  7. Python来帮你玩微信跳一跳

    > 2017 年 12 月 28 日下午,微信发布了 6.6.1 版本,加入了「小游戏」功能,并提供了官方 DEMO「跳一跳」. >自己也是上瘾,玩了一百多局,也只有得到189分,后来看到 ...

  8. 跳一跳python刷分_微信跳一跳python怎么刷分 python脚本刷分技巧

    随着微信跳一跳流行,很多小伙伴都想要得到高分,今天小编为大家带来的是通过python脚本来实现刷分,比较适合一些更专业人员来进行刷分.6JE亚风软件站_提供免费绿色软件下载_手机电脑软件下载 微信跳一 ...

  9. python微信使用教程全图_微信跳一跳python怎么刷分_微信跳一跳python使用教程_飞翔教程...

    最近,跳一跳,可以说是火爆了微信好友圈,Github大神wangshub分享了一个针对该游戏的开源项目,也就是一个Python脚本程序可以刷很高的分,下面飞翔铭月为大家带来跳一跳python使用教程. ...

最新文章

  1. Java axis 配置host_Java AxisProperties类代码示例
  2. 独家 | 如何用简单的Python为数据科学家编写Web应用程序?(附代码链接)
  3. 千亿级市场赛道,阿里云视频云拿下 “三连冠”
  4. 狂神说spring笔记
  5. mysql 加减乘除取小数点_mysql加减乘除
  6. 《Windows高级调试》译者线上聊天活动获奖网友名单
  7. BiLSTM+CRF命名实体识别:达观杯败走记(下篇)
  8. linux内核源码目录结构
  9. 演化算法与适应度地形分析——再度思考
  10. 新MacBookAir (M1 2020)修改开机启登录密码
  11. 【JZOJ 4816】label
  12. 谷歌浏览器好用的复制粘贴插件_Chrome粘贴插件:将其粘贴
  13. 【CSS3】渐变背景
  14. 矩阵的Kronecker积的相关结论
  15. Zabbix网站pv_uv_ip的监控
  16. noip模拟赛 斐波那契
  17. 因微信网页授权调整解决方案
  18. 2016暑假集训小结
  19. CSS 实现倒三角形
  20. ubuntu编辑只读文件

热门文章

  1. php的几种运行模式CLI、CGI、FastCGI、mod_php
  2. ubuntu下搭建java web开发环境的详细步骤
  3. OpenStack开启亚洲之旅
  4. c++ memcpy与strcpy的比较
  5. jenkins构建触发器定时任务
  6. iNeuOS工业互联网操作系统,智慧用电测控应用案例
  7. 基于事件驱动架构构建微服务第8部分:在应用程序上实现事件溯源
  8. .NET 6 预览版 7 Released
  9. 前端老弟第一次写后端,崩了!
  10. 在.NET Core中使用Channel(一)