Невозможно создать базовый видеофайл с помощью OpenCV - PullRequest
3 голосов
/ 25 апреля 2011

Я пытаюсь создать базовый видеофайл, используя OpenCV (в Python). У меня есть следующий код, который работает без каких-либо ошибок, но я не вижу созданный выходной файл. Мне было интересно, есть ли у кого-нибудь идеи о том, что происходит не так.

from cv import *
im1 = LoadImage("/home/spoll/laptop1.jpg")
im2 = LoadImage("/home/spoll/laptop2.jpg")

writer = CreateVideoWriter("/home/spoll/out", CV_FOURCC('F', 'L', 'V', '1'), 2, (im1.width, im1.height))
if writer is None:
    print "Error in creating video writer"
else:
    print WriteFrame(writer, im1)
    print WriteFrame(writer, im2)

Спасибо! * * 1004

Ответы [ 2 ]

3 голосов
/ 25 апреля 2011

Почему вы не проверяете ошибки?Если 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 ().Я постараюсь поговорить с разработчиками и обновлю здесь, когда получу ответ.

0 голосов
/ 05 августа 2011

См .: Ошибка OpenCV на Python Вам нужно заменить cvReleaseVideoWriter(writer) на del writer

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...