Воспроизведение файлов AVI в OpenCV - PullRequest
3 голосов
/ 15 июля 2010

Я не могу воспроизвести мои AVI файлы с использованием OpenCV. Я на Mac, и файлы работают с Quicktime и VLC Player. Я пытался использовать mencoder для преобразования его в i420, но это все еще не удалось. Никаких сообщений об ошибках не происходит, и кажется, что программа закрывается автоматически, и я не уверен, как ее отладить.

int main(int argc, char* argv[]) 
{
    cvNamedWindow( "Example2", CV_WINDOW_AUTOSIZE );
    CvCapture* capture = cvCreateFileCapture( argv[1] );
    IplImage* frame;
    while(1) {
        frame = cvQueryFrame( capture );
        if( !frame ) break;
        cvShowImage( "Example2", frame );
        char c = cvWaitKey(33);
        if( c == 27 ) break;
    }
    cvReleaseCapture( &capture );
    cvDestroyWindow( "Example2" );
}

1 Ответ

0 голосов
/ 16 июля 2010

Ну, поскольку в вашем коде отсутствует проверка ошибок, возможно, была проблема с cvCreateFileCapture (), и вы никогда не узнаете, пока не проверите возврат функции.

В любом случае, вы должны либо удалить, либодобавьте отладку для этого утверждения здесь:

if( !frame ) break;

Поскольку при получении первого фрейма файла возникла проблема, ваше приложение просто молча сдалось и завершило работу, создав ощущение «ничего не произошло».

Изменено это что-то вроде:

if (!frame) { printf("Uow, huge fail!\n"); break;}

Но самое главное: почему вы не используете cvCaptureFromAVI ()?Проверьте это: http://nashruddin.com/How_to_Play_AVI_Files_with_OpenCV

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