2016-06-09 5 views
0

Ich nehme an einem Teamprojekt teil, und ich habe einen Quellcode. Dieser Code benötigt OPEN CV, weil wir in der Bildverarbeitung arbeiten.OpenCV! Wie nehmen Sie Videos auf?

Wir müssen ein Video erfassen und dann einige Funktionen ausführen. Dieses Video befindet sich im Projektpfad.

kommt vor, dass für die Aufnahme ein Video, das wir zunächst einen Weg definieren, wie:

char *videofile = "video-tp2.avi"; 

Und dann haben wir die Erfassung:

CvCapture *capture; 
capture = cvCaptureFromFile(videofile); 

Schließlich überprüfen wir, ob wir eine Aufnahme haben und, falls wir keine Videodatei haben, wird das System möglicherweise alarmieren. Es ist gerade die andere Art und Weise, um das System Warnungen, wenn das Video existiert und ist im Rahmen des Projektes

if (!capture) 
    { 
     fprintf(stderr, "Erro ao abrir o ficheiro de vídeo!\n"); 
     return 1; 
    } 

enter image description here

+0

Wenn eine Antwort Ihr Problem gelöst oder half Ihnen, bitte beachten Sie, es zu akzeptieren, siehe auch: http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work –

Antwort

1

cvCapture eine Struktur ist, die die documentations bezieht sich wie ein black-box:

Hinweis: In C-API wird die Black-Box-Struktur CvCapture anstelle von VideoCapture verwendet.

Sie können versuchen cv.QueryFrame(capture). Es zurückkehren NULL wenn es fehlschlägt (siehe diese example):

IplImage* frame; 
    frame = cvQueryFrame(capture); 
    if(!frame) { 
    // FAIL 
    } 

auch immer Sie an die C++ Schnittstelle wechseln sollte, weil die C API ist veraltet (siehe here)