連続した画像から動画を作成するプログラムです。
詳解 OpenCV 3 ―コンピュータビジョンライブラリを使った画像処理・認識
- 作者: Gary Bradski,Adrian Kaehler,松田晃一,小沼千絵,永田雅人,花形理
- 出版社/メーカー: オライリージャパン
- 発売日: 2018/05/26
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
開発環境
・windows10
・Visual Studio 2015
・OpenCV3.2
サンプルプログラム (C++)
サンプルでは↓のような300回カウントアップしていくだけの動画が作成されます。
各自で画像を読み込むコードを追加していただければ、好きな画像を読み込んで動画にすることができます。
以下c++のサンプルコードです。
#include <opencv2/highgui.hpp> #include <iostream> #ifdef _DEBUG // Debugモード // OpecCVのライブラリの読み込み #pragma comment(lib,"opencv_core320d.lib") #pragma comment(lib,"opencv_highgui320d.lib") #pragma comment(lib,"opencv_imgproc320d.lib") #pragma comment(lib,"opencv_imgcodecs320d.lib") #pragma comment(lib,"opencv_videoio320d.lib") #else // Releaseモード // OpecCVのライブラリの読み込み #pragma comment(lib,"opencv_core320.lib") #pragma comment(lib,"opencv_highgui320.lib") #pragma comment(lib,"opencv_imgproc320.lib") #pragma comment(lib,"opencv_imgcodecs320.lib") #pragma comment(lib,"opencv_videoio320.lib") #endif int main() { // 幅320px-高さ240pxの画像を生成 cv::Mat img(cv::Size(320, 240), CV_8UC3, cv::Scalar(0, 0, 0)); int fourcc = cv::VideoWriter::fourcc('X', 'V', 'I', 'D'); // コーデックを指定 double fps = 30.0; // 動画のフレームレートを指定 bool isColor = true; // カラーで保存するか否か int N = 300; // 動画にする画像の枚数を指定 char str[32]; // 出力する動画ファイルの設定 cv::VideoWriter writer("Sample_video.avi", fourcc, fps, img.size(), isColor); // 動画ファイルの初期化に成功したか判定 if (!writer.isOpened()) { std::cout << "Can't VideoWriter open" << std::endl; return -1; } for (int i = 0; i < N; i++) { // 画像に「OpenCV "画像番号"」の文字列を描画 cv::Mat dst = img.clone(); sprintf(str, "%d", i + 1); cv::putText(dst, "OpenCV", cv::Point(80, 100), cv::FONT_HERSHEY_SIMPLEX, 1.2, cv::Scalar(0, 200, 0), 2, CV_AA); cv::putText(dst, str, cv::Point(80, 150), cv::FONT_HERSHEY_SIMPLEX, 1.2, cv::Scalar(0, 200, 0), 2, CV_AA); // 入力画像を表示 cv::imshow("image", dst); cv::waitKey(1); // 動画ファイルに出力 writer << dst; } return -1; }