OpenCV不仅能够很方便的加载和保存图片,而且对于视频的加载与保存也可以很简单的通过OpenCV中的函数轻松实现。本篇主要介绍如何加载保存视频。
01
加载并显示视频
前面介绍了加载图像,我们可以直接通过imread()函数加载图像,返回一个使用ndarray数组表示的像素矩阵。视频和图片是不同的东西,但是我们可以将视频看成是一帧一帧的图像,因此在OpenCV中将读取视频分成两个部分:
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。下面直接给出结论,测试也很简单。
02
保存视频
保存视频有一些麻烦,需要指定保存视频的编码、每一帧时间间隔以及每一帧的大小,保存视频编码后面会介绍,目前按照代码中的执行即可。
看见"my_love.avi"文件。
本文分享自 AI机器学习与深度学习算法 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!