Почему вы не проверяете ошибки?Если CreateVideoWriter()
терпит неудачу, вы никогда не узнаете.
Я думаю, что CreateVideoWriter возвращает NULL .Добавьте соответствующий код для проверки возврата и убедитесь, что это правда.
Если это так, проблема, скорее всего, CV_FOURCC()
, которая не находит кодек.
Затем проверьте этоОтвет для других кодеков: Создание AVI-файлов в OpenCV
Я также рекомендую обновить OpenCV до последней доступной версии (я думаю, что это v2.2).
EDIT :
Вам также не хватало последнего параметра в CreateVideoWriter:
#!/usr/bin/env python
import sys
from opencv.cv import *
from opencv.highgui import *
im1 = cvLoadImage("img1.jpg")
if not im1:
print "Could not load im1"
im2 = cvLoadImage("img2.jpg")
if not im2:
print "Could not load im2"
fps = 4.0
frame_size = cvGetSize(im1)
#writer = cvCreateVideoWriter("out.avi", CV_FOURCC('M', 'J', 'P', 'G'), fps, frame_size, True)
writer = cvCreateVideoWriter("out.avi", CV_FOURCC('F', 'L', 'V', '1'), fps, frame_size, True)
if not writer:
print "Error in creating video writer"
sys.exit(1)
else:
print cvWriteFrame(writer, im1)
print cvWriteFrame(writer, im2)
cvReleaseVideoWriter(writer)
Я думаю, что есть проблема с OpenCV / Linux / Python относительно cvCreateVideoWriter ().Я постараюсь поговорить с разработчиками и обновлю здесь, когда получу ответ.