You are on page 1of 14

Universidad Nacional de Quilmes Ing.

en Automatizacin y Control Industrial


Ctedra: Visin Artificial Septiembre de 2005

Filtrado Espacial 1
Filtrado Espacial


Introduccin

El filtrado espacial es la operacin que se aplica a una imagen para resaltar o atenuar
detalles espaciales con el fin de mejorar la interpretacin visual o facilitar un procesamien-
to posterior, y constituye una de las tcnicas comprendidas dentro del realce de imge-
nes. Ejemplos comunes incluyen aplicar filtros para mejorar los detalles de bordes en im-
genes, o para reducir o eliminar patrones de ruido. El filtrado espacial es una operacin
"local" en procesamiento de imagen, en el sentido de que modifica el valor de cada pxel
de acuerdo con los valores de los pxeles que lo rodean; se trata de transformar los nive-
les de gris originales de tal forma que se parezcan o diferencien ms de los correspon-
dientes a los pxeles cercanos.


Frecuencia Espacial

La frecuencia espacial define la magnitud de cambios en el nivel de gris por unidad de
distancia en una determinada zona de la imagen. Las reas de la imagen con pequeos
cambios o con transiciones graduales en los valores de los datos se denominan reas de
bajas frecuencias. Las reas de grandes cambios o rpidas transiciones se conocen como
reas de altas frecuencias (por ejemplo, los bordes). As, los filtros espaciales se pueden
dividir en tres categoras:

- Filtros pasa bajos: enfatizan las bajas frecuencias, suavizando las imgenes y ate-
nuando ruidos. Se trata de asemejar el nivel de gris de cada pxel al nivel de gris de los p-
xeles vecinos, reduciendo la variabilidad espacial de la imagen. Ello produce un borronea-
do de los bordes, perdindose en nitidez visual de la imagen, pero ganando en homoge-
neidad.

- Filtros pasa altos: enfatizan las altas frecuencias, para mejorar o afilar las caracters-
ticas lineales como los lmites en general. Realizan por tanto el efecto contrario a los filtros
pasabajos, eliminando las bajas frecuencias.

- Filtro detectores de bordes: realizan otro tipo de operaciones con los pxeles, pero
siempre con el resultado de enfatizar los bordes que rodean a un objeto en una imagen,
para hacerlo ms fcil de analizar. Estos filtros tpicamente crean una imagen con fondo
gris y lneas blancas y negras rodeando los bordes de los objetos y caractersticas de la
imagen.


Convolucin Espacial

El filtrado espacial se realiza trasladando una matriz rectangular de dos dimensiones
(tambin llamada ventana, kernel, mscara o ncleo) que contiene "pesos" o ponderacio-
nes sobre la imagen en cada localizacin de pxel. Se evala el pxel central de la ventana
de acuerdo con los pxeles de alrededor y sus valores de ponderacin. Cuando un nuevo
valor es as calculado, se desplaza la ventana sobre el siguiente pxel, realizando la mis-
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Septiembre de 2005

Filtrado Espacial 2
ma operacin. Este proceso de evaluar la vecindad ponderada del pxel se denomina
"convolucin bidimensional", y a la matriz de filtro se le conoce como "kernel de convolu-
cin".

En general, la convolucin de una imagen f de MxN con una mscara h de mxn est
dada por la siguiente expresin:




Por ejemplo, consideremos la mscara de convolu-
cin mostrada en la figura 1 y una imagen genrica re-
presentada por f. Dado que m=3 y n=3, a y b son iguales
a 1. Teniendo en cuenta todo lo anterior, la respuesta a
la mscara de convolucin dada, o sea, g(x,y), est da-
da por la expresin anterior. Luego, evaluando la res-
puesta para un punto cualquiera, por ejemplo, (5,4), ob-
tenemos lo siguiente:












Filtros Pasabajos

El resultado de aplicar un filtro pasabajos a una imagen es simplemente el promediado
de los pxeles contenidos en el vecindario (o entorno) de la mscara utilizada.

