1. #if 0
  2. //播放avi视频文件(IplImage)
  3. #include <opencv2/opencv.hpp>
  4. using namespace std;
  5.  
  6. #pragma comment(linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"")
  7.  
  8. int main()
  9. {
  10. const char *pstrAviFileName = ".\\Res\\Microsoft_split.avi";
  11. const char *pstrWindowsTitle = "OpenCV.avi";
  12.  
  13. // 从文件中读取图像
  14. CvCapture* pCapture = cvCaptureFromFile(pstrAviFileName);
  15. if (!pCapture)
  16. {
  17. cout << "Fail to capture avi file!" << endl;
  18. return -;
  19. }
  20. IplImage *pImage = NULL;
  21.  
  22. //创建窗口
  23. cvNamedWindow(pstrWindowsTitle, CV_WINDOW_AUTOSIZE);
  24.  
  25. while()
  26. {
  27. pImage = cvQueryFrame(pCapture);
  28. if (!pImage)
  29. {
  30. cout << "Fail to query avi frame image!" << endl;
  31. break;
  32. }
  33. //在指定窗口中显示图像
  34. cvShowImage(pstrWindowsTitle, pImage);
  35. if (cvWaitKey() >= )
  36. {
  37. break;
  38. }
  39. }
  40.  
  41. cvReleaseCapture(&pCapture);
  42. cvDestroyWindow(pstrWindowsTitle);
  43.  
  44. return ;
  45. }
  46. #endif
  47.  
  48. #if 1
  49. //播放avi视频文件(Mat)
  50. #include <opencv2/opencv.hpp>
  51. using namespace std;
  52. using namespace cv;
  53.  
  54. #pragma comment(linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"")
  55.  
  56. int main()
  57. {
  58. const char *pstrAviFileName = ".\\Res\\AviDemo.avi";
  59. const char *pstrWindowsTitle = "OpenCV.avi";
  60.  
  61. VideoCapture cap(pstrAviFileName);
  62. //检查是否成功打开
  63. if(!cap.isOpened())
  64. {
  65. cerr << "Can not open a camera or file." << endl;
  66. return -;
  67. }
  68. Mat im;
  69.  
  70. //创建窗口
  71. cvNamedWindow(pstrWindowsTitle, CV_WINDOW_AUTOSIZE);
  72. while()
  73. {
  74. cap >> im;
  75. if (im.empty())
  76. {
  77. break;
  78. }
  79. //在指定窗口中显示图像
  80. imshow(pstrWindowsTitle, im);
  81. if(waitKey() >= )
  82. {
  83. break;
  84. }
  85. }
  86. //退出时会自动释放cap中占用资源
  87.  
  88. return ;
  89. }
  90. #endif

运行结果:

OpenCV学习:播放avi视频文件的更多相关文章

  1. 1.0.1-学习Opencv与MFC混合编程之---播放AVI视频

    资源源代码:http://download.csdn.net/detail/nuptboyzhb/3961639 版本1.0.1新增内容 Ø  新建菜单项,Learning OpenCV——> ...

  2. OpenCV 入门示例之二:播放 AVI 视频

    前言 本文展示一个播放 AVI 视频的程序.( 呵呵是 AVI 视频不是 AV 视频噢! ) 代码示例 // 此头文件包含图像IO函数的声明 #include "highgui.h" ...

  3. ASP.NET MVC应用程序播放AVI视频

    前面Insus.NET实现一系列在MVC应用程序播放SWF, FLV, WMV, RM, RMVB视频.每篇使用不同的方法方式,大同小异.这篇中,为了MVC应用程序播放AVI视频,用纯M, V, C来 ...

  4. avi视频文件提取与合并

    最近在做一个avi视频文件的提取与合并,花了几天熟悉avi文件格式.制作了一个提取与合并的动态库,不过仅限于提取视频,视频的合并还没添加一些额外判断,可能导致不同分辨率的视频文件合成后不能播放.欢迎大 ...

  5. PyQt+moviepy音视频剪辑实战1:多个音视频合成顺序播放或同屏播放的视频文件实现详解

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt+moviepy音视频剪辑实战 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一. ...

  6. OpenCV学习 2:播放AVI视频

    原创文章,欢迎转载,转载请注明出处 第二个程序,播放视频.用opencv做起来是如此的简单..哈哈.           学Opencv,只是为了在它的基础上实现工程应用,而它里面高深的理论我等屌丝只 ...

  7. [学习OpenCV攻略][004][播放AVI视频]

    cvCreateFileCapture(文件路径) 创建一个影音文件录像机,返回值为CvCapture类型,用于读取视频文件 cvQuerFrame(视频) 将下一帧视频文件载入内存,当CvCaptu ...

  8. OpenCV —— 写入AVI视频文件

    打开视频文件,对每一帧进行极坐标变换,然后将转换生成的图像序列写入视频文件中 #include "cv.h" #include "highgui.h" int ...

  9. 如何在asp.net中如何在线播放各类视频文件

    一.后台拼字符串动态加载写法 前台调用代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &q ...

随机推荐

  1. zabbix 源

    http://repo.zabbix.com/ # cat /etc/yum.repos.d/zabbix.repo [zabbix] name=Zabbix Official Repository ...

  2. 【Verilog】verilog实现奇数次分频

    实现占空比为50%的N倍奇数分频:首先进行上升沿触发进行模N计数,计数到某一个值时进行输出时钟翻转,然后经过(N-1)/2再次进行翻转得到一个占空比非50%的奇数n分频时钟.再者 同时进行下降沿触发的 ...

  3. 【java web】Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory

    javaweb报错如下:22:49:22.155 [http-nio-8081-exec-9] ERROR org.apache.struts2.dispatcher.DefaultDispatche ...

  4. ibtais中把clob数据类型转换成string并展示到前台

    1,在xml中定义一个resultMap <resultMap class="com.aa.bb" id="clobToString"> <r ...

  5. Head First 设计模式读书笔记(1)-策略模式

    一.策略模式的定义 策略模式定义了算法族,分别封装起来,让它们之间可以互换替换,此模式让算法的变化独立使用算法的客户. 二.使用策略模式的一个例子 2.1引出问题 某公司做了一套模拟鸭子的游戏:该游戏 ...

  6. 在WMware新建一个虚拟机

  7. sqlserver被锁的表以及如何解锁

    查看sqlserver被锁的表以及如何解锁   查看被锁表: select   request_session_id   spid,OBJECT_NAME(resource_associated_en ...

  8. warning: assignment from incompatible pointer type [enabled by default]

    kernel 编译产生这个警告的原因是 不兼容指针类型的赋值 这个原因很有可能是因为返回值和正在接受这个指针类型名不相同. // vim arch/arm/mach-omap2/usb-host.c ...

  9. VC++中动态链接库的显示加载和隐式加载的区别

    两种方法对于你的程序调用动态库时没有任何区别,只是你在编程时,步骤是不一样的.显式调用麻烦了点,但可以没有相应的lib库:隐式调用,使用起来比较 简单,有函数的声明(头文件.h)就可以了,但必须有li ...

  10. BusyBox inittab配置

    inittab第一行指定初始化脚本,开启所有应用程序,必须有. ::sysinit:/etc/init.d/rcS 在第一行执行完后,执行剩余行命令,此终端要接受命令交互需开启sh. ::askfir ...