《嵌入式人工智能技术应用》课件 1.3-OpenCV实现视频流的调用_第1页
《嵌入式人工智能技术应用》课件 1.3-OpenCV实现视频流的调用_第2页
《嵌入式人工智能技术应用》课件 1.3-OpenCV实现视频流的调用_第3页
《嵌入式人工智能技术应用》课件 1.3-OpenCV实现视频流的调用_第4页
《嵌入式人工智能技术应用》课件 1.3-OpenCV实现视频流的调用_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

项目一使用OpenCV实现人脸检测嵌入式人工智能技术应用OpenCV实现视频流的调用任务三职业能力目标01任务描述与要求02任务分析与计划03知识储备04任务实施05任务检查与评价06任务小结07任务拓展08任务三OpenCV实现视频流的调用掌握视频流的调用方法。能使用opencv和while循环构建视频流。职业能力目标01知识目标技能目标职业能力目标01任务描述与要求02任务分析与计划03知识储备04任务实施05任务检查与评价06任务小结07任务拓展08任务三OpenCV实现视频流的调用

本实验将实现在触摸屏实时显示USB摄像头采集的画面。任务描述任务要求触摸屏能实时显示USB摄像头采集的画面;能随时退出视频流调用。任务描述与要求02职业能力目标01任务描述与要求02任务分析与计划03知识储备04任务实施05任务检查与评价06任务小结07任务拓展08任务三使用OpenCV实现人脸检测任务分析实现opencv调用视频流可能会涉及到哪些步骤?根据自己的了解说说视频和图像之间的关系?任务分析与计划03任务计划表项目名称使用OpenCV实现人脸检测任务名称OpenCV实现视频流的调用计划方式自主设计计划要求请用6个计划步骤来完整描述出如何完成本次任务序号任务计划1

2

3

4

5

6

通过上面的思考,你是否对本任务要完成的工作有所了解?让我们一起来制订完成本次任务的实施计划吧!任务分析与计划03职业能力目标01任务描述与要求02任务分析与计划03知识储备04任务实施05任务检查与评价06任务小结07任务拓展08任务三OpenCV实现视频流的调用04知识储备线程threading库23进程1进程04进程指正在运行的程序。每一个进程提供执行程序所需的所有资源。每个还要有至少一个线程,因为每一个进程启动时都会最先产生一个线程,即主线程,然后主线程可以再创建其他的子线程。进程04

进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。

在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。

进程的概念进程04狭义定义:进程是正在运行的程序的实例(aninstanceofacomputerprogramthatisbeingexecuted)。广义定义:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。进程的定义进程04进程的状态1、三态模型一般来说,按进程在执行过程中的不同情况至少要定义三种不同的进程状态:(1)运行(running)态:进程占有处理器正在运行。(2)就绪(ready)态:进程具备运行条件,等待系统分配处理器以便运行。(3)等待(wait)态:又称为阻塞(blocked)态或睡眠(sleep)态,指进程不具备运行条件,正在等待某个事件的完成。进程04进程的状态1、五态模型在一个实际的系统里进程的状态及其转换比上节叙述的复杂一些,例如,引入专门的新建态(new)和终止态(exit)。线程04知识储备进程21threading库3线程是操作系统能够进行运算调度的最小单位,是进程中的实际执行单元,负责当前进程中程序的执行,一个进程中至少有一个线程,一个进程中可以包含多个线程,可以称之为多线程程序。

由于线程是操作系统直接支持的执行单元,因此,高级语言通常都内置多线程的支持,

Python也不例外,并且,Python的线程是真正的PosixThread,而不是模拟出来的线程。04线程思考一下,针对多任务我们该怎么减少计算时间?在多线程OS中,通常是在一个进程中包括多个线程,每个线程都是作为利用CPU的基本单位,是花费最小开销的实体。线程具有以下属性:1)轻型实体2)独立调度和分派的基本单位。3)可并发执行。4)共享进程资源。04线程线程的特点1)地址空间和其它资源(如打开文件):进程间相互独立,同一进程的各线程间共享。某进程内的线程在其它进程不可见。2)通信:进程间通信IPC,线程间可以直接读写进程数据段(如全局变量)来进行通信——需要进程同步和互斥手段的辅助,以保证数据的一致性。3)调度和切换:线程上下文切换比进程上下文切换要快得多。4)在多线程OS中,进程不是一个可执行的实体。04线程与进程的区别线程04知识储备进程21threading库3threading库04

进程有可以拥有多个线程,所以threading库提供了管理多个线程执行的API,允许程序在同一个进程空间并发地运行多个操作。

threading库是python的多线程库,利用threading库我们可以轻松实现多线程任务。Python的标准库提供了两个模块:

