Después de montar la caja y ajustar la cámara toca hacer las pruebas para ver cómo se capturarán mejor los gestos.
Las primeras pruebas son con folios, blancos, azules y verdes, a continuación un vídeo de prueba para cada color.
Folio blanco
Folio azul
Folio verde
Como se observa en los folios verde y azul la imagen es bastante oscura y por lo tanto no se distinguen bien los gestos, por lo que también he hecho pruebas con folios de acetato. En azul, verde y amarillo.
Acetato azul
Acetato verde
Acetato amarillo
El paso siguiente es comprobar en cual de todos los casos los gestos son reconocidos más fácilmente.
sábado, 26 de septiembre de 2009
sábado, 28 de febrero de 2009
Primeros pasos
Como Roma no se hizo en una hora lo primero es empezar por cosas pequeñas y básicas, y en el mundo de la programación esto se llama un primer programa de acercamiento....
Así que he escrito un código que toma imágenes de la webcam y las muestra por pantalla, en principio la cámara da 320x240 de resolución porque la cámara sobre la que estoy recogiendo es la webcam del portátil y no tiene mayor resolución, aunque la idea es conseguir una cámara que dé al menos 1024x768 para no tener que reescalar para actuar sobre la pantalla.
Las anteriores instrucciones son la forma que nos da la librería opencv para configurar la cámara, todas ellas actúan sobre una estructura CvCapture que representa la webcam.
A partir de este momento la cámara ya está configurada y le puedo pedir imágenes, esto se hace de la siguiente forma:
Una vez que el frame se ha pedido hay que asignarlo a una estructura de tipo IplImage, también de opencv que permite operar sobre la imagen y también enseñarla por pantalla.
Para enseñarla por pantalla se hace lo siguiente:
Si todo esto se pone en un bucle podría insertar la lógica del programa, pero esto lo dejo para próximos capítulos ...
Nota para buenos programadores: Cerrar la captura de la camara como si fuera un fichero
Codigo del programa
Así que he escrito un código que toma imágenes de la webcam y las muestra por pantalla, en principio la cámara da 320x240 de resolución porque la cámara sobre la que estoy recogiendo es la webcam del portátil y no tiene mayor resolución, aunque la idea es conseguir una cámara que dé al menos 1024x768 para no tener que reescalar para actuar sobre la pantalla.
cvSetCaptureProperty(capture,CV_CAP_PROP_FRAME_WIDTH,320.0);
cvSetCaptureProperty(capture,CV_CAP_PROP_FRAME_HEIGHT,240.0);
cvSetCaptureProperty(capture,CV_CAP_PROP_FPS,30.0);
Las anteriores instrucciones son la forma que nos da la librería opencv para configurar la cámara, todas ellas actúan sobre una estructura CvCapture que representa la webcam.
A partir de este momento la cámara ya está configurada y le puedo pedir imágenes, esto se hace de la siguiente forma:
if(!cvGrabFrame(capture)){//pide un frameEste if se pone porque no es buena idea intentar operar sobre una imagen que no existe.
printf("Algo malo ha pasado, llamar al SWAT\n");
exit(0);
}
Una vez que el frame se ha pedido hay que asignarlo a una estructura de tipo IplImage, también de opencv que permite operar sobre la imagen y también enseñarla por pantalla.
Para enseñarla por pantalla se hace lo siguiente:
cvShowImage("imgWin", img);Esto abre una ventana en la que se muestra la imagen que antes pedí a la webcam, resulta que hay que hacer que el programa espere un tiempo entre una imagen y otra para que se muestren correctamente (aun tratando de comprenderlo), por lo que la segunda instrucción hace una pausa de 2 milisegundos.
cvWaitKey(2);
Si todo esto se pone en un bucle podría insertar la lógica del programa, pero esto lo dejo para próximos capítulos ...
Nota para buenos programadores: Cerrar la captura de la camara como si fuera un fichero
cvReleaseCapture(&capture);
Codigo del programa
Suscribirse a:
Entradas (Atom)