使用PyAutoGUI识别PNG图像并自动点击按钮

在自动化测试、任务批处理等场景中,我们常常需要控制GUI程序的鼠标键盘操作。PyAutoGUI就是一个非常方便的Python模块,可以帮助我们实现这些操作。今天我们就来看看如何使用PyAutoGUI识别屏幕上的PNG图像,并自动点击图像所在位置。
C:\pythoncode\new\autoguirecongnizepng.py

全部代码:

import pyautogui
import cv2
import timepyautogui.hotkey('win', 'r')
pyautogui.write('msedge')
pyautogui.press('enter')# Go to bing.com
time.sleep(5)pyautogui.hotkey('ctrl', 'l') pyautogui.write('http://localhost:44471/Forguncy')
pyautogui.press('enter')
pyautogui.press('enter')time.sleep(5)
# 加载PNG图像
button_img = cv2.imread('button.png')# 在屏幕上查找图像
button_location = pyautogui.locateOnScreen(button_img, confidence=0.8)# 如果找到图像,点击其中心
if button_location is not None:button_x, button_y = pyautogui.center(button_location)pyautogui.click(button_x, button_y)
else:print('未找到按钮图像')

安装依赖库

在开始之前,我们需要先安装PyAutoGUI和OpenCV两个Python库:

pip install pyautogui
pip install opencv-python

PyAutoGUI用于控制鼠标键盘,而OpenCV则用于读取和处理图像。

导入模块

接下来在Python代码中导入必要的模块:

import pyautogui
import cv2

加载待识别图像

使用OpenCV读取待识别的PNG图像文件:

button_img = cv2.imread('button.png')

将图像路径替换为你自己的PNG文件路径。

在屏幕上查找图像

使用PyAutoGUI的locateOnScreen函数搜索与图像匹配的屏幕区域:

button_location = pyautogui.locateOnScreen(button_img, confidence=0.8)

confidence参数设置了匹配度阈值,范围0到1,值越高要求越精确。

点击图像中心

如果locateOnScreen成功找到了匹配区域,它会返回该区域的左上角坐标。我们可以计算出中心位置,并使用click函数在该位置模拟鼠标点击:

if button_location is not None:button_x, button_y = pyautogui.center(button_location)pyautogui.click(button_x, button_y)
else:print('未找到按钮图像')

完整代码

import pyautogui
import cv2button_img = cv2.imread('button.png')
button_location = pyautogui.locateOnScreen(button_img, confidence=0.8)if button_location is not None:button_x, button_y = pyautogui.center(button_location)pyautogui.click(button_x, button_y)
else:print('未找到按钮图像')

结果如下:
在这里插入图片描述

就是这样,使用PyAutoGUI和OpenCV我们可以很轻松地识别屏幕上的图像并执行点击操作。在实际使用中,你可能需要根据具体情况调整confidence参数以获得理想的匹配效果。另外注意,PyAutoGUI在运行时会直接控制鼠标键盘,所以测试时请小心操作。

希望这篇博客能够对你有所启发,如有任何疑问欢迎留言讨论。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/18875.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

超结MOS在全桥电路上的应用-REASUNOS瑞森半导体

一、前言 全桥电路定义 全桥电路是一种常见的电子电路,由四个开关管和一个负载组成,可将直流电转换为交流电。 全桥电路的应用领域 全桥电路广泛应用于电力电子领域,如开关电源、变频器、逆变器、电动汽车、工业自动化等领域 。在电路中&…

Make-An-Audio——用于语音生成的提示增强扩散模型

0.引言 论文提出了一个从文本生成语音的扩散模型 Make-An-Audio。该模型将文本提示作为输入,并据此生成语音。例如,输入 “一只猫在喵喵叫,一个年轻女人的声音”,就会输出猫在喵喵叫,一个女人在说话的音频。这项研究已…

RET-CLIP:眼科疾病诊断大模型

RET-CLIP:眼科疾病诊断大模型 RET-CLIP模型的工作流程和架构图表组成部分工作流程 精细拆解应用RET-CLIP模型进行糖尿病视网膜病变分级 论文:http://arxiv.org/pdf/2405.14137v1 代码:https://github.com/sStonemason/RET-CLIP RET-CLIP 是…

Java手动启动jar包

启动jar包,去到当前jar包路径cmd, windows乱码先执行:chcp 65001 java -Xms512m -Xmx1024m -Dfile.encodingutf-8 -jar -Dspring.cloud.nacos.config.server-addr127.0.0.1:8848 -Dspring.cloud.nacos.discovery.server-addr127.0.0.1:8848 …

基于 DCT 的图像滤波

需求分析 对于图像去噪这一需求,我们可以通过DCT(离散余弦变换)算法来实现。DCT是一种基于频域的变换技术,可以将图像从空间域转换为频域,然后通过滤波等处理方式进行去噪。 针对这一需求,我们需要进行以下…

mmu之TLB的来源与实现

TLB的由来 遇到的问题 对于两级页表(Page Table)的设计,需要访问两次物理内存才可以得到虚拟地址对应的物理地址(一次访问第一级页表,另一次访问第二级页表),而物理内存的运行速度相对于处理器本身来说,有几十倍的差距; 因此在处…

湘潭大学软件工程专业oracle-sqlplus安装教程

