我有一个代码以30 fps运行视频10秒钟,我必须在该间隔内保存帧。对于10秒和30 fps,我们应该在文件夹中有30x10 = 300帧。但我有70该文件夹中的框架。但我不知道为什么会发生。我的代码是
import cv2
import time
timeout=time.time()+10
cap=cv2.VideoCapture(0)
cap.set(cv2.CAP_PROP_FPS,30)
f=1
while(True):
ret,frame=cap.read()
cv2.imshow('test',frame)
fps=cap.get(cv2.CAP_PROP_FPS,30)
print('fps',fps)
cv2.imwrite('Data/'+str(f)+'.jpg')
if cv2.waitKey(1) & 0xFF == ord('q'):
break
if time.time()>timeout:
break
f=f+1
cap.release()
cv2.destroyAllWindows()
答案 0 :(得分:0)
30 fps是捕获率,无需写入帧的操作。为了增加文件夹中的帧,您需要在写入前一帧时捕获帧。您应该使用多线程来实现此目的。工作原理如下。