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/zh-tw/n/137194.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
HRCW的頭像HRCW
上一篇 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

發表回復

登錄後才能評論