2013-01-21 27 views
5

Próbuję utworzyć wideo przy użyciu OpenCV 2.4.0 w python 2.7.2. Ale rozmiar avi plik 0.Tworzenie filmu przy użyciu OpenCV 2.4.0 w pythonie

Mój kod:

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() zawsze powrocie false.

Kolejna próba:

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

żadne błędy, ale wyjście jest pusty.

Czego mi brakuje?

+0

Nie używałem OpenCV wcześniej, ale myślę, że musisz zadzwoń do pythonowego odpowiednika [tej funkcji] (http://docs.opencv.org/modules/highgui/doc/reading_and_writing_images_and_video.html#releasevideowriter) po zakończeniu pisania. –

+0

powiązane: http://stackoverflow.com/questions/6918995/opencv-error-on-python –

+0

@AshwiniChaudhary Sprawdziłem wszystkie pytania w SO, nic nie działa. Próbowałem też "del pisarz", wciąż nic. Wygląda na to, że brakuje mi niektórych kodeków. – ATOzTOA

Odpowiedz

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

Prosty kod do tego, co chcesz zrobić. Szczegółowe informacje here

+0

Świetnie, to działa. Dzięki. – ATOzTOA

+5

Otrzymuję: AttributeError: obiekt "cv2.VideoWriter" nie ma atrybutu "release" –

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