He instalado OpenCV 2.2 y ahora no puedo hacer que funcione la captura de la cámara web. Funcionó bien en 2.1. OpenCV detecta una cámara web, no informa ningún error o advertencia, pero cada cuadro es una imagen gris. Incluso probé una muestra de código de OpenCV wiki:Problema de captura de la cámara web OpenCV
VideoCapture cap(0); // open the default camera
if(!cap.isOpened()) // check if we succeeded
return -1;
Mat edges;
namedWindow("edges",1);
for(;;)
{
Mat frame;
cap >> frame; // get a new frame from camera
cvtColor(frame, edges, CV_BGR2GRAY);
//GaussianBlur(edges, edges, Size(7,7), 1.5, 1.5);
//Canny(edges, edges, 0, 30, 3);
imshow("edges", edges);
if(waitKey(30) >= 0) break;
}
// the camera will be deinitialized automatically in VideoCapture destructor
return 0;
¿Alguien se encontró con este problema? Estoy usando 64 bits Win7 y Visual Studio 2010.
¿Qué quiere decir con " una imagen gris? Gris sólido, sin estructura? ¿O solo una imagen en escala de grises? Está llamando a cvtColor() para escalar en escala de grises la imagen, y la llamada a imshow() muestra la versión en escala de grises ... – jtdubs
Gris sólido, no en escala de grises. – Figaro
A veces, este ib es un poco lento. Agregue un 'sleep (1)' o 'cv :: waitKey (100)' antes de Mat edge y agregue lo mismo dentro del ciclo for. Esto debería funcionar. Y no te olvides de chekc si 'frame' es una imagen de prper. – nutario