PyAutoGui 无法在全屏程序中定位图像

PyAutoGui can't locate image in fullscreen program

我正在尝试在全屏游戏中自动执行任务以提高 QOL。这意味着从游戏截图中读取一个值,如果满足我设置的条件,找到图像并右键单击它。

我在使用 pyautogui locateCenterOnScreen 函数时遇到问题,它总是 returns None。

这是我遇到问题的部分:

import pyautogui
import time

pyautogui.size()
(1920, 1080)
pyautogui.FAILSAFE = True

time.sleep(3)

imageLocation = pyautogui.locateCenterOnScreen('myfilepath')

print (imageLocation)

延迟是为了确保我有足够的时间打开游戏。我使用 pyautogui 在游戏中截取屏幕截图,以便使用 OCR 从中读取,这似乎工作得很好。但是由于某种原因我无法使图像识别工作。

我尝试只使用始终保持静态的图像的一小部分,甚至使用 pyautogui 截取该区域以查看使用它自己生成的对象图像是否可行。我试过在窗口模式下玩游戏,但似乎没有任何效果。不确定这是否重要,但我已经为图像尝试了 JPG 和 PNG 文件格式。

谁能看出我错在哪里?

What I'm trying to locate

What I'm using to locate it

当我打开 PyCharm 并搜索此内容时,它会起作用:

PyCharm

所以该功能似乎可以正常工作,但在游戏中找不到。另外,我试过使用灰度选项,但还是不行。

非常感谢您的帮助。

提前致谢

齐格

万一有人发现这个问题并遇到同样的问题,我通过使用 OpenCV 而不是 pyautogui 来定位图像来解决这个问题。正如您在提供的屏幕截图中所见,它运行完美。享受!

OpenCV locating images in fullscreen game

https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_tutorials.html

试试 pyautogui 的 confidence 参数。

pyautogui.locateCenterOnScreen('myfilepath',confidence=0.9)

confidence=0.9 表示 %90 的像素相同,return true else return false。 您可以随意更改置信度值。