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 の実行ファイルのパスを設定している場合は不要です。 )


---main.cpp---

#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;
}


Prev Top Next
inserted by FC2 system