domingo, 19 de julio de 2009

Filtros Espaciales de Agudizamiento

En esta parte definiremos varias maneras para agudizar las imágenes, el cual se trata principalmente de un realce de detalles (sobre todo en los bordes).
Este agudizamiento se lleva a cabo convolucionando un filtro de agudizamiento por toda la imagen, estos filtros de agudizamiento son obtenidos a partir de derivaciones, el filtro que usemos dependerá del caso o de los objetivos que queremos obtener.
La diferenciación de la imagen refuerza bordes y otras discontinuidades como el ruido. Como sabemos la diferenciación trabaja en un dominio continuo, por lo cual nosotros para aplicar los filtros a una imagen tenemos que llevarlo a un dominio discreto, este procedimiento dependerá del filtro con el cual trabajemos.

En resumen podemos decir que los filtros de agudizamiento tiene como objetivo realzar los detalles finos de una imagen borrosa (acentuar los detalles), estos filtros de agudizamientos son basados en la primera y segunda derivadas (pero trabajadas en un dominio discreto).

1. Filtro Laplaciano.

En este filtro se hace uso de la segunda derivada para el mejoramiento y agudizamiento de las imagenes.


Luego tenemos que discretizar esta segunda derivada, para poder aplicarla sobre las imágenes.


Para la implementación tenemos que sumar las dos derivadas parciales:


El resultado de esta ecuaciones pueden ser implementadas con las siguientes máscaras:


Entonces en la siguiente imagen de entrada:


Con la máscara (a) podemos obtener los siguientes resultados:


Con la máscara (b) podemos obtener los siguientes resultados:


Con la máscara (c) obtenemos:


Y con la máscara (d) obtenemos:

La diferencia entre las imagenes a y c, b y d pueden ser vista mejor si hacen clic sobre ellas.

Entonces la manera sencilla para aplicar estas máscaras como un filtro laplaciano sobre una imagen es la siguiente: (donde la única condición depende del signo del valor central de la máscara aplicada).


Con el cual, finalmente obtenemos el siguiente resultado: (en la cual la diferencia es notable con la imagen oringinal).

Imagen Original

Imagen Resultante
Tambien existe un criterio de implementación, el cual sugiere lo siguiente (que no es mas que una simplificación de lo que explicamos anteriormente):


Siguiendo esa simplificación obtendremos las siguientes máscaras (1 y 2):

Máscara(1) Máscara(2)

Las cuales aplicadas a esta imagen de entrada:


Obtenemos los siguientes resultados (1 y 2):

Resultado con Máscara (1)

Resultado con Máscara (2)

2. UnSharp Masking and High-Boost Filtering.

UnSharp Masking
Consiste en tener una vision oringinal de la imagen y restarle la version suavizada de la imagen (imagen borrosa).

En este caso mostraremos nuestro resultados para la siguiente imagen de entrada:


A la cual internamente se le aplica un filtro de suavizamiento (se formará una imagen borrosa), el suavizado utilizado es el Gaussiano, con una máscara de 3 x 3. (Visto en este blog en la sección "Filtros de suavizamiento"). Entonces el resultado obtenido con el UnSharp Masking es el siguiente:


High-Bost Filtering

El high-bosst filtering se define como:

y se puede obtener:

Donde :
Fs: puede obnerse restando una imagen original de una imagen suavizada o puede ser resultado de aplicar un Filtro Laplaciano visto anteriormente.

Para demostrar los resultados con los efectos que tienen cada uno de estos filtros (suavizado y laplaciano) mostraremos ambos casos, para la siguiente imagen de entrada:


Con filtro de suavizamiento (Suavizado gaussiano con máscara de 3 x 3) y con A = 0.5, obtenemos:


Con filtro Laplaciano (con la máscara "d") visto en esta sección, y con A = 0.5, obtenemos:


Como vemos para este caso el suavizado obtiene mejores detalles, pero esto es relativo, ya que para este caso la imagen tiene muchas zonas claras, y el filtro laplaciano funciona mejor con imagenes con zonas oscuras como veremos en este caso: (Izquiera= Imagen de Entrada, Derecha= Resultado Boost Filtering con A=0.5 y con filtro Laplaciano (máscara "d")).

Hacer clic sobre la imagen para ver con mejor resolución.


3. Filtros basados en la Informacion del Gradiente


Con magnitud igual a:


A veces es necesario aproximar con:


Algunas aproximaciones para calcular las derivadas de primer orden, suponiendo una mascara de 3x3:


Luego encontramos a diferentes investigadores para poder aproximar estos resultados:

Operador Roberts
Aproximacion según Roberts

La máscara obtenida es la siguiente:

M[0][0]=0; M[0][1]=0; M[0][2]=0;
M[1][0]=0; M[1][1]=0; M[1][2]=-1;
M[2][0]=0; M[2][1]=1; M[2][2]=0;

Los resultados son los sigueintes: (Izquierda= Imagen de Entrada, Derecha= Resultado con máscara Roberts)


Operador Sobel
Aproximacion según Sobel

Los bordes son mas dominantes que el Laplaciano.

La máscara obtenida es la siguiente:

M[0][0]=-1; M[0][1]=-2; M[0][2]=-1;
M[1][0]=0; M[1][1]=0; M[1][2]=0;
M[2][0]=1; M[2][1]=2; M[2][2]=1;

Los resultados son los sigueintes: (Izquierda= Imagen de Entrada, Derecha= Resultado con máscara Sobel)


4. Caso de Estudio:


El Problema: Se tiene el escaneo de los huesos usando tecnologia nuclear, para detectar infecciones y tumores, pero las imagenes tienes mucho ruido y no se puede observar bien los detalles.

Solución: Usar una combinacion de metodos de mejora:

  • Aplicar Filtro Laplaciano (máscara "d"):

  • Aplicar Operador Sobel a la Imagen Original:


  • Suavizar la imagen Sobel con un filtro promedio 5x5:

  • Obtener el Producto de Laplaciano * Sobel Suavizado:

  • Sumar la Original + (Laplaciano * Sobel Suavizada):

  • Finalmente realizar la Operación de Potencia a la Imagen anterior (c=1.0, exponente=0.5):

Aqui nuestro programa mostrando los resultados obtenidos, a la izquierda la imagen original y a la derecha la imagen resultante despues de todo el proceso de mejora: