2017-04-03 60 views
1

在python上使用opencv。我錄製了視頻,然後將它分割成圖片,但花了很長時間,所以我想在錄製視頻時立即將視頻分割成圖片。我在網上找到代碼,但它只能捕獲1張圖片。如何將實時視頻分割成圖像?

import cv2 

def main(): 
    cam = cv2.VideoCapture(0) 
    frame = cam.read()[1] 
    cv2.imwrite(filename='img%d.jpg',img=frame) 

if __name__== '__main__': 
    main() 

任何人都可以幫助我嗎?我對python和opencv很新。

+0

使用和字符串和一個遞增的數字值使用imwrite功能,每次提供一個不同的文件名(例如,所以你的問題可能是如何將數字添加到字符串不幸的是,我可以」。在那裏幫助,因爲我不是那麼熟悉蟒蛇 – Micka

回答

1

您沒有增加文件名,所以它會一次又一次被覆蓋。此外,您需要一個while循環。嘗試:

import cv2 

def main(): 
    cam = cv2.VideoCapture(0) 
    frameNum = 0 
    isCaptured = True 
    while True: 
     isCapture, frame = cam.read() 
     if not isCapture: 
      # no more frame, exit loop 
      break 
     frameNum = frameNum + 1 
     fileName = 'img{:d}.jpg'.format(frameNum) 
     cv2.imwrite(filename=fileName,img=frame) 

if __name__== '__main__': 
    main() 
+0

Thx這麼多你的幫助:D。 – FillzZ

+0

如果它是有益的,請upvote /接受答案:D –