前一篇我们介绍了 《C++ OpenCV摄像头及视频操作类VideoCapture介绍》,我们现在就针对这个类里的API进行DEMO的演示。
先上干货
下面是我们这个DEMO的演示视频:
代码演示
新建一个项目opencv-1001,配置属性(VS2017配置OpenCV通用属性),然后在源文件写入#include和main方法
可以看到上面我们加了一个视频的播入标志,还有一个随机的取值,用于随机获取开始和结束播放的帧数。
整个DEMO的操作流程为
1.加载视频
我们用到了open的函数,open后面的参数直接就是视频的路径。
这个注释的代码是代表开启摄像头,里面的int参数代表着开启摄像头的序号。
后面的namedwindow就不再介绍了,可以看看以前的文章中说过
2.获取视频的总帧数
用到的就是get函数里面的参数为CV_CAP_PROP_FRAME_COUNT
3.随机生成本次播放的开始帧数和结束帧数
通过RNG的随机数我们获取到视频的开始和结束播放帧数。然后再用函数set进行设置
4.获取帧率,生成两帧的间隔时间
5.播放视频,播放过程中加入当前帧数的显示及按键控制暂停或退出
定义了当前播放帧,然后用read的函数把每一帧的数据读取到我们的Mat里,然后用imshow显示出来。
设置当按下ESC键时直接退出播放视频,当前播放帧数大于结束帧数就直接提示视频播放完毕。
设置按下任意键暂停播放视频,当再按任意键时再继续播放视频。然后当前帧数再加1。
6.关闭释放视频资源
用release进行视频的释放,释放后按何意键退出我们的命令行程序。
-END-