首页 > 编程问答 >NameError:名称“img”未定义

NameError:名称“img”未定义

时间:2024-08-01 16:24:13浏览次数:10  
标签:python opencv machine-learning yolov5 cudnn

cap = cv2.VideoCapture('video.mp4')
def realTime():
    while True:
        success, img = cap.read()
        img =cv2.resize(img,(0,0),None,0.5,0.5)
        ih, iw, channels = img.shape
        # Draw the crossing lines
        cv2.line(img, (0, middle_line_position), (iw, middle_line_position), (255, 0, 255), 1)
        cv2.line(img, (0, up_line_position), (iw, up_line_position), (0, 0, 255), 1)
        cv2.line(img, (0, down_line_position), (iw, down_line_position), (0, 0, 255), 1)
        # Show the frames
        cv2.imshow('Output', img)
        if __name__ == '__main__':
            realTime()
input_size = 320
blob = cv2.dnn.blobFromImage(img, 1 / 255,(input_size,input_size), [0, 0, 0], 1, crop=False)

所以这是我的代码,它一直在 blob 分配行上抛出错误 NameError: name 'img' is not defined

我尝试更新所有命令和模块,但仍然显示此错误,现在我找不到解决方案


你的错误信息 “NameError: name 'img' is not defined” 出现的原因是你在 realTime() 函数外使用变量 img ,而它是在 realTime() 函数内部定义的。因此,在 realTime() 函数外部, img 是不可见的。

为了解决这个问题,你需要在 realTime() 函数内部处理 img 变量,或者将 img 变量定义为全局变量。

方法一:在 realTime() 函数内部处理 img

将使用 img 的代码移到 realTime() 函数内部,例如:

cap = cv2.VideoCapture('video.mp4')
input_size = 320

def realTime():
    while True:
        success, img = cap.read()
        img =cv2.resize(img,(0,0),None,0.5,0.5)
        ih, iw, channels = img.shape
        # Draw the crossing lines
        cv2.line(img, (0, middle_line_position), (iw, middle_line_position), (255, 0, 255), 1)
        cv2.line(img, (0, up_line_position), (iw, up_line_position), (0, 0, 255), 1)
        cv2.line(img, (0, down_line_position), (iw, down_line_position), (0, 0, 255), 1)

        # 在这里使用 img 变量
        blob = cv2.dnn.blobFromImage(img, 1 / 255,(input_size,input_size), [0, 0, 0], 1, crop=False)
        # ... 其他使用 img 的代码

        # Show the frames
        cv2.imshow('Output', img)
        if __name__ == '__main__':
            realTime() 

方法二:将 img 定义为全局变量

在函数外部定义 img ,并在函数内部使用 global img 声明:

img = None
cap = cv2.VideoCapture('video.mp4')
input_size = 320

def realTime():
    global img
    while True:
        success, img = cap.read()
        # ... 其他代码
        cv2.imshow('Output', img)

if __name__ == '__main__':
    realTime()

blob = cv2.dnn.blobFromImage(img, 1 / 255,(input_size,input_size), [0, 0, 0], 1, crop=False)
# ... 其他使用 img 的代码 

建议

尽量避免使用全局变量,因为它可能会导致代码难以理解和维护。如果可以,尽量将 img 变量的处理逻辑封装在函数内部,并通过函数参数传递。

标签:python,opencv,machine-learning,yolov5,cudnn
From: 78819790

相关文章

  • 为什么Python库中还没有Gauss-Jordan消去函数?
    Gaussian-Jordan消除法是一种常用且方便的技术。在矩阵计算中,该方法得到广泛应用。但是,Python库中没有此方法的内置函数。设计这样的功能并不困难。开发人员似乎忽略了这个功能。这可能是什么原因?希望开发者能够重视这一点,并开发与该方法相关的功能。虽然高斯-约旦消元......
  • Python爬虫 - js逆向之扣出某平台的_signature加密字段
    前言好久没有做逆向案例分析了,最近都在看同行朋友写好的案例,感觉学到很多,算是取长补短了不多bb,机缘巧合下,拿到个目标网站分析首先抓个包,就看到请求参数里带着这几个参数主要就是_signature了,其他的参数都不重要得想必你一看就知道啥意思了。行,开始分析_signature......
  • python 音频处理(1)——重采样、音高提取
    采集数据->采样率调整使用torchaudio进行重采样(cpu版)首先导入相关包,既然使用torch作为我们的选项,安装torch环境我就不必多说了,如果你不想用torch可以使用后文提到的另一个库1importtorch2importtorchaudio3fromtorchaudio.transformsimportResample4fromtime......
  • 用于从连接到 LAN 交换机的四个 Arduino 扩展板读取/保存数据的 Python 代码
    我有四个Arduino扩展板连接到LAN交换机。每个人都会发出一条“HelloJane”消息。LAN交换机已连接到我的PC。我需要将每个Arduino的数据/消息保存在PC上的单独文件夹中。请帮助使用Python脚本/代码。我能够看到来自所有四个Arduino的消息,但无法将它们保存到文......
  • 使用 Python 生产者和消费者在 Kubernetes minikube 上设置 Kafka Kraft
    我正在尝试从kubernetes集群外部连接到kubernetesminikubekafkapod。服务器启动没有任何问题,但我无法设法将本地kafka生产者/消费者连接到外部kafkapod。在集群内的kafka服务器映像上,我将bootstrap-server设置为:bin/kafka-topics.sh--create--bootst......
  • python llama_index.indices.list.retrievers 导入错误
    fromllama_indeximportGPTListIndexfromllama_index.indices.list.retrieversimportListIndexLLMRetrieverdocuments=SimpleDirectoryReader('./data').load_data()index=GPTListIndex.from_documents(documents,service_context=service_context)r......
  • 如何使用 python 和 bs4 修复抓取 web 表输出 csv
    请帮帮我,,我想在“td”、“Barcode”和“namaproduk”中获取2个数据,但我得到的数据非常糟糕。我应该修复什么?importcsvimportrequestsfrombs4importBeautifulSoupoutfile=open("dataaa.csv","w",newline='')writer=csv.writer(outfile)page=0whilepag......
  • 基于Django的超市小程序+47822(免费领源码)可做计算机毕业设计JAVA、PHP、爬虫、APP、小
    基于django超市小程序摘 要随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,超市小程序被用户普遍使用,为方便用户能够可以随时进行超市小程序的数据信息管理,特开发了基于djan......
  • 【优秀python django系统案例】基于python的医院挂号管理系统,角色包括医生、患者、管
    随着信息技术的迅猛发展,传统的医院挂号管理方式面临着效率低下、排队时间长、信息不对称等诸多问题。这些问题不仅影响患者的就医体验,也加重了医院工作人员的负担。在此背景下,基于Python的医院挂号管理系统应运而生。该系统旨在通过信息化手段优化挂号流程,提高管理效率,提升医疗......
  • Python-PLAXIS自动化建模技术与典型岩土工程
    原文链接:Python-PLAXIS自动化建模技术与典型岩土工程https://blog.csdn.net/2301_78164062/article/details/140607885?spm=1001.2014.3001.5501一:Plaxis软件及PlaxisPythonAPI环境搭建1、Plaxis2D\Plaxis3D软件2、面向对象编程语言Python及其开发环境Spyder3、Plaxis输......