学习OpenCV2——控制视频暂停与播放
来源:互联网 发布:手机淘宝优惠券转化 编辑:程序博客网 时间:2024/06/08 18:00
在opencv中让程序暂停有三种方法
waitKey( int delay)
如果delay≤0,则程序暂停,直到键盘按键才继续运行,返回按键的ASCII值;如果delay>0,则等待delay毫秒后继续运行。
getchar( )与getch( )
当调用getchar时,程序就等着用户按键,用户输入的字符被存放在键盘缓冲区中,直到用户按回车为止,返回第一个字符的ASCII码。如果出错,返回-1。getch与getchar基本功能相同,差别是getch直接从键盘获取键值,不等待用户按回车,只要用户按一个键,getch就立刻返回。
system("pause")
从程序里调用“pause”命令。 而“pause”这个系统命令的功能很简单,就是在命令行上输出一行类似于“Press any key to exit”的字,等待用户按一个键,然后返回。
在对视频进行处理的时候,经常需要让视频停一下,以便进行某些操作。比如,做目标跟踪,我们需要在某一帧选定目标,如果视频一直在播放,会对选目标造成干扰。我们可以让视频暂停,选定目标后,选定目标后,让视频继续播放,同时进行跟踪。要实现视频的暂停,显然第一种方法最合适。
下面的程序用waitKey()实现了视频的暂停与播放。
#include <opencv2\opencv.hpp> using namespace cv; using namespace std;int main( ) { VideoCapture capture(0);if(!capture.isOpened())cout<<"fail to open!"<<endl;namedWindow("camera",1);Mat frame;int delay = 30;while(1){capture>>frame;if(frame.empty()) break;imshow("camera",frame);if(delay>=0&&waitKey (delay)>=0) waitKey(0);}}
非常精巧。delay=30,delay>=0为true。执行waitKey(30),frame显示30ms。如果没有按键,waitKey(30)返回-1,不执行waitKey(0),进入下一次循环。如果有按键,返回按键的ASCII值,waitKey(30)>=0为true,执行waitKey(0),程序暂停,直到有键盘输出才进行下一次循环。
上面程序中按任意键都能实现暂停和播放,如果要设定为某个具体按键,比如用空格控制暂停。可以这么改
if(delay>=0&&waitKey (delay)>=32) waitKey(0);</span>32是空格键的ASCII值
- 学习OpenCV2——控制视频暂停与播放
- 学习日记--Android VideoView播放视频控制:开始、暂停、快进
- html video 视频的播放与暂停
- JAVASCRIPT 控制动画的暂停与播放
- OpenCV学习笔记(3)——进度条视频播放控制
- OpenCV学习笔记(3)——进度条视频播放控制
- Android VideoView播放视频控制:开始、暂停、快进(3)
- Android VideoView播放视频控制:开始、暂停、快进
- Android VideoView播放视频控制:开始、暂停、快进(3)
- Android视频播放器中的播放与暂停
- 音乐播放暂停控制
- 实现类似微博视频滚动自动播放与暂停
- JQuery播放暂停HTML视频
- 【OpenCV学习笔记】1.2 播放AVI视频&视频播放控制
- 【opencv的学习】播放avi视频和视频播放控制
- FFmpeg——Windows下,视频播放器3:绘制画面、缩放、暂停、拖拽进度条
- 播放与暂停UIWebView中视频,并获取的长度与播放进度,
- ckplayer播放器控制播放/暂停
- 使用CMD命令提示符配置IP
- 几种常见的过程模型
- vmware 12 虚拟机安装mac osx 10.11.3 分辨率设置
- 卡拉OK效果的实现-IOS音乐播放器
- 体验Impress.js
- 学习OpenCV2——控制视频暂停与播放
- leetcode 3Sum
- 方法与对象参数
- 编程 顺时针打印矩阵
- 并查集-poj2524-Ubiquitous Religions
- 复制构造函数为什么必须是引用?
- 编程技巧 - 封装技巧 - 2
- iOS面试总结
- C# 使用微软的Visual Studio International Pack 类库提取汉字拼音首字母