pywinauto通过图片定位怎么更加精准的识别图片?

pywinauto通过图片定位怎么更加精准的识别图片?

可以使用置信度的配置,添加了对比图片相似程度达到多少就可以认为是合适的定位图片

python 复制代码
import time
from time import sleep
from pywinauto.application import Application
from pywinauto.keyboard import send_keys
from pywinauto import mouse
import pyautogui

#判断是否存在
def search_is_exist_image(image_address):
    try:
        button_location = pyautogui.locateOnScreen(image_address, confidence=0.8)
        return button_location is not None
    except Exception as e:
        logger.error(f'Error: {str(e)}')
        return False

#间隔interval秒查询下元素image_address是否存在,超过time秒则停止
def search_is_exist_with_timeout(image_address, timeout, interval):
    start_time = time.time()
    while True:
        if search_is_exist_image(image_address):
            return True
        if time.time() - start_time > timeout:
            return False
        time.sleep(interval)

#间隔interval秒查询下多个元素image_address是否存在,超过time秒则停止
def search_is_exist_images_with_timeout(image_address_list, timeout, interval):
    start_time = time.time()
    while True:
        for index,image_address in enumerate(image_address_list):
            if search_is_exist_image(image_address):
                return index
        if time.time() - start_time > timeout:
            return None
        time.sleep(interval)

#查找到元素并点击
def search_click(image_address):
    try:
        button_location = pyautogui.locateOnScreen(image_address, confidence=0.8)
        if button_location is not None:
            button_center = pyautogui.center(button_location)
            pyautogui.click(button_center) 
    except Exception as e:
        logger.error(f'Error: {str(e)}')

#查找到元素并移动上去
def search_move(image_address):
    try:
        button_location = pyautogui.locateOnScreen(image_address, confidence=0.8)
        if button_location is not None:
            button_center = pyautogui.center(button_location)
            pyautogui.moveTo(button_center, duration=0.5) 
    except Exception as e:
        logger.error(f'Error: {str(e)}')    
相关推荐
千里镜宵烛5 分钟前
互斥锁与条件变量
linux·开发语言·c++·算法·系统架构
每天的每一天21 分钟前
分布式文件系统05-生产级中间件的Java网络通信技术深度优化
java·开发语言·中间件
欧的曼36 分钟前
cygwin+php教程(swoole扩展+redis扩展)
开发语言·redis·后端·mysql·nginx·php·swoole
melody_of_Canon39 分钟前
使用 gptqmodel 量化 Qwen3-Coder-30B-A3B-Instruct
python·gptq量化
智江鹏1 小时前
Android 之 Kotlin中的符号
android·开发语言·kotlin
我想吃烤肉肉1 小时前
leetcode-python-删除链表的倒数第 N 个结点
python·算法·leetcode·链表
nanxun___1 小时前
【多模态微调】【从0开始】Qwen2-VL + llamafactory
人工智能·python·深度学习·机器学习·语言模型
艾莉丝努力练剑1 小时前
【C/C++】形参、实参相关内容整理
c语言·开发语言·c++·学习
limnade2 小时前
Flask + HTML 项目开发思路
python·flask·html
LetsonH2 小时前
⭐CVPR2025 AKiRa:让视频生成玩转相机光学的黑科技[特殊字符]
人工智能·python·科技·深度学习·数码相机·计算机视觉