Python 游戏辅助基础之 Aircv

  • Aircv的安装
  • Aircv的学习之路
    • 读取图片
    • 显示图片
    • 使用像素匹配查找图片
    • 特征点的数量
    • 使用特征点匹配查找图片
    • 查找图片
    • 获取图像亮度
  • 小结

Aircv的安装

  • Aircv是基于OpenCV的所以需要安装OpenCVnumpy
  • 通过pip安装就好了
  • pip install numpy
  • pip install opencv-contrib-python
  • pip install aircv

Aircv的学习之路

  • 在网上找了一下 没有发现什么太详细的文档

  • 不太清楚aircv具体都有些什么功能

  • 然后无意间按下了CTRL点了一下import后面的aircv

  • 发现居然是开源的

  • 可以研究一波啊

  • 大致浏览了一下 就两个import

    import cv2
    import numpy as np
    
  • 然后下面有个DEBUG = False应该是是否开启调试模式 不用管他

  • 接下来是12def 其中有个main不算一共是11个函数

  • 还有2个注释掉的def 先不看

  • 接下来好好研究研究这11def

读取图片

def imread(filename):im = cv2.imread(filename)if im is None:raise RuntimeError("file: '%s' not exists" % filename)return im

可以看出只是调用了OpenCV中的imread读取图片并返回

显示图片

def show(img):cv2.imshow('image', img)cv2.waitKey(0)cv2.destroyAllWindows()

可以看出调用了OpenCVimshow显示图片 并等待按键后消失

  • 调用一下康康

    import aircvdef main():bmp = aircv.imread("./image/bmp.png")aircv.show(bmp)if __name__ == '__main__':main()


    可以看出弹出来一个窗口显示了图片

使用像素匹配查找图片

  • 2个函数

  • find_all_templatefind_template

  • 通过名字就能看出来 这是找全部和找第一个

    def find_all_template(im_source, im_search, threshold=0.5, maxcnt=0, rgb=False, bgremove=False):# ...
    
  • 可以看出一共有6个参数

  • 这些参数都是干啥的呢

  • 2个没有默认值 必须有滴

  • 在注释里找到了3

        Args:im_source(string): 图像、素材im_search(string): 需要查找的图片threshold: 阈值,当相识度小于该阈值的时候,就忽略掉
    
  • 第一个im_source是一个字符串 ? ? ? 但刘叔觉得这不应该是字符串

  • 因为代码里面没有任何imread的操作 而且下面的mian()方法里也只传入imread的返回值

  • im_source传入的是原图像

  • im_search传入的是需要查找的图片

  • threshold是阈值 也就是相似度 相似度超过这个值才可以

  • 至于maxcnt 看看代码中这个东西干啥了

    if maxcnt and len(result) >= maxcnt:break
    
  • 哦 原来是最大的结果数量啊

  • maxcnt最大结果数量 默认为0 不限

  • 接下来看看rgb 很明显是个bool型的 默认是False

    if rgb:s_bgr = cv2.split(im_search) # Blue Green Redi_bgr = cv2.split(im_source)weight = (0.3, 0.3, 0.4)resbgr = [0, 0, 0]for i in range(3): # bgrresbgr[i] = cv2.matchTemplate(i_bgr[i], s_bgr[i], method)res = resbgr[0]*weight[0] + resbgr[1]*weight[1] + resbgr[2]*weight[2]
    else:s_gray = cv2.cvtColor(im_search, cv2.COLOR_BGR2GRAY)i_gray = cv2.cvtColor(im_source, cv2.COLOR_BGR2GRAY)# 边界提取(来实现背景去除的功能)if bgremove:s_gray = cv2.Canny(s_gray, 100, 200)i_gray = cv2.Canny(i_gray, 100, 200)res = cv2.matchTemplate(i_gray, s_gray, method)
    
  • 看看 干啥了 如果rgbTrue 则进行RGB三通道的拆分

  • 如果rgbFalse 则进行灰度处理

  • 并且我们发现了最后一个参数bgremove

  • 哦 看注释和参数名的意思 是负责去除背景的

  • rgb是否使用RGB通道拆分对图片进行处理

  • bgremovergbFalse的情况下 是否进行背景去除

  • 调用一下康康

    import aircvdef main():bmp = aircv.imread("./image/bmp.png")tim = aircv.imread("./image/tim.png")print(aircv.find_template(bmp, tim))if __name__ == '__main__':main()

    {‘result’: (34.5, 130.5), ‘rectangle’: ((23, 115), (23, 146), (46, 115), (46, 146)), ‘confidence’: 1.0}

  • 结果很详细 我很满意

特征点的数量

def sift_count(img):sift = _sift_instance()kp, des = sift.detectAndCompute(img, None)return len(kp)

嗯 就是统计图中包含的特征点的数量

使用特征点匹配查找图片

  • 2个函数

  • find_all_siftfind_sift

    def find_all_sift(im_source, im_search, min_match_count=4, maxcnt=0):# ...
    
  • 可以看出有4个参数

  • 注释里是这么写的

        Args:im_source(string): 图像、素材im_search(string): 需要查找的图片threshold: 阈值,当相识度小于该阈值的时候,就忽略掉maxcnt: 限制匹配的数量
    
  • 看完这个注释我就很懵 threshold这个东西在哪呢

  • 有点粗心大意啊

  • 康康min_match_count这个东西是干啥的吧

        if len(kp_sch) < min_match_count:return None
    
  • 哦 原来是最少特征数量啊

  • 和之前一样 就是实现方法不一样 就不贴代码了

查找图片

  • 2个函数
  • find_allfind
  • 就是先使用Template后使用Sift

获取图像亮度

def brightness(im):im_hsv = cv2.cvtColor(im, cv2.COLOR_BGR2HSV)h, s, v = cv2.split(im_hsv) height, weight = v.shape[:2]total_bright = 0for i in v:total_bright = total_bright+sum(i)return float(total_bright)/(height*weight)

传入一个图片 返回一个亮度

小结

  • Aircv就是基于OpenCV写了一个找图的函数
  • 可以看出找的速度很快 找的也很准确
  • 可以当做辅助脚本的找图工具

Python 游戏辅助基础之 Aircv相关推荐

  1. Python 游戏辅助基础之 AutoPy

    Python 游戏辅助基础之 AutoPy AutoPy 的安装 AutoPy 的6个功能模块 alert 模块 bitmap 模块 color 模块 key 模块 mouse 模块 screen 模 ...

  2. Python游戏辅助基础之AutoPy

    Python游戏辅助基础之AutoPy AutoPy的安装 AutoPy的6个功能模块 alert模块 bitmap模块 color模块 key模块 mouse模块 screen模块 小结 AutoP ...

  3. python 游戏辅助脚本_python版微信跳一跳游戏辅助

    本文实例为大家分享了微信跳一跳游戏辅助python代码,供大家参考,具体内容如下 import os import PIL import numpy import matplotlib matplot ...

  4. python 游戏辅助lol_绝地助手_(Python基础教程之八)Python中的list操作

    服务器软件大扫盲彩虹六号辅助有序 索引(索引从0最先) 易变的 异构的(列表中的项目不必是统一类型) 写为方括号之间的逗号分开值列表 listOfSubjects = ['physics', 'che ...

  5. python游戏-零基础python教程-用Python设计你的第一个小游戏

    学以致用,今天给大家分享零基础Python设计你的第一个小游戏,既然要学习Python就要让它来实现我们想做的东西,这次咱就用Python来做个简单小游戏,在实践中不断成长.刚学习Python的小伙伴 ...

  6. python游戏辅助lol_Python爬虫实战,60行代码爬取英雄联盟全英雄全皮肤,找寻曾今那些被删除的绝版皮肤...

    学了一周多的爬虫课后终于按捺不住了,小编决定自己手动编写爬虫程序,刚好LJ在鼓励学员分享成果,优秀作品有奖励,就把自己用Python编程爬取各大游戏高清壁纸的过程整理了出来进行投稿,与大家一起分享. ...

  7. python游戏辅助lol_Python数据分析实战--英雄联盟游戏数据分析

    3.31更新了下路组合的对线情况 最近疫情原因一直呆在家里,本人也是LOL资深玩家了,从S3就开始接触LOL了,中间S8.S9的时候没有怎么玩,现在又玩回来了,LOL玩多了,突然就想能不能对英雄联盟的 ...

  8. python 游戏辅助lol_一个基于python的自动玩游戏辅助

    文章目录 一.背景 场景分析 二.方案选择 方案对比: 三.设计思路 四.代码撸起来 五.工具效果 我的心得 一.背景 业余时间我会玩一玩游戏,然而并不是所有所有的游戏内容都会让我一直保持着兴趣.一段 ...

  9. python 游戏辅助lol_用Python爬取英雄联盟(lol)全部皮肤

    小三:"怎么了小二?一副无精打采的样子!" 小二:"唉!别提了,还不是最近又接触了一个叫英雄联盟的游戏,游戏中很多皮肤都需要花钱买,但是我钱不够呀..." 小三 ...

  10. python游戏辅助lol_用Python编写代码分析《英雄联盟》游戏胜利的最重要因素

    介绍 在过去的几年里,电子竞技社区发展迅速,曾经只是休闲娱乐的电子竞技产业,到2022年有望创造18亿美元的收入.虽然在这个生态系统中有很多电子游戏,但很少有游戏像<英雄联盟>那样成为社区 ...

最新文章

  1. 快速删除c/c++语言中的注释
  2. 使用友盟的社会化组件,发新浪微博的 error:redirect_uri_mismatch的解决方法
  3. homework-03
  4. linux中的size_t和ssize_t区别
  5. 为什么单击用户账户没有反应_为什么您的网站没有流量?是因为用户搜不到你!...
  6. 设计一个可扩展的用户登录系统
  7. onpagefinished等了很久才执行_今天自律了吗?停课不停锻炼 才是战疫正确姿势
  8. Oracle工具使用(export,import,sqlldr中文帮助及实例))
  9. arcgis字段计算器--随机数
  10. 计算机无法启动windows无线服务,win10无线服务无法启动怎么解决
  11. 二进制部署Kubernetes-v1.14.1集群
  12. html+css的响应式个人简历
  13. 小米2s自带rec刷root_关于vivo手机的root
  14. Apizza-绑定数据模型
  15. 刷穿剑指offer-Day11-链表I 基础介绍
  16. 牛逼!这届WWDC依旧展现了那个让你无法复制的苹果!
  17. 机电团队怎么使用软件系统快速实施 部署
  18. IEtester 中文官方网站 raquo; IETester 最新版下载 V0.4.6 支持WIN7 支持IE9 马上下载
  19. # CF #808 Div.2(A - C)
  20. Maven 编译时缺少依赖,java: 程序包org.apache.http不存在

热门文章

  1. Nexus5 破解电信关键步骤
  2. 99se.PCB技术大全
  3. 石文软件测试,石文软件基本操作
  4. 宏基 Acer 4741G ubuntu10.10 GT 330M显卡驱动
  5. android uboot boot 区别,uboot fastboot原理
  6. VS2008SP1安装不上
  7. 商城系统源码开发技巧分享
  8. 统计报表可视化html,用统计图让数据可视化
  9. 电赛日志——2016年TI杯大学生电子设计竞赛 A题:降压型直流开关稳压电源
  10. web前端开发与应用——超链接