Python pyautogui-不检测图像时位置打印的问题

时间:2019-01-14 21:45:02

标签: pyautogui

因此,我制作了一个程序,可以检测图像并在出现图像时单击它们,并且可以正常工作,但是有一天(如果我删除了我不应该删除的内容,则为idk),但是当没有该图像时它将引发异常在屏幕上。 [代码和例外] [1]

代码很简单:

import pyautogui
location1 = pyautogui.locateCenterOnScreen('velaki.png')
print(location1)

然后错误是:

Traceback (most recent call last):
File "C:\Users\Patroklos\Desktop\FoE\taxini.PY", line 3, in <module>
    location1 = pyautogui.locateCenterOnScreen('velaki.png')
  File "C:\Python34\lib\site-packages\pyscreeze\__init__.py", line 300, in locateCenterOnScreen
    coords = locateOnScreen(image, **kwargs)
  File "C:\Python34\lib\site-packages\pyscreeze\__init__.py", line 271, in locateOnScreen
    retVal = locate(image, screenshotIm, **kwargs)
  File "C:\Python34\lib\site-packages\pyscreeze\__init__.py", line 255, in locate
    points = tuple(locateAll(needleImage, haystackImage, **kwargs))
  File "C:\Python34\lib\site-packages\pyscreeze\__init__.py", line 249, in _locateAll_python
    raise ImageNotFoundException('Could not locate the image.')
pyscreeze.ImageNotFoundException: Could not locate the image.

通常,如果未找到任何图像,则应返回None。

![1]:https://i.stack.imgur.com/0ozRR.png

4 个答案:

答案 0 :(得分:1)

似乎有一个新版本(0.9.41)引发了异常,而不是无,我没有注意到。

答案 1 :(得分:1)

我和你有完全一样的问题。事实证明,PyAutoGUI的依赖项之一; PyScreeze已于2019年1月6日从0.1.18版本更新到0.1.19。并且,在无法找到终止脚本而不返回“ None”的图像之后的某个时间,0.1.19版引发了ImageNotFound异常。

您需要做的就是将PyScreeze从0.1.19降级到0.1.18,它再次可以正常工作。

答案 2 :(得分:0)

如果您要定位的图像没有以显示的相同分辨率保存,则功能pyautogui.locateCenterOnScreen('velaki.png')将找不到它。另外,您可以使用库opencv并传递置信度值,并且图像不必匹配100%。

答案 3 :(得分:-1)

“注意:从0.9.41版开始,如果定位函数找不到所提供的图像,则它们将引发ImageNotFoundException而不是不返回None。”

它写在:https://pyautogui.readthedocs.io/en/latest/screenshot.html 但是我不知道该如何升级该模块。我有最新的。

相关问题