2013-06-03 55 views
3

我一直在嘗試使用opencv將視頻製作模塊添加到我的程序中,但嘗試一下,因爲我可能無法讓視頻顯示超過1幀。 我得到這個例子代碼,同時尋找答案 (Creating a video using OpenCV 2.4.0 in python使用opencv製作視頻,只能獲得1幀

import cv2 
from cv import * 

img1 = cv2.imread('i001.png') 
img2 = cv2.imread('i002.png') 
img3 = cv2.imread('i003.png') 

height , width , layers = img1.shape 

video=cv2.VideoWriter('test.avi', CV_FOURCC('D', 'I', 'V', 'X'),1,(width,height)) 

video.write(img1) 
video.write(img2) 
video.write(img3) 

cv2.destroyAllWindows() 
video.release() 

這將創建一個3秒鐘運行的視頻,但只顯示了所有3秒,第一張圖像。有沒有編解碼器錯誤,或者我錯過了什麼?

+2

看看這個http://stackoverflow.com/questions/5426637/writing-video-with-opencv-python-mac – fGo

+1

嘗試使用不同的編解碼器。它似乎是一個解碼/編碼問題。嘗試'mjpg'或'i420'作爲fourcc,看它是否改變了任何東西。 –

+0

謝謝,i420編解碼器似乎工作,我以前嘗試過一堆,他們沒有。 – Johan

回答

0

u可以使用:

cv.WriteFrame(writer, image) 

這樣的:

import cv 

img1 = cv.LoadImage('i001.png') 
img2 = cv.LoadImage('i002.png') 
img3 = cv.LoadImage('i003.png') 

writer=cv.CreateVideoWriter(filename, fourcc, fps, frame_size, is_color) 

cv.WriteFrame(writer, img1) 
cv.WriteFrame(writer, img2) 
cv.WriteFrame(writer, img3) 

看也:

http://opencv.willowgarage.com/documentation/python/highgui_reading_and_writing_images_and_video.html?highlight=createvideowriter#CreateVideoWriter