专栏首页微卡智享C++ OpenCV播放视频及调用摄像头显示

C++ OpenCV播放视频及调用摄像头显示

前一篇我们介绍了 《C++ OpenCV摄像头及视频操作类VideoCapture介绍》,我们现在就针对这个类里的API进行DEMO的演示。

先上干货

下面是我们这个DEMO的演示视频:

视频内容

代码演示

新建一个项目opencv-1001,配置属性(VS2017配置OpenCV通用属性),然后在源文件写入#include和main方法

可以看到上面我们加了一个视频的播入标志,还有一个随机的取值,用于随机获取开始和结束播放的帧数。

整个DEMO的操作流程为

  1. 加载视频
  2. 获取视频的总帧数
  3. 随机生成本次播放的开始帧数和结束帧数
  4. 获取帧率,生成两帧的间隔时间
  5. 播放视频,播放过程中加入当前帧数的显示及按键控制暂停或退出
  6. 关闭释放视频资源

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-

本文分享自微信公众号 - 微卡智享(VaccaeShare),作者:Vaccae

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-06-06

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • C++ OpenCV视频操作之背景消除建模(BSM)-1

    前面我有几章是专门设置怎么读取视频操作的文章《C++ OpenCV播放视频及调用摄像头显示》,最近学完了一些形态学的基础操作及特征提取后,我们开始重新学习视频一...

    Vaccae
  • 【超级干货】Delphi轮播视频和图片程序(用于双屏显示程序)

    前面一章我们学习了delphi 使用windowsmediaplayer播放视频,这次我们直接用实战演练,文章的最后我会把源码的下载地址放上。我们今天来做一个程...

    Vaccae
  • Delphi使用NativeXml处理XML(三)

      TXmlNode = class(TPersistent)   该TXmlNode代表在XML文件中的元素。每个TNativeXml拥有一个根(Root)元...

    Vaccae
  • 如何在视频云管理平台获取VLC视频流播放地址?

    我们知道在视频监控日益完善的今天,进行视频的综合管理是一件具有挑战的事请。如何将不同协议的摄像头进行统一的管理?这也是我们研发智能视频云管理平台的初衷。

    EasyNVR
  • 流媒体视频互联网直播/点播服务器AVC和H.264编解码器演进介绍

    最近几年,在线视频行业发展十分迅速,无论是视频播放设备还是视频传输技术都在不断革新,我接触视频行业也比较久了,流视频其实就是关于编解码器,容器和协议的。我们Ea...

    EasyNVR
  • 「简单实战」YouTube Iframe API 的使用

    业务需求需要在自己的网页上嵌入油管( youtube )上的视频,所以去踩了油管 IFrame Player API 的坑。其实和大多数国内视频网站的 ifr...

    拾贰
  • 黑科技DeepFake检测方法:利用心跳做信号,还能「揪出」造假模型

    伪造人像视频生成技术给社会带来了新的威胁,例如利用逼真的伪造图像和视频进行政治宣传、名人模仿、伪造证据以及其他与身份有关的操作。伴随着这些生成技术的发展,出现了...

    机器之心
  • 从插件入手:挖掘WordPress站点的“后入式BUG”

    当任务目标是一个wordpress站点的时候,是否让你感到过头大?wpscan扫了半天,却没有任何有利用价值的bug,这时候就拍拍屁股走人了?

    FB客服
  • 网页视频加密成熟方案简介【H5/M3U8/Hls】

    视频网站运营者都很关注自己网站视频的版权,怎样防止下载,防止传播,防止翻录等功能,今天给大家介绍一个成熟方案:

    点量小崔
  • 分布式锁实现大型连续剧之(一):Redis

    单机环境下我们可以通过JAVA的Synchronized和Lock来实现进程内部的锁,但是随着分布式应用和集群环境的出现,系统资源的竞争从单进程多线程的竞争变成...

    java架构师

扫码关注云+社区

领取腾讯云代金券