OpenCV Python - 从视频中提取图像

视频不过是一系列帧,每一帧都是一张图片。 通过使用 OpenCV,可以通过执行 imwrite() 函数提取组成视频文件的所有帧,直到视频结束。

cv2.read() 函数返回下一个可用帧。 该函数还给出一个返回值,该值在流结束之前一直为 true。 在这里,一个计数器在循环内递增并用作文件名。

以下程序演示了如何从视频中提取图像 −

import cv2
import os

cam = cv2.VideoCapture("video.avi")

frameno = 0
while(True):
   ret,frame = cam.read()
   if ret:
      # if video is still left continue creating images
      name = str(frameno) + '.jpg'
      print ('new frame captured...' + name)

      cv2.imwrite(name, frame)
      frameno += 1
   else:
      break

cam.release()
cv2.destroyAllWindows()