《嵌入式人工智能技术应用》课件 1.4-使用OpenCV进行视频录制与视频读取_第1页
《嵌入式人工智能技术应用》课件 1.4-使用OpenCV进行视频录制与视频读取_第2页
《嵌入式人工智能技术应用》课件 1.4-使用OpenCV进行视频录制与视频读取_第3页
《嵌入式人工智能技术应用》课件 1.4-使用OpenCV进行视频录制与视频读取_第4页
《嵌入式人工智能技术应用》课件 1.4-使用OpenCV进行视频录制与视频读取_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

项目一使用OpenCV实现人脸检测嵌入式人工智能技术应用OpenCV进行视频录制与视频读取任务四职业能力目标01任务描述与要求02任务分析与计划03知识储备04任务实施05任务检查与评价06任务小结07任务拓展08任务四OpenCV进行视频录制与视频读取了解opencv录制和读取视频原理;了解基础的视频格式与FourCC。能使用VideoWriter_fourcc方法设置视频编解码的方式;能使用VideoWriter方法进行视频录制;能使用VideoCapture方法读取视频。职业能力目标01知识目标技能目标职业能力目标01任务描述与要求02任务分析与计划03知识储备04任务实施05任务检查与评价06任务小结07任务拓展08任务三OpenCV进行视频录制与视频读取

本实验将实现把USB摄像头实时采集并显示在触摸屏的画面存成视频文件,以及读取avi格式的视频。任务描述任务要求将USB摄像头采集的画面按照指定路径和文件名存为视频文件;读取指定路径下的视频文件,在notebook呈现视频画面。任务描述与要求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知识储备FourCC2视频编码1VideoWriter()3视频编码04所谓视频编码方式就是指通过压缩技术,将原始视频格式的文件转换成另一种视频格式文件的方式。由于连续的帧之间相似性极高,为便于储存传输,我们需要对原始的视频进行编码压缩,以去除空间、时间维度的冗余。视频编码04

视频编码格式也称为视频文件格式,是针对不同平台、程序和设备优化数字视频文件的方法。视频编码格式有许多种类,但每一种都包含两个主要组成部分,即编解码器和容器。编解码器和容器指定了存储、传输和观看未压缩视频输入的方式。在流式传输中有一点很重要,编码格式应与尽可能广泛的设备兼容,以便所有用户都可以观看流视频。

正确选择视频格式取决于三个主要因素:存储可用性、视频输出质量,以及与不同视频播放器或程序的兼容性。什么是视频编码格式?FourCC04知识储备视频编码213VideoWriter()

