欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

OpenCV播放视频

程序员文章站 2024-03-19 22:48:58
...

使用opencv播放视频很容易,即循环的顺序读取视频中的每一帧,并且能够退出循环操作。

#include <iostream>
#include <opencv2/opencv.hpp>
#include <opencv2/highgui.hpp>

using namespace std;
using namespace cv;
int main(int argc, const char * argv[]) {
    // insert code here...
    const char * ImageLocation = "/Users/linwang/LinMovie/Wolf.mp4";
    cvNamedWindow("Example2",CV_WINDOW_AUTOSIZE);
    CvCapture * capture = cvCreateFileCapture(ImageLocation);
    IplImage * frame;
    while(1)
    {
        frame = cvQueryFrame(capture);
        if(!frame)
        {
            break;
        }
        cvShowImage("Example2", frame);
        char c = cvWaitKey(33);
        if(c == 27)
        {
            break;
        }
    }
    cvReleaseCapture(&capture);
    cvDestroyWindow("Example2");
    return 1;
}
OpenCV播放视频

上图只是截取了一个图片作为结果呈现。

1、cvNamedWindow用于创建一个名称为Example2的窗口。

2、cvCreateFileCapture()通过参数设置正确要读入的视频文件,返回一个指向CvCapture结构的指针。这个结构体包含了所有关于要读入的视频文件信息。

3、cvQueryFrame的参数为CvCapture结构的指针。用来将下一帧视频文件载入内存(实际是填充或者更新CvCapture结构中)。返回一个对应当前帧的指针。

4、cvWaitKey(33)表示当前帧被显示后,我们会等待33毫秒。如果在这个过程中,用户触发了一个按键,c会被设置成这个按键的ASCII码,否则,c会被设置成-1。如果用户触发了ESC(ASCII码为27),循环会退出读入视频停止。