Opencv Python 简明教程

OpenCV Python - Extract Images from Video

视频只不过是由一系列帧组成的,且每个帧都是一幅图像。使用 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()