Con ayuda de los histogramas podemos identificar agujeros en las imágenes gracias a los cambios o picos que existen en la imagen.
Para poder realizar los histogramas, se uso el siguiente algoritmo.
- Primero se transforma la imagen a escala de grises para que cada pixel tenga un valor único.
- Se recorrió primero la imagen de izquierda a derecha, de arriba hacia abajo, sacando la suma de los pixeles de manera horizontal, para sacar el histograma horizontal.
- Para las líneas verticales se recorrió de arriba hacia abajo de izquierda a derecha, sumando de manera vertical los pixeles, para sacar el histograma vertical.
Gracias a esto se obtuvieron dos diferentes histogramas.
Aquí código de obtención de los histogramas
Aquí termina
Posteriormente se obtuvo las intersecciones de los picos de ambos histogramas, y donde se interceptaran seria clasificado como posible agujero o parte de agujero y se dibujaba en la imagen.
Código para dibujar y obtener las intersecciones
Aquí termina
Posteriormente se graficaron los diferentes histogramas para apreciar mejor los diferentes picos, para esto se guardo en un archivo, para cada uno de los histogramas y se utilizó la herramienta gnuplot para graficarlos
Aquí el código para guardar en archivo
Aquí termina
Aquí unas imágenes de pruebas :
Imagen original
Dibujando los picos de los histogramas vertical y horizontal
Aquí el histograma horizontal
Donde el eje x es el numero de filas
Aquí el histograma vertical
Donde el eje x es el numero de columnas
Otra imagen de prueba:
Aquí detecta el agujero pero también sombras, pero con filtrado se puede quitar.
Gráfica del histograma horizontal
Gráfica del histograma vertical:
Checa el comentario que le puse a Alex G. 9 pts.
ResponderEliminar