domingo, 14 de abril de 2013

Tarea 5: Detección de elipses

Para esta tarea se nos piden los siguientes puntos:

  • Detectar elipses marcados con tonos naranja.
  • Marcar el centro con un punto azul
  • Poner una etiqueta ID 
  • Imprimir un listado de los semidiametros perpendiculares y su porcentaje con la diagonal máxima de la imagen

Para realizar esto, se nos pide utilizar el método de la cuerda tangente, es por eso que se hacen los siguientes pasos:
  1. Cambiar a grises
  2. Sacar convolución Laplaciana para sacar bordes
  3. Normalizo la imagen
  4. Binarizo los datos
  5. Sacamos el promedio
  6. Se agrega un umbral
  7. Agregamos BFS para detectar todos los bordes 
  8. Los pintamos de diferentes colores
  9. Sacamos mascara de sobel en X
  10. Sacamos mascara de sobel en Y
  11. Generamos puntos aleatorios para cada borde detectado
  12. Calculamos su theta 
  13. Creamos dos lineas tangenciales a los bordes
  14. Se calcula su punto medio
  15. Realizamos los votos a partir de esa linea hasta al final del borde siguiente
  16. Repetimos varias veces para obtener mejor precisión en el centro
  17. Se calcula los radios en X y en Y
  18. dibujamos un punto entre 0 a 360 grados a partir de los datos obtenidos
  19. Vemos el elipse detectado en un tono anaranjado
Les muestro unas capturas de pantalla del procedimiento








Otros ejemplos:








Este es el código de la función principal, si quieren ver mi repositorio, ahí se encuentra completo.



1 comentario: