21 de abril de 2013

Detección de Agujeros

Visión Computacional
Tarea 6

Para la entrega de esta semana se nos pidió hacer lo siguiente.
  • Agregar una rutina que detecta todos los agujeros en una imagen.
  • Los agujeros detectadas 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 imagen).

Utilice la técnica de histograma lateral, que consiste en sumar las intensidades de todos los pixeles, primero por cada fila para obtener un histograma horizontal y luego por columna para obtener un histograma vertical.

Al tener las dos histogramas podemos ponerlos por encima de nuestra imagen para observar como se comporta el histograma cuando existe un agujero en la imagen.



Como podemos notar en la imagen anterior, donde se cruzan las líneas que cruzan los puntos mínimos de los dos histogramas podemos encontrar una zona oscura que será detectada como un agujero. Nota: El pixel de inicio en la imagen es el de la esquina superior izquierda, por lo que para la línea roja hay que entender que el mínimo es el que pareciera ser una elevación.

Ahora veamos otro ejemplo de la foto de una tabla de madera con dos perforaciones. En la segunda imagen podemos observar un paso intermedio al momento de estar buscando por las coincidencias en todos los mínimos detectados. Y por último como sale la imagen en el programa que escribí.



Para cada agujero encontrado se le marco con un número junto a su centro y se le relleno de un color de tonalidad morada.

Código



Más pruebas


Las fotos que use para hacer las pruebas fueron de capturas a una hoja de papel con perforaciones hechas con la punta de una pluma.



En este caso por la forma en que quedaba el histograma, el centro lo detecto algo desfasado.


Y en las siguientes dos pruebas incluyo la captura completa junto con la salida que se generaba en el terminal, con los tamaños de los agujeros en un porcentaje con respecto al tamaño de toda la imagen.






1 comentario:

Nota: solo los miembros de este blog pueden publicar comentarios.