基于OpenCV之视频读取,处理和显示框架的搭建(一)
主要包括以下内容:
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之视频读取,处理和显示框架的搭建(一)相关推荐
- 调用笔记本的摄像头实现基于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错误的解决 参考了 ...
- python 视频人脸替换_Python基于OpenCV实现视频的人脸检测
本文实例为大家分享了基于OpenCV实现视频的人脸检测具体代码,供大家参考,具体内容如下 前提条件 1.摄像头 2.已安装Python和OpenCV3 代码 import cv2 import sys ...
- python视频人脸检测_Python基于OpenCV实现视频的人脸检测
本文实例为大家分享了基于OpenCV实现视频的人脸检测具体代码,供大家参考,具体内容如下 前提条件 1.摄像头 2.已安装Python和OpenCV3 代码 import cv2 import sys ...
- 基于OpenCV的视频场景切割神器
环境 windows 10 64bit anaconda with python 3.7 pyscenedetect 0.5.5 简介 了解视频剪辑的小伙伴,应该都知道转场这个词.一个视频场景转换到另 ...
- 基于OpenCV的视频处理 - 人脸检测
一个不知名大学生,江湖人称菜狗 original author: jacky Li Email : 3435673055@qq.com Time of completion:2023.2.7 Las ...
- 基于OpenCV的视频道路车道检测
基于OpenCV的视频道路车道检测 基于OpenCV的视频道路车道检测 前言 综述 运行方法 车道检测的实现 路面图像二值化 基于透视变换提取车道区域 基于二次多项式拟合车道线 计算曲率半径与车辆的偏 ...
- 基于OpenCV的视频人物查找及剪辑*
基于OpenCV的视频人物查找及剪辑 摘要:本项目是基于OpenCV的人脸识别技术,将一个完整的视频中自己想要了解的某个具体的人物片段,通过将视频分割成帧并且训练需要提取人物的面部特征,通过主成分分析 ...
- java基于OpenCv图像处理_读取_保存图片
java基于openCv图像处理_读取_保存图片 本文使用javaCV封装后的OpenCv <dependency><groupId>org.bytedeco</grou ...
- 基于Maven的Springboot+Mybatis+Druid+Swagger2+mybatis-generator框架环境搭建
首页 Android Java 服务器 标签云 作品 关于 赞助列表 <a href="https://github.com/RayeWang" class="f ...
最新文章
- C语言里面%2d 意思
- 常用电脑密码破解技巧
- 配置tomcat 7控制台账号
- Openstack概论
- VBA中让程序休眠 SLeep的方法
- ArcGIS制图表达Representation-规则和几何效果
- 通过ssh访问git项目
- Ubuntu 16.04 x64 常用软件
- shell基础之case应用
- 万能手机解锁工具v1.0绿色加强版
- 计算机专业网页设计周志,毕业论文(设计)周志范文.doc
- 常用的抓包工具有哪些?
- ip查看服务器信息,如何查看服务器的出口ip地址
- Java期末实训作业日历软件设计
- AAC音频格式分析与解码
- 几招搞定Windows 7累计补丁包的安装
- 陌陌 ZAO 脸,一念成魔一念成佛
- 横评美国IaaS“8匹狼”:AWS、GCE、Azure、Rackspace、SoftLayer、Dell、HP、Joyent
- dsp软件单元测试,TMS320F2812DSP捕获单元测速 图文精.docx
- Stk 10 软件获取卫星位置、高度角、方位角