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;
}
コメント
コメントを投稿