概述
怎么用Opencv实现视频快进?小白可能会增大ftp,减小等待时间,但是这种方式大大增加了程序计算量,而且快进有上限,一般电脑全力计算也只不过能快进两三倍而已。要想实现大步幅快进就要用到跳帧:比如读取完第一帧直接读取第十帧,这样就快进了十倍。
如何实现跳帧读取?这里就要用到VideoCapture::set
函数。set函数用于为视频对象的属性VideoCaptureProperties
设置值。 cv.CAP_PROP_POS_FRAMES
属性就是接下来要读取的帧的索引。 `
cap = cv2.VideoCapture(path)
cap.set(cv.CAP_PROP_POS_FRAMES, index)
就可以实现读取第index帧了。
有set
就会有get
,VideoCapture::get
函数用于获取相应属性的值,比如视频的总帧数,播放帧率等。
get
和set
函数通过API来调用操作系统,进而调用设备驱动,再调用硬件。
VideoCaptureProperties
都是用int型整数来表示的,大约有40个左右。
后面的是对一些专业相机的设置,不太常用。这里记录前16个:
Velue | 属性名 | 描述 |
---|---|---|
0 | cv.CAP_PROP_POS_MSEC | 视频当前播放位置的时间(毫秒) |
1 | cv.CAP_PROP_POS_FRAMES | 接下来要解码/捕获的帧的基于0的索 |
2 | cv.CAP_PROP_POS_AVI_RATIO | 视频文件的相对位置:0 为开始,1 为结束。 |
3 | cv.CAP_PROP_FRAME_WIDTH | 帧图像的宽度。 |
4 | cv.CAP_PROP_FRAME_HEIGHT | 帧图像的高度。 |
5 | cv.CAP_PROP_FPS | 帧率。 |
6 | cv.CAP_PROP_FOURCC | 视频编码格式 (4个字符)。 |
7 | cv.CAP_PROP_FRAME_COUNT | 视频文件中的帧数。 |
8 | cv.CAP_PROP_FORMAT | VideoCapture :: retrieve()返回的Mat对象的格式。 |
9 | cv.CAP_PROP_MODE | 特定于后端的值,指示当前的捕获模式。 |
10 | cv.CAP_PROP_BRIGHTNESS | 图像的亮度(仅适用于支持该功能的相机)。 |
11 | cv.CAP_PROP_CONTRAST | 图像的对比度(仅适用于相机)。 |
12 | cv.CAP_PROP_SATURATION | 图像饱和度(仅适用于相机)。 |
13 | cv.CAP_PROP_HUE | 图像的色相(仅适用于相机)。 |
14 | cv.CAP_PROP_GAIN | 图像增益(仅适用于支持该功能的相机)。 |
15 | cv.CAP_PROP_EXPOSURE | 曝光(仅适用于支持该功能的相机)。 |
16 | cv.CAP_PROP_CONVERT_RGB | 布尔标志,指示是否应将图像转换为RGB。 |
最后
以上就是靓丽凉面为你收集整理的用Python Opencv实现视频快进的全部内容,希望文章能够帮你解决用Python Opencv实现视频快进所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复