En está entrada tenemos que detectar formas en una imagen a partir de la tarea 1, lo que debemos de tener primero para comenzar es aplicarle convolucion a la imagen y después de eso normalizarla y binarizarla.
Imagen a utiliar:
Imagen aplicando convolución:
Imagen normalizada:
Imagen binarizada:
Ahora que tenemos lo anterior basandome en el código que realizo la Dra. Elisa del bfs detecte las formas y las pinte de un color cada una. El bfs lo que realiza es buscar los vecinos y agregarlos a una cola (los vecinos tienen q ser del mismo color que el pixel original), cada vez q cheka un pixel sus vecinos de ese pixel se agregan a la cola.
Cuando la imagen esta completamente pintada sacando su porcentaje de cada uno de las formas pinte la más grande de color gris:
Cuando la imagen esta completamente pintada sacando su porcentaje de cada uno de las formas pinte la más grande de color gris:
El código es el siguiente del bfs y para pintar las formas:
Código para pintar de gris la forma con más porcentaje:
Después coloco los centros de masa de cada una de las formas:
Para colocar estos centros me base en el método de las áreas:
Después coloco los centros de masa de cada una de las formas:
Para colocar estos centros me base en el método de las áreas:
A cada pixel lo tome como una área y su ordenada y su abscisa como x y como y de la ecuación anterior.
Para poder realizar esto cada vez que recorria la imagen pintando pixel por pixel del mismo color agregue su ordenada y su abscisa a dos listas y para sacar su centro de masa:
en x= sum(abscisa)/float(num_pixels)
en y=sum(ordenada)/float(num_pixels)
El área de cada pixel es 1.
Les agrego la étiqueta a cada uno de ellos
Para añadir la étiqueta solo utilice el label de TKinter y lo acomode alado del centro de masa de cada forma.
Código:
El código esta completo en mi repositorio: Link
Más imagenes
"q cheka"... Other than that, muy bien. 5 pts.
ResponderEliminar