April 22, 2013

Tarea 6. Detección de agujeros

Para esta entrada el objetivo es detectar la posición de agujeros en una imagen y cumplir con las siguientes especificaciones:
  • Los agujeros detectados se marcan con un borde morado oscuro y un relleno de morado claro.
    • Un tono ligeramente diferente en cada agujero.
  • Se marca el centro de cada agujero con un punto amarillo.
  • Al centro de cada agujero se agrega una etiqueta del ID del agujero.
  • El programa imprime un listado que indica para cada ID el tamaño del agujero (como porcentajes del tamaño de la imágen).
Un agujero es un orificio de forma aproximadamente circular, esto quiere decir que cuando existe un agujero hay un cambio de intensidad de luz lo cual facilita detectar utilizando histogramas.

Los histogramas nos permiten reducir el espacio de búsqueda y encontrar donde existen los cambis de intensidad.

Los histogramas nos sirven como preprocesamiento, para más información en la entrada de laboratorio de esta semana se realizó este procesamiento.

Utilizando el código de la entrada de laboratorio, lo siguiente fue buscar las intersecciones de las líneas por lo que modifiqué un poco la función donde obtengo las coordenadas de los posibles agujeros utilizando cada histograma por separado y lo que hice fue manejar los dos histogramas juntos y de esta manera marcar solamente las intersecciones:

  

Conociendo las intersecciones, después binarizé la imagen para de esta manera utilizando bfs conocer las posiciones de los agujeros y descartar aquellos que en realidad no fueran agujeros ya que los agujeros permanecía generalmente en color negro y fué más sencillo buscar las coordenadas de esta manera. Con bfs también me fue posible determinar el tamaño de cada agujero con respecto a la imagen.

Ya por último solamente fue dibujar sobre la imagen el centro, colorear el círculo y etiquetarlo:
 

Código



Pruebas

 



 



 


No comments:

Post a Comment