Para esta entrega de laboratorio se pidió detectar elipses y/o círculos utilizando el con las siguientes tareas:
- Identifica cada elipse/círculo individual
- Rellénalo de un color aleatorio
- Sigue marcando su centro con bolita & ID con etiqueta
- Imprime un listado de los áreas de los círculos/elipses
- En porcentaje de la imagen completa
El procedimiento que seguí fue el siguiente:
- Preprocesar la imagen utilizando el método de convolución con las máscaras de Prewitt, normalizarla y recorrer la imagen con el algoritmo bfs para localizar los bordes de los elipses,
- Después de esto se escogen dos puntos aleatorios que están en el borde de cada elipse, estos puntos deben ser antiparalelos y con ellos se pasa a calcular las tangentes.
- Se calculan las intersecciones de estas tangentes y con ellas se calculan los puntos medios.
- Luego, se dibujan muchas líneas que pasen por los puntos medios para de esta manera encontrar los posibles centros.
Cabe aclarar que para realizar esta entrega tomé como base el código de mi compañero Max.
Código
Pruebas:
Nota: los porcentajes representan lo que ocupan los bordes del elipse del total de la imagen.
|
Imagen Original |
|
Prosible centro |
|
Detección |
|
Imagen original |
|
Posibles centros |
|
Detección |
|
Imagen Original |
|
Posibles centros |
|
Detección |
"labratorio". Hubiera sido bueno diferenciar entre círculos y otros elipses y comprobar que no agarre otras formas. No se me hacen rellenados tampoco en tu ejemplo. 7 pts.
ReplyDelete