opencv学习系列——视频格式的读取

视频读取本质上就是读取图像,因为视频是由一帧一帧图像组成的。1秒24帧基本就能流畅的读取视频了。
(1)打开视频文件
A. VideoCapture cap;
cap.open(Path);
B. VideoCapture cap(Path);
(2)循环读取每一帧
while(1)
{
Mat frame; //定义Mat变量,用来存储每一帧
cap>>frame; //读取当前帧方法一
//cap.read(frame); //读取当前帧方法二
imshow(“视频显示”, frame); //显示一帧画面
waitKey(30); //延时30ms
}
(3)控制视频窗口大小:resizewindow函数
namedWindow(“video”, 0);
resizeWindow(“video”, 600, 400);
读取mp4格式视频示例:

注意:未来保证图片能够保持一段时间,我们要使用waitKey()函数,这是括号中可以加上时间数值表示每一帧图像的停留时间,如果使用视频格式本来的帧数和每一帧的时间,可以:
double fps = cap.get(CV_CAP_PROP_FPS); //获取视频帧率
double pauseTime = 1000 / fps; //两幅画面中间间隔
waitKey(pauseTime);//每帧延时20毫秒
调节waitkey()的时间数值就可以实现视频的倍速播放:
2倍速:waitKey(0.5pauseTime)
0.5倍速:waitKey(2
pauseTime)
附上源代码:

#include<opencv2/opencv.hpp>
using namespace cv;void main(){VideoCapture cap;cap.open("E://2.mp4"); //打开视频,以上两句等价于VideoCapture cap("E://2.mp4");//cap.open("http://www.laganiere.name/bike.mp4");//也可以直接从网页中获取图片,前提是网页有视频,以及网速够快if(!cap.isOpened())//如果视频不能正常打开则返回return;Mat frame;while(1){cap>>frame;//等价于cap.read(frame);if(frame.empty())//如果某帧为空则退出循环break;imshow("video", frame);waitKey(20);//每帧延时20毫秒}cap.release();//释放资源
}

opencv学习系列——视频格式的读取相关推荐

  1. 在OpenCV里实现视频格式转换

    前面学习了怎么样读取mp4的视频文件,并播放出来.如果你想把视频转换一个格式保存起来,这又得怎么样做呢?在OpenCV里提供了一个写文件的类VideoWriter,它就可以实现保存为不同的文件格式.在 ...

  2. OpenCV学习系列教程第五篇:测试和提高代码的效率

    Opencv-Python学习系列教程第五篇 来自opencv-python官方学习文档,本人谨做翻译和注释,以及一些自己的理解 本文由作者翻译并进行代码验证,转载请注明出处~ 官方文档请参阅:htt ...

  3. 爬虫案例 b站学习系列视频,番剧,单个视频 下载

    开发原因: 一些脚本可以获得b站视频的下载链接,但下载时没有文件名: 虽然有youtobe-dl,但下载速度较慢,所以想要去写一个自己的程序自己使用,目前脚本自己下载资料时一直使用,顺便解决一下问题. ...

  4. OpenCV学习之视频读取与帧的提取、显示及保存

    OpenCV支持从摄像头或视频文件(AVI)中抓取图像并保存为另一视频文件. 一. 从摄像头获取初始化: CvCapture* capture = cvCaptureFromCAM(0); // ca ...

  5. openCV学习笔记1——图片的读取,显示,保存;视频的读取,显示和保存

    在pycharm中下载openCV ①打开pycharm下方的terminal终端 ②在路径下直接输入 pip install opencv-python 1.读入图像 函数:cv2.imread() ...

  6. 计算机视觉OpenCv学习系列:第十部分、实时人脸检测

    第十部分.实时人脸检测 第一节.实时人脸检测 1.OpenCV人脸检测支持演化 2.OpenCV DNN检测函数 3.代码练习与测试 学习参考 第一节.实时人脸检测 1.OpenCV人脸检测支持演化 ...

  7. python基础知识资料-Python基础知识快速学习系列视频课程

    Python 是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1989年发明,第一个公开发行版发行于1991年. Python是纯粹的自由软件, 源代码和解释器C ...

  8. Opencv学习笔记——视频进度条

    有了视频进度条就可以认为是一个简单的视频播放器,关键是读取视频播放到的位置和设置进度滑块的位置. #include "stdio.h" #include "highgui ...

  9. openCV学习系列1:我为什么要学习openCV,什么是openCV

    OpenCV:Open Source Computer Vision Library  开源计算机视觉库 个人学习openCV两个原因:1.看好计算机视觉技术未来广阔市场前景:2.为产品做升级引入新技 ...

最新文章

  1. 【07月01日】A股滚动市净率PB历史新低排名
  2. Silverlight游戏设计(Game Design):(五)面向对象的思想塑造游戏对象
  3. 每瓶啤酒2元,2个空酒瓶或4个瓶盖可换1瓶啤酒。10元最多可喝多少瓶啤酒?
  4. 在oracle中如何复制用户的权限不够,linux 普通用户下 移动或复制一个zip文件权限不够怎么办...
  5. 机器学习实战-第12章Fpgrowth代码勘误+递归打印效果分析
  6. 应对程序员面试,你必须知道的8大数据结构
  7. python如何使用geotools_基于GeoTools实现道路结点的提取
  8. java is-a_java中 is - a和 has - a的区别
  9. 红帽linux5.5序列号,Redhat 5 安装序列号及版本说明
  10. 元宇宙会成为IPv6的拐点吗?
  11. 直接复制php的安装目录部署到其他服务器的时候,无法运行
  12. 如何成为成功的Andr​​oid游戏开发
  13. Choerodon猪齿鱼1.0先行版已发布!
  14. java赵云主角兵器谱游戏_三国赵云所用的龙胆亮银枪的起源——传奇兵器谱一、“百兵之王”枪...
  15. Python 教程推荐
  16. 什么是组态?组态的概念及发展趋势
  17. Excel2016通过宏生成拼音码
  18. 【使用老电脑win7下载miniconda】
  19. 618年中大促八大情景话术大全(赶紧收藏)
  20. 在 IIS 上构建静态网站

热门文章

  1. uboot-2010-03移植到tiny6410(1)
  2. N97连接WIFI提示预置共享密钥无效
  3. 如何查看网站访客信息?
  4. 码率自适应---RTCP goog-remb
  5. C语言网站用户管理系统
  6. TabControl
  7. 恢复浏览器收藏夹数据
  8. ThingsBoard CE添加Excel导出功能-优化篇
  9. DB2数据库错误大全
  10. 杭电oj1062题c语言答案,杭电大OJ题1062,为什么这样的代码会Time Limited exceed,是太复杂了吗?...