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

D.V*_*ous 7 python bots screen python-3.x pyautogui

我试图用来pyautogui.locateCenterOnScreen()查找屏幕上图像的确切点,但每当返回坐标时,它似乎总是大两倍(即给出(2026, 722)但实际上是(1013, 361))。我使用的是配备 Retina 显示屏且运行 macOS Sierra 的 Macbook Pro 2016。有什么建议如何解决这个问题吗?提前致谢。

图像识别结果截图

要在屏幕上定位的图像

我希望这个屏幕截图能够帮助解决我的问题。

小智 12

import pyautogui
position = pyautogui.locateCenterOnScreen('image.png')
print(position.x/2,position.y/2)
pyautogui.click(position.x/2,position.y/2)
Run Code Online (Sandbox Code Playgroud)

  • 如果您解释一下为什么这是一个解决方案,将会有所帮助 (6认同)

小智 7

Pyautogui 使用屏幕截图来查找屏幕上内容的位置。配备视网膜显示屏的 Mac 上的问题是,屏幕输出的像素数量增加了一倍,以利用系统\xe2\x80\x99 更大的像素密度来获得更清晰的图像。因此,当您截取屏幕截图时,您会得到所含像素数是非视网膜 Mac 上相同图像的两倍的图像。我目前正在研究是否可以调整图像大小并仍然能够找到匹配项(如果不使用 cv2 的模糊搜索,则相差一个像素,则没有匹配项)\n源

\n


Cla*_*dio 0

这很可能不是您可以通过查看代码或您正在使用的模块来解决的问题。最有可能的问题是你以错误的方式解释了某些事情。

如果您提供屏幕截图和您想要在其上找到的图像,那么无需猜测就可以更轻松地提供帮助。