今天偷懒,直接把在内部分享的PPT,拿出来分享。同时去掉了敏感信息。


主要分这3部分来讲。


右边就是UC小游戏的首页,可能有些朋友没有玩过,直接下载UC浏览器,在搜索UC小游戏就可以进入了,也可以通过其他各种隐藏的入口进入。不过很遗憾,目前只有Android 可以玩,iOS 端的小游戏已经下线了。

这个就是UC小游戏其中一款游戏: 翻翻乐。这次的分享,也是围绕这个游戏来得。

大家如果没有装UC小游戏,或者是iOS手机,可以直接用微信扫描这个小游戏码也可以体验。这个也是我模仿UC翻翻乐,借助于微信小游戏平台开发的一款游戏,建议大家在看这篇文章前,可以先行体验一番,更有助于对这篇文章的理解。
另外虽然这是一个简单的小游戏,但麻雀虽小,五脏俱全。后端的游戏服、匹配服、机器人都是完善的,可以跟真人匹配,也可以匹配到机器人。
后端采用的是阿里云服务器,最近阿里云也在打折: https://www.aliyun.com/1111/2019/home?userCode=ip5vy4ju ,最便宜可以花200+ 就拥有自己的服务器,还是3年的。对于我们学习来说,也是完全够用了。

讲完简介,接下来讲最重要的算法部分。

ROI: region of interest ,就是我们感兴趣的部分。在这个UC小游戏中,我们感兴趣的,就是可以点击的24个icon图片。

这次的算法,还是主要用到了OpenCV。

OpenCV支持非常多的平台、领域,这里就不详细介绍了,只做简单的介绍。

最简单的拿来做图片大小变换,在工作中,其实偶尔也会用得上的,可以很有效的帮助工作。

哈哈,也可以用来改图片背景,能剩下不少$呢~ 我在平时也用过几次这个功能,帮自己、帮别人PS 图片。

也可以用来处理视频,在我另一篇文章中有提到: https://blog.csdn.net/weixin_42527719/article/details/85694544

也可以用来做边缘检测,而我们这次的内容,就是需要用到边缘检测。

这个就是经过边缘检测的效果,基本过滤出了我们想要的部分(ROI)

边缘检测的原理: 第一幅图,很明显,从左到右的变化是非常平滑的,可以认为是图像内部是没有边缘的。取其中间横向的一排像素点的灰度值,画在坐标系上,也是一条缓慢下降的直线。 而第二幅图,从图中我们可以看到中间明显的分界线,同样取其中间横向的一排像素点的灰度值,画在坐标系上,我们可以看到中间明显的断层,而这个断层,就是图像内部的边缘。

我们再对上个PPT中的数据进行求导,可以看到第一幅图的像素点求导后,是一条直线,而第二幅图中求导后,在x=127的位置上,导数的值明显比其他位置的大,我们回想一下高中数学,导数绝对值越大,说明斜率越大,即代表这个位置发生了剧烈、断崖式的变化。
所以在边缘检测中,通过求导,如果导数大于某个阈值,我们就可以认为这里是边缘。

当然,OpenCV已经帮我们封装好了,一个函数搞定。100,200 两个参数,就是我们上边说道的阈值。通过调节,我们可以看到,PPT中两幅图的边缘是有点不一样的。在实际应用中,可能也需要我们通过调参来得到一个比较好的效果。

得到左图的边缘之后,我们还需要得到我们感兴趣的区域,24个icon坐标。

通过点击、截图,并取感兴趣的icon,我们得到的就是右图。相当于,我们已经知道答案了。

但对于计算机来说,我们还需要计算他们的相似度,才知道哪两个icon图是一样的。


通过3步骤,我们就可以计算24个icon中两两的相似度,得到相似情况。



这里我们采用minitouch、minicap来提升几年前传统的点击、截图方式。

最终,我们基本能在24s 完成比赛。 如果你体验了开头的小程序,可以在24s 完成游戏吗?

