jueves, 7 de marzo de 2013

Lab: Detección de círculos con diferente radio

Para esta entrada de laboratorio, se nos pide realizar el detectar círculos donde no sepamos información de estos, es decir, a diferencia de la entrada anterior, ahora tenemos que saber cual es el radio del circulo, al igual que su centro.

Primero que nada, hice una rutina en la cual podamos ir cambiando el radio y obtengamos los votos de cada radio aumentado, de manera que estamos utilizando la transformada de Hough de una forma canónica, como la siguiente imagen.

Tomada de las diapositivas Rochester Institute of Technology

Por lo que primero que nada genero una lista con todos los centros posibles y con todos los radios posibles, en donde yo pongo los radios mínimos y máximos para luego adivinar cual es el radio que queremos detectar.

Luego de tener todos los centros, ahora hago repeticiones de radios disponibles hasta que concuerde con los bordes detectados con la mascara laplaciana, de manera que podamos obtener los siguientes resultados.

Este es el código.

Estos son los resultados.











Como pueden ver, mi código no funciona bien, estuve moviéndole a que estuviera una combinación entre el número de bordes a detectar y la cantidad de círculos, teniendo resultados no favorables, nada más detectando un solo circulo, aunque si detecta el radio desconocido, no calcula varios.

Como pueden ver en la ultima imagen si me detecto en la mayoría de los círculos, no se si este bien.

Minimo tamaño de borde

Maximo tamaño de borde


Espero que si alguien me puede comentar cual es la manera de mejorarlo o que debería de haber hecho.

1 comentario: