C++版 OpenCVの基本

画像の書き出し

imwrite関数で画像を保存できます。第一引数に出力する場所へのパスを指定します。拡張子はpng、jpgなどが可能です。Mat型のimgに対して下のようにして画像を書き出せます。

imwrite("img.png", img);

 

動画の書き出し

VideoWriterを使って動画を書き出せます。#include <opencv2/highgui/highgui.hpp>を先頭に記述する必要があります。「<<」を使ってMatを次々に動画のフレームとして継ぎ足していきます。

#include "opencv/cv.h"
#include "opencv/highgui.h"
#include "opencv2/highgui/highgui.hpp"
using namespace cv;
int main(){
    Mat img;
    VideoCapture cap("sample.mp4");
    int max_frame=cap.get(CV_CAP_PROP_FRAME_COUNT);
    VideoWriter writer("output.avi", CV_FOURCC_DEFAULT, 30, cv::Size(600, 600), true);
    for(int i=0; i<max_frame;i++){
        cap>>img ;
        writer << img;
        imshow("Video",img);
        waitKey(1);
    }
    return 0;
}