miércoles, 20 de marzo de 2013

Nuestro Algoritmo III


Tras una discusión y prueba de cómo vamos a implementar los algoritmos de detección de contornos, hemos llegado a la conclusión de implementar ambos, aprovechando las ventajas de cada uno y cubriendo las dificultades del otro.

Como ya dijimos en anteriores post, el principal problema asociado a la detección por color era la gran variabilidad que tenían los colores de las monedas en función del entorno, a veces incluso entre las mismas monedas de un mismo lugar, haciendo imposible una determinación a priori del rango de colores en el que se iba a trabajar. Así, se hace necesaria una dinamización de dichos parámetros, de tal manera que, en tiempo real, podamos detectar los contornos de una manera rápida y, sobre todo, que esté adaptada a cualquier entorno en el que se quiera usar la aplicación. Dicha dinamización se basará, precisamente, en la detección por silueta.

Dicha detección, a pesar de mostrar más o menos contorno de la moneda en función del contraste, nos da la suficiente información (y lo suficientemente precisa) como para poder conjeturar elipses, y, aunque realmente no estén siendo detectadas de forma completa, poder determinar la región espacial en la que se encontrarán. Es decir, dados unos cuantos trazos de una silueta de una elipse, podemos imaginar donde se encontrará esa elipse. Y es precisamente ese el secreto de nuestra dinamización en los parámetros cromáticos. Una vez conocida la región en la que se encontrará nuestra moneda, muestrearemos los colores que se encuentren en ella, tomando, por ejemplo, unos cuantos puntos a lo largo de la región comprendida dentro de la silueta,y, una vez tomados, utilizarlos como parámetros para la detección de contornos por color, que, con los parámetros adecuados, devuelve unas estructuras (matrices de puntos) mucho más faciles de trabajar y procesar, además de ser contornos completos y cerrados, no como ocurría con el método anterior.

No se descarta, sin embargo, una dinamización también del umbral que marca la detección de siluetas por el algoritmo Canny, ya que, como se comentó, bajo determinadas condiciones es imposible reconocer la silueta de una moneda. En esos momentos, se bajaría el umbral para permitir su detección.

Así finalmente, parece que ya hemos estructurado cómo será nuestro algoritmo de detección de monedas. El paso siguiente que debemos dar ahora es, una vez obtenido dichos contornos, cómo nuestra aplicación va a reconocerlos.

No hay comentarios:

Publicar un comentario