pyautogui识别图像的全面介绍

一、图像识别概述

图像识别是通过计算机对数字图像进行分析处理,将像素点转换成有意义的信息,进而实现对目标物体的自动识别,其被广泛应用于股票识别、人脸识别、动物识别等领域中。pyautogui是一款基于python的图像处理库,其中识别图像是其重要的功能之一。

二、pyautogui中图像识别的应用场景

pyautogui的图像识别功能被广泛应用于企业自动化、游戏辅助等领域。

企业自动化:自动化测试之类的场景需要图片匹配和位置确认,这时pyautogui的图像识别功能就可以帮忙完成任务。例如,在写测试脚本时,可以使用pyautogui识别图片来判断是否达到了预期的状态。

游戏辅助:在游戏中,一些小游戏会弹出,但是这些游戏不是我们来玩的,而是需要机器来玩。这时就需要用到pyautogui来进行图像识别与控制。

三、pyautogui中基本的图像识别与匹配函数

在使用pyautogui进行图像识别时,最常用的函数是locateOnScreen和locateCenterOnScreen。

import pyautogui
# locateOnScreen可以找到screen的图片,返回相对于屏幕左上角的位置
location = pyautogui.locateOnScreen('example.png')
# locateCenterOnScreen会返回要搜索的图像的中心点坐标
center = pyautogui.locateCenterOnScreen('example.png')

除此之外,还有其他函数用于匹配图像,比如find,find_all,locate,locateAll。

四、pyautogui中的图像识别高级应用

1.图像缩放比例问题

在使用pyautogui识别图像时,有时候会遇到缩放比例问题。这种情况可以使用函数中的region参数进行解决,将图片固定位置,避免被缩放。

# 先确定定位区域,然后将图像匹配到该区域中,状态栏被截掉。
target_location = pyautogui.locateOnScreen('window.png', region=(0, 0, 500, 500))
# 对于每一个意图匹配的区域通过缩放和滚动取到对应的相对位置
specific_region = (target_location[0], target_location[1], target_location[0] + 500, target_location[1] + 500)
pyautogui.scroll(-400)
print(pyautogui.locateOnScreen('window.png', region=specific_region))

2.使用pyautogui实现模拟鼠标和键盘事件

pyautogui的图像识别功能不仅可以用于识别图像,还可用于模拟鼠标和键盘事件。例如,用程序解锁桌面:

import pyautogui
auth_image = None
while True:
    auth_image = pyautogui.locateCenterOnScreen('lock.png')
    if auth_image is not None:
        break
pyautogui.click(auth_image) # 点击锁屏图片
pyautogui.sleep(3) # 等待屏幕锁住
pyautogui.typewrite('password') # 输入桌面密码
pyautogui.press('enter') # 模拟按下回车键

3.使用pyautogui实现自动登录

通过识别图片的方式来实现自动登录,效果比OCR识别文字要好,识别率也更高。

import pyautogui
def auto_login(password):
    while True:
        # 匹配登录按钮位置,不存在则跳过
        login_image = pyautogui.locateOnScreen('login.png', confidence=0.8)
        if login_image is None:
            continue
        # 点击登录按钮
        pyautogui.click(login_image)
        # 匹配是否弹出输入密码界面,不存在则跳过
        password_image = pyautogui.locateOnScreen('password.png', confidence=0.8)
        if password_image is None:
            continue
        # 识别并输入密码,敲击登录
        pyautogui.typewrite(password, interval=0.1)
        pyautogui.press('enter')
        break
auto_login('password')

五、pyautogui图像识别的局限

pyautogui识别速度相对较慢,而且每次图像识别需要对屏幕进行一次截图,所以不能快速地进行大规模的图片搜索工作。同时,由于识别是通过比较像素点进行的,所以在像素点相似的情况下容易误判或者漏判。

六、结语

总结来说,pyautogui图像识别是一款非常实用的图像操作库,可以进行多方面的图像相关操作,极大地提高自动化测试和游戏辅助的效率,但是在实际应用中需要注意图像识别的准确率和速度问题。

原创文章,作者:HRCW,如若转载,请注明出处:https://www.506064.com/n/137194.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
HRCWHRCW
上一篇 2024-10-04 00:17
下一篇 2024-10-04 00:17

相关推荐

  • Python应用程序的全面指南

    Python是一种功能强大而简单易学的编程语言,适用于多种应用场景。本篇文章将从多个方面介绍Python如何应用于开发应用程序。 一、Web应用程序 目前,基于Python的Web…

    编程 2025-04-29
  • 如何在Java中拼接OBJ格式的文件并生成完整的图像

    OBJ格式是一种用于表示3D对象的标准格式,通常由一组顶点、面和纹理映射坐标组成。在本文中,我们将讨论如何将多个OBJ文件拼接在一起,生成一个完整的3D模型。 一、读取OBJ文件 …

    编程 2025-04-29
  • 如何实现图像粘贴到蒙版

    本文将从多个方面介绍图像粘贴到蒙版的实现方法。 一、创建蒙版 首先,在HTML中创建一个蒙版元素,用于接收要粘贴的图片。 <div id=”mask” style=”widt…

    编程 2025-04-29
  • Python zscore函数全面解析

    本文将介绍什么是zscore函数,它在数据分析中的作用以及如何使用Python实现zscore函数,为读者提供全面的指导。 一、zscore函数的概念 zscore函数是一种用于标…

    编程 2025-04-29
  • 全面解读数据属性r/w

    数据属性r/w是指数据属性的可读/可写性,它在程序设计中扮演着非常重要的角色。下面我们从多个方面对数据属性r/w进行详细的阐述。 一、r/w的概念 数据属性r/w即指数据属性的可读…

    编程 2025-04-29
  • Python计算机程序代码全面介绍

    本文将从多个方面对Python计算机程序代码进行详细介绍,包括基础语法、数据类型、控制语句、函数、模块及面向对象编程等。 一、基础语法 Python是一种解释型、面向对象、动态数据…

    编程 2025-04-29
  • Python图像黑白反转用法介绍

    本文将从多个方面详细阐述Python图像黑白反转的方法和技巧。 一、Pillow模块介绍 Pillow是Python的一个图像处理模块,可以进行图片的裁剪、旋转、缩放等操作。使用P…

    编程 2025-04-28
  • Matlab二值图像全面解析

    本文将全面介绍Matlab二值图像的相关知识,包括二值图像的基本原理、如何对二值图像进行处理、如何从二值图像中提取信息等等。通过本文的学习,你将能够掌握Matlab二值图像的基本操…

    编程 2025-04-28
  • 疯狂Python讲义的全面掌握与实践

    本文将从多个方面对疯狂Python讲义进行详细的阐述,帮助读者全面了解Python编程,掌握疯狂Python讲义的实现方法。 一、Python基础语法 Python基础语法是学习P…

    编程 2025-04-28
  • 全面解析Python中的Variable

    Variable是Python中常见的一个概念,是我们在编程中经常用到的一个变量类型。Python是一门强类型语言,即每个变量都有一个对应的类型,不能无限制地进行类型间转换。在本篇…

    编程 2025-04-28

发表回复

登录后才能评论