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

OpenCV学习 2:播放AVI视频

时间:2014-12-27 12:40:04      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:

原创文章,欢迎转载,转载请注明出处

第二个程序,播放视频。用opencv做起来是如此的简单。。哈哈。
           学Opencv,只是为了在它的基础上实现工程应用,而它里面高深的理论我等屌丝只能感叹了,希望学习的效果是能清楚 了解视觉方面所需要用到的工具和对他们有一定的了解,后续通过对这些理论和工具的了解实现相应的视觉功能,现在还不够熟悉,就照着教材和API学习下。
          视频,就是一张一张的画面,正常大于24帧人眼就看不到闪烁了。程序的大概思路就是通过opencv给的函数接口,一帧一帧的读取AVI视频的信息,然后刷新显示就OK了。
          各种函数可以通过http://wiki.opencv.org.cn/index.php/Template:Doc,查找参考手册的到函数的原型。
           首先需要创建一个窗口,查wiki可以查到函数原型如下:

1 cvNamedWindow
2 创建窗口
3 int cvNamedWindow( const char* name, int flags=CV_WINDOW_AUTOSIZE );
4 name 
5 窗口的名字,它被用来区分不同的窗口,并被显示为窗口标题。
6 flags 
7 窗口属性标志,为1时表示会根据图像自动调整窗口大小。目前唯一支持的标志是CV_WINDOW_AUTOSIZE。当这个标志被设置后,用户不能手动改变窗口大小,窗口大小会自动调整以适合被显示图像(参考cvShowImage)。
8 函数cvNamedWindow创建一个可以放置图像和trackbar的窗口。被创建的窗口可以通过它们的名字被引用。
9 如果已经存在这个名字的窗口,这个函数将不做任何事情。

    然后通过cvCreateFileCapture函数初始化获取视频,函数原型如下:

1 cvCreateFileCapture
2 初始化从文件中获取视频
3 CvCapture* cvCreateFileCapture( const char* filename );
4 filename 
5 视频文件名。
6 函数cvCreateFileCapture给指定文件中的视频流分配和初始化CvCapture结构。
7 当分配的结构不再使用的时候,它应该使用cvReleaseCapture函数释放掉。

 

   视频已经获取了,然后就是一帧一帧显示咯。。哈 


源代码如下:

 1 #include <highgui.h>
 2 void main()
 3 {
 4     cvNamedWindow("2.2", CV_WINDOW_AUTOSIZE );    //创建窗口
 5     CvCapture* capture = cvCreateFileCapture("takeoff.avi");
 6     IplImage* frame;
 7     while (1)
 8     {
 9         frame = cvQueryFrame( capture );    //获取一帧视频
10         if (NULL == frame)
11         {
12             break;
13         }
14         cvShowImage("2.2", frame);
15         char c = cvWaitKey(33);                //延时等待按键
16         if (27 == c)                        //esc的按键码
17         {
18             break;
19         }
20     }
21     cvReleaseCapture(&capture);
22     cvDestroyWindow("2.2");
23 }
视频是用的之前做四轴拍摄的

  再次看看四轴第一次离地的截图。。

技术分享

 未完。。。。后面加视频进度条控制。。。

OpenCV学习 2:播放AVI视频

标签:

原文地址:http://www.cnblogs.com/adfjhg/p/4188196.html

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