2013-01-21 17 views
5

Sto cercando di creare un video utilizzando OpenCV 2.4.0 in python 2.7.2. Ma la dimensione del file è avi 0.Creazione di un video utilizzando OpenCV 2.4.0 in python

Il mio codice:

from cv2 import * 

im1 = cv.LoadImage("1.jpg") 

fps = 20 
frame_size = cv.GetSize(im1) 

#writer = cv.CreateVideoWriter("out.avi", CV_FOURCC('M', 'J', 'P', 'G'), fps, frame_size, True) 

v = VideoWriter() 

v.open("out.avi", cv.CV_FOURCC('F', 'M', 'P', '4'), fps, (800,600), True) 
print v.isOpened() 

isOpened() è sempre tornando false.

un altro tentativo:

#!/usr/bin/env python 
import sys 

from cv2 import * 

im1 = cv.LoadImage("1.jpg") 

if not im1: 
    print "Error loading image" 

im2 = cv.LoadImage("2.jpg") 

if not im1: 
    print "Error loading image" 

fps = 20 
frame_size = cv.GetSize(im1) 

writer = cv.CreateVideoWriter("out.avi", cv.CV_FOURCC('M', 'J', 'P', 'G'), fps, frame_size, True) 

if not writer: 
    print "Error in creating video writer" 
    sys.exit(1) 
else: 
    cv.WriteFrame(writer, im1) 
    cv.WriteFrame(writer, im2) 

del writer 

Nessun errore, ma l'uscita è vuota.

Cosa mi manca?

+0

Non ho usato OpenCV prima, ma credo che tu bisogno di Chiama l'equivalente python di [questa funzione] (http://docs.opencv.org/modules/highgui/doc/reading_and_writing_images_and_video.html#releasevideowriter) quando la scrittura è terminata. –

+0

correlati: http://stackoverflow.com/questions/6918995/opencv-error-on-python –

+0

@AshwiniChaudhary Ho controllato tutte le domande in SO, non funziona nulla. Inoltre, ho provato 'del writer', ancora niente. Sembra che mi manchi qualche codec, forse. – ATOzTOA

risposta

25
import cv2 

img1 = cv2.imread('1.jpg') 
img2 = cv2.imread('2.jpg') 
img3 = cv2.imread('3.jpg') 

height , width , layers = img1.shape 

video = cv2.VideoWriter('video.avi',-1,1,(width,height)) 

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

cv2.destroyAllWindows() 
video.release() 

Un codice semplice per quello che vuoi fare. per i dettagli here

+0

Ottimo, funziona. Grazie. – ATOzTOA

+5

Ottengo: AttributeError: l'oggetto 'cv2.VideoWriter' non ha attributo 'release' –

0
height, width, layers = img.shape 
out = cv2.VideoWriter("output.avi", cv2.VideoWriter_fourcc(*"XVID"), 30,(width,height)) 
out.write(img) 
out.release() 
Problemi correlati