我正在尝试使用 pyautogui 制作图像识别程序。我希望程序在可以看到特定图像时打印
"I can see it!"
,在看不到特定图像时打印 "Nope nothing there"
。
我正在使用
pyautogui.locateOnScreen
对此进行测试。如果调用返回除 None
之外的任何内容,我将打印第一条消息。否则,我打印第二个。
但是,我的代码给了我一个 ImageNotFoundException,而不是在第二种情况下打印。为什么会出现这种情况?
import pyautogui
while True:
if pyautogui.locateOnScreen('Dassault Falcon 7X.png', confidence=0.8, minSearchTime=5) is not None:
print("I can see it!")
time.sleep(0.5)
else:
print("Nope nothing there")
来自 pyautogui 文档:
注意:从版本 0.9.41 开始,如果定位函数找不到提供的图像,它们将引发 ImageNotFoundException 而不是返回 None。
您的程序假定 0.9.41 之前的行为。要将其更新为最新版本,请将 if-else 块替换为 try- except:
from pyautogui import locateOnScreen, ImageNotFoundException
while True:
try:
pyautogui.locateOnScreen('Dassault Falcon 7X.png')
print("I can see it!")
time.sleep(0.5)
except ImageNotFoundException:
print("Nope nothing there")