正在尝试制作图像识别程序。代码:
from pyautogui import *
import pyautogui
import time
import keyboard
import random
import win32api, win32con
while 1:
if pyautogui.locateOnScreen('Dassault Falcon 7X.png', confidence=0.8,minSearchTime=5) != None:
print ("I can see it!")
time.sleep(0.5)
else:
print ("Nope nothing there")
出于某种原因,它总是给我红色的 imagenotfoundException,而不是我想要它在找不到任何东西时说的内容,“那里什么也没有。”
发生
ImageNotFoundException
错误是因为
pyautogui.locateOnScreen()
函数在屏幕上找不到提供的图像时会引发此异常。 这不是打印消息的函数的返回值。
要解决此问题并获得所需的行为,应该使用
try...except
块来捕获
ImageNotFoundException
并打印自己的消息。
以下是代码的更正版本:
from pyautogui import *
import pyautogui
import time
import keyboard
import random
import win32api, win32con
while 1:
try:
if pyautogui.locateOnScreen('Dassault Falcon 7X.png', confidence=0.8, minSearchTime=5):
print("I can see it!")
time.sleep(0.5)
else:
print("Nope nothing there")
except pyautogui.ImageNotFoundException:
print("Nope nothing there")
在此代码中:
-
我们将
pyautogui.locateOnScreen()
调用括在try...except
块中。 -
如果找到图像,
if
语句为真(因为locateOnScreen
返回找到的图像坐标),我们将打印“我能看见它!”。 -
如果在
minSearchTime
内未找到图像,则locateOnScreen
返回None
,我们转到else
语句并打印“不,那里什么都没有”。 -
如果在图像搜索期间引发
ImageNotFoundException
,则except
块将捕获该异常,我们将打印“不,那里什么都没有”。
此更正后的代码处理异常并提供期望的输出,而不会中断程序。
标签:python,pyautogui From: 78774364