大图中找小图(根据图片定位)
0.安装库opencv-python
pip install opencv-python或pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple
如果报错:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn opencv-python
1.准备图片
2.代码
import pyautogui
import time
import aircv as ac
from PIL import ImageGrab# 匹配图片,返回包含位置的数据字典 的列表 a=[{},{},{}]
def matchImg(imgsrc, imgobj, confidencevalue=0.9): # imgsrc=原始图像,imgobj=待查找的图片imsrc = ac.imread(imgsrc)imobj = ac.imread(imgobj)match_result = ac.find_all_template(imsrc, imobj,confidencevalue) # {'confidence': 0.5435812473297119, 'rectangle': ((394, 384), (394, 416), (450, 384), (450, 416)), 'result': (422.0, 400.0)}return match_result#在指定范围内,查找目前图片,找了就返回a=[{},{},{}]继续执行,否则就一致截图匹配
def match_is_run(bbox=(439, 752, 771, 956), xiao_img='', confidencevalue=0.9):xyt = Nonexyt_len = 0while xyt_len == 0:im = ImageGrab.grab(bbox)im.save('match_is_run.jpg')time.sleep(0.3)xyt = matchImg('match_is_run.jpg', xiao_img, confidencevalue)xyt_len = len(xyt)return xyt#在指定范围内,查找目前图片,找到了就继续找,直到找不到为止(防止上一步操作后卡住没反应)
def match_not_run(bbox=(559, 233, 1363, 532), xiao_img='', confidencevalue=0.8):xyt = 1while xyt != []:im = ImageGrab.grab(bbox)im.save('match_not_run.jpg')time.sleep(0.3)xyt = matchImg('match_not_run.jpg', xiao_img, confidencevalue)if __name__ == '__main__':time.sleep(5)#预留操作时间xyt = match_is_run(bbox=(0, 0, 1450, 623), xiao_img="baidu.png", confidencevalue=0.8)# print(xyt)x = xyt[0]['result'][0] # result对应的值,对应捕捉图像的中心位置y = xyt[0]['result'][1]pyautogui.moveTo(int(x), int(y))time.sleep(0.05)pyautogui.click()match_not_run(bbox=(0, 0, 1450, 623), xiao_img='baidu.png')#没跳转就卡在当前位置print("跳转成功")
3.在百度首页测试
略
大图中找小图(根据图片定位)相关推荐
- python 从大图中找小图
#python 从大图中找小图 今天突然想到这样的问题,找了一下,没找到解决方法,自己想试一试就做了一个,但是感觉太白痴,但是运行的时候也不是说要很久. #!/usr/bin/env python3 ...
- opencv 大图中找小图,并点击小图
opencv 大图(当前页面)找小图(需要点击的地方),主要方法(cv.matchTemplate) import aircv as ac from PIL import ImageGrab impo ...
- 用java大图中寻找小图位置
先说下思路: 因为是大图中寻找小图,所以小图必须是大图的一部分,那么对应的他们具有相同的像素点,所以为了一遍就可以搜出来,从小图中抽取若干个像素点(本次DEMO只选区了5个),从大图中找到像素与第一个 ...
- matlab在大图中加入小图
目录 前言 准备 参考视频 步骤 第一步 第二步 第三步 第四步 第五步 前言 最近在使用MATLAB画图时,需要在大图中加入小图,上网查了一下资料,解决问题,特此记录一下. 准备 MATLAB R2 ...
- 将多张图整合到一张大图中,再用css定位技术
2019独角兽企业重金招聘Python工程师标准>>> 以前做网站的时候,经常有地方要用小图标.第一次接触bootstrap的时候,下载打开它的源文件的时候只看到了两张图,就是包含很 ...
- 【苹果微信图片下载提示保存成功但相册中找不到图片】
目 录 苹果微信图片下载保存失败 发现问题 尝试解决方法 方法一(未成功) 方法二(成功) 苹果微信图片下载保存失败 发现问题 题主应用的苹果13,在查看微信图片时发现,点击右下角的下载图标对图片进行 ...
- idea中找不到图片
也不知道是不是新版的才有这些个问题,我看19年老师就没这个步骤,能问这个问题我就默认你前面的都知道了, 按照图片操作,然后添加你的图片目录路径到tomcat中
- Python 确定大图中是否包含小图
小图: 大图: 完整代码: # coding: utf-8 import os, sys import cv2 import time import win32api import win32con ...
- Java找图 (截屏找图 大图找小图)--自己实现“按键精灵”
最近老板给了个需求是要做一个在安卓模拟器上自动扫码支付的程序,本来以为用Appium就可以直接直接搞定的,但是最后发现Appium只能操作App,在模拟器的实际运行中App要进入扫码功能,还要点击安卓 ...
最新文章
- Linux找头文件规则,linux 头文件、库文件查找顺序
- python config配置文件的读写--configparser
- Java程序员从笨鸟到菜鸟之(八十一)细谈Spring(十)深入源码分析Spring之HibernateTemplate 和HibernateDaoSupport
- python k线合成_手把手教你写一个Python版的K线合成函数
- 三菱a系列motion软体_合肥三菱FR-A840-07700-2
- 战争尾声(nowcoder 215073)
- python print error 空_python笔记37:10分钟掌握异常处理,再也不担心程序挂了
- linux 查看运行 job,如何通过Web查看job的运行情况
- mysql远程连接 host_MySQL远程连接:Host 'x' is not allowed to connect to this MySQL server
- hdu 2570 (贪心)
- 置换和轮换(新姿势,摘自黑书)
- U盘没有文件但空间被占用解决办法(U盘文件夹隐藏恢复)
- 浅显易懂的经济学常识
- 华为设备配置策略路由命令
- Vue2.0开发之——Vue基础用法-axios(29)
- Linux入门教程(附上demo)
- 图文详解 IntelliJ IDEA 15 创建 Maven 构建的 Java Web 项目(使用 Jetty 容器)
- 【OpenCV入门学习--python】Anisotropic image segmentation by a gradient structure tensor
- 解决Centos虚拟机复制文件失败问题
- 大学计算机基础p83,2011年《大学计算机基础》考试范围