• 获取视频帧


    前言

    对已有的视频进行解帧,得到视频图像帧,便于之后的图像处理。

    c++/opencv代码如下:  

    #include<highgui.h>
    #include<cv.h>
    #include<iostream>
    using namespace std;
    using namespace cv;
    
    int main()
    {
    
        CvCapture* capture = cvCaptureFromFile(".\input_path\input_video.mp4");
        int fps = (int)cvGetCaptureProperty(capture, CV_CAP_PROP_FPS);
        long nFrame = (long)cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_COUNT); // 获取总帧数
        int width = (int)cvGetCaptureProperty(capture,CV_CAP_PROP_FRAME_WIDTH);
        int height = (int)cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_HEIGHT);
        IplImage* image = NULL;
        char save_path[100];
        int i = 0;
        int start = 1;
        int end = 1000;
        if (capture)
        {
            while (1)
            {
                image = cvQueryFrame(capture);
                if (image)
                {
                    i++;
                    cout << "i=" << i << endl;
                    if (i >= start && i <= end)
                    {
                        //cout << "save " << i << " th image..." << endl;
                        sprintf(save_path, ".\output_path\frames\%d.jpg", i);
                        cvSaveImage(save_path, image);
                    }
                    if (i > end)
                    {
                        return 0;
                    }
                }
            }
        }
    }

    注意:

    c++代码中的路径必须是反双斜杠!!! 

  • 相关阅读:
    深入 kernel panic 流程【转】
    HDMI驱动热插拔检测方法
    WFE和WFI的区别
    SMP多核启动
    CPUFreq驱动
    DMA与cache一致性的问题
    深度理解select、poll和epoll
    Memory barrier 简介
    thinkphp的删除操作
    HOST文件配置
  • 原文地址:https://www.cnblogs.com/happyamyhope/p/6593166.html
Copyright © 2020-2023  润新知