图像大找茬——游戏脚本-ag九游会j9官方网站

ag九游会j9官方网站-j9九游会登录入口首页新版
图像大找茬——游戏脚本
2023-06-26
25 浏览
江海入海,知识涌动,这是我参与江海计划的第11篇。

图像大找茬





前言
在一个月黑风高的夜晚,我的舍友小许摇起我来,面色惊恐地说道:“快来帮我,我要不行了o(╥﹏╥)o”。我连忙起身,问到他你怎么了,他把我拉到他电脑面前,一脸凝重的说道:这两张图片我找不出第五个不同的地方。我上来...就给他个大b兜,睡觉。凄凄惨惨戚戚,独留一人守空房...
基础知识
1首先我们要想分清两种图片的不同就要想起它——灰度图。
2其次我们找到一个可以获取不同页面句柄的库实时截取图片(这里不采用抓包)
3pyqt5设计页面
图片找茬
原图:
1687766861230.png

        灰度图使用skimage库可以轻松解决pip install scikit-image,同时安装pip install opencv-python以显示图片。
plain text
复制代码
imagea = cv2.imread("./first.png")
imageb = cv2.imread("./second.png")
graya = cv2.cvtcolor(imagea, cv2.color_bgr2gray)
grayb = cv2.cvtcolor(imageb, cv2.color_bgr2gray)
扩展:用到了ssim原理,也可以叫他结构相似性指数,是一种衡量两幅图像相似度的指标。
plain text
复制代码
#调用ssim函数
from skimage.metrics import structural_similarity
#返回三个值
mssim, grad , s = structural_similarity(graya, grayb, gradient=true,full=true)
'''
mssim:float
图像上的平均结构相似性指数。
grad:ndarray
im1 和 im2 [2]之间结构相似性的梯度。这仅在梯度设置为 true 时返回。
s:ndarray
完整的 ssim 图像。这仅在full设置为 true 时返回。
'''
可以打印mssim数值观察ssim指数,此指数越高说明越相似
但是需要注意的是ssim返回的ndarray里面的值为[0, 1]的float型,而opencv的[0, 255]为uint8型,用如下转换:
plain text
复制代码
grad= (grad* 255).astype("uint8")
grad对应图片:
1687766885866.png

然后用cv2中图像阈值处理threshold函数去寻找轮廓,然后用imutils.grab_contours返回cnts中的countors(轮廓),然后用cv2.boundingrect获取边界框位置,直接用cv2.rectangle画出方框
threshold函数寻找到的轮廓:
1687766901133.png

最后打印图片保存即可。
源码:
抓取句柄图片
需要安装pip install pywin32,这个库可以完成根据自己电脑打开的程序抓取所需句柄(也就是已经打开的任意程序)
具体操作:打开qq游戏大厅中的大家来找茬小游戏,咳咳,找个座位坐下,进入游戏前点开程序,然后开始游戏后点击开始!!开始检测!!!十图场乱杀!!!!!
gui界面搭建
按上述操作完成后打开界面如下
1687766920058.png

纯纯辅助神器,喜欢的朋友们可以去玩一玩哦😘😘求一键三连。

avatarname
后发表内容
您的社区活跃积分 3,登录后即可领取  
网站地图