当前位置: 首页 > news >正文

python pyautogui实现图片识别点击失败后重试

安装库 

pip install Pillow
pip install opencv-python

confidence作用

confidence 参数是用于指定图像匹配的信度(或置信度)的,它表示图像匹配的准确程度。这个参数的值在 0 到 1 之间,数值越高表示匹配的要求越严格。
具体来说,confidence 参数用于调整在屏幕上搜索目标图像时的匹配精度:
0.0 表示完全不匹配。
1.0 表示完全匹配。
在实际应用中,图像匹配的信度可以帮助你处理一些图像上的细微差异。例如,屏幕上的图像可能因为分辨率、光线、颜色等原因与原始图像有些不同。通过调整 confidence 参数,你可以设置一个合理的阈值,使得图像匹配过程既不太严格(导致找不到图像),也不太宽松(导致误匹配)。
举个例子,如果你设置 confidence=0.8,那么只有当屏幕上的图像与目标图像的相似度达到 80% 以上时,才会被认为是匹配的。

识别图片点击

import pyautogui
import time
import osdef locate_and_click_image(image_path, retry_interval=2, max_retries=5, click_count=1, confidence=None):"""定位图片并点击指定次数。:param image_path: 图片路径:param retry_interval: 重试间隔时间(秒):param max_retries: 最大重试次数:param click_count: 点击次数:param confidence: 图像匹配的信度(0到1之间),需要安装 OpenCV:return: 图片的位置 (x, y, width, height) 或 None(如果未找到)"""if not os.path.isfile(image_path):print(f"错误:图片路径无效或文件不存在: {image_path}")return Noneretries = 0while retries < max_retries:try:if confidence is not None:location = pyautogui.locateOnScreen(image_path, confidence=confidence)else:location = pyautogui.locateOnScreen(image_path)if location is not None:print(f"找到图片: {image_path},位置: {location}")center = pyautogui.center(location)for _ in range(click_count):pyautogui.click(center)print(f"点击图片中心位置。点击次数:{_ + 1}")return locationelse:print(f"未找到图片: {image_path},{retry_interval}秒后重试...(重试次数: {retries + 1}/{max_retries})")time.sleep(retry_interval)retries += 1except pyautogui.ImageNotFoundException:print(f"未找到图片: {image_path},{retry_interval}秒后重试...(重试次数: {retries + 1}/{max_retries})")time.sleep(retry_interval)retries += 1print(f"达到最大重试次数: {max_retries},未找到图片: {image_path}")return Nonedef main():image_path = '1.png'  # 替换为你的图片路径retry_interval = 2max_retries = 5click_count = 1confidence = 0.8  # 如果不使用 OpenCV,请将此参数设置为 Nonelocation = locate_and_click_image(image_path, retry_interval, max_retries, click_count, confidence)if location:print("操作完成。")else:print("未能定位到图片,程序结束。")if __name__ == "__main__":locate_and_click_image('1.png', retry_interval=2, max_retries=5, click_count=2, confidence=0.8)

优化代码,识别多张图片并点击

