首页 > 编程问答 >为什么 pyautogui 说“ImageNotFoundException”而不是“那里什么都没有”?

为什么 pyautogui 说“ImageNotFoundException”而不是“那里什么都没有”?

时间:2024-07-21 12:17:24浏览次数:10  
标签:python pyautogui

正在尝试制作图像识别程序。代码:

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")

在此代码中:

  1. 我们将 pyautogui.locateOnScreen() 调用括在 try...except 块中。
  2. 如果找到图像, if 语句为真(因为 locateOnScreen 返回找到的图像坐标),我们将打印“我能看见它!”。
  3. 如果在 minSearchTime 内未找到图像,则 locateOnScreen 返回 None ,我们转到 else 语句并打印“不,那里什么都没有”。
  4. 如果在图像搜索期间引发 ImageNotFoundException ,则 except 块将捕获该异常,我们将打印“不,那里什么都没有”。

此更正后的代码处理异常并提供期望的输出,而不会中断程序。

标签:python,pyautogui
From: 78774364

相关文章

  • python入门基础——新手必看
    前言随着人工智能,大数据的发展。python是当前时代最流行,可以在数据处理、web开发、人工智能等多个领域。它的语法简洁、开发效率高、可移植性强,并且可以和其他变成语言(比如C++)轻松衔接,本文主要讲述一些python的变量,基本数据类型,输入、输出,数据类型的转换,运算符等一些必需的......
  • python中逗号运算符的含义
    我理解了python中逗号运算符的简单概念。例如,x0,sigma=0,0.1表示x0=0,sigma=0.1。但我获得了一个代码,其中有一行如下所示。y,xe=np.histogram(np.random.normal(x0,sigma,1000))其中y和xe的输出如下。yOut[10]:array([3,17,58,136,216,25......
  • 【科大讯飞笔试题汇总】2024-07-20-科大讯飞秋招提前批(研发岗)-三语言题解(Cpp/Java/
    ......
  • Python - Pandas - loc vs iloc (DataFrame.loc[:,['column_name':]])
    原文链接:https://blog.csdn.net/weixin_48964486/article/details/123150832————————————————————————————————————————————————关于python数据分析常用库pandas中的DataFrame的loc和iloc取数据基本方法总结归纳及示例如下:1.......
  • 在 Python 中将 2 列的数据框转换为一系列 2 列
    我正在尝试处理一些时间序列数据,并且对pandas数据框相当陌生。我有一个包含两列的数据框,如下所示:+---+-----------------------+-------+--+||0|1||+---+-----------------------+-------+--+|1|2018-08-0223:00:00|456.8||......
  • 基于python的非平稳时间序列模型
    前言平稳时间序列指的是宽平稳时间序列,就是指时间序列的均值、方差和协方差等一二阶矩存在但不随时间改变,表现为时间的常数。若三个条件有一个不成立,那么就称该序列为非平稳时间序列。包括确定性趋势时间序列和随机性趋势时间序列。要想把非平稳的时间序列转化为平稳的时......
  • 猫头虎 Python知识点分享:pandas--read_csv()用法详解
    ......
  • 使用 Python 绘图
    我有一个.txt文件,从中找到有序对,然后使用numpy和matplotlib绘制图形。例如,这些是我的有序对:[[(4.0,0),(0,6.0)],[(6.0,0),(0,3.0)]](每个子列表代表最终图形中的一条线)图形如下所示:但我想找到两条线之间的交点。如果有更多的线,我怎样才能找到它们......
  • 用python计算形状的距离
    我想计算该图像的最小垂直距离和最大水平距离。就像线条一样。我正在尝试:_,binary_image=cv2.threshold(image,0,255,cv2.THRESH_BINARY)horizontal_distances=np.sum(binary_image==255,axis=1)max_horizontal_distance=np.max(horizontal_distance......
  • 在感知器学习模型的 Python 实现中将数组传递给 numpy.dot()
    我正在尝试将单层感知器分类器的Python实现放在一起。我发现SebastianRaschka的《Python机器学习》一书中的示例非常有用,但我对他的实现的一小部分有疑问。这是代码:importnumpyasnpclassPerceptron(object):"""Perceptronclassifier.Parameters......