这是我正在尝试运行的代码:
import pyautogui
r=pyautogui.locateOnScreen('C:\Users\David\Desktop\index.png',grayscale=False)
print r
它必须是像素完美匹配才能找到。要允许任何类型的偏差,您可以调用置信度参数。
例如:
loc = pyautogui.locateOnScreen(image, grayscale=True, confidence=.5)
但是,为了使用置信度参数,您必须安装opencv_python。使用pip很容易安装:
./python -m pip install opencv_python
在此之后,您应该能够解释细微差别。
我遇到了同样的问题,我做的是
import pyautogui
r= None
while r is None:
r=pyautogui.locateOnScreen('C:\Users\David\Desktop\index.png',grayscale=False)
print r
我认为这只是因为定位图像需要时间。如果你找到了更好的解决方案与我分享:)
如果在屏幕上找不到图像,locateOnScreen()
函数将返回None
。请记住,匹配必须是像素完美才能与之匹配,因此请务必将index.png裁剪为最小的可识别大小,以防止额外的细节破坏您的匹配。此外,请确保您要查找的内容不会被其上任何其他窗口遮挡。
我通过使用以下方法得到了这个:
r = None
while r is None:
r = pyautogui.locateOnScreen('rbin.PNG', grayscale = True)
print icon_to_click + ' now loaded'
关键是使灰度=真。
我有这个问题,但后来我把照片裁剪成特定的部分,然后它找到了,是的,这需要时间。
或者这也可以。
b = pyautogui.center('calc7key.png')
我找到了解决问题的方法。仅搜索尽可能小的图像。在3秒后找到仅1个像素的图片。当我尝试搜索超过500x500的图像时,它将找不到任何东西。
我有类似的问题。
我的错是我先将比较图片保存为jpg,然后将其作为MS画面中的png保存。
请务必将比较图片保存为png格式。在此之后,Locate功能为我工作。