我正在尝试在全屏游戏中自动执行任务以提高 QOL。这意味着从游戏的屏幕截图中读取一个值,如果满足我设置的条件,则找到图像并右键单击它。
我在使用 pyautogui locateCenterOnScreen 函数时遇到问题,它总是返回 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 文件格式。
谁能看出我错在哪里?
当我打开 PyCharm 并搜索它时,它会起作用:
因此该功能似乎可以正常工作,但在游戏中找不到。另外,我尝试过使用灰度选项,但仍然无效。
非常感谢您的帮助。
提前致谢
齐格
请您参考如下方法:
万一有人发现这个问题并遇到同样的问题,我通过使用 OpenCV 而不是 pyautogui 来定位图像来解决这个问题。正如您在提供的屏幕截图中所见,它运行完美。享受!
OpenCV locating images in fullscreen game
https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_tutorials.html
