OpenCVを使った動画ファイルの入出力
OpenCVを使うと動画の入出力が簡単に出来る。動画ファイルを読み込む際にはcv::VideoCaptureクラスを用い、書き込みにはcv::VideoWriterクラスを用いる。書き込みの際には、コーデック、フレームレート、解像度を指定する。
各フレームの情報は ">>", "<<" 演算子で読み込み・書き込みが可能。
以下は、動画ファイルを読み込んで、別の動画ファイルに書き込みを行うコードの例。
OpenCV3.0以降を用いる場合は、CV_FOURCCが廃止されているので、cv::VideoWriter::fourccを用いてコーデックを指定する必要がある。
各フレームの情報は ">>", "<<" 演算子で読み込み・書き込みが可能。
以下は、動画ファイルを読み込んで、別の動画ファイルに書き込みを行うコードの例。
OpenCV3.0以降を用いる場合は、CV_FOURCCが廃止されているので、cv::VideoWriter::fourccを用いてコーデックを指定する必要がある。
#include <opencv2/opencv.hpp> int main(int argc, char** argv) { //入力動画ファイルを指定 cv::VideoCapture cap( "input.avi" ); //出力動画ファイルの指定 cv::VideoWriter writer( "output.avi", cv::VideoWriter::fourcc('M','J','P','G'), cap.get(cv::CAP_PROP_FPS), cv::Size((int)cap.get(cv::CAP_PROP_FRAME_WIDTH), (int)cap.get(cv::CAP_PROP_FRAME_HEIGHT))); cv::Mat frame; while( 1 ) { //1フレーム読み込み cap >> frame; if( frame.empty() ) break; //出力動画ファイルへ書き込み writer << frame; } return 0; }
コメント
コメントを投稿