zoukankan      html  css  js  c++  java
  • 获取视频帧

    前言

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

    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++代码中的路径必须是反双斜杠!!! 

  • 相关阅读:
    [ Docker ] 基础安装使用及架构
    [ Docker ] 基础概念
    Nginx
    ELK
    SVN + Jenkins 构建自动部署
    Zabbix
    ELK
    ELK 部署文档
    vue.js在visual studio 2017下的安装
    vue.js是什么
  • 原文地址:https://www.cnblogs.com/happyamyhope/p/6593166.html
Copyright © 2011-2022 走看看