Si bien anteriormente se dieron los usos de los filtros pasabajos, generalmente se los
utiliza para atenuar los detalles irrelevantes en una imagen. Otra de las utilidades del filtro
pasabajos, aparte de las ms obvia que es la atenuacin del ruido, es el suavizado de los
falsos contornos producidos por una cuantizacin con un nmero insuficiente de niveles
de gris.

El procedimiento bsico del filtro pasabajos es reemplazar el valor de cada pxel en u-
na imagen por el promedio de los niveles de gris del vecindario definido por la mscara.

La figura 2 muestra dos mscaras (o ncleos) de 3x3. Usando la primera se obtiene el
promediado estndar de los pxeles abarcados por aquella. Se debe notar que, en lugar
de ser 1/9, los coeficientes de la mscara son todos 1s. Esto se hace as debido a que es
ms eficiente computacionalmente tener todos los coeficientes con el valor 1. Luego, la i-
magen completa se divide por 9 (o sea, por la suma de todos los coeficientes).

( , ) ( , ). ( , )
a b
i a j b
g x y f x i y j h i j
= =
= + +

2
1
,
2
1
=

=
n
b
m
a

= =
+ + =
1
1
1
1
) , ( ). 4 , 5 ( ) 4 , 5 (
i j
j i h i i f g
) 1 , 1 ( ). 5 , 6 ( ) 0 , 1 ( ). 4 , 6 ( ) 1 , 1 ( ). 3 , 6 ( ) 1 , 0 ( ). 5 , 5 ( ) 0 , 0 ( ). 4 , 5 (
) 1 , 0 ( ). 3 , 5 ( ) 1 , 1 ( ). 5 , 4 ( ) 0 , 1 ( ). 4 , 4 ( ) 1 , 1 ( ). 3 , 4 ( ) 4 , 5 (
h f h f h f h f h f
h f h f h f h f g
+ + + + +
+ + + + =
Figura 1: Mscara de
convolucin.
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Septiembre de 2005

Filtrado Espacial 3











La segunda mscara de la figura 2 produce un promedio ponderado. Como se puede
ver, los pxeles son multiplicados por diferentes coeficientes, dndoles as ms importan-
cia (peso) a algunos pxeles que a otros. En el caso particular de la mscara de la figura
2, el pxel del centro se multiplica por el valor ms alto, mientras que los dems pxeles
son pesados teniendo en cuenta la inversa de su distancia al centro. La razn de darle
ms importancia al pxel central y menos importancia a los pxeles ms alejados al centro,
radica en la necesidad de reducir el borroneado durante el proceso de suavizado. Como
se haca en el caso anterior, primero se multiplican los pxeles por los coeficientes de la
mscara, que son nmeros enteros potencias de 2 (mayor eficiencia, rapidez), y luego se
divide por la suma de todos los coeficientes de la mscara, o sea, 16.

En la figura 3 pueden verse los efectos del filtro espacial pasabajos, o suavizado. Te-
niendo en cuenta la imagen original, figura 3 (a), las figuras 3 (b) a 3 (f) son el resultado
de filtrar la imagen original utilizando ncleos cuadrados de n=3, 5, 9, 15 y 35, respectiva-
mente. Para la mscara de 3x3, notamos un leve borroneado general de la imagen, pero
los detalles que tienen aproximadamente el mismo tamao que el ncleo han sido afecta-
dos considerablemente. Para n=9, se ve un borroneado mucho mayor, y tambin que el
20% del crculo negro casi se confunde con el fondo, ilustrando as el efecto de mezclado
que el borroneado produce sobre aquellos objetos cuyos niveles de gris son parecidos a
los de sus vecinos. Otro efecto que se puede notar es la reduccin del ruido en los rectn-
gulos. Para n=15 y 35, se puede ver que el borroneado es excesivo. Este tipo de borrone-
ado se utiliza para eliminar los objetos pequeos en una imagen.

















Figura 2: Dos
mscaras de 3x3
para realizar un
filtrado pasabajos
(suavizado,
promediado)
a) b)
b) a)
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Septiembre de 2005

Filtrado Espacial 4



































Como ya lo mencionamos, una aplicacin importante de este tipo de filtrado es el bo-
rroneado de una imagen con el fin de obtener una presentacin burda de los objetos de
inters, de manera que la intensidad de los objetos pequeos se confunda con la del fon-
do y los objetos grandes sean fciles de detectar.

