Mostrando los avances.
Luego de un periodo de experimentación con las herramientas y con el proyecto mismo surgieron unas complicaciones algo obvias.
1º: Nunca abrimos totalmente el ojo, por lo tanto la pupila rara vez se adquiere como un circulo.2º: El ruido en la imagen hace que se detecten falsos positivos. (Ver figura 1)
Luego de adquirir la imagen, si no se determina el ROI entonces se vuelve a adquirir otra subimagen, si se detecta el ROI entonces se pasa al procesado.Hasta ahora todo igual, pero lo que cambia es el procesado que actua como una maquina de estados finitos muy simple.

Si el estado es buscar ojo hace lo siguiente:
Se usa la transformada de Hough para reconocer círculos si se detectan se compara con el circulo que fue detectado anteriormente (Ver figura 2.). Si no se detecta un círculo o el círculo anterior no coincide con el actual se poner el timer en 0 (cero) .
Si el círculo se detecto se suma uno al timer.
Si el timer supera un tiempo máximo, entonces quiere decir que se detectó el ojo, y su tamaño y posición están determinados por el promedio de las "x","y", y radio de los círculos detectados que fueron similares.
En el momento en que el timer llega al tiempo de espera se toma una "fotografía" del ojo.
En el estado de Reconocer ojo se hace un matching entre la fotografía y el ROI. Si se encuentra se procede a actualizar la posición del cursor, sino se vuelve al estado de buscando ojo.
Todavía hay que ajustar unos cuantos parámetros y optimizar el código, pero el proyecto esa cada vez más sólido.
Espero les siga siendo interesante, en cuanto lo termine publico la aplicación para que la prueben un poco.