import pyautogui
import time
import osdef locate_and_click_image(path, retry_interval=2, max_retries=5, click_count=1, confidence=None):if not os.path.isfile(path):print(f"错误:图片路径无效或文件不存在: {path}")return Noneretries = 0while retries < max_retries:try:if confidence is not None:location = pyautogui.locateOnScreen(path, confidence=confidence)else:location = pyautogui.locateOnScreen(path)if location is not None:print(f"找到图片: {path},位置: {location}")center = pyautogui.center(location)for _ in range(click_count):pyautogui.click(center)print(f"点击图片中心位置。点击次数:{_ + 1}")return locationelse:print(f"未找到图片: {path},{retry_interval}秒后重试...(重试次数: {retries + 1}/{max_retries})")time.sleep(retry_interval)retries += 1except pyautogui.ImageNotFoundException:print(f"未找到图片: {path},{retry_interval}秒后重试...(重试次数: {retries + 1}/{max_retries})")time.sleep(retry_interval)retries += 1print(f"达到最大重试次数: {max_retries},未找到图片: {path}")return Nonedef main():images = [{'path': '1.png', 'retry_interval': 2, 'max_retries': 5, 'click_count': 1, 'confidence': 0.8},{'path': '3.png', 'retry_interval': 2, 'max_retries': 5, 'click_count': 1, 'confidence': 0.8},# 添加更多图片]for image in images:location = locate_and_click_image(**image)if location:print(f"图片 {image['path']} 操作完成。")else:print(f"未能定位到图片 {image['path']},程序结束。")if __name__ == "__main__":main()

优化代码,识别多张图片,只要识别到图片就结束循环

import pyautogui
import time
import osdef locate_and_click_image(path, retry_interval=2, max_retries=5, click_count=1, confidence=None):if not os.path.isfile(path):print(f"错误:图片路径无效或文件不存在: {path}")return Noneretries = 0while retries < max_retries:try:if confidence is not None:location = pyautogui.locateOnScreen(path, confidence=confidence)else:location = pyautogui.locateOnScreen(path)if location is not None:print(f"找到图片: {path},位置: {location}")center = pyautogui.center(location)for _ in range(click_count):pyautogui.click(center)print(f"点击图片中心位置。点击次数:{_ + 1}")return Trueelse:print(f"未找到图片: {path},{retry_interval}秒后重试...(重试次数: {retries + 1}/{max_retries})")time.sleep(retry_interval)retries += 1except pyautogui.ImageNotFoundException:print(f"未找到图片: {path},{retry_interval}秒后重试...(重试次数: {retries + 1}/{max_retries})")time.sleep(retry_interval)retries += 1print(f"达到最大重试次数: {max_retries},未找到图片: {path}")return Falsedef main():images = [{'path': '1.png', 'retry_interval': 2, 'max_retries': 5, 'click_count': 1, 'confidence': 0.8},{'path': '3.png', 'retry_interval': 2, 'max_retries': 5, 'click_count': 1, 'confidence': 0.8},{'path': '4.png', 'retry_interval': 2, 'max_retries': 5, 'click_count': 1, 'confidence': 0.8},# 添加更多图片]for image in images:success = locate_and_click_image(**image)if success:print(f"图片 {image['path']} 操作完成。")breakelse:print(f"未能定位到图片 {image['path']}。")if __name__ == "__main__":main()

如有帮助,请多多支持作者! 你鼓励是我最大的动力~QAQ~

相关文章:

python pyautogui实现图片识别点击失败后重试

安装库 pip install Pillow pip install opencv-python confidence作用 confidence 参数是用于指定图像匹配的信度&#xff08;或置信度&#xff09;的&#xff0c;它表示图像匹配的准确程度。这个参数的值在 0 到 1 之间&#xff0c;数值越高表示匹配的要求越严格。 具体来…...

怎么看电脑实时充电功率

因为我想测试不同的充电器给电脑充电的速度&#xff0c;所以就想找一款软件可以看电脑当前充电功率的软件&#xff0c;我给一个图 直接搜索就可以下载了&#xff0c;charge rate就是功率&#xff0c;这里是毫瓦&#xff0c;换算单位是 1000mw1w 所以我这里充电功率是65w&…...

Qt 实战(4)信号与槽 | 4.2、自定义信号与槽

文章目录 一、自定义信号与槽1、自定义信号2、自定义槽3、连接信号与槽4、总结 前言&#xff1a; 在Qt框架中&#xff0c;信号&#xff08;signals&#xff09;和槽&#xff08;slots&#xff09;机制是对象间通信的核心。这种机制允许对象在特定事件发生时发出信号&#xff0c…...

Android开发系列(六)Jetpack Compose之Box

Box是一个用来组合和控制子元素布局的组件。它可以在一个矩形区域内排列一个或多个子元素&#xff0c;并根据所提供的参数来控制它们的位置、大小和样式。 Box的功能类似传统的FrameLayout。 下面通过示例了解Box的使用方法&#xff0c;首先看一个最简单的示例&#xff0c;如下…...

51单片机STC89C52RC——4.1 独立按键(数码管显示按键值)

目录 目录 目的 一&#xff0c;STC单片机模块 二&#xff0c;矩阵按键模块 2.1 针脚定义 ​编辑 2.2 矩阵按键位置 2.3 如何理解按键按下后针脚的高低电平 2.3.1 错误理解1 2.3.2 错误理解2 2.3.3 正确判定按下的是那个按键的逻辑 2.3.4 判定按键按下的依次扫描程…...

解决双击bootstrap.bat没有生成b2.exe文件

双击bootstrap.bat但是并没有没有生成b2.exe文件&#xff0c;会报如下错误&#xff1a; "cl" 不是内部或外部命令&#xff0c;也不是可运行的程序 或批处理文件。D:\cppsoft\boost_1_85_0\tools\build\src\engine>dir *.exe 驱动器 D 中的卷是 Data 卷的序列号是…...

AI穿戴设备是未来手机的终结者?中国AI商业化的未来预测

AI技术的发展正处于商业化应用的关键阶段&#xff0c;而中国在互联网时代已凭借商业化应用逆袭。AI算法大模型虽强大&#xff0c;但真正普惠民众需与设备深度结合。穿戴式智能设备就成为了新战场&#xff0c;AI算法与穿戴设备结合能释放更大工作效率。私人助理AI将成趋势&#…...

FPGA+Nvidia Orin NX+AI 异构视频图像处理开发平台在高端医疗和工业检测的应用,支持定制,支持国产化

FPGAGPU 异构架构视频图像处理开发平台&#xff0c;它结合了 AMD Zynq UltraScale MPSoC&#xff08;FPGA&#xff09;与 NVIDIA Jetson Orin NX&#xff08;GPU&#xff09;的强大功能&#xff0c;能够应用于对图像精准度和实时性有着严苛要求的行业领域。 Zynq UltraScale MP…...

2000-2023年各省名义GDP、实际GDP、GDP平减指数数据(含原始数据+计算过程+计算结果)(以2000年为基期)

2000-2023年各省名义GDP、实际GDP、GDP平减指数数据&#xff08;含原始数据计算过程计算结果&#xff09;&#xff08;以2000年为基期&#xff09; 1、时间&#xff1a;2000-2023年 2、范围&#xff1a;31省 3、指标&#xff1a;名义GDP、国内生产总值指数、实际GDP、GDP平减…...

python学习—字典(Dictionary)

系列文章目录 python学习—列表和元组 python学习—循环语句-控制流 python学习—合并TXT文本文件 python学习—统计嵌套文件夹内的文件数量并建立索引表格 python学习—查找指定目录下的指定类型文件 python学习—年会不能停&#xff0c;游戏抽签抽奖 python学习—合并多个Ex…...

鸿蒙开发:【组件启动规则(FA模型)】

组件启动规则&#xff08;FA模型&#xff09; 启动组件是指一切启动或连接应用组件的行为&#xff1a; 启动PageAbility、ServiceAbility&#xff0c;如使用startAbility()等相关接口。连接ServiceAbility、DataAbility&#xff0c;如使用connectAbility()、acquireDataAbili…...

网络编程5----初识http

1.1 请求和响应的格式 http协议和前边学过的传输层、网络层协议不同&#xff0c;它是“一问一答”形式的&#xff0c;所以要分为请求和响应两部分看待&#xff0c;同时&#xff0c;请求和响应的格式是不同的&#xff0c;我们来具体介绍一下。 1.1.1 请求 在介绍请求之前&…...

“用友审批+民生付款”,YonSuite让企业发薪更准时

随着现代企业经营模式的不断创新和市场竞争的加剧&#xff0c;企业薪资管理和发放的效率、准确性和及时性已成为企业管理的重要一环。然而&#xff0c;在实际操作中&#xff0c;许多企业面临着薪资管理复杂、发放流程繁琐、数据不准确等难点和痛点。为了解决这些问题&#xff0…...

EtherCAT扫盲,都是知识点

1. 什么是EtherCAT EtherCAT&#xff0c;全称Ethernet for Control Automation Technology&#xff0c;字面意思就是用于控制自动化技术的以太网。它是一种基于以太网的实时工业通信协议&#xff0c;简单说&#xff0c;就是让机器们通过网线互相聊天的高级方式。 EtherCAT 是最…...

开发中遇到的错误 - @SpringBootTest 注解爆红

我在使用 SpringBootTest 注解的时候爆红了&#xff0c;ait 回车也导不了包&#xff0c;后面发现是因为没有加依赖&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId>…...

数据仓库的实际应用示例-广告投放平台为例

数据仓库的数据分层通常包括以下几层&#xff1a; ODS层&#xff1a;存放原始数据&#xff0c;如日志数据和结构化数据。DWD层&#xff1a;进行数据清洗、脱敏、维度退化和格式转换。DWS层&#xff1a;用于宽表聚合值和主题加工。ADS层&#xff1a;面向业务定制的应用数据层。…...

Beyond VL了解学习

Beyond VL&#xff1a;多模态处理的前沿 在今天的数据驱动时代&#xff0c;我们经常需要处理和分析多种类型的数据&#xff0c;例如文本、图像、视频和音频。Beyond VL 是一个先进的多模态模型&#xff0c;专为处理这些多种数据而设计。它能够同时处理多种模态的数据&#xff…...

AI音乐革命:创意产业的新篇章

随着科技的飞速发展&#xff0c;人工智能&#xff08;AI&#xff09;在各个领域的应用越来越广泛&#xff0c;特别是在音乐产业中&#xff0c;AI音乐大模型的涌现&#xff0c;正在重新定义音乐创作的边界。最近一个月&#xff0c;随着多个音乐大模型的轮番上线&#xff0c;素人…...

python从入门到精通1:注释

在Python编程中&#xff0c;注释是一种非常重要的工具&#xff0c;它不仅可以帮助我们记录代码的目的、工作方式以及任何需要注意的地方&#xff0c;还可以使代码更具可读性。Python提供了两种主要的注释方式&#xff1a;单行注释和多行注释。下面我们将深入探讨这两种注释方式…...

CountDownLatch(应对并发问题的工具类)

CountDownLatch CountDownLatch允许一个或多个线程等待其他线程完成操作以后&#xff0c;再执行当前线程&#xff1b;比如我们在主线程需要开启2个其他线程&#xff0c;当其他的线程执行完毕以后我们再去执行主线程&#xff0c;针对这 个需求我们就可以使用CountDownLatch来进…...

HarmonyOS开发知识 :扩展修饰器,实现节流、防抖、权限申请

引言 防重复点击&#xff0c;利用装饰器面向切面&#xff08;AOP&#xff09;的特性结合闭包&#xff0c;实现节流、防抖和封装权限申请。 节流 节流是忽略操作&#xff0c;在触发事件时&#xff0c;立即执行目标操作&#xff0c;如果在指定的时间区间内再次触发了事件&…...

自然语言NLP的基础处理

NLP基本处理从句子的情感分析、实体与实体直接的关系&#xff0c;句子结构来分析 情感分析 1.句子的情感分析找出句子表达的是正面、负面还是中性的情感。 情感分析的影响因素&#xff1a; 词语顺序&#xff1a;词语的顺序可以影响句子的整体情感。例如&#xff0c;“我喜欢…...

带颜色的3D点云数据发布到ros1中(通过rviz显示)python、C++

ros中发布点云数据xyz以及带颜色的点云数据xyzrgb ros中发布点云数据xyz可以直接用python来做或者C(看个人偏好) ros中发布带颜色的点云数据xyzrgb环境1.新建ROS工作空间2.创建功能包 ros中发布点云数据xyz 可以直接用python来做或者C(看个人偏好) 在这里我们带有颜色的点云数…...

python学习—列表和元组

系列文章目录 python学习—合并TXT文本文件 python学习—统计嵌套文件夹内的文件数量并建立索引表格 python学习—查找指定目录下的指定类型文件 python学习—年会不能停&#xff0c;游戏抽签抽奖 python学习—循环语句-控制流 python学习—合并多个Excel工作簿表格文件 文章目…...

c++题目_水仙花数

水仙花数-普及-题目-ACGO题库 题目描述 求100-n中的水仙花数。一个数x&#xff0c;x的百位、十位、个位&#xff0c;分别用a、b、c来表示&#xff1b; 当a * a * a b * b * b c * c * c x时&#xff0c;x就被称为水仙花数。(n< 999) 输入格式 一行一个整数n 输出格式…...

使用 Iceberg、Tabular 和 MinIO 构建现代数据架构

现代数据环境需要一种新型的基础架构&#xff0c;即无缝集成结构化和非结构化数据、轻松扩展并支持高效的 AI/ML 工作负载的基础架构。这就是现代数据湖的用武之地&#xff0c;它为您的所有数据需求提供了一个中心枢纽。然而&#xff0c;构建和管理有效的数据湖可能很复杂。 这…...

jnp.linalg.norm

jnp.linalg.norm 是 JAX 中用于计算向量或矩阵的范数的函数。JAX 是一个用于高性能机器学习研究的 Python 库&#xff0c;它提供了与 NumPy 类似的 API&#xff0c;但支持自动微分和加速计算。jnp 是 JAX 的 NumPy 接口。 jnp.linalg.norm 的基本语法 jnp.linalg.norm(x, ord…...

20240621在飞凌的OK3588-C开发板的Buildroot系统中集成i2ctool工具

20240621在飞凌的OK3588-C开发板中打开i2ctool工具 2024/6/21 17:44 默认继承的i2c工具&#xff1a; rootrk3588-buildroot:/# rootrk3588-buildroot:/# i2c i2c-stub-from-dump i2cdump i2cset i2cdetect i2cget i2ctransfer rootrk3588-…...

ARM32开发--存储器介绍

知不足而奋进 望远山而前行 目录 文章目录 前言 存储器分类 RAM ROM EEPROM Flash 总结 前言 在现代计算机系统中&#xff0c;存储器扮演着至关重要的角色&#xff0c;不仅影响着数据的存取速度和稳定性&#xff0c;还直接关系到计算机系统的性能和应用场景的选择。存…...

Web服务器

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 当在浏览器输入URL后&#xff0c;浏览器会先请求DNS服务器&#xff0c;获得请求站点的 IP 地址&#xff08;即根据URL地址“www.mingrisoft.com”获取…...

专业的美容网站建设/百度旧版本下载

慕仰8121524Go语言操作数据库非常的简单&#xff0c;他也有一个类似JDBC的东西"database/sql"实现类是"github.com/go-sql-driver/mysql"使用过JDBC的人应该一看就懂对日期的处理比较晦涩,没有JAVA流畅:复制代码代码如下:package mainimport ( "da…...

网站建设专业/营业推广是什么意思

在c语言当中解决字符串当中某个字符或者数字时,经常用到sscanf,的确也比较好用,大部分正则问题都能解决,官方使用方法介绍如下: 函数语法 int sscanf( const char *buffer, const char *format, [ argument ] ... ); 参数编辑 播报 buffer  存储的数据 format…...

资源管理器/石家庄seo外包的公司

ODBC简介 开放数据库连接&#xff08;Open Database Connectivity&#xff09;&#xff0c;ODBC是为解决异构数据库间的数据共享而产生的&#xff0c;ODBC 为异构数据库访问提供统一接口&#xff0c;允许应用程序以SQL 为数据存取标准&#xff0c;存取不同DBMS管理的数据&…...

营销网站定制/优化网站收费标准

我们程序员经常迷茫于有太多东西要学&#xff0c;有些找不到方向、不知所措。 很多程序员都愿意说&#xff0c;我想变得更好&#xff0c;但是更好是什么却很模糊&#xff0c;同时我们又不知道该怎么样去做。我们的生命如此短暂&#xff0c;作为程序员的职业生涯可能会更短。所…...

中国智慧团建网站/灰色推广

<h2>PHP介绍</h2> PHP 重写PHP解释器并改称 Hypertext Preprocessor PHP5支持了面向对象的编程 PHP的优点 1,语法简单 2,学习成本低 3,开发效率高 4,跨平台 5,开发部署方便 6,开源框架非常丰富(如 ThinkPHP) 7,开源CMS系统非常丰富(如:Joomla,WordPress) 8,开源网…...

网站开发需要的技术人员有什么软件/seo是什么公司

1、JAVA中线程的状态 1-1、#对象锁 在JAVA中每一个对象都有一把‘锁’&#xff0c;这个‘锁’可以是开放状态&#xff1b;也可以由某一个线程&#xff08;或者多个线程&#xff09;持有‘钥匙’&#xff1b;一旦在系统中某个对象的‘锁’存在至少一把‘钥匙’&#xff0c;那么任…...