miércoles, 24 de abril de 2013

Labo Visión. Histogramas.

Que tal gente, en esta entrada se muestra la parte inicial necesaria para el proceso de detección de agujeros, la cual consiste en identificar las variaciones mas notables dentro de los histogramas lateral y vertical de la imagen.

Para ver la entrada ya completa, seguir el siguiente enlace:

Código.

A continuacion se muestra la funcion que genera los histogramas, promediando los valores RGB de cada pixel, y sumando en X y en Y para obtener las sumatorias por fila y columna:

Despues esta la funcion que sirve para pintar las lineas de crestas y valles en la imagen, basado primero en el eje y despues en el tipo de fondo a generar, obtiene los picos o crestas segun sea la cuestion y pinta la linea sobre la imagen:

Pruebas.
Para la imagen siguiente:


Se generaron las siguientes lineas, tomando en cuenta que se indico que buscara fondos mas claros al promedio de la imagen, por lo que las imágenes representan las crestas de cada histograma.


La gráfica que muestra el comportamiento de los histogramas es la siguiente:

Se muestra en color rojo y verde los histogramas x y y respectivamente, y las lineas horizontales representan el promedio de cada histograma, en base a este valor, se calcularon las distancias de cada punto al promedio, para determinar cuales son las crestas y los valles de cada conjunto de puntos.


Prueba 2.

Se tomo la imagen de un compañero para comparar las lineas detectadas:

la imagen original:


La imagen de lineas resultante junto con su histograma:


Como se puede observar, detecta de forma bastante precisa el hueco, aunque también detecta unas cuantas lineas en x, quizás por los bordes que muestra la imagen, pero disminuyendo el umbral de pixel probablemente se solucione, solo es cuestión de jugar con los parámetros de configuración para lograr el mejor resultado.

Bien por mi parte es todo,

Saludos!

1 comentario:

  1. idealmente sería una regla horizontal y una vertical por cada agujero; hay mucho ruido en tu detección. 9 pts.

    ResponderEliminar