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

python 识别图片点击,设置坐标,离设置坐标越近的优先识别点击

import pyautogui
import cv2
import numpy as np
import mathdef find_and_click(template_path, target_x, target_y, match_threshold=0.8):"""在屏幕上查找目标图片并点击。Args:template_path: 目标图片的路径。target_x: 预设的坐标 x 轴值。target_y: 预设的坐标 y 轴值。match_threshold: 匹配阈值,默认值为 0.8。Returns:如果找到目标图片,则返回 True,否则返回 False。"""# 加载目标图片template = cv2.imread(template_path, cv2.IMREAD_GRAYSCALE)# 获取屏幕截图screenshot = pyautogui.screenshot()screenshot = np.array(screenshot)screenshot = cv2.cvtColor(screenshot, cv2.COLOR_BGR2GRAY)# 使用模板匹配查找目标图片result = cv2.matchTemplate(screenshot, template, cv2.TM_CCOEFF_NORMED)# 获取匹配结果match_locations = np.where(result >= match_threshold)# 如果找到匹配结果if len(match_locations[0]) > 0:# 获取匹配结果的中心坐标match_x = match_locations[1][0]match_y = match_locations[0][0]# 计算匹配结果与预设坐标的距离distance = math.sqrt((match_x - target_x)**2 + (match_y - target_y)**2)# 如果有多个匹配结果,则选择距离最近的进行点击if len(match_locations[0]) > 1:for i in range(1, len(match_locations[0])):x = match_locations[1][i]y = match_locations[0][i]new_distance = math.sqrt((x - target_x)**2 + (y - target_y)**2)if new_distance < distance:match_x = xmatch_y = ydistance = new_distance# 点击目标图片pyautogui.click(match_x, match_y)return True# 如果没有找到匹配结果else:return False# 示例代码
if __name__ == "__main__":# 目标图片路径template_path = "4.png"# 预设的坐标target_x = 100target_y = 100# 查找并点击目标图片if find_and_click(template_path, target_x, target_y):print("目标图片已点击!")else:print("未找到目标图片!")

优化代码,输出近似图片的位置坐标

import pyautogui
import cv2
import numpy as np
import mathdef find_and_print_matches(template_path, target_x, target_y, match_threshold=0.8):"""在屏幕上查找目标图片并打印所有匹配结果的位置。Args:template_path: 目标图片的路径。target_x: 预设的坐标 x 轴值。target_y: 预设的坐标 y 轴值。match_threshold: 匹配阈值,默认值为 0.8。"""# 加载目标图片template = cv2.imread(template_path, cv2.IMREAD_GRAYSCALE)# 获取屏幕截图screenshot = pyautogui.screenshot()screenshot = np.array(screenshot)screenshot = cv2.cvtColor(screenshot, cv2.COLOR_BGR2GRAY)# 使用模板匹配查找目标图片result = cv2.matchTemplate(screenshot, template, cv2.TM_CCOEFF_NORMED)# 获取匹配结果match_locations = np.where(result >= match_threshold)# 如果找到匹配结果if len(match_locations[0]) > 0:# 打印所有匹配结果的位置print("找到以下匹配结果:")for i in range(len(match_locations[0])):match_x = match_locations[1][i]match_y = match_locations[0][i]distance = math.sqrt((match_x - target_x)**2 + (match_y - target_y)**2)print(f"位置:({match_x}, {match_y}),距离:{distance:.2f}")else:print("未找到匹配结果!")# 示例代码
if __name__ == "__main__":# 目标图片路径template_path = "4.png"# 预设的坐标target_x = 100target_y = 200# 查找并打印匹配结果find_and_print_matches(template_path, target_x, target_y)

相关文章:

python 识别图片点击,设置坐标,离设置坐标越近的优先识别点击

import pyautogui import cv2 import numpy as np import mathdef find_and_click(template_path, target_x, target_y, match_threshold0.8):"""在屏幕上查找目标图片并点击。Args:template_path: 目标图片的路径。target_x: 预设的坐标 x 轴值。target_y: 预设…...

【实战教程】如何使用JMeter来轻松测试WebSocket接口?

1、websocket接口原理 打开网页&#xff1a;从http协议&#xff0c;升级到websocket协议&#xff0c;请求建立websocket连接服务器返回建立成功成功客户端向服务端发送匹配请求服务端选择一个客服上线服务器返回客服id客户端向服务器发送消息服务器推送消息给指定的客服服务器…...

【linux】详解——库

目录 概述 库 库函数 静态库 动态库 制作动静态库 使用动静态库 如何让系统默认找到第三方库 lib和lib64的区别 /和/usr/和/usr/local下lib和lib64的区别 环境变量 配置相关文件 个人主页&#xff1a;东洛的克莱斯韦克-CSDN博客 简介&#xff1a;C站最萌博主 相关…...

RuntimeError: “exp_vml_cpu“ not implemented for ‘Half‘

遇到 "exp_vml_cpu" not implemented for Half 这个运行时错误&#xff0c;意味着你尝试在一个操作中使用了半精度&#xff08;Half 或 float16&#xff09;数据类型&#xff0c;但是该操作在当前环境下并没有针对半精度数据类型的实现。 半精度&#xff08;float16&…...

JVM之双亲委派机制

1.双亲委派机制 在Java中&#xff0c;类加载器具有层次结构。每个Java实现的类加载器中保存了一个成员变量叫“父”类加载器&#xff08;parent&#xff09;&#xff0c;可以理解为上级&#xff0c;并不是继承关系。应用程序类加载器的parent父加载器是扩展类加载器&#xff0…...

Gemalto SafeNet Luna HSM服务器硬件监控指标解读

在现代化的信息安全体系中&#xff0c;硬件安全模块&#xff08;HSM&#xff09;扮演着至关重要的角色&#xff0c;它负责保护和管理敏感的数据和密钥。Gemalto SafeNet Luna HSM作为一款高性能的硬件安全模块&#xff0c;广泛应用于金融、政府和企业等领域。为了确保Luna HSM的…...

计算机视觉与人工智能领域常用期刊和会议缩写

在撰写论文时有时候会面临超篇幅的情况&#xff0c;这时候一个常用的操作便是使用期刊&#xff08;会议&#xff09;的缩写或者半缩写来替换期刊&#xff08;会议&#xff09;全称 为了方便自己后续使用相关的缩写 特此整理 如有不当之处 欢迎大家指正~~ 计算机视觉与人工智能…...

ONLYOFFICE桌面编辑器8.1版:个性化编辑和功能强化的全面升级

ONLYOFFICE是一款全面的办公套件&#xff0c;由Ascensio System SIA开发。该软件提供了一系列与微软Office系列产品相似的办公工具&#xff0c;包括处理文档&#xff08;ONLYOFFICE Document Editor&#xff09;、电子表格&#xff08;ONLYOFFICE Spreadsheet Editor&#xff0…...

用一个实例看如何分享大量照片 续篇二,关于Exif (Exchangeable Image File) - 可交换图像文件

续篇二&#xff1a;说说关于照片隐含的 Exif (Exchangeable Image File) 可交换图像文件 数码照片的Exif 参数有很多&#xff0c;重要的Exif信息&#xff1a;拍摄日期、时间、拍摄器材、GPS信息。 当然这主要对自己的档案有意义&#xff0c;如果放到网上还是建议抹去这些信息。…...

使用Python自动化收集和处理视频资源的教程

在这篇教程中&#xff0c;我们将介绍如何利用Python脚本自动化收集和处理视频资源。这篇文章将帮助您掌握基本的网络自动化技术&#xff0c;并使用相关库进行视频资源的获取和保存。以下是具体的实现步骤和代码示例。 环境准备 在开始之前&#xff0c;请确保您的工作环境中已…...

字节数组输出流转换为Base64方法记录

1. 今天在做字节数组转换Base64的时候遇到一个问题&#xff0c;转换成的Base64字符串自动换行&#xff0c;导致传输失败 关键代码&#xff1a; ByteArrayOutputStream out new ByteArrayOutputStream(); ............. BASE64Encoder encoder new BASE64Encoder(); Stri…...

在eclipse中导入idea项目步骤

一、可以把其它项目的.project&#xff0c; .classpath文件拷贝过来&#xff0c;修改相应的地方则可。 1、.project文件只需要修改<name>xxx</name>这个项目名称则可 2、.classpath文件通常不用改&#xff0c; 二、右击 项目名 >选择“Properties”>选择 Re…...

海思SS928/SD3403开发笔记4——u盘挂载

首先一定要将u盘格式化成fat32。 挂载 mkdir /mnt/usb mount /dev/sda1 /mnt/usb成功示意图&#xff1a; 取消挂载 umount /mnt/usb...

偏微分方程算法之抛物型方程差分格式编程示例六(混合边界条件下C-N格式)

目录 一、研究问题 二、C++代码 三、计算结果 一、研究问题 对于混合边界条件下的抛物型偏微分方程求解,我们使用Crank-Nicolson格式(C-N格式),边界条件采用中心差商,即...

【5G核心网】5G NWDAF(Network Data Analytics Function)网元功能介绍

博主未授权任何人或组织机构转载博主任何原创文章&#xff0c;感谢各位对原创的支持&#xff01; 博主链接 本人就职于国际知名终端厂商&#xff0c;负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作&#xff0c;目前牵头6G技术研究。 博客内容主要围绕…...

今日思考分享:全网爆火的山东车牌之歌原因是什么?

山东车牌之歌的爆火反映了一种潜在而又浅显的需求被满足的过程。 首先&#xff0c;这首歌击中了人们的“潜”需求。在日常出行中&#xff0c;我们确实会偶尔对看到的不同地区车牌产生好奇&#xff0c;但往往这种好奇心一闪而过&#xff0c;没有具体的途径去满足。而山东车牌之歌…...

Spring Boot 2.x + Mybatis Plus 多数据源配置

MP官方文档提供有多数据源配置方案&#xff0c;这里没有使用其方案&#xff0c;原因是项目不想引入过多依赖 提供一下官网的文档供各位选择多数据源支持 | MyBatis-Plus (baomidou.com) 配置文件 application.properties文件配置两个数据源信息&#xff0c;yaml文件自行修改…...

2、数据库模型图、er图

关系 user和administarators是多对一的关系 user和order是一对多的关系 shipped和order是多对一的关系 order和books是多对多的关系 leavewords和order是一对一的关系 stock和books是一对多的关系 Chens 数据库表示法——ER图 Crows Foot数据库表示法——数据库模型图 Navicat表…...

Docker的理解

Docker的理解 Docker为什么用Docker&#xff1f;1.提升系统资源利用率2.更快速的交付和部署3.高效的部署和扩容4.更简单的管理 Docker核心技术Docker镜像Docker容器Docker仓库 Docker实现原理Linux NamespaceCgroupUnion FS Docker的应用场景1.微服务架构2.持续集成3.快速部署和…...

通信协议总结

IIC 基本特点 同步&#xff0c;半双工 标准100KHz&#xff0c;最高400KHz&#xff08;IIC主要应用于低速设备&#xff09; 硬件组成 需外接上拉电阻 通信过程 空闲状态 SDA和SCL都处于高电平 开始信号S和终止信号P 在数据传输过程中&#xff0c;当SCL0时&#xff0c;SDA才…...

Pinia + 组合式写法 + 选项式写法

选项式&#xff1a; 1.定义Store import { defineStore } from pinia// option api 选项式 export const useAlterStore defineStore(alter, {state: () > {return {num: 1}},getters: { // 可以看做是计算属性doubleCount: (state) > state.num * 2},actions: {// 同…...

vCenter-vAPI-Endpoint service health shows as Yellow

- 问题摘要&#xff1a;vAPI-Endpoint service health shows as Yellow - 解决方案/工作方法&#xff1a; 使用命令重启vAPI Endpoint service后该服务运行正常。 service-control --stop vmware-vapi-endpoint service-control --start vmware-vapi-endpoint VMware KB&…...

2018年全国大学生数学建模竞赛A题高温服装设计(含word论文和源代码资源)

文章目录 一、部分题目二、部分论文三、部分Matlab源代码问题11 求解h1h22 已知h1h2求解温度分布 问题21 求解第二层最佳厚度 四、完整word版论文和源代码&#xff08;两种获取方式&#xff09; 一、部分题目 2018 年高教社杯全国大学生数学建模竞赛题目 A 题 高温作业专用服…...

UEFA EURO 2024 GERMANY

UEFA EURO 2024 GERMANY 画个流程图&#xff0c;哈哈...

Ueditor中集成135编辑器

一、背景 在资讯项目平台运营过程中&#xff0c;资讯需要排版&#xff0c;一般都是在135编辑器排好以后&#xff0c;复制到平台中UEditor编辑器中&#xff0c;所以&#xff0c;他们建议集成一下135哈 二、了解135编辑器 开始调研了解135编辑器&#xff0c;发现人家就支持集成…...

C++ type list 模板

C 实现一个type list 模板&#xff0c;在编译期计算。这个type list主要有构造&#xff0c;列表头类型&#xff0c;列表尾类型&#xff0c;concat操作&#xff0c;去除列表元素重复&#xff0c;获取指定元素&#xff0c;删除指定元素的操作。实现代码贴在下面&#xff1a; #pr…...

vscode刷LeetCode算法题环境配置

首先&#xff0c;下载nodejs 在vscode中安装LeetCode插件 安装好进行配置 选择leetcode-cn 填上刚才下载node.exe的路径 完成之后重启一下vscode 重启之后登陆LeetCode 完成之后就可以看到题目了 点击 code now 就可以开始刷题了...

OpenCV报错已解决:Vector析构异常OpencvAssert CrtlsValidHeapPointer

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 引入 在使用OpenCV进行图像处理时&#xff0c;我们可能会遇到Vector析构异常OpencvAssert CrtlsValidHeapPointer的问题。本文将…...

AudioLM音频生成模型

GPT-4o (OpenAI) AudioLM&#xff08;Audio Language Model&#xff09;是一种生成音频的深度学习模型。它可以通过学习语言模型的结构来生成连贯和高质量的音频信号。这类模型通常应用于语音合成、音乐生成和音频内容生成等领域。以下是一些与AudioLM相关的核心概念和技术细…...

Shardingsphere-Proxy 5.5.0数据迁移

Shardingsphere-Proxy 5.5.0数据迁移 Shardingsphere系列目录&#xff1a;背景配置集群部署搭建Zookeeper修改shardingsphere-proxy配置重启shardingsphere-proxy 执行数据迁移连接代理数据库实例&#xff08;Navicate&#xff09;应用代理数据库注册目标分片数据库存储单元注销…...

建设网站开发的语言有哪些/网络推广竞价外包

1、替换屏幕dts文件 替换arch/arm64/boot/dts/rockchip/rk3399pro-evb-v11.dts 此文件由屏幕厂商提供 2、修改driver文件 由于替换后出现一个问题&#xff1a;第一次上电后&#xff0c;屏幕正常显示无异常&#xff1b;当进入休眠后再唤醒起来&#xff0c;屏幕有背光无显示&…...

浙江广厦建设职业技术学院招生网站/长尾关键词爱站网

1、确认系统已经安装了SSH。rpm –qa | grep opensshyum install ssh -y ##安装SSH协议2、生成秘钥对ssh-keygen -t rsa -P ##直接回车生成的密钥对&#xff1a;id_rsa和id_rsa.pub&#xff0c;默认存储在用户的目录下 如&#xff1a;/home/oldboy/.ssh。 如下&#xff1…...

禅城区网站建设/网站排名优化软件联系方式

贰、两条主线 &#xff1a;一切的开端 &#xff08;一&#xff09;、出发点 这里只从先天的原则出发来阐明纯粹的“先验知识”中仅仅用以维计先验感性、先验知性到先验理性的自身贯通而完全独立于任何经验且先在于任何经验的两条主线&#xff0c;&#xff08;它们给出的是对哲…...

最好的电商平台/网站推广优化外包公司哪家好

RevealView项目地址&#xff1a;wangkangmao/RevealView简介&#xff1a;自定义 Drawable&#xff0c;实现图片滚动遮蔽效果。图片采用 5.0 版本支持的 SVG。更多&#xff1a;作者 提 Bug 示例 APK 标签&#xff1a;自定义Drawable-自定义 Drawable&#xff0c;实现图片滚…...

用wordpress仿一个网站模板下载/怎样做一个产品营销方案

弱视治疗的基础&#xff0c;是“大脑神经可塑性”。基于这一理论&#xff0c;大龄弱视患者&#xff0c;找到正确的治疗方法&#xff0c;能很快提高视力&#xff0c;甚至立体视。前几期推送的文章&#xff0c;分享了成人弱视治疗案例。弱视患者的视觉训练&#xff0c;主要包括&a…...

恒基建设集团网站/58同城如何发广告

这个问题实际上就是iframe sandbox 沙盒绕过&#xff0c;iframe通过sandbox属性实现沙箱模式&#xff0c;允许js脚本执行&#xff0c;可直接引用第三方js文件来绕过。禁止iframe 里的javascript 执行 top.location self.location。 也就是禁止了跳转&#xff0c;绕过了反点击劫…...