Por ltimo, presentaremos la implementacin general para filtrar una imagen de MxN
con una mscara de promedio ponderado de mxn (m y n impares):






donde el denominador es simplemente la suma de los coeficientes de la mscara y, por lo
tanto, una constante que slo debe calcularse una vez.


= =
= =
+ +
=
a
a i
b
b j
a
a i
b
b j
j i h
j i h j y i x f
y x g
) , (
) , ( ). , (
) , (
c) d)
Figura 3: a) Imagen original, 500x500 pxeles. (b) (f) Resultados de suavizar con
mscaras cuadradas de n=3, 5, 9, 15 y 35, respectivamente.
e) f)
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Septiembre de 2005

Filtrado Espacial 5
En el apndice se presentan algunos algoritmos en scripts de Matlab que realizan los
diferentes tipos de filtrado que se vern en este apunte.


Filtros estadsticos: filtro de mediana

Los filtros estadsticos son filtros espaciales no lineales cuya respuesta est basada en
ordenar los pxeles abarcados por una mscara y luego reemplazar el valor del pxel cen-
tral con el valor determinado por el resultado del ordenamiento. El ms conocido de estos
filtros es el filtro de mediana, el cual reemplaza el valor del pxel central por la mediana de
los niveles de gris del vecindario de ese pxel (el valor original del pxel es incluido en el
clculo de la mediana). Los filtros de mediana son muy usados debido a que, para ciertos
tipos de ruidos aleatorios, proveen una excelente reduccin de ruido y un borroneado con-
siderablemente menor que los filtros lineales de suavizado del mismo tamao. Los filtros
de mediana son particularmente efectivos cuando el ruido es del tipo impulso (tambin lla-
mado ruido sal y pimienta) debido a que aparece como puntos negros o blancos sobre-
puestos en la imagen.

La mediana, , de un conjunto de valores es aquella en la que la mitad de los valores
en el conjunto son menores o iguales que , y la otra mitad es mayor o igual a . Por e-
jemplo, si en una imagen tomamos un conjunto de pxeles de 3x3 con valores {1, 9, 5, 0,
8, 7, 1, 2, 4} la mediana para este caso ser el valor 4, ya que la mitad de este conjunto
es menor (o igual) y la otra mitad es mayor (o igual) a ste: {0, 1, 1, 2, 4, 5, 7, 8, 9}.

El procedimiento general para realizar el filtro de mediana en cualquier punto consiste
en ordenar los valores de dicho pxel y los de su vecindario, determinar la mediana, y a-
signar ste ltimo valor al pxel en cuestin. Para un vecindario de 3x3, la mediana es el
5
to
valor ms grande; para uno de 5x5 es el 13
mo
valor ms grande, y as. Cuando algunos
valores en un vecindario son iguales, stos se ven agrupados. Por ejemplo, supongamos
que un vecindario de 3x3 tiene los valores {10, 20, 20, 20, 15, 20, 20, 25, 100}. Ordenan-
do este conjunto nos queda {10, 15, 20, 20, 20, 20, 20, 25, 100}, de donde se ve que la
mediana es 20. As, la principal funcin de los filtros de mediana es hacer que los puntos
con niveles de gris distintos sean ms parecidos a los de su vecindario.

En la figura 4 puede verse los efectos que produce el filtro de mediana en una imagen
contaminada con ruido sal y pimienta.














Figura 4: a) Imagen con ruido sal y pimienta. b) Filtrado de (a) con un filtro de suavizado de
3x3. c) Reduccin de ruido con un filtro de mediana de 3x3.
a) b) c)
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Septiembre de 2005

Filtrado Espacial 6
La figura 4 (b) es el resultado de promediar la imagen original, figura 4 (a), con una
mscara de 3x3, mientras que la 4 (c) es la consecuencia de filtrar la original con un filtro
de mediana de 3x3. Se puede ver claramente que el filtro de mediana es ms efectivo a la
hora de remover ruido sal y pimienta que los filtros de promediado. No obstante, el precio
que se paga es un borroneado considerable.



Filtros Pasaaltos

