martes, 19 de marzo de 2013

Nuestro Algoritmo I


Como ya se comentó en el último post, mi compañero y yo nos enfrentábamos a una gran cantidad de problemas que complicarían la detección y reconocimiento de las diferentes monedas. Así, hasta llegar al diseño del algoritmo final, pasaremos por diferentes etapas de diseño y prueba en nuestro dispositivo Android, con el fin de ir testeando y mejorando nuestro algoritmo, hasta llegar a lo que creamos que es nuestro algoritmo de detección final.

Lo primero que hemos pensado es en el uso de un algoritmo de detección de contornos mediante el color. 

Lo que necesitamos es que, a partir de una superficie mínima, a partir de la cual no consideraremos que es una moneda, por ser tan pequeña, ir testando píxel a píxel el color de los vecinos del píxel inicial. Si éstos se encuentran dentro del rango de colores que deseamos, incluirlos en la superficie, y testear sus vecinos. Así, se continuaría hasta que los vecinos fueran de diferente color, y se marcaría esa separación como contorno de los objetos.

Dicha función existe en OpenCv y es la que usaremos para una detección inicial de contornos.

Sin embargo, dicho algoritmo es insuficiente por sí solo, por las siguientes razones:

Los colores de las monedas cambian tanto de un entorno a otro, en función de la luminosidad, que hacen que a menudo no sea capaz de detectar una moneda.

Debido al parecido del color cobre con la mano, si ampliamos el rango de los tonos de cobre que aceptamos, la mano se introduce dentro de los contornos.

A causa de los reflejos existentes sobre la moneda los contornos no quedan completos, sino recortados, exactamente sobre la zona de la moneda que no está reflejada por una fuente intensa de luz.

Así, como se puede apreciar, suficientes problemas nos han surgido con éste método como para que nos obligue a buscar, o bien alternativas, o bien otros métodos de detección que apoyen el método comentado.

No hay comentarios:

Publicar un comentario