OpenCV官方文档02-视频的基本操作(1)

2022-06-01 15:31:21 浏览数 (1)

1.用摄像头捕获视频

我们需要经常使用摄像头捕获图像。OpenCV为这个应用提供了一个非常简单的接口。让我们来使用摄像头来捕获一段视频,并把它转换成灰度视频显示出来。

为了为了获取视频,你应该创建一个VideoCapture对象。他的参数可以是设备的索引号,或者是一个视频文件。设备索引号就是在指定要使用的摄像头。一般的笔记本电脑都有内置摄像头。所以参数就是0。你可以通过设置成1或者其他的来选择别的摄像头。之后你就可以一帧一帧的捕获视频了。但是最后别忘了停止捕获视频。

运行代码出现视频捕捉画面如下图所示:

cap.read()返回一个布尔值(True/False)。如果帧读取的是正确的就是True。所以最后你可以通过检查他的返回值来查看视频文件是否已经到了结尾。

有时cap可能不能成功的初始化摄像头设备。这种情况下上面的代码会报错。你可以使用cap.isOpened()来检查是否成功初始化了。如果返回值是True那就没有问题。否则就要使用函数cap.open()。

你可以使用函数cap.get(propId)来获得视频的一些参数信息。这里propId可以是0到18之间的任何整数;每一个数代表视频的一个属性。其中的一些值可以使用cap.set(propId,value)来修改,value就是你想要设置成的新值。

例如我可以使用cap.get(3)和cap.get(4)来查看每一帧的宽和高。默认情况下得到的值是640X480。但是我可以使用ret=cap.set(3,320)和ret=cap.set(4,240)来把宽和高改成320X240。

注意:当你的程序报错时,你首先应该检查的是你的摄像头能否在其他程序中正常工作(比如Linux下的Cheese)。

2.提取视频中关图像键帧

有时在工作中我们需要将采集到的视频切分成静态图像,提取视频中的关键信息;对此我们可以使用OpenCV和Pillow来切分视频将其按编号保存为0、1、2、3......的jpg图片。具体代码如下:

查看结果如下图所示:

注意:需要将视频和代码放在同一个路径下面或者指定视频路径。


本文未经作者允许,不得私自转载。如有需要,可先向作者联系取得授权许可。谢谢!

0 人点赞