Tener un AVI videofile, y una webcam. cvQueryFrame devuelve null en ambos casos. El código se aplica(sólo para 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" );
}
  • Solo un presentimiento: trate de usar el índice 0 para la cámara. También compruebe que la cámara está correctamente instalado (se puede usar de aplicaciones?) Y de que ninguna otra aplicación es en la actualidad el uso de la cámara.
  • Encontrar la solución ya. Parece que el primer fotograma(s) no se no se muestra tan if( !frame ) break; termina la visualización del vídeo antes de que comience. Pero el problema sigue siendo relevante para la recuperación de vídeo de archivo.
InformationsquelleAutor Ivan | 2010-01-01

2 Comentarios

  1. 3

    He encontrado, por entrar en el openCV código, que necesitaba para asegurar el fmpeg dll estaba presente en el directorio de trabajo actual en tiempo de ejecución:

    opencv_ffmpeg200d.dll

    OpenCV no arrojar ningún tipo de advertencia si este archivo dll no se encuentra, en lugar de la captura de crear la llamada sólo devuelve NULL.

    hth

    Si

    • +1 esta fue la causa en mi caso también
    • He descargado el precompilado OpenCV2.4.2 y este archivo de depuración no viene incluido. El opencv_ffmpef242.dll viene. La cosa es que no puedo construir mi biblioteca (todavía) como no tengo espacio libre en el disco duro…
  2. 0

    Comprobar el formato de vídeo. OpenCV puede ser exigente en el que los códecs que soporta; no funciona con Xvid, por ejemplo. Usted puede encontrar una lista de códecs compatibles en el OpenCV wiki

Dejar respuesta

Please enter your comment!
Please enter your name here