You are on page 1of 9

Filtros en Matlab Para Procesamiento de Imágenes

Con el objetivo de mejorar la imagen a través de reducir o eliminar el ruido se


suelen aplicar filtros. La idea es aproximar el valor original del pixel usando
información de la propia imagen o externa. Hay muchos tipos diferentes de
filtros.

 Tipos de Filtros:

o Dominio Espacial

 Filtros de orden

 Mediana
 Moda
 Máximos y mínimos

 Promediado de Imágenes

 Filtros de Medias

 Lineales

 Media (Paso Bajo Espacial)


 Media Geométrica
 Media Armónica
 Media Contra – Armónica
 De Gauss

 No Lineales

 Outlier

o Dominio Frecuencial

 Paso Bajo
 Paso Alto
 Paso Banda
 Rechazo Banda
1. Filtro de Dominio Espacial

Estos filtros consisten en modificar o mejorar un pixel elegido en función de los


valores de un entorno o subconjunto de pixeles vecinos a aquel.

Vecindades

Operaciones sobre vecindades: Son aquellas que se realizan sobre bloques


definidos dentro de la imagen, en vez de procesar toda la imagen

Operaciones basadas en vecindades

Las operaciones se realizan de la siguiente forma:

1. Se selecciona el píxel a procesar.


2. Se selecciona el entorno del píxel.
3. Se aplica una función que depende del valor de los píxeles del entorno
seleccionado. 4.- Se pone en la imagen de salida en la posición del píxel
seleccionado de la imagen de entrada, el valor devuelto por la función.
5. Repetir de 1 a 4 por cada píxel de la imagen de entrada.
Solución:

Relleno de píxeles

Relleno de una constante


Relleno basado en réplica

Relleno basado en espejo

1.1 Filtros de Orden

Metodología:

Definir tamaño de submatriz para actuar y ordenar los elementos que la


engloban aplicando el criterio correspondiente dependiendo del filtro.
Tipos de ventanas:

 Debe fijarse un tamaño de vecindad.

o Puede ser rectangular o de cualquier otra forma, generalmente


cuadrado y número de elementos impar.

o Debe definirse la posición del pixel de estudio respecto a la


ventana, generalmente y por simetría el central.

 En una convolución las propiedades del filtro vienen dadas por los
coeficientes de la máscara.

Hay problemas de borde o contorno.


Duplicación periódica.
Duplicación del borde.
Puesta a cero del contorno.
Suprimir borde

1.1.1 Mediana

Sustituye el valor del píxel estudiado, por la mediana de los valores que engloba
una ventana de selección dada.

 Ventajas

o Atenúa el ruido impulsionar (Sal y pimienta).


o Elimina efectos engañosos.
o Preserva bordes de la imagen.
 Inconvenientes

o Pierde detalles (Puntos, líneas finas).


o Redondea las esquinas de los objetos.
o Desplazamiento de los bordes.

Ejemplo: Mediana de una vecindad de 3x3

Lo cual se realizaría con el siguiente programa Matlab

>> I1=medfilt2(I,[N M]); % Default 3x3


FILTRO DE LA MEDIANA PONDERADA:

 A menudo se ponderan mas ciertos valores de nivel


de gris que otros y eso se ve reflejado en unas
máscaras de ponderación.
 Por ejemplo, se le puede dar más importancia a los
píxeles centrales que al resto de la ventana.
 Una máscara de ponderación muy común es:

Filtrado de la mediana

1.1.2 Moda

Sustituye el píxel estudiado por el valor más repetido que contiene la ventana
de selección.

 Ventaja

o Atenúa el ruido impulsional (Sal y pimienta).

 Inconveniente

o Con frecuencia los valores de intensidad en la vecindad son todos


diferentes.

Máximos y mínimos

Máximo: selecciona el mayor valor dentro de una ventana ordenada de valores


de nivel de gris.

 Ventaja

o Elimina el ruido pimienta (píxeles negros).


 Inconvenientes

o Sólo funciona cuando el ruido es tipo pimienta.


o Tiende a aclarar la imagen.

Ejemplo: Máximo de una vecindad de 3x3

Lo cual se realizaría con el siguiente programa Matlab

>> f=inline('max(x(:))'); % Define función máxima


>> I1=nlfilter(I,[3, 3],f); % Devuelve máximo

Mínimo: Selecciona el menor valor de dentro de una ventana ordenada de valores de


píxeles.

 Ventaja

o Elimina el ruido sal (píxeles blancos).

 Inconvenientes

o Sólo funciona cuando el ruido es tipo sal.


o Tiende a oscurecer la imagen.

Ejemplo: Mínimo de una vecindad de 3x3


Lo cual se realizaría con el siguiente programa Matlab

>> f=inline('min(x(:))');
>> I1=nlfilter(I,[3, 3],f);

You might also like