2015-05-09 48 views
4

我想從視頻圖像獲取,並將其存儲在「.JPEG」或「巴紐」格式,以獲得從視頻圖像,請幫助我如何與OpenCV的做到這一點我的代碼是如何使用OpenCV的蟒蛇

import cv2 
 
vidcap = cv2.VideoCapture('video1.mp4') 
 
success,image = vidcap.read() 
 
count = 0; 
 
print "I am in success" 
 
while success: 
 
    success,image = vidcap.read() 
 
    cv2.imwrite("frame%d.jpg" % count, image)  # save frame as JPEG file 
 
    if cv2.waitKey(10) == 27:      # exit if Escape is hit 
 
     break 
 
    count += 1

我在這裏試圖通過幀擺脫視頻幀圖像並保存爲幀1,幀2,幀3

+0

您的代碼我對獲取圖像的代碼從視頻中,如圖所示,爲我工作。 – John1024

+0

其實我是新來的python它只是生成python py.bak文件對我來說除了打開簡歷之外,還有其他的依賴項,比如'ffmpeg' – programminglover

+0

Python不會生成'.bak'文件。你的編輯必須這樣做。沒有其他的依賴關係。從命令行,只需運行'python script.py',在那裏你應該把'script.py'替換成其中包含代碼的文件的名稱。 OpenCV非常詳細,所以如果代碼在終端上產生大量輸出,不要感到驚訝。如果出現問題,python會產生堆棧跟蹤。在這種情況下,請將堆棧跟蹤完整複製並粘貼到問題中。 – John1024

回答

5

這是我使用在視頻讀取和保存斷幀:

import cv2 
import os 

def video_to_frames(video, path_output_dir): 
    # extract frames from a video and save to directory as 'x.png' where 
    # x is the frame index 
    vidcap = cv2.VideoCapture(video) 
    count = 0 
    while vidcap.isOpened(): 
     success, image = vidcap.read() 
     if success: 
      cv2.imwrite(os.path.join(path_output_dir, '%d.png') % count, image) 
      count += 1 
     else: 
      break 
    cv2.destroyAllWindows() 
    vidcap.release() 

video_to_frames('../somepath/myvid.mp4', '../somepath/out') 
0

這是OpenCV的

import cv2 
print(cv2.__version__) 
vidcap = cv2.VideoCapture("Malar.mp4") 
print vidcap.read() 
success,image = vidcap.read() 
count = 0 
success = True 
while success: 
    success,image = vidcap.read() 
    print 'Read a new frame: ', success 
    cv2.imwrite("frame%d.jpg" % count, image)  # save frame as JPEG file 
    count += 1