El objetivo principal de estos filtros es resaltar los detalles delicados de una imagen
(por ejemplo, los bordes) o realzar los detalles de una imagen borroneada.

Anteriormente, vimos que el suavizado de una imagen, en el dominio espacial, se lo-
graba promediando el vecindario de cada pxel. Dado que el promediado es anlogo a la
integracin, es lgico pensar que en el proceso de filtrado con un pasaaltos se realicen o-
peraciones de diferenciacin espacial. Fundamentalmente, la magnitud de la respuesta de
un operador derivada es proporcional al grado de discontinuidad de la imagen en el punto
en donde este operador est siendo aplicado. Por esta razn, la diferenciacin de una i-
magen realza o enfatiza los bordes y otras discontinuidades tales como el ruido y atena
aquellas reas cuyos niveles de gris varan lentamente.

Los filtros pasaaltos que estudiaremos aqu estn basados en la primer y segunda de-
rivada. Las derivadas de una funcin discreta se definen en trminos de diferencias. Exis-
ten muchas maneras de definir estas diferencias. Sin embargo, existen requerimientos
que debe cumplir cualquier definicin de aqullas. La primer derivada debe ser:
- cero en las zonas que tienen un nivel de gris constante;
- distinta de cero ante un cambio del tipo escaln o rampa en el nivel de gris;
- y distinta de cero en toda la zona que tiene un cambio del tipo rampa;
Similarmente, cualquier definicin de segunda derivada debe ser:
- cero en zonas con nivel de gris constante;
- distinta de cero al principio o al final de un cambio del tipo escaln o rampa;
- y debe ser cero en toda la zona que tiene un cambio del tipo rampa con pendiente
constante.

Las definiciones bsicas para la primer y segunda derivada de una funcin bidimensio-
nal discreta con respecto a x y a y son las siguientes:







