用opencv python编写框架

时间:2017-10-10 18:14:13

标签: python opencv

我有一个代码以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()

1 个答案:

答案 0 :(得分:0)

30 fps是捕获率,无需写入帧的操作。为了增加文件夹中的帧,您需要在写入前一帧时捕获帧。您应该使用多线程来实现此目的。工作原理如下。

  • 当一个线程捕获帧时,另一个线程写入前一帧。