我正在尝试将全屏游戏中的任务自动化作为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并搜索它时,它会起作用:
因此该功能似乎应该正常工作,但它无法在游戏中找到它。此外,我尝试使用灰度选项,但它仍然无效。
我真的很感激一些帮助。
提前致谢
齐格
答案 0 :(得分:1)
如果有人发现这个并且遇到同样的问题,我通过使用OpenCV而不是pyautogui找到图像来解决这个问题。它可以完美地运行,如您在截屏中看到的那样。请享用!
OpenCV locating images in fullscreen game
https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_tutorials.html