为什么PyAutoGui LocateOnScreen()仅返回None

问题描述 投票:3回答:8

这是我正在尝试运行的代码:

import pyautogui
r=pyautogui.locateOnScreen('C:\Users\David\Desktop\index.png',grayscale=False)
print r
python pyautogui
8个回答
6
投票

它必须是像素完美匹配才能找到。要允许任何类型的偏差,您可以调用置信度参数。

例如:

loc = pyautogui.locateOnScreen(image, grayscale=True, confidence=.5)

但是,为了使用置信度参数,您必须安装opencv_python。使用pip很容易安装:

./python -m pip install opencv_python

在此之后,您应该能够解释细微差别。


2
投票

我遇到了同样的问题,我做的是

import pyautogui 
r= None 
while r is None:
    r=pyautogui.locateOnScreen('C:\Users\David\Desktop\index.png',grayscale=False)
print r

我认为这只是因为定位图像需要时间。如果你找到了更好的解决方案与我分享:)


1
投票

如果在屏幕上找不到图像,locateOnScreen()函数将返回None。请记住,匹配必须是像素完美才能与之匹配,因此请务必将index.png裁剪为最小的可识别大小,以防止额外的细节破坏您的匹配。此外,请确保您要查找的内容不会被其上任何其他窗口遮挡。


1
投票

我通过使用以下方法得到了这个:

r = None
while r is None:
    r = pyautogui.locateOnScreen('rbin.PNG', grayscale = True)
print icon_to_click + ' now loaded'

关键是使灰度=真。


0
投票

我有这个问题,但后来我把照片裁剪成特定的部分,然后它找到了,是的,这需要时间。

或者这也可以。

b = pyautogui.center('calc7key.png')

0
投票

我找到了解决问题的方法。仅搜索尽可能小的图像。在3秒后找到仅1个像素的图片。当我尝试搜索超过500x500的图像时,它将找不到任何东西。


0
投票

我认为图书馆pyautogui需要几个认可点。例如,计算器上的七号:

enter image description here

Windows 10计算器上的第七个。在这种格式中,我在屏幕上找到了位置。谢谢您的意见


0
投票

我有类似的问题。

我的错是我先将比较图片保存为jpg,然后将其作为MS画面中的png保存。

请务必将比较图片保存为png格式。在此之后,Locate功能为我工作。

© www.soinside.com 2019 - 2024. All rights reserved.