Pyautogui 在屏幕上定位在 Windows 10 上花费了太多时间

Posted

技术标签:

【中文标题】Pyautogui 在屏幕上定位在 Windows 10 上花费了太多时间【英文标题】:Pyautogui Locate on Screen taking too much time on Windows 10 【发布时间】:2020-12-06 21:49:35 【问题描述】:

我在 Windows 10 中写了下面Pyautogui 代码。

import pyautogui as pg
import time
time.sleep(3)
while True:
    if pg.locateOnScreen('Music.png',grayscale=True):
        pg.click(pg.locateCenterOnScreen('Music.png',grayscale=True))
        break

我正在尝试在 Windows 10 的页面上定位图像,读取图像需要 27 秒

与我使用 Windows 7 时相比,它非常快,在 Windows 7 中它读取图像的速度非常快

我尝试定义特定区域以缩短搜索时间,但有时这些图像会从一个位置变化到另一个位置。

我应该进行什么设置,以便在 Windows 10 中它开始快速读取图像,或者我编写什么代码来使图像/在屏幕上定位功能更快。

【问题讨论】:

你有没有弄清楚是整个程序慢还是只是图像定位功能? 只是图像定位功能慢,休息截图等功能正常。早些时候它在 Windows 7 中很好,但是当我升级到 Windows 10 时,屏幕上的位置功能非常慢。 【参考方案1】:

如果图像始终位于区域内,您可以将区域添加到代码中以使其运行得更快。我遇到了同样的问题,我的代码从 9 秒缩短到了 1 秒以下。 例如:

import time
time.sleep(3)
while True:
    if pg.locateOnScreen('Music.png',region=(1000, 1000, 1000, 1000)grayscale=True): #by the region it is called #top, left, width, height
        pg.click(pg.locateCenterOnScreen('Music.png',grayscale=True))
        break

如果您指定该区域,它可能会起作用。 :) 也许再次检查文档。 https://pyautogui.readthedocs.io/en/latest/screenshot.html

【讨论】:

以上是关于Pyautogui 在屏幕上定位在 Windows 10 上花费了太多时间的主要内容,如果未能解决你的问题,请参考以下文章

PyAutoGUI 定位命令返回错误的图像识别坐标

Python pyautogui分辨率不同造成的图片定位与鼠标位置不一致的解决方法

Python自动操作 GUI 神器——PyAutoGUI

PyAutoGUI——图形用户界面自动化(鼠标控制功能)

如何修复 Python 3 PyAutoGUI 屏幕截图错误? (苹果系统)

pyautogui提高图片定位识别的精准度