一帧一帧地读取视频流。

  • VideoCapture sequence(file_video);
  • sequence >> image.
  1.  
  1. #include <opencv2/core/core.hpp>
  2. #include <opencv2/videoio/videoio.hpp>
  3. #include <opencv2/highgui/highgui.hpp>
  4.  
  5. #include <iostream>
  6.  
  7. using namespace cv;
  8. using namespace std;
  9.  
  10. static void help(char** argv)
  11. {
  12. cout << "\nThis sample shows you how to read a sequence of images using the VideoCapture interface.\n"
  13. << "Usage: " << argv[0] << " <image_mask> (example mask: example_%02d.jpg)\n"
  14. << "Image mask defines the name variation for the input images that have to be read as a sequence. \n"
  15. << "Using the mask example_%02d.jpg will read in images labeled as 'example_00.jpg', 'example_01.jpg', etc."
  16. << endl;
  17. }
  18.  
  19. int main(int argc, char** argv)
  20. {
  21. cv::CommandLineParser parser(argc, argv, "{help h||}{@image| ../data/768x576.avi |}");
  22. if (parser.has("help"))
  23. {
  24. help(argv);
  25. return 0;
  26. }
  27. string first_file = parser.get<string>("@image");
  28. cout << "first_file = " << first_file << endl;
  29.  
  30. if(first_file.empty())
  31. {
  32. help(argv);
  33. return 1;
  34. }
  35.  
  36. // Jeff --> read video stream.
  37. VideoCapture sequence(first_file);
  38.  
  39. if (!sequence.isOpened())
  40. {
  41. cerr << "Failed to open the image sequence!\n" << endl;
  42. return 1;
  43. }
  44.  
  45. Mat image;
  46. namedWindow("Image sequence | press ESC to close", 1);
  47.  
  48. for(;;)
  49. {
  50. // Read in image from sequence
  51. sequence >> image;
  52.  
  53. // If no image was retrieved -> end of sequence
  54. if(image.empty())
  55. {
  56. cout << "End of Sequence" << endl;
  57. break;
  58. }
  59.  
  60. // Jeff --> we may control the speed here.
  61. imshow("Image sequence | press ESC to close", image);
  62. if(waitKey(500) == 27)
  63. break;
  64. }
  65.  
  66. return 0;
  67. }

[OpenCV] Samples 11: image sequence的更多相关文章

  1. [OpenCV] Samples 10: imagelist_creator

    yaml写法的简单例子.将 $ ./ 1 2 3 4 5 命令的参数(代表图片地址)写入yaml中. 写yaml文件. 参考:[OpenCV] Samples 06: [ML] logistic re ...

  2. [OpenCV] Samples 16: Decompose and Analyse RGB channels

    物体的颜色特征决定了灰度处理不是万能,对RGB分别处理具有相当的意义. #include <iostream> #include <stdio.h> #include &quo ...

  3. [OpenCV] Samples 13: opencv_version

    cv::CommandLineParser的使用. I suppose CommandLineParser::has("something") should be true whe ...

  4. [OpenCV] Samples 06: [ML] logistic regression

    logistic regression,这个算法只能解决简单的线性二分类,在众多的机器学习分类算法中并不出众,但它能被改进为多分类,并换了另外一个名字softmax, 这可是深度学习中响当当的分类算法 ...

  5. [OpenCV] Samples 03: cout_mat

    操作Mat元素时:I.at<double>(1,1) = CV_PI; /* * * cvout_sample just demonstrates the serial out capab ...

  6. [OpenCV] Samples 03: kmeans

    注意Mat作为kmeans的参数的含义. 扩展:高维向量的聚类. 一.像素聚类 #include "opencv2/highgui.hpp" #include "open ...

  7. [OpenCV] Samples 06: logistic regression

    logistic regression,这个算法只能解决简单的线性二分类,在众多的机器学习分类算法中并不出众,但它能被改进为多分类,并换了另外一个名字softmax, 这可是深度学习中响当当的分类算法 ...

  8. [OpenCV] Samples 15: Background Subtraction and Gaussian mixture models

    不错的草稿.但进一步处理是必然的,也是难点所在. Extended: 固定摄像头,采用Gaussian mixture models对背景建模. OpenCV 中实现了两个版本的高斯混合背景/前景分割 ...

  9. [OpenCV] Samples 12: laplace

    先模糊再laplace,也可以替换为sobel等. 变换效果后录成视频,挺好玩. #include "opencv2/videoio/videoio.hpp" #include & ...

随机推荐

  1. wrHDL编译中软核代码初始化及编译耗时长的问题

    问题的提出整个WR的ISE工程比较大,编译时间很长,导致开发效率低.通过分析发现,ISE在综合的时候大量的时间都花在了初始化DPRAM上.调研发现Xilinx提供了BMM文件和DATA2MEM工具,可 ...

  2. jar包合并

    多个jar包合并: 1.首先将所以要合并的jar包解压到同一目录中.jar xvf xxx.jar 2.用jar命令将所有.class, .aidl文件打包. jar cvf output.jar   ...

  3. ubuntu vps折腾记

    买了burgetVM的vps,512M内存/1024M交换内存,40G硬盘,2TB流量/月,cpu xeon E5-2620 操作系统选择了ubuntu 12,开始折腾. 第一步,配置vpn 找了很多 ...

  4. Oracle常见授权与回收权限(grant和revoke)学习记录

      1.GRANT 赋于权限常用的系统权限集合有以下三个:CONNECT(基本的连接), RESOURCE(程序开发), DBA(数据库管理) 常用的数据对象权限有以下五个:ALL ON 数据对象名, ...

  5. Storm-源码分析- Storm中Zookeeper的使用

    在backtype.storm.cluster.clj中, 定义了storm对于Zookeeper的使用   ClusterState 首先定义操作Zookeeper集群的interface (def ...

  6. ENode 1.0 - 消息的重试机制的设计思路

    项目开源地址:https://github.com/tangxuehua/enode 上一篇文章,简单介绍了enode框架中消息队列的设计思路,本文介绍一下enode框架中关系消息的重试机制的设计思路 ...

  7. asp.net core开发环境准备

    1.1  安装sdk和运行时 浏览器打开网址https://www.microsoft.com/net/download, 到.Net Core下载页面. 根据操作系统,下载对应的SDK进行安装.安装 ...

  8. FusionCharts教程文档下载

    FusionCharts是一个Flash的图表组件,它可以用来制作数据动画图表,其中动画效果用的是Adobe Flash 8 (原Macromedia Flash的)制作的flash , Fusion ...

  9. 微软承诺将在今年的 Visual C++ 更新中加入 Clang 编译器

    微软最近发布将在2015年11月 Visual C++ 更新中加入 Clang 编译器 ,Clang 开源编译器以相比GCC更快的编译速度和更优的错误提示著称. Clang关于C,C++,及Objec ...

  10. Linux多线程系列-2-条件变量的使用(线程安全队列的实现)

    多线程情况下,往往需要使用互斥变量来实现线程间的同步,实现资源正确共享. linux下使用如下变量和函数 //条件变量 pthread_cond_t int pthread_cond_init (pt ...