VICEMINISTERIO DE EDUCACIN UNIVERSIDAD NACIONAL EXPERIMENTAL POLITCNICA DE LA FUERZA ARMADA CENTRO DE INVESTIGACIONES Y POSTGRADO UNEFA-CIP
FILTROS
Introduccin Los filtros espaciales tienen como objetivo modificar la contribucin de determinados rangos de frecuencias a la formacin de la imagen. El trmino espacial se refiere al hecho de que el filtro se aplica directamente a la imagen y no a una transformada de la misma, es decir, el nivel de gris de un pxel se obtiene directamente en funcin del valor de sus vecinos. Los filtros espaciales pueden clasificarse basndose en su linealidad: filtros lineales y filtros no lineales. A su vez los filtros lineales pueden clasificarse segn las frecuencias que dejen pasar: los filtros paso bajo atenan o eliminan las componentes de alta frecuencia a la vez que dejan inalteradas las bajas frecuencias; los filtros paso alto atenan o eliminan las componentes de baja frecuencia con lo que agudizan las componentes de alta frecuencia; los filtros paso banda eliminan regiones elegidas de frecuencias intermedias.
Arriba: secciones de filtros en frecuencia con simetra circular. Abajo: secciones correspondientes a filtros espaciales. (a) Filtro paso bajo. (b) Filtro paso alto. (c) Filtro paso banda.
La forma de operar de los filtros lineales es por medio de la utilizacin de mscaras que recorren toda la imagen centrando las operaciones sobre los pxeles que se encuadran en la regin de la imagen original que coincide con la mscara y el resultado se obtiene mediante una computacin (suma de convolucin) entre los pxeles originales y los diferentes coeficientes de las mscaras. Los filtros espaciales no lineales tambin operan sobre entornos. Sin embargo, su operacin se basa directamente en los valores de los pxeles en el entorno en consideracin. Unos ejemplos de filtros no lineales habituales son los filtros mnimo, mximo y de mediana que son conocidos como filtros de rango. El filtro de mediana tiene un efecto de difuminado de la imagen, y permite realizar una eliminacin de ruido de forma eficaz, mientras que el filtro de mximo se emplea para buscar los puntos ms brillantes de una imagen produciendo un efecto de erosin, y el filtro de mnimo se emplea con el objetivo contrario, buscar los puntos ms oscuros de una imagen produciendo un efecto de dilatacin. Otra clasificacin de los filtros espaciales puede hacerse basndose en su finalidad, y as tenemos los filtros de realce (Sharpening) para eliminar zonas borrosas o filtros de suavizado (Smoothing) para difuminar la imagen. Tambin tenemos los filtros diferenciales que se componen de varios tipos de mscaras (Laplaciano, Prewitt, Sobel, etc.), y se utilizan para la deteccin de bordes. El proceso de deteccin de bordes se basa en realizar un incremento del contraste en las zonas donde hay una mayor diferencia entre las intensidades, y en una reduccin de ste donde no tenemos variacin de intensidad. Convolucin El tratamiento de imgenes ms empleado y conocido, es el tratamiento espacial tambin conocido como convolucin. Las convoluciones discretas son muy usadas en el procesado de imagen para el suavizado de imgenes, el afilado de imgenes, deteccin de bordes, y otros efectos. Mediante este proceso se calcula el valor de un determinado punto en funcin de su valor y del valor de los puntos que le rodean, aplicando una simple operacin matemtica en funcin de la cual se obtendr un valor resultante para el punto en cuestin. La operacin de la convolucin puede representarse como la siguiente operacin: g(x,y) = f(x,y) a(x,y) donde a(x,y) es la funcin respuesta al impulso del filtro a aplicar (o mscara de convolucin), f(x,y) es la imagen de entrada y g(x,y) es la imagen filtrada. Las expresiones matemticas para el caso bidimensional son las siguientes: Caso continuo
Caso discreto
La operacin matemtica en que consiste la convolucin es simplemente una suma ponderada de pxeles en el vecindario del pxel fuente. Los pesos son determinados por una pequea matriz llamada mscara de convolucin, que determina unos coeficientes a aplicar sobre los puntos de una determinada rea. Las dimensiones de la matriz son normalmente impares e iguales, de forma que se pueda determinar un centro de una matriz cuadrada. La posicin del valor central se corresponde con la posicin del pxel de salida. Una ventana deslizante, llamada ventana de convolucin, se centra en cada pxel de una imagen de entrada y genera nuevos pxeles de salida. Para aplicar la mscara a esa zona se multiplican los valores de los puntos que rodean al pxel que estamos tratando por su correspondiente entrada o coeficiente en la mscara y luego se suman esos productos. El resultado es el nuevo valor para el pxel central, tal y como se puede ver en la siguiente figura. El proceso es bastante repetitivo, algo costoso en tiempo en funcin del tamao de la imagen, pero sencillo y eficaz. Es muy importante colocar los nuevos pxeles en una nueva imagen. Si el recin generado pxel remplaza al antiguo pxel, ste ser usado para calcular el valor del siguiente pxel nuevo.
La suma de los pesos en la mscara de convolucin afecta a la intensidad general de la imagen resultante. Muchas mscaras de convolucin tienen coeficientes que suman un total de 1 (como los filtros paso bajo usados en el suavizado de imagen). Es este caso, la imagen convolucionada tendr la misma intensidad media que la imagen original. Algunas mscaras de convolucin (como las usadas en deteccin de bordes) tienen coeficientes positivos y negativos y suman un total de 0, en esta situacin se generarn valores de pxeles negativos. En caso de que nos salgamos del rango impuesto para la imagen f(x,y), bien porque necesitemos utilizar mscaras cuya suma de valores sea mayor que la unidad o porque utilicemos mscaras con coeficientes negativos, debemos normalizar el resultado aplicando la funcin ms adecuada en cada caso. Existe una gran variedad de mscaras que realizan diferentes acciones sobre una imagen. Las hay que suavizan los bordes, otras que limpian la imagen, otras que la oscurecen, etc. Las mscaras, como operadores lineales ms utilizados, suelen ser de los de paso bajo, paso alto y deteccin de bordes. Por ejemplo, mediante la siguiente matriz no se realiza ningn cambio a la imagen: 0 0 0 0 1 0 0 0 0 El tamao de la mscara podra ser arbitrario, e incluso no restringido a matrices cuadradas, por lo que se podra utilizar perfectamente matrices rectangulares. Pero nos limitaremos a que la mayora de los procesados utilicen mscaras cuadradas de tamao 3x3, ya que para comprender su funcionamiento son las mscaras ms simples. Una cosa que se aprende con rapidez es que cuando la mscara de convolucin aumenta de tamao, la carga computacional aumenta exponencialmente. La primera cuestin al implementar una funcin de convolucin es como tratar los bordes de la imagen. Cuando la ventana de convolucin se centra en el primer pxel de una imagen en (0,0), la ventana deslizante sobresale de la imagen en el borde superior y en el izquierdo. Qu valores de la imagen deben ser multiplicados por esos coeficientes de convolucin que sobresalen de los bordes?
Hay varias maneras para solucionar este problema. o La primera solucin es tratar las celdas vacas en la ventana de convolucin como ceros. Esto se conoce como zero-padding. Es fcil de realizar pero no es una buena idea si los bordes de la imagen resultante son tan importantes como el resto de la imagen. o La siguiente solucin es empezar la convolucin en la primera posicin donde la ventana no sobresalga de la imagen. Si la mscara de convolucin es de tamao 3x3, se empezara convolucionando con el pxel en (1,1) en vez del pxel en (0,0). Este mtodo es sencillo de implementar. En la imagen de salida, los bordes convolucionados son copiados para crear una imagen con el mismo tamao que la imagen de entrada. o Otros mtodos amplan la imagen antes de convolucionarla. Una forma de hacerlo es duplicar los bordes. Usando una mscara 3x3, se copiaran la filas superior e inferior, as como las columnas izquierda y derecha. o El otro mtodo es envolver la imagen, es decir, considerar como pxel contiguo al del borde izquierdo, el pxel del borde derecho y viceversa, as como con los del borde superior e inferior. Si se quiere convolucionar una imagen 256x256 con una mscara de convolucin de 3x3, la primera ventana de convolucin opera con los pxeles en las posiciones que se ven en la siguiente figura. Este ltimo mtodo ha sido el empleado en la implementacin de la aplicacin.
Suavizado El suavizado de imgenes se utiliza normalmente bajo dos supuestos: dar a una imagen un difuminado o efecto especial y para la eliminacin de ruido, este ltimo caso se analizar con ms detalle en la seccin 3.5-Eliminacin de ruido. El suavizado o filtrado espacial paso bajo borra los detalles ms finos de una imagen, es decir, conlleva una atenuacin de las altas frecuencias, mientras se mantienen las bajas y medias frecuencias. Tiene un buen nmero de aplicaciones: algunas veces se emplea para simular una cmara desenfocada, o para restar nfasis a un fondo; mientras los fotgrafos usan un filtro de cmara para conseguir ese efecto, los artistas informatizados emplean filtros digitales. El suavizado se alcanza mediante la convolucin, y es fcil ver en la mscara de convolucin que el suavizado es simplemente el promedio del vecindario. Promediar tiende a eliminar los valores extremos de un grupo, as los pxeles extremadamente claros u oscuros pueden hacerse ms grises dependiendo de los vecinos del pxel. Cuanto ms grande es la mscara, mayor es el efecto de suavizado y mayor el tiempo de cmputo requerido. Filtros Paso Bajo Las mscaras de los filtros paso bajo deben tener todos sus coeficientes positivos y la suma de ellos debe ser igual a uno. Las mscaras de tamao 3x3 ms utilizadas son las siguientes: o La llamada propiamente paso bajo o La llamada "Smooth" 0 1/10 0
1/16 2/16 1/16 1/10 6/10 1/10 2/16 4/16 2/16 0 1/10 0 1/16 2/16 1/16 Paso Bajo Smooth Las dos mscaras tienen el mismo efecto sobre la imagen, pero con la llamada Smooth, al tener los coeficientes un mayor valor, el efecto de difuminado es mucho ms fuerte. En el caso de la mscara Smooth debemos darnos cuenta que la suma de los valores es 16 y no 1, por lo que los valores obtenidos con ella para los puntos de la imagen, se nos pueden salir del rango vlido (en nuestro caso 255), por lo que el resultado debe ser normalizado dividindolo por la suma de la mscara, en este caso 16. En el caso de la mscara Paso Bajo la suma total es de 10, valor por el cual dividimos para normalizar el resultado. El filtrado con una mscara paso bajo, como la Smooth, produce un efecto de difuminado de los bordes y emborronamiento de la imagen filtrada con respecto a la imagen original. Esta prdida de los detalles pertenecientes a las altas frecuencias es lo que caracteriza a todos los filtros paso bajo o de suavizado. Las mscaras vistas anteriormente no son las nicas que producen un efecto paso bajo, pero si son las ms extendidas. Cada uno puede disear su propia mscara, slo hay que seguir las pautas dadas anteriormente. Las siguientes mscaras son ejemplos propios: 1/12 1/12 1/12
Filtro de Media De entre la multitud de mscaras de filtro paso bajo destaca especialmente la mscara de media, que es la que efecta el promedio de los valores del entorno. El filtro espacial de media reemplaza el valor de un pxel por la media de los valores del punto y sus vecinos. Su efecto es el difuminado o suavizado de la imagen y se aplica junto con el de mediana para eliminar ruidos. Este filtro lo implementamos con la siguiente mscara para un tamao 3x3: 1/9 1/9 1/9 1/9 1/9 1/9 1/9 1/9 1/9 Normalmente el tamao de la mscara se toma en funcin de la cantidad de suavizado que queramos aplicar en cada momento. La visualizacin del resultado es el nico medio de saber si hemos elegido el tamao adecuado. Se puede observar que el efecto final del filtro de la media es un suavizado de la imagen por reduccin o redistribucin del valor de los pxeles. Este filtro tiene el resultado opuesto a los de deteccin de bordes, donde el objetivo de los filtros es acentuar las diferencias, por esta razn el filtro de la media es un filtro paso bajo. Tambin hay que notar que este filtro no modifica la imagen en las zonas donde el valor de los pxeles es el mismo, en oposicin a los detectores de bordes que ponen estas regiones a cero. En resumen, la media, como el resto de los filtros de suavizado, suaviza los contornos y otros detalles de forma de los objetos aparezcan menos definidos. En este Apple podemos observar los efectos de las diferentes mscaras de filtrado paso bajo que hemos visto y experimentar con filtros paso bajo propios, slo tenemos que cumplir la condicin de que todos los coeficientes han de ser positivos y sumar 1. Dilatacin / Erosin El filtrado de mnimo y de mximo es muy similar al filtrado de mediana, junto con ste forman los filtros de rango. En vez de sustituir el pxel del centro por el valor medio, se utiliza el valor mnimo o mximo de la ventana. Estos filtros son eficaces en eliminar el ruido impulsivo extremo. El filtro mnimo elimina los puntos blancos (valor 255) mientras que el filtro mximo elimina los puntos oscuros (valor 0). Con el filtrado de mnimo, un pxel se representa con el pxel ms oscuro de su vecindad, por lo que la intensidad total de la imagen de salida ser reducida. ste filtro tiende a "ensanchar" las lneas negras de la imagen, por esta razn tambin es conocido como filtro de dilatacin. Con el filtrado de mximo se aumenta la intensidad total de la imagen de salida. Este filtro tambin es conocido como filtro de erosin, debido a la propiedad que posee de "adelgazar" lneas. Si nuestra imagen posee lneas negras, al elegir el valor mximo de la vecindad de cada pxel, los valores ms oscuros sern sustituidos por valores ms altos con la consiguiente reduccin de los pxeles cercanos al negro. Otra aplicacin posible del filtrado de mnimo y mximo es la eliminacin de ruido. Estos filtros son eficaces en eliminar el ruido impulsivo extremo. El filtro de mnimo elimina los puntos blancos (valor 255) mientras que el filtro mximo elimina los puntos oscuros (valor 0). Aunque los filtros mnimos y mximos fallan en la eliminacin del ruido impulsivo mezclado, pues los filtros mnimo y mximo tienden a realzar los puntos negativos y positivos, respectivamente. Una cascada de filtros mximos y mnimos puede quitar este ruido mezclado. Un filtro mnimo seguido de un filtro mximo se conoce como filtro de abertura. En el siguiente applet se puede ver el comportamiento de todos los filtros de rango o filtros no lineales, con diferentes tamaos a escoger. En las imgenes del applet podemos ver los efectos de los filtros de rango: o En la imagen "flor" se puede ver claramente como el filtrado de mximo resalta los detalles de las hojas y las gotas, que son claros, contra el fondo oscuro de la imagen. o Por el contrario, en la imagen "scully" se puede ver como el filtrado de mnimo resalta los detalles oscuros de la imagen, como pueden ser las pecas o la pupila, en la imagen. o En las imgenes "tigre" o "leon" se puede apreciar claramente como el filtrado de mediana produce un emborronamiento de la imagen y una prdida del detalle. o En el resto de las imgenes se pueden apreciar los efectos de los diferentes filtros, con la particularidad de que cuanto mayor sea el tamao del filtro, el efecto ser ms pronunciado, y la operacin ms costosa.