接上一篇:Ubuntu+QT+Opencv读取视频

这篇文章主要介绍Opencv视频的简单读取:

相似,视频的读取和图片类似,我们先看下代码:敲打

#include "highgui.h"
int main(int argc, char* argv[])
{
    cvNamedWindow("avi");
    CvCapture* capture = cvCreateFileCapture("
文件路径");
    IplImage* frame;
    while(1)
    {
        frame = cvQueryFrame(capture);
        if(!frame)break;


        cvShowImage("avi",frame);
        char c = cvWaitKey(33);
        if(c==27)
            break;
    }
    cvReleaseCapture(&capture);
    cvDestroyWindow("avi");
    return 0;
}

下面对简单分析下:

CvCapture是个结构体,来保存图像捕获所需要的信息。

Opencv提供两种方式来从外部捕获图像

一:从摄像头中。

二:通过解码视频得到图像。

由于两种方法都是一帧一帧的获取,因此每获取一帧后都要保存相应的状态和参数。

例如上面的例子,从视频中获取信息后,需要保存视频文件的文件名,相应的解码器类型,下一次如果要获取需要解码那一帧等。这些信息都保存在CvCapture结构中。每获取一帧后这些信息都将被更新。


cvCreateFileCapture(char*name)

通过输入要读取的avi文件的路径,然后,该函数返回一个指向CvCapture结构体的指针。


cvQueryFrame(capture)

输入一个CvCapture类型的指针,该函数主要功能是将视频文件的下一帧加载到内存。与cvLoadImage的不同之处是,该函数不重新分配内存空间。


cvWaitKey(33)
当前帧被显示后,等待33毫秒。如果用户触发了一个按键,会被设置成这个按键的ASCII码,否则会被设置成-1。
ncvWaitKey(33)在此处的另外一个作用是,控制帧率。


cvReleaseCapture(& Capture)
¨ 释放为CvCapture结构体开辟的内存空间
¨ 关闭打开的AVI文件相关的文件句柄


如果读取摄像头只需要把cvCreateFileCapture改成cvCreateCameraCapture即可,另外摄像头驱动要安装好。


遇到问题欢迎提问。同样ippicv也在此处下载:点击打开链接

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值