zoukankan      html  css  js  c++  java
  • OpenCV读取视频的格式注意点

    OpenCV读取视频

    一、相关说明

    1、原理OpenCV读取视频包括从视频文件和摄像头读取。读取视频其实就是读取每一帧,相当于把每一帧当做图像来读取显示。

    2cvCapture结构体

    cvCapture是一个保存图像捕获所需的信息的结构体。 从摄像头和视频文件播放视频必须是从第一帧来时一帧一帧的按顺序获取,因此每获取一帧后都要保存相应的状态和参数。比如从视频文件中获取,需要保存视频文 件的文件名,相应的解码器类型,下一次如果要获取将需要解码哪一桢等。这些信息都保存在cvCapture中,每获取一帧后,这些信息都将被更新,获取下一帧需要将新信息传给获取的Api接口。

    3、解码器

    解码器名:,XviD-1.1.3-27042008.exe

    下载地址:http://pan.baidu.com/share/link?shareid=82963&uk=3087605183

    解压器使用:安装即可使用

    如果没有安装解码器,运行程序时,会报无法打开文件错误,如图   

    opencv3-video1.jpg

    二、流程图

    opencv3-video2.jpg

    三、函数说明

        1cvCreateFileCapture

    函数原型:CVAPI(CvCapture*) cvCreateFileCapture( const char*
    filename );

    返回值类型:CvCapture* cvCapture结构体指针,在cvQueryFrame中作为参数

    参数说明:const char* filename 文件路径

    2cvCreateCameraCapture

    函数原型:CVAPI(CvCapture*) cvCreateCameraCapture( int index );

    返回值类型:CvCapture*

    参数说明:int index,摄像头编号,只有在存在多个摄像头时才起作用,当index=-1时,表示随机选择一个。

    3cvQueryFrame

    函数原型:CVAPI(IplImage*) cvQueryFrame( CvCapture* capture );

    返回值类型:IplImage*,在cvShowImage中作为参数

    参数说明:CvCapture* capturecvCreateFileCapturecvCreateCameraCapture中返回值

    注意:以上部只介绍新的函数,其他没有列出来的函数请参考“OpenCV读取图片”

    4cvWaitKey

     

    显示图片是cvWaitKey函数表示延迟也就是等待时间,这里表示显示视频的帧率,也就是播放视频的快慢。返回值为字符ASCII值,表示用户按下某键做相应的处理。

     

    四、实现代码

    注意:新建工程需要添加依赖库,详细请参考“VS 2008 下安装及配置OpenCV

    五、结果截图

    opencv3-video3.jpg

    如果视频播放不成功,请查看下面的注意事项

    1、视频文件路径一定要正确,且路径分隔符为“\\

    2、确保正确安装上面所说的解码器

    3AVI格式的文件,但也会有不能播放的,比如可能采用的编码不同,avi格式有以下四种

    1H.264/MPEG-4AVC VideoFormat(*.avi)是MPEG4.一种视频格式的扩展。具有更高的压缩率。

    2AVI Audio-Video.lnterleaved(*.avi)是将与语言同步组成在一起的格式。

    3Lossless.uncompressed.AVI*.avi)是主要用于用户视频编辑。

    4AVIwieh DVcodec(*avi)是主要用于用户视频编辑格式,也是比较老的格式。

    OpenCV所能支持的格式为第二种AVI Audio-Video.lnterleaved,所以需要用软件装换下格式,比如“格式工厂”

     4、读取摄像头时,要确保安装了与摄像头相关的驱动程序

  • 相关阅读:
    [导入]【翻译】WF从入门到精通(第十三章):打造自定义活动
    [导入]关于网页标准与JAVAScript执行的问题
    html包含html文件的方法
    [导入]C#加密方法汇总
    8、步步为营VS 2008 + .NET 3.5(8) DLINQ(LINQ to SQL)之面向对象的添加、查询、更新和删除
    [导入]【翻译】WF从入门到精通(第十五章):工作流和事务
    [导入]存储过程得到某个表的所有字段信息
    1、步步为营VS 2008 + .NET 3.5(1) VS 2008新特性之Multi Targeting(多定向)、Web Designer and CSS(集成了CSS的web设计器)和Nested Master Page(嵌套母版页)
    [导入]vbs修改注册表
    正则表达式30分钟入门教程
  • 原文地址:https://www.cnblogs.com/gune/p/3105466.html
Copyright © 2011-2022 走看看