martes, 5 de marzo de 2013

Detección de círculos del mismo radio

Para la materia de visión computacional se nos pide detectar circulos, es por eso que utilizando la transformada de Hough y utilizando las mascaras de gradiente para 0 y 90 grados de Sobel, detecto los círculos de un mismo radio de una imagen.

Mi repositorio de los códigos. Liga.

Primero que nada, sacamos el gradiente de tal forma que podamos analizar la imagen.



Para luego, procesarlo de manera que tengamos su información relevante de cada pixel, para sacar los valores más significativos y los pintamos de manera que un color el centro y a partir del centro calculado dibujar con el radio dado, el circulo, para este caso, utilicé diferentes tonalidades de amarillo para cada circulo al igual que pongo en el centro, para la imagen guardada, un punto verde y múltiples círculos para remarcar su contorno, este es el código.



Estos son los resultados de diferentes imágenes cambiando el radio y numero de círculos.













Estas son algunas capturas de pantalla, los resultados que nos dio por medio de las imágenes guardadas con el punto verde en el centro y por otra parte las capturas de la ventana en donde pongo sus etiquetas del ID de cada circulo.

Es importante decir, yo empecé a utilizar otras máscaras para sacar los gradientes en 0 y 90 grados, pero al momento de hacerlo los círculos quedaban muy mal ubicados y computacionalmente tardaba más, esto es porque por ejemplo al usar Prewitt quedaban los gradientes bien definidos pero no en los grados dados, por lo que al utilizar Sobel, es mucho mas rápido al utilizar solo ceros y unos, y computacionalmente menos pesado, solo un poco.

1 comentario:

  1. Bien, pero el código pudiese ser modularizado. 5 pts.

    ResponderEliminar