카테고리 없음

OpenCV C++ Image to Mp4

Wood Pecker 2021. 4. 26. 12:50

비주얼 스튜디오에서 OpenCV를 이용하여 C++ 언어로 폴더에 있는 .jpg 파일을 mp4 동영상으로 만들어 보자.

1. c++ 프로젝트를 생성한다. 콘솔 어플리케이션 x64으로 작성한다. openCV를 사용하기 위하여 구성(C) Debug 프로젝트 속성창에서 include를 설정한다. (Debug 모드)

  1. 라이브러리 디렉토리를 설정한다.

3. 필요한 라이브러리를 추가한다.

4. 다음 코드를 입력하고 컴파일하고 실행하여 보자.

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

using namespace cv;
using namespace std;

int main()
{
    cv::String path("*.jpg"); //select only jpg
    vector<cv::String> fn;
    vector<cv::Mat> data;
    cv::glob(path, fn, true); // recurse

    cv::VideoWriter videoWriter;
    float videoFPS = 30.0f;
    videoWriter.open("test.mp4", cv::VideoWriter::fourcc('M', 'J', 'P', 'G'), videoFPS, cv::Size(640,480), true);
    //영상 저장 셋팅 실패시
    if (!videoWriter.isOpened())
    {
        std::cout << "Can't write video !!! check setting" << std::endl;
        return -1;
    }

    for (size_t k = 0; k < fn.size(); ++k)
    {
        cv::Mat im = cv::imread(fn[k]);
        if (im.empty()) continue; //only proceed if sucsessful
        // you probably want to do some preprocessing
        data.push_back(im);
        resize(im, im, cv::Size(640, 480));
        imshow("Display window", im);
        //받아온 Frame을 저장한다.
        for(int i=0;i<60;i++) videoWriter << im;
        waitKey(1000); //wait for key press
    }
    waitKey(2000); //wait for key press
    destroyAllWindows(); //destroy all open windows
    return 0;
}

 

폴더에 있는 모든 .jpg 파일을 하나의 동영상으로 만들어 준다. 

 

 

 

 

반응형