基于计算机视觉的UC小游戏外挂相关推荐

  1. 基于Unity3D的AR小游戏开发【100011412】

    本科毕业设计(论文) GRADUATION DESIGN(THESIS) 基于 Unity3D 的增强现实游戏程序 摘要 增强现实(AR)作为一项新兴技术近年来被越来越多的人群所获知,AR 也渐渐走进 ...

  2. 基于pygame的射击小游戏制作(一)让飞船动起来

    基于pygame的射击小游戏制作(一)让飞船动起来 一.文件结构 alien_invasion.py 是整个系统的主文件,用来创建游戏中的一系列对象,ai_settings存储设置.screen存储显 ...

  3. 基于 Blazor 开发五子棋小游戏

    今天是农历五月初五,端午节.在此,祝大家端午安康! 端午节是中华民族古老的传统节日之一.端午也称端五,端阳.此外,端午节还有许多别称,如:午日节.重五节.五月节.浴兰节.女儿节.天中节.地腊.诗人节. ...

  4. c语言五子棋学年论文,基于c语言五子棋小游戏生本科论文.doc

    基于c语言五子棋小游戏生本科论文 五子棋小游戏 需求分析 现在有越来越多的人使用电脑,而且五子棋的受众广泛但实体棋操作较为繁琐且平时较难实现,所以电脑版的五子棋游戏应运而生.大家对于这个小游戏的需求如 ...

  5. 基于控制台的五子棋小游戏(简易)

    基于控制台的五子棋小游戏(简易) 展示 源码: 使用: GoBang类: 展示 话不多说上代码 Don't talk much, say the code! 源码: 使用: new完直接运行 publ ...

  6. 基于Unity的2D小游戏 SpeedDown 开发笔记(学习bilibili@[M_Studio]的教学视频

    基于Unity的2D小游戏 SpeedDown 开发笔记(学习bilibili@M_Studio的教学视频) 主要内容:在Sunnyland游戏的设计基础上,新增了物理组件Joint系列.DrawGi ...

  7. 全志V853开发板移植基于 LVGL 的 2048 小游戏

    LVGL 开发实战 移植基于 LVGL 的 2048 小游戏 这一节将以一个已经编写好的 lvgl 小游戏 2048 描述如何将已经编写完成的 lvgl 程序移植到开发板上. 这里使用的 2048 小 ...

  8. **挖金子小游戏外挂开发教程**

    挖金子小游戏外挂开发教程 第一步:进入游戏窗口 第二步:打开Spy4win V2.0 分析得到数据如图: 第三步:打开CE

  9. 基于flask的五子棋小游戏

    基于flask的五子棋小游戏 前言 ​ 首先说明一下,本人方向是java后端,只因老师布置了一个作业,要用flask来做一个五子棋,没办法被逼上梁山,程序不太美观,但是应付作业还是够了的. ​ 废话不 ...

最新文章

  1. Microsoft Surface Toolkit Beta 版发布
  2. mac 苹果多版本jdk自由切换
  3. Python中sort与sorted函数
  4. Python编程专属骚技巧9
  5. StereoRectify()函数定义及用法畸变矫正与立体校正
  6. Graph(2014辽宁ACM省赛)
  7. python设置字体_Python实现文字特效的方法
  8. 服务器编译linux内核时间,Firefly-RK3399 Linux内核编译
  9. Oracle存储过程介绍
  10. mysql 从后往前截取指定个数字符串_「截取字符串」substring从指定字符串开始截取 - seo实验室...
  11. 内部排序算法(Golang版本)
  12. html5总结2000字,建筑识图实训总结2000字6篇范文
  13. 通达信版弘历软件指标_通达信仿弘历软件的六彩神龙指标免费源码公式_通达信指标公式_指标公式网...
  14. 图数据和知识图谱,数字化转型的新引擎星环科技星环科技
  15. 网页编程入门应该首先学些什么
  16. 快手挂小黄车和快手小店有什么区别?如何开通快手小店?
  17. 《Maven官方文档》Maven 开发
  18. mysqldump 使用总结
  19. java注解与APT技术
  20. 暑期強檔 飯店業者與樂團結盟系列優惠

热门文章

  1. 仿抖音截取音频时长的控件
  2. 阳振坤:当我们在谈论金融级分布式数据库的时候,其实是在说性能的代价
  3. java读取串口-mfz-rxtx-2.2-20081207-win-x86
  4. 同时申请发明专利和实用新型专利的好处
  5. 什么是图数据库neo4j是什么
  6. Linux系统可以远程开机,Linux操作系统下实现远程开机
  7. 永磁同步电机--结构
  8. win10内置计算机和天气闪退,win10系统天气应用出现闪退的解决方法
  9. 霍尼3320G控制设置
  10. 你真的了解网络管理员这份工作吗?