martes, 19 de febrero de 2013

Clase 2

Detección de formas



Para esta tarea se debe realizar un programa el cual pueda detectar las formas en una imagen cualquiera, las cuales se deben de pintar de diferentes colores tomado en cuenta que la mayor siempre se pintara de color gris, y se colocara un centro de masa en cada figura detectada en la imagen y será etiquetada.

Para poder realizar esta acción es necesario tener ya realizada la parte de la detección de bordes por medio de la convolución, ya realizado con anterioridad, después de realizar la detección de bordes en necesario binarizar la imagen, también realizado anteriormente.

Para esta actividad usaremos el Algoritmo BFS (Breadth First Search) el cual es un algoritmo que se utiliza para encontrar diversas formas, partiendo de la raíz de un nodo y recorriendo todos los vértices. Este algoritmo funciona con una cola esto permite que nunca pase por el mismo nodo dos veces.

Imágenes originales 




A las cuales se les aplico el método de convolución para detectar los bordes de las imágenes





Después de aplicar la detección de los bordes de las imágenes se les aplica la acción de binarización


Para esto es necesario primero tener un coloreo de las figuras, para esto se saca un porcentaje dependiendo la cantidad de píxeles que cubre la figura en la imagen con respecto al total habidos en dicha imagen, ya que se tenga la figura de mayor porcentaje se pintara con un fondo gris mientras que las otras figuras de menor porcentaje se pintaran de diferentes colores.






Después de colorear tenemos que dibujar sus centros de masa la cual obtenemos sumando las coordenadas "x" y "y" para después sacar su promedio, a cada centro de masa se le agrega una etiqueta identificandolo de los demás centros.

Teniendo la primer imagen 8 centros de masa



Teniendo la segunda imagen 13 centros de masa









Código de detección de formas



Mi repositorio

1 comentario:

  1. El código ocupa comentarios y un formateo más legible. En esta ocasión no quito puntos por ello, pero tómalo en cuenta en el futuro, por favor. 5 pts.

    ResponderEliminar