我正在尝试使用pyautogui.locateCenterOnScreen()
在屏幕上找到图像的确切点,但每当返回坐标时,它似乎总是大两倍(即给出(2026, 722)
但实际上是(1013, 361)
)。我正在使用带有Retina Display的Macbook Pro 2016运行macOS Sierra。有什么建议如何解决这个问题?提前致谢。
Image Recognition Result Screenshot
我希望这个屏幕截图有助于解决我的问题。
答案 0 :(得分:2)
import pyautogui
position = pyautogui.locateCenterOnScreen('image.png')
print(position.x/2,position.y/2)
pyautogui.click(position.x/2,position.y/2)
答案 1 :(得分:1)
出于某种原因,我的 m1 Macbook 不喜欢这些答案,所以这就是我想出的。
position2 = position[0]/2, position[1]/2, position[2]/2, position[3]/2
pyautogui.moveTo(position2)
pyautogui.click()
答案 2 :(得分:0)
最有可能的是,通过查看您正在使用的代码或模块,您可以解决这个问题。最有可能的问题是你以错误的方式解释某事。
如果您提供屏幕截图和想要在其上找到的图像,那么无需猜测就可以更轻松地提供帮助。
答案 3 :(得分:0)
我对MacBook也有这个问题。我只能认为它与MacBook及其发送屏幕信息的方式有关。
作为一种解决方法,我刚刚将坐标除以2。
答案 4 :(得分:0)
Pyautogui使用screencaps在屏幕上查找内容的位置。带有视网膜显示屏的Mac上的问题是屏幕输出的像素数量是两倍,以利用系统更高的像素密度来获得更清晰的图像。因此,当您截取屏幕截图时,您会得到一个包含两倍数字的图像像素来自非视网膜Mac的相同图像。我目前正在研究是否可以调整图像大小并仍然能够找到匹配(如果不使用cv2模糊搜索则关闭一个像素并且不匹配) source