主要包括以下内容:

1.使用的主要函数的说明。

2.两个实例:视频读取和显示。搭建视频读取和处理框架,调用canny函数提取边缘并显示。

3.一些注意事项和代码说明。

一.使用的主要函数

1.延时函数cv::waitKey

函数原型

intwaitKey(int delay=0)

参数说明:

1). delay<=0代表相对无限等待一个按键;delay>0的时候,函数延时delay毫秒(milliseconds)。但延时是相对的最小延时,        延时不会超过操作系统的a minimumtime between switching threads。在延时的时候,如有按键读入,那么返回按键的ASCII编          码;否则返回-1;

2).至少应该有一个窗口正在使用(Active)。如果有多个,那么延时的对象是所有有效的窗口。

使用范例:

1).if(waitKey(200)>=0) return true;//如果在200毫秒内有按键时间,则返回

2).if (char(waitKey(200))=='q') return true;//如果在200毫秒内按下了‘q’键,则返回

2.返回视频文件的性质函数VideoCapture::get()

视频文件的性质包括比如帧率,下一帧的序列号等等

函数原型:C++: doubleVideoCapture::get(int propId)

参数说明:

参数为实际为枚举类型,如下图

使用范例

VideoCapture capture(“traffic.avi”);

Long count=capture.get(CV_CAP_PROP_FRAME_COUNT)//返回视频文件的帧总数。

3.判断视频文件是否打开成功函数VideoCapture::Isopen()

二.使用实例

1.实例1:基本视频文件的读取和显示

2.实例2:搭建视频文件读取处理显示框架,调用canny算子提取边缘

三.注意事项和代码说明

1.看实例:2的代码,在头文件VideoProc.h中定义了视频处理类VideoProc。请注意成员函数指针*process的定义void(*process)(Mat&,Mat&)。这里定义回调处理函数指针,其类型为指向返回类型为void参数为(Mat&,Mat&)的函数,成员函数void setProcess(void (*)(Mat&,Mat&))对这个指针具体化,但是请注意:在函数声明时形参也被设置同类型的函数指针。

在主函数中,使用了sv.setProcess(canny)使回调函数指针指向canny,而在canny函数中,对单张灰度图像(彩色图像先灰度化)使用Canny算子提取了边缘并返回二值化后的图像。也就是说,视频处理的实质是单张图片的处理;而视频处理的多态性体现在函数指针指向不同的处理函数。

2.实例二实现的目标如下:设置某个帧index即帧序列号(本文中为25),处理过程将在这里暂停,但是按任意键后,处理过程将继续。在整个处理过程中,按下任意键,处理过程将结束。

3.这里的按键事件,并不是意味在命令行窗口或者DOS窗口输出某个字符,而是当光标停留在所创建的窗口上的时候的按键事件。

4.成员函数setcallProcesss(false);设置是否调用处理函数标志位。若设为false->callIt=0,意味输入输出文件一样,即视频文件没有经过处理。设为true->callIt=1,则输出文件经过了处理。

5.注意延时参数设置,假设源视频文件的帧率为FPS,设置延时参数1000/FPS,则经过处理后的视频以相同的帧率播放,注意延时参数为毫秒级,故分子为1000。

@工程及源码点击此处下载

转载于:https://www.cnblogs.com/engineerLF/p/5393155.html

基于OpenCV之视频读取,处理和显示框架的搭建(一)相关推荐

  1. 调用笔记本的摄像头实现基于opencv的视频人脸识别(中文显示和英文显示)以及 index 480 is out of bounds for axis 0 with size 480错误的解决

    @人脸识别代码和一些常见错误 基于opencv的视频人脸识别(中文显示)以及 index 480 is out of bounds for axis 0 with size 480错误的解决 参考了 ...

  2. python 视频人脸替换_Python基于OpenCV实现视频的人脸检测

    本文实例为大家分享了基于OpenCV实现视频的人脸检测具体代码,供大家参考,具体内容如下 前提条件 1.摄像头 2.已安装Python和OpenCV3 代码 import cv2 import sys ...

  3. python视频人脸检测_Python基于OpenCV实现视频的人脸检测

    本文实例为大家分享了基于OpenCV实现视频的人脸检测具体代码,供大家参考,具体内容如下 前提条件 1.摄像头 2.已安装Python和OpenCV3 代码 import cv2 import sys ...

  4. 基于OpenCV的视频场景切割神器

    环境 windows 10 64bit anaconda with python 3.7 pyscenedetect 0.5.5 简介 了解视频剪辑的小伙伴,应该都知道转场这个词.一个视频场景转换到另 ...

  5. 基于OpenCV的视频处理 - 人脸检测

    一个不知名大学生,江湖人称菜狗 original author: jacky Li Email : 3435673055@qq.com  Time of completion:2023.2.7 Las ...

  6. 基于OpenCV的视频道路车道检测

    基于OpenCV的视频道路车道检测 基于OpenCV的视频道路车道检测 前言 综述 运行方法 车道检测的实现 路面图像二值化 基于透视变换提取车道区域 基于二次多项式拟合车道线 计算曲率半径与车辆的偏 ...

  7. 基于OpenCV的视频人物查找及剪辑*

    基于OpenCV的视频人物查找及剪辑 摘要:本项目是基于OpenCV的人脸识别技术,将一个完整的视频中自己想要了解的某个具体的人物片段,通过将视频分割成帧并且训练需要提取人物的面部特征,通过主成分分析 ...

  8. java基于OpenCv图像处理_读取_保存图片

    java基于openCv图像处理_读取_保存图片 本文使用javaCV封装后的OpenCv <dependency><groupId>org.bytedeco</grou ...

  9. 基于Maven的Springboot+Mybatis+Druid+Swagger2+mybatis-generator框架环境搭建

    首页 Android Java 服务器 标签云 作品 关于 赞助列表  <a href="https://github.com/RayeWang" class="f ...

最新文章

  1. C语言里面%2d 意思
  2. 常用电脑密码破解技巧
  3. 配置tomcat 7控制台账号
  4. Openstack概论
  5. VBA中让程序休眠 SLeep的方法
  6. ArcGIS制图表达Representation-规则和几何效果
  7. 通过ssh访问git项目
  8. Ubuntu 16.04 x64 常用软件
  9. shell基础之case应用
  10. 万能手机解锁工具v1.0绿色加强版
  11. 计算机专业网页设计周志,毕业论文(设计)周志范文.doc
  12. 常用的抓包工具有哪些?
  13. ip查看服务器信息,如何查看服务器的出口ip地址
  14. Java期末实训作业日历软件设计
  15. AAC音频格式分析与解码
  16. 几招搞定Windows 7累计补丁包的安装
  17. 陌陌 ZAO 脸,一念成魔一念成佛
  18. 横评美国IaaS“8匹狼”:AWS、GCE、Azure、Rackspace、SoftLayer、Dell、HP、Joyent
  19. dsp软件单元测试,TMS320F2812DSP捕获单元测速 图文精.docx
  20. Stk 10 软件获取卫星位置、高度角、方位角

热门文章

  1. RHCT 模拟题库及答案
  2. 专家解析:如何防范隐私信息泄露
  3. 我是这么使用axios的
  4. Vue父组件和子组件之间传递数据
  5. Security+认证备考经验分享(501版本)
  6. 一些我们码代码过程中有用的小技巧
  7. 鲁亿通欲收购昇辉控股 跨界布局照明、智慧城市领域
  8. 解决编译nginx模块与rpm包安装的nginx不兼容问题
  9. UBUNTU添加开机自动启动程序方法
  10. jQuery学习笔记--Helloworld