Como ya lo hemos discutido, los bordes en una imagen estn relacionados con los
cambios en el nivel de gris, o sea, con las altas frecuencias. A continuacin se desarrolla-
rn diferentes mtodos utilizados para la deteccin de lneas y bordes en general; mto-
dos asociados con la primer derivada, el gradiente, y mtodos asociados con la segunda
derivada, el laplaciano.

) , ( ) , 1 ( y x f y x f
dx
df
+ = ) , ( 2 ) , 1 ( ) , 1 (
2
2
y x f y x f y x f
dx
f d
+ + =
) , ( ) 1 , ( y x f y x f
dy
df
+ = ) , ( 2 ) 1 , ( ) 1 , (
2
2
y x f y x f y x f
dy
f d
+ + =
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Septiembre de 2005

Filtrado Espacial 7
Deteccin de lneas

Consideremos las mscaras de la figura 5. Si convolucionamos la primer mscara con
una imagen, la respuesta ser mayor para lneas del ancho de un pxel orientadas hori-
zontalmente. Siempre que el fondo sea uniforme, la respuesta ser mxima cuando la l-
nea pase a lo largo de la segunda fila de la mscara. La segunda mscara de la figura 5
responder mejor a lneas orientadas a 45; la tercera mscara a lneas verticales; y la l-
tima a lneas orientadas a -45. Estas direcciones se pueden establecer observando que
para la direccin de inters las mscaras presentan valores mayores que para otras posi-
bles direcciones. Si denotamos con R
1
, R
2
, R
3
y R
4
las respuestas de las cuatro mscaras
de la figura 5 para un pxel en particular, entonces si se cumple que |R
i
|>|R
j
| con ji, ser
ms probable que dicho pxel est asociado a la direccin correspondiente a la mscara i.











Deteccin de bordes

Operador Gradiente.

El gradiente de una imagen f(x,y) en la posicin (x,y) viene dado por el vector






El vector gradiente siempre apunta en la direccin de la mxima variacin de la ima-
gen f en el punto (x,y). En la deteccin de bordes es muy importante la magnitud de este
vector, denominado simplemente como gradiente de la imagen, denotado por f y dado
por


Esta cantidad representa la variacin de la imagen f(x,y) por unidad de distancia en la
direccin del vector f. En general, el gradiente se suele aproximar mediante la expresin


que es mucho ms simple de implementar en la prctica. La direccin del vector gradiente
tambin es una cantidad importante. Sea (x,y) el ngulo del vector f en el punto (x,y).
Entonces se tiene que



Figura 5:
Mscaras de
lnea
(
(
(

=
(

=
x
f
x
f
f
f
f
y
x
2 2
|| ||
y x
f f f + =
| | | |
y x
f f f +
) , (
) , (
arctan ) , (
y x f
y x f
y x
x
y
=
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Septiembre de 2005

Filtrado Espacial 8
donde los ngulos se miden con respecto al eje de abscisas.

El clculo del gradiente se basa en obtener las derivadas parciales para cada pxel.
Las derivadas se pueden implementar digitalmente de varias formas. En la figura 6 se
pueden ver los operadores de Robert, Prewitt, Sobel y Frei-Chen para determinar las
derivadas parciales. Sin embargo, los operadores de Sobel y de Frei-Chen tienen la ven-
taja de que proporcionan un suavizado adems del efecto de derivacin. Ya que la deriva-
cin acenta el ruido, el efecto de suavizado es particularmente interesante, puesto que e-
limina parte del ruido. El requisito bsico de un operador de derivacin es que, como ya
habamos dicho, la suma de los coeficientes de la mscara sea cero.





















Laplaciano.

El Laplaciano de una imagen I(x,y) es una derivada de segundo orden definida por




En general, se suele tomar el valor negativo del Laplaciano. Al igual que en el caso del
gradiente se puede implementar en forma digital de varias formas.

Puesto que el Laplaciano es un operador de derivacin, la suma de los coeficientes
debe ser cero. Adems, el coeficiente asociado con el pxel central debe ser positivo y to-
dos los dems coeficientes negativos o cero, o viceversa.

En la figura 7 (c) podemos ver una mscara para el Laplaciano. En este caso, la ex-
presin para determinar el Laplaciano viene dada por



Figura 6: Operadores de derivacin: (a) de Roberts, (b) de Prewitt,
(c) de Sobel, y (d) de Frei-Chen.
2
2
2
2
2
y
f
x
f
f

=
) , 1 ( ) 1 , ( ) 1 , ( ) , 1 ( ) , ( 4 y x f y x f y x f y x f y x f + +
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Septiembre de 2005

Filtrado Espacial 9













Aunque el Laplaciano responde a transiciones en la intensidad de la imagen, se em-
plea en pocas ocasiones en la prctica. Debido a que es un operador de segunda deriva-
das es excesivamente sensible a la presencia de ruido. Adems, el Laplaciano da lugar a
bordes dobles y no permite determinar direcciones. En general, juega un papel secundario
en la deteccin de bordes para determinar si un pxel est en la zona clara o en la zona
oscura del borde a travs del signo del Laplaciano.

El Laplaciano se puede utilizar para realzar una imagen de la siguiente forma:





El clculo anterior se puede simplificar teniendo en cuenta que el Laplaciano es un o-
perador lineal. En lugar de sumar (o restar) la imagen original, f(x,y), con el Laplaciano de
esta, obtenido con alguna de las mscaras de la figura 7, se puede utilizar una mscara e-
quivalente que realice las dos operaciones en un solo paso. Por ejemplo, para realzar una
imagen, f(x,y), usando la mscara laplaciana 7 (a), las operaciones seran las siguientes:


O lo que es equivalente:


Por lo tanto, la operacin de realce se ve simplificada cuando se utiliza una mscara
que realice todas las operaciones. Para el ejemplo anterior, la mscara usada se muestra
en la figura 8 (a).

En la figura 8 se puede ver cmo se realza una imagen con el Laplaciano. Las figuras
8 (a) y 8 (b) muestran las dos mscaras que se usan generalmente. La figura 8 (c) corres-
ponde a la imagen original (filamento de tungsteno escaneado con un microscopio electr-
nico). Las figuras 8 (d) y 8 (e) son el resultado de filtrar la imagen original con las msca-
ras 8 (a) y 8 (b), respectivamente. Comparando la imagen original con las filtradas, nota-
mos que ambas mscaras producen un realce efectivo, pero la resultante de filtrar con la
mscara 8 (b) muestra mejor los bordes y las formas.

Los mismos resultados hubisemos obtenido de haber restado la imagen original con
el Laplaciano de sta (calculado con la mscara 7 (a) o 7 (b)).

+

=
) , ( ) , (
) , ( ) , (
) , (
2
2
y x f y x f
y x f y x f
y x g
si el coeficiente central de la mscara es negativo
si el coeficiente central de la mscara es positivo
)} 1 , ( ) 1 , ( ) , 1 ( ) , 1 ( ) , ( 4 { ) , ( ) , ( + + + + + + = y x f y x f y x f y x f y x f y x f y x g
)} 1 , ( ) 1 , ( ) , 1 ( ) , 1 ( { ) , ( 5 ) , ( + + + + + = y x f y x f y x f y x f y x f y x g
Figura 7: Mscaras utilizadas para implementar los diferentes Laplacianos.
a) b) c) d)
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Septiembre de 2005

Filtrado Espacial 10




































Filtros High-boost y Unsharp masking

Anteriormente, vimos cmo resaltar las altas frecuencias en una imagen para enfatizar
bordes y las formas. Para ello, utilizamos mscaras que realizaban operaciones de deriva-
cin. Ahora veremos dos tipos de filtros muy utilizados para el mismo fin pero que emple-
an otras operaciones.

Un procedimiento usado para agudizar las formas en una imagen es el unsharp mas-
king, que consiste en restar a la imagen original una versin promediada de sta (por
ejemplo, la imagen original filtrada con un pasabajos). Esto es,


Una generalizacin del unsharp masking es el denominado filtro high-boost que con-
siste en lo siguiente:
) , ( ) , ( ) , ( y x f y x f y x f
s
=
a)
b)
c)
Figura 8: (a) y (b) Mscaras laplacianas compuestas. c) Imagen original. (d) y (e) Resultado
de filtrar la imagen original con las mscaras (a) y (b), respectivamente.
d) e)
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Septiembre de 2005

