2009-04-06 26 views
10

Actualmente estoy tratando de usar OpenCV (usando la biblioteca de procesamiento). Sin embargo, cuando trato de ejecutar algún ejemplo (los de procesamiento o los C incluidos con OpenCV), no veo nada más que negro en lugar de entrada de la cámara. El indicador LED de la cámara se enciende ... ¿Alguien ha tenido el mismo problema? ¿Es mi cámara de alguna manera incompatible con openCV? Es un Acer Crystal Eye ...¿Por qué OpenCV me da una pantalla en negro?

Gracias,

Respuesta

0

me tenían un poco mismo problema en Ubuntu. Descargué un código de aquí: http://www.rainsoft.de/projects/pwc.html Hace un paso adicional antes de comenzar a obtener marcos (creo que establecer FPS). Vale la pena intentarlo, el código es fácil de leer y funciona con cámaras no philips.

4

OpenCV 2.1 todavía tiene algunos problemas con el sistema operativo de 64bits. Puede leer this topic sobre el tema.

Si está buscando un código fuente de trabajo/compilable que muestre cómo usar la cámara web, check this out.

Háganos saber si le sirvió de ayuda.

0

OpenCV solo es compatible con un número limitado de tipos de cámaras. Lo más probable es que su cámara no sea compatible. Puede ver el código fuente o su sitio web para ver cuáles son compatibles.

1

Recientemente tuve el mismo problema. La biblioteca OpenCV por sí solo me dio una pantalla en blanco, he tenido que incluir la biblioteca videoInput:

http://muonics.net/school/spring05/videoInput/

Un ejemplo que siguió fue:

#include "stdafx.h" 
#include "videoInput.h" 
#include "cv.h" 
#include "highgui.h" 

int main() 
{ 
    videoInput VI; 
    int numDevices = VI.listDevices(); 
    int device1= 0; 
    VI.setupDevice(device1); 
    int width = VI.getWidth(device1); 
    int height = VI.getHeight(device1); 
    IplImage* image= cvCreateImage(cvSize(width, height), 8, 3); 
    unsigned char* yourBuffer = new unsigned char[VI.getSize(device1)]; 
    cvNamedWindow("test"); 
    while(1) 
    { 
     VI.getPixels(device1, yourBuffer, false, false); 
     image->imageData = (char*)yourBuffer; 
     cvConvertImage(image, image, CV_CVTIMG_FLIP); 
     cvShowImage("test", image); 
     if(cvWaitKey(15)==27) break; 
    } 

    VI.stopDevice(device1); 
    cvDestroyWindow("test"); 
    cvReleaseImage(&image); 

    return 0; 
} 

De esta fuente: http://www.aishack.in/2010/03/capturing-images-with-directx/

Cuestiones relacionadas