前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >OpenCV-加载和保存视频

OpenCV-加载和保存视频

作者头像
触摸壹缕阳光
发布2019-11-13 20:30:58
2.2K0
发布2019-11-13 20:30:58
举报

OpenCV不仅能够很方便的加载和保存图片,而且对于视频的加载与保存也可以很简单的通过OpenCV中的函数轻松实现。本篇主要介绍如何加载保存视频。

01

加载并显示视频

前面介绍了加载图像,我们可以直接通过imread()函数加载图像,返回一个使用ndarray数组表示的像素矩阵。视频和图片是不同的东西,但是我们可以将视频看成是一帧一帧的图像,因此在OpenCV中将读取视频分成两个部分:

  1. 打开视频设备或者视频文件,此时的视频设备主要指的是摄像头;
  2. 将视频按帧进行读取,想要显示视频的时候,通过imshow()函数显示每一帧的图像,然后通过waitKey(delay)函数刷新图像,通俗来讲就是每一帧之间的间隔时间;

OpenCV中提供VideoCapture()函数打开视频设备或者视频文件,此时根据参数不同,选择是打开视频设备还是视频文件。

1.打开摄像头,此时cv.VideoCapture函数中的参数是摄像头设备的索引,索引从0开始,一般笔记本中都会有内置摄像头,因此要打开笔记本中的内置摄像头,只需使用cv.VideoCapture(0),即index为0的设备。当然你可以选择1或者其他的来选择别的摄像头;

2.打开本地视频文件,此时cv.VideoCapture函数中的参数是本地视频文件的路径;

此时仅仅是将视频设备或者视频文件打开,想要读取显示还需要read()函数和imshow()函数,下面通过代码演示打开视频设备以及视频文件并显示。

打开我笔记本电脑中的摄像头(此时需要注意要在设置中开启摄像头权限)并显示出来

执行效果,会打开一个窗口,刷新率为15ms,还是挺灵活的,当然你可以设置延迟大一点。

接下来看看如何使用OpenCV打开视频文件并显示,其实和上面的类似。首先准备一个视频文件,此时我的视频文件叫做"love.avi",我将文件放在当前目录下。

执行效果:

这里需要说明cv.waitKey函数,在图像的加载与保存中,我们介绍过此函数,但是通过前面的效果,也可以看出waitKey函数在视频中和在图像中是不一样的,当然参数值也是三种,正整数,负整数以及0。下面直接给出结论,测试也很简单。

  1. ≤0的时候,读取视频只显示当前帧,并且如果我们不进行操作的话,无限制的等下;
  2. >0的时候,也就是上面代码测试的,两个帧时间的间隔,时间为ms。

02

保存视频

保存视频有一些麻烦,需要指定保存视频的编码、每一帧时间间隔以及每一帧的大小,保存视频编码后面会介绍,目前按照代码中的执行即可。

看见"my_love.avi"文件。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-05-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI机器学习与深度学习算法 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档