Warum OpenCV `cvCreateCameraCapture` und `cvCreateFileCapture` nicht arbeiten?

Haben ein AVI-videofile und eine webcam. cvQueryFrame gibt null zurück, in beiden Fällen. Code wird angewendet(nur für die cam):

#include "highgui.h"
#include <iostream>

using namespace std;

int main( int argc, char** argv )
{   
    cvNamedWindow( "KillCam", CV_WINDOW_AUTOSIZE );
    cvWaitKey(0);
    CvCapture* capture = cvCreateCameraCapture(-1);
    assert(capture != NULL);
    IplImage* frame;

    while(1){
        frame = cvQueryFrame( capture ); 
        if( !frame ) break;
        cvShowImage( "KillCam", frame );
        char c = cvWaitKey(33);
        if( c == 30 ) break;
    }
    cvReleaseCapture( &capture );
    cvDestroyWindow( "KillCam" );
}
Nur eine Vermutung: versuchen Sie es mit index 0 für die Kamera. Überprüfen Sie auch, dass Ihre Kamera richtig installiert ist (Sie können es verwenden von Anwendungen?) Und, dass keine andere Anwendung ist derzeit mit der Kamera.
Fand die Lösung schon. Es scheint, dass der erste frame(s) werden nicht angezeigt, so if( !frame ) break; beendet die Anzeige des Videos, bevor es beginnt. Aber das problem ist immer noch relevant für das abrufen von video-Datei aus.

InformationsquelleAutor Ivan | 2010-01-01

Schreibe einen Kommentar