问题描述
我刚刚遇到了这个问题。
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)
在它之后寻找回到起点!