2013-01-21 146 views
5

Tôi đang cố gắng tạo video bằng cách sử dụng OpenCV 2.4.0 trong python 2.7.2. Tuy nhiên, kích thước tập tin là avi 0.Tạo video bằng OpenCV 2.4.0 trong python

Mã của tôi:

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() luôn trở false.

Một thử:

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

Không có lỗi, nhưng sản lượng trống.

Tôi đang thiếu gì?

+0

tôi đã không sử dụng OpenCV trước nhưng tôi đoán Bạn cần phải gọi python tương đương với [chức năng này] (http://docs.opencv.org/modules/highgui/doc/reading_and_writing_images_and_video.html#releasevideowriter) khi viết xong. –

+0

liên quan: http://stackoverflow.com/questions/6918995/opencv-error-on-python –

+0

@AshwiniChaudhary Tôi đã kiểm tra tất cả các câu hỏi trong SO, không có gì hoạt động. Ngoài ra, tôi đã cố gắng 'del writer', vẫn không có gì. Có vẻ như tôi đang thiếu một số codec, có thể. – ATOzTOA

Trả lời

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

Mã đơn giản cho những gì bạn muốn làm. để biết chi tiết here

+0

Tuyệt vời, nó hoạt động. Cảm ơn. – ATOzTOA

+5

Tôi nhận được: AttributeError: đối tượng 'cv2.VideoWriter' không có thuộc tính 'release' –

0
height, width, layers = img.shape 
out = cv2.VideoWriter("output.avi", cv2.VideoWriter_fourcc(*"XVID"), 30,(width,height)) 
out.write(img) 
out.release() 
Các vấn đề liên quan