_thread

threading

_thread是低级模块,threading是高级模块,对_thread进行了封装。

绝大多数情况下,我们只需要使用threading这个高级模块。

threading模块中最核心的内容是Thread这个类。

创建Thread对象,然后执行线程,每个Thread对象代表一个线程,每个线程可以让程序处理不同的任务,这就是多线程编程。04threading库04threading库线程对象递归锁对象锁对象栅栏对象事件对象定时器对象threading模块中包含了关于线程操作的丰富功能threading.Thread(group,target=None,name=None,args=(),kwargs={},daemon=None)职业能力目标01任务描述与要求02任务分析与计划03知识储备04任务实施05任务检查与评价06任务小结07任务拓展08任务三OpenCV实现视频流的调用回顾线程的调用2回顾图像的读取与保存2105OpenCV读入USB摄像头拍摄的画面显示至开发板3回顾图像的读取与保存05importcv2#引入opencv库函数importtime#打开摄像头cap=cv2.VideoCapture(0)print("摄像头是否已经打开?{}".format(cap.isOpened()))#画面宽度设定为1920高度度设定为1080cap.set(cv2.CAP_PROP_FRAME_WIDTH,1920)cap.set(cv2.CAP_PROP_FRAME_HEIGHT,1080)#构建视频的窗口dWindow('image_win',flags=cv2.WINDOW_NORMAL|cv2.WINDOW_KEEPRATIO)cv2.setWindowProperty('image_win',cv2.WND_PROP_FULLSCREEN,cv2.WINDOW_FULLSCREEN)#全屏展示#读取摄像头图像ret,frame=cap.read()#更新窗口“image_win”中的图片cv2.imshow('image_win',frame)#等待按键事件发生等待5000mscv2.waitKey(5000)#保存图片cv2.imwrite("./exp/img_3.1.png",frame)#释放VideoCapturecap.release()#销毁所有的窗口cv2.destroyAllWindows()回顾线程的调用2回顾图像的读取与保存2105OpenCV读入USB摄像头拍摄的画面显示至开发板3启动线程的第二种方式05classvideoThread(threading.Thread):def__init__(self):super(videoThread,self).__init__()self.working=True#循环标志位

defrun(self):#start()后运行run函数

whileself.working:print("这是一个线程")time.sleep(2)defstop(self):self.working=Falseprint("退出线程")(1)定义线程类a=videoThread()(2)实例化线程类a.start()(3)启动线程a.stop()(4)关闭线程回顾线程的调用2回顾图像的读取与保存2105OpenCV读入USB摄像头拍摄的画面显示至开发板3OpenCV读入USB摄像头拍摄的画面显示至开发板05(1)定义线程类通过结合任务1和任务2中的内容,使用OpenCV从USB摄像头读取视频流,并在开发板中显示出来。OpenCV读入USB摄像头拍摄的画面显示至开发板05a=videoThread()(2)实例化线程类实例化一个videoThread()线程类,实例化对象为a。a.start()(3)启动线程线程对象a调用start()方法,开始执行videoThread()线程类中的run()函数。a.stop()(4)关闭线程实例化对象a调用videoThread()线程类中的stop()函数,来退出线程。职业能力目标01任务描述与要求02任务分析与计划03知识储备04任务实施05任务检查与评价06任务小结07任务拓展08任务三OpenCV实现视频流的调用任务检查与评价06序号评价内容评价标准分值得分1知识运用(20%)掌握相关理论知识,理解本次任务要求,制定详细计划,计划条理清晰,逻辑正确(20分)20分

理解相关理论知识,能根据本次任务要求、制定合理计划(15分)了解相关理论知识,有制定计划(10分)无制定计划(0分)2专业技能(40%)完成回顾图像的读取与保存、回顾线程的调用、视频流图像的显示与退出。(40分)40分

完成回顾图像的读取与保存、回顾线程的调用。(30分)完成回顾图像的读取与保存。(20分)没有完成回顾图像的读取与保存。(0分)3核心素养(20%)具有良好的自主学习能力、分析解决问题的能力、整个任务过程中有指导他人(20分)20分

具有较好的学习能力和分析解决问题的能力,任务过程中无指导他人(15分)能够主动学习并收集信息,有请教他人进行解决问题的能力(10分)不主动学习(0分)4课堂纪律(20%)设备无损坏、设备摆放整齐、工位区域内保持整洁、无干扰课堂秩序(20分)20分

设备无损坏、无干扰课堂秩序(15分)无干扰课堂秩序(10分)干扰课堂秩序(0分)总得分1、请参照评价标准完成自评和对其他小组的互

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论