微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

寻找视频的开头以提取帧 - opencv

如何解决寻找视频的开头以提取帧 - opencv

我刚刚遇到了这个问题。

假设我有两张图片

import cv2
video = cv2.VideoCapture('video1.avi')

我想提取视频的帧,所以我这样做:

video.set(cv2.CAP_PROP_POS_FRAMES,0)
error1,frame1 = video.read()
error2,frame2 = video.read()
error3,frame3 = video.read()
...

我的问题是我不知道如何回到开始以再次获取帧。我希望可能有一个类似于 video.seek(0) 之类的函数......

video.read() 将始终获得下一帧。所以我先读了第 1 帧,然后是第 2 帧,但我想回到开头,这样当我执行 video.read() 时,它会再次提取第一帧。那我该怎么做呢?

像普通文件一样,你可以像这样读取文件

with open('my_file.txt','r') as f:
    line1 = f.readline()
    line2 = f.readline()

然后在获得一些行后,您可以使用以下命令重置回开头:

...
    ...
    f.seek(0)

然后你可以重新开始阅读这些行。

解决方法

哦,我刚刚发现了一个方法!

所以在得到一些帧之后:

video.set(cv2.CAP_PROP_POS_FRAMES,0)
error1,frame1 = video.read()
error2,frame2 = video.read()
error3,frame3 = video.read()
...

我可以再添加一个:

video.set(cv2.CAP_PROP_POS_FRAMES,0)

在它之后寻找回到起点!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。