OpenCV Python——從影片中提取影像



影片不過是幀序列,每幀都是一張影像。透過使用OpenCV,組成影片檔案的全部幀都能夠透過執行imwrite()函式一直到影片的末尾來提取。

cv2.read()函式返回下一個可用的幀。函式還會給出返回值,持續到流的末尾。文中,計數器在迴圈內遞增,並用作檔名稱。

程式如下,演示如何從影片中提取影像——

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()
廣告