本文介绍视频的读取与显示,opencv视频读取有很多种方法,我们主要介绍两种常用的方法,首先介绍视频读取用到的函数:

capture():capture函数是Videocapture类的一个读取视频或摄像头的函数,capture输入不同参数读取方式不同:

  • capture.open("xxx.avi");//利用初始化的capture,打开视频"xxx.avi",视频格式也可以为MP4格式

  • capture.open(0);//利用初始化的capture,打开ID为0的摄像头

  • capture.release();//关闭视频文件或者摄像头

 

视频读取代码:

方法一:

#include<opencv2/opencv.hpp>

#include<iostream>

usingnamespace cv;

usingnamespace std;

 

void  main()

{

    //VideoCapture capture(0);

    VideoCapture capture("cat.mp4");

    Mat frame;

 

    if  (capture.isOpened())  //判断视频是否成功打开

    {

     //capture.grab() 从视频文件或捕获设备中抓取下一个帧

         while (capture.grab())    {

             capture  >> frame;

             imshow("读取视频", frame);//显示当前帧

             waitKey(50);

         }

    }

    waitKey();

}

方法二:

#include<opencv2/opencv.hpp>

#include<iostream>

usingnamespace cv;

usingnamespace std;

 

int main(intargc, char *argv[])

{

    VideoCapture cap("cat.mp4");//打开cat.mp4视频

    if (!cap.isOpened())

    {

         return;

    }

    Mat frame;

    bool stop = false;

    while (!stop)

    {

         cap.read(frame);  //  或 cap>>frame;       

         imshow("Video",  frame);

         if (waitKey(30) ==  27) //Esc键退出

         {

             stop  = true;

         }

    }

}

到此视频读取的两种方法介绍完毕,欢迎留言指正,如有对图像处理、计算机视觉感兴趣的小伙伴关注公众号,一起学习进步。

可以微信搜索“图像处理CV讲武堂”关注,也可如下二维扫码关注。

opencv:视频读取的两种方法

相关文章: