2013-01-21 10 views
5

Ich versuche, ein Video mit OpenCV 2.4.0 in python 2.7.2 zu erstellen. Aber die avi Dateigröße ist 0.Erstellen eines Videos mit OpenCV 2.4.0 in Python

Mein Code:

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() immer zurückkehrt false.

Ein weiterer Versuch:

#!/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 

keine Fehler, aber die Ausgabe ist leer.

Was fehlt mir?

+0

Ich habe OpenCV nicht verwendet vor, aber ich denke, Sie müssen Rufen Sie Pythons Äquivalent zu [dieser Funktion] (http://docs.opencv.org/modules/highgui/doc/reading_and_writing_images_and_video.html#releasevideowriter) auf, wenn das Schreiben abgeschlossen ist. –

+0

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

+0

@AshwiniChaudhary Ich habe alle Fragen in SO überprüft, nichts funktioniert. Außerdem habe ich 'del writer' versucht, immer noch nichts. Scheint, als ob ich einige Codecs vermisse, vielleicht. – ATOzTOA

Antwort

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

Ein einfacher Code für das, was Sie tun möchten. Details here

+0

Großartig, es funktioniert. Vielen Dank. – ATOzTOA

+5

Ich bekomme: AttributeError: 'cv2.VideoWriter' Objekt hat kein Attribut 'release' –

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