码迷,mamicode.com
首页 > 其他好文 > 详细

Opencv 简单视频播放器

时间:2017-12-02 16:11:34      阅读:232      评论:0      收藏:0      [点我收藏+]

标签:copyto   mod   des   repr   ret   [1]   aix   c++   too   

  1. // C++ header and namespace  
  2. #include <iostream>  
  3. #include <string>  
  4. #include <cstdlib>  
  5. using namespace std;  
  6.   
  7. // Opencv header and namespace  
  8. #include <opencv2/core/core.hpp>  
  9. #include <opencv2/highgui/highgui.hpp>  
  10. #include <opencv2/imgproc/imgproc.hpp>  
  11. #include <opencv2/video/video.hpp>  
  12. using namespace cv;  
  13.   
  14. bool JumpToFrame(false);  
  15.   
  16. int main(int argc, char* argv[])  
  17. {     
  18.     //!< Check out Input video  
  19.     if (argc != 2)  
  20.     {  
  21.         cerr << "Usage: VideoPlayer.exe VideoFilename." << endl;  
  22.         exit(1);  
  23.     }  
  24.   
  25.     //!< Check out Open Video  
  26.     VideoCapture capture(argv[1]);  
  27.     if (!capture.isOpened())  
  28.     {  
  29.         return 1;  
  30.     }  
  31.   
  32. #pragma region InfoOfVideo  
  33.       
  34.     long    NumberOfFrame = static_cast<long>(capture.get(CV_CAP_PROP_FRAME_COUNT));  
  35.     double  HeightOfFrame = capture.get(CV_CAP_PROP_FRAME_HEIGHT);  
  36.     double  WidthOfFrame  = capture.get(CV_CAP_PROP_FRAME_WIDTH);  
  37.     double  FpsOfVideo    = capture.get(CV_CAP_PROP_FPS);     
  38.       
  39.     cout << "The name of the input video is " << argv[1] << "." << endl;  
  40.     cout << "NumberOfFrame : " << NumberOfFrame << endl;  
  41.     cout << "HeightOfFrame : " << HeightOfFrame << endl;  
  42.     cout << "WidthOfFrame  : " << WidthOfFrame << endl;  
  43.     cout << "FpsOfVieo     : " << FpsOfVideo << endl;  
  44.   
  45. #pragma endregion  
  46.   
  47.     // !< JumpToFrame function  
  48.     while (JumpToFrame)  
  49.     {  
  50.         double Position = 0.0;  
  51.         cout << "Please input the number of frame which you want jump to!" << endl;  
  52.         cin >> Position;  
  53.         capture.set(CV_CAP_PROP_POS_FRAMES, Position);  
  54.     }  
  55.   
  56.     // !< Delay between each frame in ms corresponds to video frame rate(fps)  
  57.     Mat frame;  
  58.     bool stop(false);  
  59.     int delay = 1000 / FpsOfVideo;  
  60.     namedWindow("Extracted Frame");  
  61.   
  62.     while (!stop)  
  63.     {  
  64.         //read next frame if any  
  65.         if (!capture.read(frame))  
  66.         {  
  67.             break;  
  68.         }  
  69.         imshow("Extracted Frame", frame);  
  70.         //introduce a delay or press key to stop  
  71.         if (waitKey(delay) >= 0)  
  72.         {  
  73.             stop = true;  
  74.         }  
  75.     }  
  76.   
  77.     // !< Close the video file.  
  78.     // Not required since called by destructor  
  79.     capture.release();  
  80.   
  81.     return 0;  

Opencv 简单视频播放器

标签:copyto   mod   des   repr   ret   [1]   aix   c++   too   

原文地址:http://www.cnblogs.com/daochong/p/7954214.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!