版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《计算机视觉处理项目实战》✩精品课件合集✩精品课件合集第X章XXXX模块13视频处理读取摄像头与视频文件CONTENTS目录01读取摄像头与视频文件读取摄像头与视频文件VideoCapture类既支持直接从摄像机中读取视频,比如电脑自带摄像头;也支持从视频文件中读取,一般格式为“.avi”,“.mpg”格式。在OpenCV中,使用cv2.VideoCapture()作为从不同来源捕获视频的类,创建一个VideoCapture类的实例,语法格式如下所示。cap=cv.VideoCapture()参数说明device打开的视频捕获设备id,如果只有一个摄像头可以填0,表示打开默认的摄像头。filepath获取的视频文件的路径读取摄像头与视频文件要从摄像头或者视频文件逐帧捕获画面,需要调用cap.read()方法,该方法有两个返回值,一个是返回获取到的每一帧图像,另一个返回布尔值判断是都读取成功。#判断是否读取成功while(cap.isOpened()):#获取每一帧图像ret,frame=cap.read()#获取成功显示图像ifret==True:cv.imshow('frame',frame)读取摄像头与视频文件读取视频成功后,实现按键退出程序的功能,ord('q')返回“q”字符对应的8位ASCII值,而cv2.waitKey()和“0xFF”的按位与(&)运算用于仅获取cv2.waitKey()的最后8位。因此,可以对这两个值进行比较,如果相等则退出程序。ifcv.waitKey(25)&0xFF==ord('q'):break最后,使用cap.release()函数释放所有内容。cap.release()cv.destoryAllwindows()读取摄像头与视频文件importnumpyasnpimportcv2ascv#获取视频对象cap=cv.VideoCapture('./image/cap.mp4')#判断是否读取成功while(cap.isOpened()):#获取每一帧图像ret,frame=cap.read()#获取成功显示图像ifret==True:cv.imshow('frame',frame)#每一帧间隔为25msifcv.waitKey(25)&0xFF==ord('q'):break#释放视频对象cap.release()cv.destoryAllwindows()示例:读取视频文件总结01读取摄像头与视频文件视频对象属性CONTENTS目录01视频对象属性视频对象属性VideoWriter类将图片序列保存为视频。同时,通过该类,我们也可以修改视频的各种属性,完成对视频类型的转换。可以使用cap.get()方法来获取访问捕获对象的某些属性,语法格式如下所示所示。retval=cap.get(propId)参数说明0视频文件的当前位置1从0开始索引帧,帧位置2视频文件的相对位置(0表示开始,1表示结束)3视频流的帧宽度4视频流的帧高度5帧率6编解码器四字符代码7视频文件的帧视频对象属性importcv2ascvcap=cv.VideoCapture(0)#获取视频对象frame_width=cap.get(3)frame_height=cap.get(4)fps=cap.get(5)#打印属性值print("帧宽度:",frame_width)print("帧高度:",frame_height)print("帧率:",fps)示例:访问获取摄像头的帧宽度、高度以及帧率总结01视频对象属性VideoWriter类CONTENTS目录01VideoWriter类VideoWriter类OpenCV提供了写入视频的接口类VideoWriter,VideoWriter是向文件中以指定的编码格式将每一帧图片写入到视频中。在OpenCV中,提供了cv2.VideoWriter()函数来实现初始化的工作,语法格式如下所示。cap=cv.VideoWriter(filename,fourcc,fps,frameSize,isColor=true)参数说明filename保存的视频文件名,如果文件名存在,覆盖原文件fourcc指定视频编解码器的四字节代码fps帧速率framesize帧的长宽isColorBool类型,是否为彩色图像VideoWriter类在OpenCV中,cv2.VideoWriter_fourcc()函数用来设置视频的编解码器。该函数的参数有4个,这4个字符构成了编解码器的“4字标记”,每个编解码器都有一个这样的标记。典型的编解码器在Windows有DIVX(.avi)、在OS中有MJPG(.mp4),DIVX(.avi),X264(.mkv)。参数说明cv2.VideoWriter_fourcc('M','P','4','V')MPEG-4编码.mp4可指定结果视频的大小cv2.VideoWriter_fourcc('X','2','6','4')MPEG-4编码.mp4可指定结果视频的大小cv2.VideoWriter_fourcc('I','4','2','0')YUV编码类型,文件名后缀为.avi广泛兼容,但会产生大文件cv2.VideoWriter_fourcc('P','I','M','I')MPEG-1编码类型,文件名后缀为.avicv2.VideoWriter_fourcc('X','V','I','D')MPEG-4编码类型,文件名后缀为.avi,可指定结果视频的大小cv2.VideoWriter_fourcc('T','H','E','O')OggVorbis,文件名后缀为.ogvcv2.VideoWriter_fourcc('F','L','V','1')Flash视频,文件名后缀为.flvVideoWriter类importcv2ascvcap=cv.VideoCapture(0)fourcc=cv.VideoWriter_fourcc('m','p','4','v')out=cv.VideoWriter('cap.avi',fourcc,30,(640,480))whileTrue:ret,frame=cap.read()out.write(frame)cv.imshow("video",frame)ifcv.waitKey(10)==27:breakcap.release()out.release()cv.destroyAllWindows()示例:保存视频总结01VideoWriter类手写数字识别CONTENTS目录01手写数字识别手写数字识别——特征值提取假设我们要让程序识别下图中的数字(当然,你一眼就知道是“8”,但是现在要让计算机识别出来)。识别的方式是,依次计算该数字图像(即写有数字的图像)与下方数字图像的距离,与哪个数字图像的距离最近,就认为它与哪幅图像最像,从而确定这幅图像中的数字是多少。手写数字识别——特征值提取下面我们把数字图像划分成很多小块,该图中每个数字被分成6行5列,共计6x5=30个小块。此时,每个小块是由很多个像素点构成的。当然,也可以将每一个像素点理解为一个更小的子块。为了叙述上的方便,将这些小块表示为B(Bigger),将B内的像素点,记为s(Smaller)。因此,待识别的数字“8”的图像可以理解为:由6行5列,共计6x5=30个小块B构成。每个小块B内其实是由MxN个像素(更小块S)构成的。为了描述上的方便,假设每个小块大小为10x10=100个像素。手写数字识别——特征值提取手写数字识别——特征值提取然后让我们计算每个小块B内,有多少个黑色的像素点。或者这样说,计算每个小块B内有多少个更小块S是黑色的。仍以数字“8”的图像为例,其第1行中:第1个小块B共有0个像素点(更小块S)是黑色的,记为0。第2个小块B共有28个像素点(更小块S)是黑色的,记为28。第3个小块B共有10个像素点(更小块S)是黑色的,记为10。第4个小块B共有11个像素点(更小块S)是黑色的,记为11。手写数字识别——特征值提取以此类推,计算出数字“8”的图像中每一个小块B中有多少个像素点是黑色的,如下图所示。我们观察后会发现,不同的数字图像中每个小块B内黑色像素点的数量是不一样的。正是这种不同,使我们能用该数量(每个小块B内黑色像素点的个数)作为特征来表示每一个数字。手写数字识别——特征值提取有时,为了处理上的方便,我们会把得到的特征值排成一行(写为数组形式),如下所示:其他数字与数字“8”的图像类似,每个数字图像的特征值都可以用一行数字来表示。从某种意义上来说,这一行数字类似于我们的身份证号码,一般来说,具有唯一性。手写数字识别——数字识别数字识别要做的就是比较待识别图像与图像集中的哪个图像最近。这里,最近指的是二者之间的欧氏距离最短。本例中为了便于说明和理解进行了简化,将原来下方的10个数字减少为2个(也即将分类从10个减少为2个)。假设要识别的图像为图中上方的数字“8"图像,就要判断该图像到底属于图中下方的数字“8"图像的分类还是数字“7”图像的分类。手写数字识别——数字识别提取特征值,分别提取待识别图像的特征值和特征图像的特征值。为了说明和理解上的方便,将特征进行简化,每个数字图像只提取4个特征值(划分为2x2=4个子块B),如图所示。此时,提取到的特征值分别为:待识别的数字“8”图像:[3,7,8,13]
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025江西婺源茶业职业学院工作人员招聘考试试题
- 2025江苏省邳州中等专业学校工作人员招聘考试试题
- 库内拦挡坝施工组织设计
- 八年级下学期道德与法治期末复习提纲
- 2026年数字孪生行业创新报告
- 卵石水系施工方案
- 小学生学校运动会参与对运动技能提升的研究与实践教学研究课题报告
- 高中生通过遥感数据模型分析森林砍伐对碳循环影响的课题报告教学研究课题报告
- 跨境数字内容分发网络建设与虚拟旅游体验可行性分析报告
- 初中生对AI在航天器故障诊断中兴趣与理解课题报告教学研究课题报告
- 2026年重庆烟草招聘考试试题及答案
- 2026年设备出售转让合同(1篇)
- 2026年事业单位面试结构化100例
- 河南省2026年普通高等学校对口招收中等职业学校毕业生考试机电与制造类基础课试卷
- 河南省农村中小学闲置校园校舍的调查与再生路径研究
- 黑龙江省控制性详细规划编制规范
- 饮用水水质PH值安全控制检测标准
- 2026中考英语时文热点:跨学科融合阅读 练习(含解析)
- 河北石家庄文旅投建设集团有限公司招聘笔试题库2025
- GB/T 1920-1980标准大气(30公里以下部分)
- “天然气11.20”事故纪实(定)
评论
0/150
提交评论