Que tal para esta entrada se nos encargado detectar los histogramas de una imagen tomada por nosotros esto para poder detectar posibles agujeros en la misma.
Procedimiento
1 .- Se recorre toda la imagen y se suman sus filas como sus columnas y esta sumatoria de guarda para después calcular los mínimos.
2.- Con las sumatorias ya hechas procedemos a calcular los mínimos locales. Aquí hacemos uso de un umbral que es el promedio de los pixeles vecinos este umbral lo puedes calcular a prueba y error pero para imagenes donde no existe mucha claridad en la imagen se recomiendo usar uno entre 30-60 esto para eliminar los cruces donde no se encuentre nada.
Y siempre comparando que la sumatoria actual sea menor a la anterior y menor a la que sigue. Si cumplen con estas condiciones se marca como mínimo local.
Se hace lo mismo para calcular columnas como filas.
4.- Guardamos las lineas y columnas; buscamos en donde se cruzan y guardamos el pixel en donde cruzan.
5.- Ya cuando tenemos los pixeles en donde cruzan basta con hacer un BFS sobre cada pixel, buscando posibles agujeros. En esta parte apliquen filtros para mejorar la imagen y tendrán una detección de imagen demasiado sencilla.
Código
Les incluyo el código completo para esta tarea.
Referencias
http://elisa.dyndns-web.com/~elisa/teaching/comp/vision/agujeros.pdf
http://4imedio.blogspot.mx/2013/04/tarea-7-deteccion-de-agujeros.html#comments
Procedimiento
1 .- Se recorre toda la imagen y se suman sus filas como sus columnas y esta sumatoria de guarda para después calcular los mínimos.
2.- Con las sumatorias ya hechas procedemos a calcular los mínimos locales. Aquí hacemos uso de un umbral que es el promedio de los pixeles vecinos este umbral lo puedes calcular a prueba y error pero para imagenes donde no existe mucha claridad en la imagen se recomiendo usar uno entre 30-60 esto para eliminar los cruces donde no se encuentre nada.
Y siempre comparando que la sumatoria actual sea menor a la anterior y menor a la que sigue. Si cumplen con estas condiciones se marca como mínimo local.
Mínimos locales de la imagen, |
Se hace lo mismo para calcular columnas como filas.
4.- Guardamos las lineas y columnas; buscamos en donde se cruzan y guardamos el pixel en donde cruzan.
5.- Ya cuando tenemos los pixeles en donde cruzan basta con hacer un BFS sobre cada pixel, buscando posibles agujeros. En esta parte apliquen filtros para mejorar la imagen y tendrán una detección de imagen demasiado sencilla.
Código
Les incluyo el código completo para esta tarea.
Referencias
http://elisa.dyndns-web.com/~elisa/teaching/comp/vision/agujeros.pdf
http://4imedio.blogspot.mx/2013/04/tarea-7-deteccion-de-agujeros.html#comments
idealmente sería una regla horizontal y una vertical por cada agujero; hay mucho ruido en tu detección. 9 pts.
ResponderEliminar