martes, 19 de febrero de 2013

Detección de formas

Aquí la idea es identificar las diferentes formas en una imagen y colorearlas de diferentes colores(random),  únicamente se pintará gris el fondo de la imagen.

Para llegar a esto es necesario combinar algunas técnicas que ya hemos estado usando como filtros, binarización, detección de bordes...

La imagen con la que trabaja esta parte debe de ser una en la cual los bordes se hayan detectado y diferenciado de lo demás y que éstos se encuentren bien definidos( esto se puede lograr aplicando binarización).

La imagen que utilicé es una ya con bordes detectados y con un proceso de binarización para que estos no tengan discontinuidades.



Para la detección de formas tomé como referencia el código de la Dra. Elisa, y el proceso consiste en recorrer uno a uno los píxeles de la imagen e ir checando el color del píxel, y como la imagen esta en negro y blanco solamente, si es negro(0,0,0) se comienzan a checar sus vecinos hasta encontrar un borde(píxel blanco(255,255,255)) y se pintan de un color al azar.


 


Para colorear en gris el fondo lo que hice fué almacenar los colores(sus valores rgb) de cada píxel que se iban usando en la imagen, posteriormente almacene en una lista cuantas veces se repetía cada uno, tomé el valor más grande de estos, busqué su lugar en esta nueva lista y con el lugar obtenido, solo fuí a la lista de colores y saque el valor que se encontraba en esa posición.(creo que esto se entiende mejor en el código :P)

Aquí pongo el código:


Y aquí otros ejemplos:










Como se puede observar en las últimas imágenes, en algunas zonas no se definen bien los colores y el pintado del fondo gris tiene deficiencias, creo yo que es por la gran cantidad formas y bordes de la imagen, ya que la inicial y la última al ser algo más sencillas se ve mejor el trabajo.

3 comentarios:

  1. Toma la imagen como parámetro (argv) o como entrada (raw_input) e incluye una liga a tu Git. En esta ocasión no quito puntos por eso, pero ese tipo de detalles terminarán costando. 5 pts.

    ResponderEliminar
  2. Por poco se me pasa que no tienes los centros de masa. Son 4 pts.

    ResponderEliminar