前言 笔者在网上找了一些教程,但是没有装好,或者不知道啥原因,反正就是登不进去老师要求的系统,连接不上服务器,非常苦恼,请教了一下同学,终于弄好了,本文希望能帮助到和我一样有相…

OpenHarmony面向万物智联的应用框架的思考与探索

应用框架,是操作系统连接开发者生态,实现用户体验的关键基础设施。业务的飞速发展促进了应用框架不断演进和变化。 01►业界应用框架的演进 应用是用户使用操作系统/设备的入口,应用框架则是应用开发和运行的基础设施。以移动端为例&#x…

Red Hat Enterprise Linux (RHEL) 8.10 发布 - 红帽企业 Linux 8 完美终结版

Red Hat Enterprise Linux (RHEL) 8.10 (x86_64, aarch64) - 红帽企业 Linux 红帽企业 Linux 8 完美终结版 请访问原文链接:Red Hat Enterprise Linux (RHEL) 8.10 (x86_64, aarch64) - 红帽企业 Linux,查看最新版。原创作品,转载请保留出处…

看看最新的B端登录界面,你是不是被潮流抛弃了?

毛玻璃风格(Frosted Glass Style)是新拟态设计风格中的一种分支,它灵感来源于现实世界中的毛玻璃材质。毛玻璃是一种通过在玻璃表面加工处理的方式,使其具有模糊、云翳和透明效果的特殊玻璃。 在设计中,毛玻璃风格通常…

保研面试408复习 6——计组存储器、数据结构、离散数学、特征值

文章目录 一、计组1、cache的全名、作用、映射方式和写操作的具体实现、多级cache补充:存储器知识 2、流水线数据冒险以及解决方式 二、数据结构1、分布式场景下,十个计算节点的大规模排序问题2、红黑树和B树B树的使用场景、优点、能够维护什么样的操作等…

无人机操作界面来了,起点就很高呀。

无人机操作界面设计需要考虑以下几个方面: 易用性:无人机操作界面应该简单直观,易于操作和理解。操作按钮和控键应该布局合理,易于触摸或点击。重要的操作功能应该易于找到和使用,避免用户迷失或困惑。实时反馈&#…

红蓝对抗提权篇之一文看懂提权

一、计算机中的权限 1.1 不同的权限系统 权限在不同的应用中有着不同的分类,与安全相关的大致上我们分为: 匿名访问权限 来宾权限 用户权限 管理员权限 系统权限 不同的权限对应的权力各不相同,我们对自己电脑一般是用户权限和管理员权限。…

【AI赋能】香橙派OrangePi AIpro初体验

【AI赋能】香橙派OrangePi AIpro初体验 1、初识香橙派1.1、仪式感开箱1.2、OrangePi AIpro(8T)介绍 2、上电开机2.1、开机2.2、串口调试2.2.1 两种方式登录2.2.2 相关信息 2.3、启动系统2.4、网络配置 3、连接摄像头4、目标检测4.1、Jupyter Lab模式4.2、 目标检测测试4.2.1 视…

06 FreeRTOS 互斥量(mutex)

1、互斥量的使用场景 用于保护临界资源,在多任务系统中,任务A正在使用某个资源,还没用完的情况下任务B也来使用的话,就可能导致问题。 比如对于串口,任务A正使用它来打印,在打印过程中任务B也来打印&#x…

Cobaltstrike渗透测试框架

Cobaltstrike简介 cobalt strike(简称CS)是一款团队作战渗透测试神器,分为客户端及服务端,一个服务端可以对应多个客户 端,一个客户端可以连接多个服务端,可被团队进行分布式协团操作. 和MSF关系 metas…

使用screw-core生成数据库结构说明文档

官方项目地址: screw: 简洁好用的数据库表结构文档工具,支持MySQL/MariaDB/SqlServer/Oracle/PostgreSQL/TIDB/CacheDB 数据库。 数据库支持 MySQL MariaDB TIDB Oracle SqlServer PostgreSQL Cache DB(2016) H2 (开发…

文心智能体平台 | 想象即现实

目录 文心智能体平台介绍平台简介通过平台能做什么平台的优势智能体介绍智能体类型AI 插件介绍 动手创建一个智能体访问平台并进行账号注册根据适合的方式选择智能体类型快速创建智能体智能体个性化模块配置 总结注意事项我的智能体 文心智能体平台介绍 平台简介 文心智能体平…

产品推荐 | 基于Xilinx Zynq-7015 FPGA的MYC-C7Z015开发板

一、产品概述 基于 Xilinx Zynq-7015,双Cortex-A9FPGA全可编程处理器;PS部分(ARM)与PL部分(FPGA)之间采用AXI高速片上总线通信,吉比特级带宽,突破传统ARMFPGA架构的通信瓶颈,通过PL部分(FPGA)灵活配置丰富的外设接口&…

若依框架官网

RuoYi 若依官方网站 |后台管理系统|权限管理系统|快速开发框架|企业管理系统|开源框架|微服务框架|前后端分离框架|开源后台系统|RuoYi|RuoYi-Vue|RuoYi-Cloud|RuoYi框架|RuoYi开源|RuoYi视频|若依视频|RuoYi开发文档|若依开发文档|Java开源框架|Java|SpringBoot|SrpingBoot2.0…