Visual Studio 2013 Express Visual C++( アンマネージドコード ) OpenCV 3.1 |
■241.OpenCV Video再生 | Prev Top Next | |
|
今回は動画ファイルを読み込んで再生します。再生速度がインチキくさいですが。
参考にしたサイトは初めてのOpenCV開発 ― highguiモジュール【OpenCV 2.4.9】です。
なお cv::VideoCapture() を使用する場合 opencv_ffmpeg300_64.dll が必要なようなので、実行環境に配置してください。 ( 環境変数の Path に OpenCV の実行ファイルのパスを設定している場合は不要です。 )
#include <iostream> #include <opencv2/highgui/highgui.hpp> #pragma comment( lib, "opencv_world300d.lib" ) void videoCapture(std::string path) { std::string winname = "VideoCapture"; cv::VideoCapture cap = cv::VideoCapture(path); if (cap.isOpened() == false) { CV_Error(CV_StsError, "cv::VideoCapture() Failed"); } // ウィンドウを生成 cv::namedWindow(winname, cv::WINDOW_AUTOSIZE); cv::Mat frame; // fps取得 double fps = cap.get(CV_CAP_PROP_FPS); while (true) { // cv::VideoCapture から1フレーム分の画像を取得してcv::Matに格納 cap >> frame; // 取得できないときは終了 if (frame.empty()) { break; } // ウィンドウに動画から取得した画像を表示 cv::imshow(winname, frame); // fps待ち cv::waitKey(fps); } } int main(int argc, const char* argv[]) { int hr = -1; try { videoCapture("D:/TEMP/MaverickProj/Image/OpenCV/03/Video.mp4"); std::cout << "Successed" << std::endl; hr = 0; } catch( cv::Exception ex ) { std::cout << ex.err << std::endl; } // ウィンドウの破棄 cv::destroyAllWindows(); return hr; }