martes, 16 de abril de 2013

[VISIÓN COMPUTACIONAL] Detección de elipses

Para esta semana se encargó realizar detección de elipses. Utilicé una versión modificada de la forma en que detecto círculos. La imagen que utilicé es la siguiente:

Básicamente hago lo mismo salvo la parte donde busco áreas en base a radios. Ahora busco dos puntos dentro de los bordes que corresponden al punto más lejano y al más cercano.

Después de esto comparo las coordenadas del punto de menor distancia con las coordenadas del centro, con esta comparación obtengo la posición del elipse y así sabré como repintarlos.

Ahora puedo asignar los puntos "x" y "y" de pintado, sumando y restando las distancias máxima y mínima dependiendo de la posición del elipse, generando un elipse fantasma sobre el posible elipse.

Finalmente comparo el área ocupada por el elipse fantasma y el posible elipse, y mediante porcentajes de error decido si se trata de un elipse o si es otra figura.

La imagen final quedará así:

Donde se etiqueta a los elipses encontrados, además se marca con "*" en color rojo los puntos donde se pinta el elipse fantasma y en color rosa los puntos de los radios.

Código:

Liga al proyecto:
https://github.com/victoralex911/vision-computacional

1 comentario:

  1. Pues, la tarea era en sí usar el método cuerda-tangente, pero inventaste tu propio método. Funciona, por lo cual van 3 pts.

    ResponderEliminar