Filtrado Espacial 11


donde A es mayor o igual a 1. La expresin anterior puede ser rescrita como


Cuando A es igual a 1, obtenemos una imagen filtrada con una pasaaltos, y cuando A
es mayor a 1, parte de la imagen original se aade al resultado del filtrado con pasaaltos,
lo que recupera parcialmente las componentes de bajas frecuencias perdidas en el proce-
so de filtrado con pasaaltos.

La ltima expresin del filtro high-boost es aplicable en general y no especifica cmo
obtener la imagen filtrada con un pasaaltos. Si para ello elegimos el Laplaciano, entonces
f
hb
(x,y) puede calcularse de la siguiente forma





El filtrado high-boost puede realizarse en un solo paso usando alguna de las mscaras
de la figura 9.












El filtrado high-boost se aplica principalmente cuando la imagen original es ms oscura
que la deseada. Variando el coeficiente A, generalmente se puede obtener un incremento
global del nivel de gris de la imagen. Esto se puede ver en la figura 10.















) , ( ) , ( . ) , ( y x f y x f A y x f
hb
=
) , ( ) , ( ). 1 ( ) , ( y x f y x f A y x f
s hb
+ =

+

=
) , ( ) , ( .
) , ( ) , ( .
2
2
y x f y x f A
y x f y x f A
f
hb
si el coeficiente central de la mscara laplaciana es negativo
si el coeficiente central de la mscara laplaciana es positivo
Figura 9: Mscaras
usadas para el
filtrado high-boost.
a) b)
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Septiembre de 2005

Filtrado Espacial 12




















La figura 10 (a) es una versin ms oscura de la imagen de la figura 8 (c). La figura 10
(b) muestra el Laplaciano calculado con la mscara 9 (b), con A=0. La figura 10 (c) se ob-
tuvo usando la mscara 9 (b) pero con A=1. Como era de esperar, se han resaltado las
altas frecuencias en la imagen original (o sea, los bordes y las formas), pero la imagen ob-
tenida sigue siendo tan oscura como la original. Por ltimo, la figura 10 (d) muestra el re-
sultado de emplear la mscara 9 (b) con A=1.7. Este resultado es mucho ms aceptable
ya que el nivel de gris promedio fue aumentado, haciendo a la imagen ms clara y natural.























Figura 10: a) Imagen original. b) Laplaciano de (a) calculado con la mscara 9 (b), usando
A=0. c) Imagen realzada con el Laplaciano usando para ello la mscara 9 (b), A=1. d) Lo
mismo que (c) pero usando A=1.7.
e) d)
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Septiembre de 2005

Filtrado Espacial 13
Apndice

A continuacin se presentarn algunos algoritmos utilizados para filtrar una imagen en
el dominio espacial.


A=double(imread('c:\MATLAB6p5\toolbox\images\imdemos\ic.tif','tif'));
[f,c]=size(A);

% Deteccin de bordes verticales
for i=2:f-1
for j=2:c-1
C(i,j)=abs([1 1 1]*A((i-1):(i+1),j-1)-[1 1 1]*A((i-1):(i+1),j+1));
end
end


% Promediado con mascara de 3x3
for i=2:f-1
for j=2:c-1
D(i,j)=sum(sum(A((i-1):(i+1),(j-1):(j+1))));
D(i,j)=D(i,j)/9;
end
end


% Laplaciano
for i=2:f-1
for j=2:c-1
E(I,j)=4*A(i,j)-A(i-1,j)-A(i,j-1)-A(i,j+1)-A(i+1,j);
end
end


Como vemos, existe ms de una forma de implementar un filtro en los scripts de
Matlab. Por supuesto que hay algunas que son ms eficientes que otras pero como des-
ventaja no son soportadas en otros lenguajes de programacin. Por ejemplo, la funcin
sum de Matlab est muy optimizada pero difcilmente est implementada en otro lengua-
je. Lo mismo sucede con el producto de matrices.

Ahora se va a presentar una funcin de Matlab que realiza la correlacin de una ima-
gen con una mscara dada, pero es aconsejable hacer antes algunos algoritmos de
filtrado de manera genrica y aceptable en cualquier lenguaje de programacin. La
funcin de la que hablamos es la que sigue:

B=filter2(N,A,same);

donde N representa el ncleo o mscara y A la imagen que se desea filtrar. El parmetro
same se utiliza para que la funcin devuelva la parte central de la correlacin (que es del
mismo tamao que la imagen A).

Por ejemplo, para promediar una imagen con un ncleo de 3x3 se hace lo siguiente:
Np=1/9*ones(3);
Ap=filter2(N,A,same);

Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Septiembre de 2005

Filtrado Espacial 14
Para detectar bordes horizontales, la mscara es la que sigue (operador de Prewitt):
Nh=[1 1 1;0 0 0;-1 -1 -1];

Laplaciano:
Ng=[0 1 0;1 4 1;0 1 0];

Ng=[1 1 1;1 8 1;1 1 1];


Por ltimo, se presentarn dos formas de implementar el filtro de mediana. Primero, to-
memos una imagen cualquiera y agregumosle ruido del tipo sal y pimienta:

A=double(imread('circuit.tif','tif'));
[f,c]=size(A);

Ar=A;
for i=1:f*c
if rand<0.05
Ar(i)=0;
end
if rand>0.95
Ar(i)=255;
end
end

Veamos ahora una forma de aplicar el filtro de mediana con una mscara de 3x3:

F=zeros(size(A));
for i=2:f-1
for j=2:c-1
F(i,j)=median([Ar(i-1,(j-1):(j+1)) Ar(i,(j-1):(j+1)) Ar(i+1,(j-1):(j+1))]);
end
end

El algoritmo anterior simplemente forma un vector concatenando 3 filas de 3 elemen-
tos cada una, que corresponden a una ventana de 3x3 de la matriz Ar, y luego obtiene la
mediana de ese vector por medio de la funcin de Matlab median. Como no poda ser de
otra manera, Matlab tambin tiene una funcin que aplica el filtro de mediana a una ima-
gen cualquiera para un tamao de ventana dado. Es la siguiente:

Fmat=medfilt2(Ar,[3 3]);

Donde el vector [3 3] indica que la ventana deseada es de 3x3. Comparemos los resul-
tados:

figure, imshow(uint8(A))
figure, imshow(uint8(Ar))
figure, imshow(uint8(F))
figure, imshow(uint8(Fmat))

You might also like