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