FourCC全称Four-CharacterCodes,代表四字符代码,它是一个32位的标示符,其实就是typedefunsignedintFOURCC,是一种独立标示视频数据流格式的四字符代码。FourCC常用视频编解码如下。04FourCC标志作用VideoWriter_fourcc('D','I','V','X')MPEG-4编码VideoWriter_fourcc('P','I','M','1')MPEG-1编码VideoWriter_fourcc('M','J','P','G')JPEG编码(运行效果一般)VideoWriter_fourcc('M','P','4','2')MPEG-4.2编码VideoWriter_fourcc('D','I','V','3')MPEG-4.3编码VideoWriter_fourcc('U','2','6','3')H263编码VideoWriter_fourcc('I','2','6','3')H263I编码VideoWriter_fourcc('F','L','V','1')FLV1编码FourCC04知识储备视频编码312VideoWriter()VideoWriter()04cv2.VideoWriter_fourcc(brief):用于设置视频编解码的方式brief:设置编解码方式返回值:返回一个fourcc代码VideoWriter(filename,fourcc,fps,frameSize):创建视频流写入对象filename:要保存的文件的路径fourcc:fourcc指定编码器fps:要保存的视频的帧率frameSize:要保存的文件的画面尺寸videoName变量定义为video_record.avi,字符串类型。codec变量定义为MJPG格式。fps变量定义为写入帧率为20frameSize变量定义视频帧大小为(640,480)职业能力目标01任务描述与要求02任务分析与计划03知识储备04任务实施05任务检查与评价06任务小结07任务拓展08任务四OpenCV进行视频录制与视频读取05任务实施视频读取2视频录制142创建VideoWriter实例1创建videocapture实例3写入帧图像封装成类进行视频录制视频录制05视频录制OpenCV可以针对摄像头或视频进行处理,将需要的画面保留下来,保存成一个.avi的文件。OpenCV进行录制视频的相关操作,主要涉及OpenCV的VideoWriter对象,VideoWriter是用来创建视频文件的类。注意:OpenCV只支持.avi的格式,而且生成的视频文件不能大于2GB,而且不能添加音频。视频录制05importcv21.创建videocapture实例(1)导入cv2python-opencv在python中的包名称叫做cv2。cap=cv2.VideoCapture(0)(2)创建videocapture实例录制视频的第一步要实例化一个VideoCapture对象。用于从USB摄像头读入图片。创建VideoCapture对象的时候,我们需要传入一个合适的摄像头编号。cv2.VideoCapture(0):0表示默认为笔记本上的摄像头(如果有的话)/USB摄像头。视频录制05video_path='./exp/video_record.avi'#指定视频编解码方式为MJPGcodec=cv2.VideoWriter_fourcc(*'MJPG')fps=20.0#指定写入帧率为20frameSize=(640,480)#指定窗口大小#创建VideoWriter对象out=cv2.VideoWriter(video_path,codec,fps,frameSize)2.创建VideoWriter实例opencv中视频录制需要借助VideoWriter对象,其原理是将从VideoCapture中读入图片,不断地写入到VideoWrite的数据流中形成视频。cv2.VideoWriter_fourcc(brief):用于设置视频编解码的方式。brief:设置编解码方式。返回值:返回一个fourcc代码。VideoWriter(filename,fourcc,fps,frameSize):创建视频流写入对象。filename:要保存的文件的路径;fourcc:fourcc指定编码器;fps:要保存的视频的帧率;frameSize:要保存的文件的画面尺寸。视频录制05ret,frame=cap.read()3.写入帧图像(1)读取图像使用cap.read()获取一帧图片,cap.read()返回值有两个,分别赋值给ret,frame。ret:若画面读取成功,则返回True,反之返回False;frame:是读取到的图片对象(numpy的ndarray格式)。out.write(frame)(2)写入帧图像使用上述创建的out对象,调用.write()方法,将把VideoCapture中读到的图片写入到VideoWrite的数据流中。cap.release()out.release()(3)最后资源释放在录制结束后,我们要释放资源:cap.release():停止捕获视频;out.release():释放创建视频流写入对象。视频录制054.封装成线程类进行视频录制1、在init函数中传入videoName参数用于传入保存的视频文件名,定义标志位变量、打开摄像头、定义VideoWriter的3个参数并创建对象;2、使用本文1.5追加帧结合循环,通过循环的方式反复的将读取到的每一帧写入到VideoWrite的数据流中,就能够进行视频录制;3、在run函数中构建视频窗口:循环体里读取摄像头图像、写入帧图像、更新显示图片、图像显示的时长。4、在stop函数中定义标志位变量、摄像头释放、释放视频流写入对象、窗口释放;5、用线程的方式运行函数,再对视频进行录制与退出。视频录制05a=videoRecordThread('./exp/video_record.avi')a.start()4.封装成线程类进行视频录制启动线程实例化一个videoRecordThread()线程类,实例化时传入视频录制要保存的文件名video_record.avi,实例化对象为a。线程对象a调用start()方法,开始执行videoRecordThread()线程类中的run()函数。a.stop()关闭线程实例化对象a调用videoRecordThread()线程类中的stop()函数,来退出线程,停止录制。05任务实施视频读取2视频录制1视频读取051、在init函数中传入videoName参数用于传入读取的视频文件名,定义标志位变量、打开视频文件;2、在run函数中构建视频窗口:循环体中读取摄像头图像、更新显示图片、图像显示的时长;循环体结束后摄像头释放、窗口释放。3、在stop函数中定义标志位变量、摄像头释放、窗口释放;4、再对视频进行播放。视频读取05a=videoReadThread('./exp/video_record.avi')a.start()启动线程实例化一个videoReadThread()线程类,实例化时传入视频要读取的文件名,这里文件名为上文保存的video_record.avi,实例化对象为a。线程对象a调用start()方法,开始执行videoReadThread()线程类中的run()函数。。a.stop()关闭线程通过实例化对象a调用videoReadThread()线程类中的stop()函数,来提前退出线程,停止播放。职业能力目标01任务描述与要求02任务分析与计划03知识储备04任务实施05任务检查与评价06任务小结07任务拓展08任务四OpenCV进行视频录制与视频读取任务检查与评价06序号评价内容评价标准分值得分1知识运用(20%)掌握相关理论知识,理解本次任务要求,制定详细计划,计划条理清晰,逻辑正确(20分)20分

理解相关理论知识,能根据本次任务要求、制定合理计划(15分)了解相关理论知识,有制定计划(10分)无制定计划(0分)2专业技能(40%)完成导入包、读取图像、图像录制、视频流录制、视频读取。(40分)40分

完成导入包、读取图像、图像录制、视频流录制。(30分)完成导入包、读取图像、图像录制。(20分)完成导入包、读取图像。(10分)没有完成导入包、读取图像。(0分)

温馨提示

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

评论

0/150

提交评论