Jupyter Notebook:用Python玩大家来找茬​fivecakes.com

最近学习计算机视觉的时候遇到找两张图片不同的问题,找到解决方案后,在QQ游戏大家来找茬中实验了一下效果.

要找不同首先得把两张图片提取出来嘛,我们先把电脑屏幕截图,然后再提取我们需要的图片.

我对比过pyscreenshot,PIL和win32gui三种截屏库的截屏速度,发现PIL比其他的截屏方式快那么一点.

屏幕截图有了,现在我们来提取其中我们需要的两幅图,首先我想到的是用边缘检测提取边界,不过效果不是很理想

所以我想先用颜色来区分一下,先来把目标图片和背景图片的颜色分布画出来,方便我们观察

从上图中我们发现背景的色调和饱和度比较集中,所以我们可以通过这两个颜色通道来过滤掉背景

统计一下x轴方向和y轴方向符合条件的像素点的个数,并且把数量统计画成折线图.

通过折线图发现在图片的边缘处折线图会出现明显的断崖,我们可以根据这点来提取出图片

接下来通过阀值简化图形

下面循环一下找出断崖处的坐标

[98, 120, 486, 515]

[409, 431, 917, 1002, 1488, 1500, 1504, 1504]

至此,我们已经找出了颜色变化明显处的x坐标和y左边,接下来我们通过排列组合的方式,找出这些坐标所绘制出的直线可能组合成的矩形.

不过,还是有很多矩形不是我们想要的,所以还需要用矩形的长宽作为阀值来进一步筛选

OK,需要的图片提取出来之后,我们可以开始找两张图片的不同啦.

我们将两幅图的色值相减并取绝对值,这时打印一下结果会明显的发现不同的地方

接下来,用圆圈画出不同之处

python中win32api库可以调用windows的API模拟鼠标点击操作,我们可以将所有不同之处模拟鼠标进行点击.

至此,完成使用Python完找不同游戏.

python找不同_用Python玩大家来找茬相关推荐

  1. python 时间序列预测_使用Python进行动手时间序列预测

    python 时间序列预测 Time series analysis is the endeavor of extracting meaningful summary and statistical ...

  2. python 概率分布模型_使用python的概率模型进行公司估值

    python 概率分布模型 Note from Towards Data Science's editors: While we allow independent authors to publis ...

  3. python的精髓_教你玩转Python!一文总结Python入门到精髓的窍门

    (建议收藏) 很多人应该都有过这种经历,大量重复性工作:日报.周报.各种报,无穷无尽:不计其数的数据提取······琐碎繁杂的事务让工作的效率极低.如果可以一键完成就好了. 对这些问题来说,最高效的解 ...

  4. python 免费空间_用python做大数据

    不学Python迟早会被淘汰?Python真有这么好的前景? 最近几年Python编程语言在国内引起不小的轰动,有超越Java之势,本来在美国这个编程语言就是最火的,应用的非常非常的广泛,而Pytho ...

  5. 上海python周末培训班_上海python周末班

    上海python周末班 来源:教育联展网 编辑:坚强 发布时间:2019-08-05 导语概要 上海python周末班,想要高薪吗?成为一名Python程序员! 在由Indeed.com创建并由cod ...

  6. python 异步数据库_异步Python和数据库

    python 异步数据库 The asynchronous programming topic is difficult to cover. These days, it's not just abo ...

  7. python queue 调试_学Python不是盲目的,是有做过功课认真去了解的

    有多少伙伴是因为一句'人生苦短,我用Python'萌生想法学Python的!我跟大家更新过很多Python学习教程普及过多次的Python相关知识,不过大家还是还得计划一下Python学习路线!Pyt ...

  8. python类加载器_利用Python反序列化运行加载器实现免杀

    前言 前几天在看Python的shellcode加载器,在网上找了一个,结果加载器自身就过不了火绒,测试发现是火绒对关键语句进行了识别. 所以我们要想办法去掉加载器中明显的特征. 原理及实现 在绕过静 ...

  9. python网页版_经典python学习教程:20行代码打造一个微信群聊助手,解放双手

    今天的Python学习教程教大家如何用20行Python代码实现微信群聊助手,可以用来活跃群气氛,好多群主创建完群后,拉完一群人,之后就一片寂静,有个群聊助手,就可以帮忙活跃群里气氛,通过今天在自己的 ...

  10. python集群_使用Python集群文档

    python集群 Natural Language Processing has made huge advancements in the last years. Currently, variou ...

最新文章

  1. Classifying dynamic textures via spatiotemporal fractal analysis(许教授)
  2. php图片编辑失真,PHP上传真彩图片缩略图质量失真解决方法
  3. 刚刚更新:在线聊天系统设计(原理+思路+源码+效果图)
  4. jdbc java数据库连接 3)Statement接口之执行DDL和DML语句的简化
  5. mysql 5.1.62_MySQL 5.5.62 安装方法(标准配置版)
  6. Ubuntu16.04 sudo apt-get install lib***-dev安装失败,无法锁定文件,sudo apt-get update 更新失败也无法解决
  7. 带你了解FPGA(5)--Verilog书写规范
  8. [数据库笔记]规范化(Normalization)-把数据冗余降下来
  9. WebGIS中利用AGS JS+eCharts实现一些数据展示的探索
  10. 论文笔记_S2D.51_2016-IEEE TOR_Past, Present, and Future of Simultaneous Localization and Mapping
  11. mysql replace 只替换第一个_MySQL:replace函数的几种实用场景
  12. 使用svnadmin对VisualSVN进行项目迁移
  13. 在学习时,遇到in module ssbuild. File is included in 4 contexts
  14. android excel在线制作教程,Excel手机表格制作软件
  15. 同时新增一个订单与多个明细的方法
  16. matlab plot函数详解
  17. GAN (Generative Adversarial Nets 生成对抗网络)
  18. Android生命周期
  19. 伪装成抖音国际版Tiktok的短信蠕虫(病毒分析)
  20. Java程序员可以做哪些副业?

热门文章

  1. feign调用不通问题,JSON parse error: Illegal character ((CTRL-CHAR, code 31)): only regular white space (\r
  2. 将ipa文件安装到手机的最简单方法和将ipa发布到appstore的方法
  3. html -----硬回车和软回车
  4. 可编程的,协议独立的软件交换机(论文阅读)
  5. [4G5G专题-124]:5G培训部署篇-2-主要信令流程
  6. Python基础 Day03 列表
  7. Python3快速入门—7.枚举
  8. 【IIS问题】——默认网站localhost无法打开,错误类型404
  9. 浅谈运营商行业业务的发展方向
  10. qt 设置焦点 跳到下个控件_Qt控件焦点切换