PÁGINA DE RECURSOS   En galego ►


TÉCNICAS DE FILTRADO

Los filtros son operaciones que se aplican a los píxeles de una imagen digital para mejorarla, resaltar cierta información, o conseguir un efecto especial. Algunos son complejos, y es lógico que el usuario de a pie se limite a probarlos y a utilizarlos en función del efecto observado, pero muchos filtros básicos se basan en una lógica simple. Adentrándonos en élla es mucho más fácil encontrar la solución más efectiva y apropiada a cada necesidad.

Mejora global y local
Ya he mencionado un par de veces la diferencia entre dos tipos de técnicas de mejora de la imagen: la mejora global, en la que cada píxel se procesa con independencia de su posición y atendiendo solamente a su valor, y las de mejora local, en las que influye el valor de los píxeles vecinos, y por tanto dos píxeles equivalentes en distintas zonas pueden dar dos resultados diferentes.

En general, las técnicas de mejora global son las relacionadas con el histograma. Se utilizan para cambiar toda la imagen, o bien una parte, pero esta parte no es una zona en el sentido espacial, sinó el conjunto de píxeles que poseen ciertos valores de densidad. El funcionamiento de la mayoría de éllas las hemos descrito en los artículos sobre Niveles y Curvas, en especial los Ejemplos prácticos. A nivel de programación consisten en establecer una LUT o tabla de consulta que relacione cada valor de la imagen de entrada con un valor de salida. Esta LUT (Look-Up Table) puede aparecer de dos maneras: en forma de función de transformación continua (tal como se maneja en la herramienta Curvas), o como un listado o índice de pares de valores correspondientes.

f
Tabla de correspondencias en forma de función continua (izquierda), y de índice (derecha).

Dominio espacial y frecuencial
En la mejora local las técnicas de procesamiento de punto o de convolución pueden operar sobre la imagen tanto en el dominio espacial como en el de la frecuencia. De hecho, en muchos casos hay manera de actuar en cualquiera de los dos campos. En el espacial se calcula sobre los propios valores de los píxeles, y en el frecuencial se traducen primero a un mapa de frecuencias mediante una transformada de tipo Fourier.

De esta forma es posible aplicar filtros típicos del tratamiento de señales eléctricas como los de Paso bajo, Paso alto o Paso banda. El primero limita o elimina las altas frecuencias, el segundo las bajas y el tercero ambas, es decir, limita el rango posible al intervalo entre un valor mínimo y otro máximo.

Las altas frecuencias corresponden en la imagen a cambios bruscos de densidad, y las bajas frecuencias a cambios suaves, por lo que el filtro Paso bajo consigue reducir el ruído suavizando las transiciones, mientras que Paso alto refuerza los contrastes.

f
Arriba, filtros típicos en el dominio de frecuencias.
Abajo, variaciones producidas en el dominio espacial.

Pero el tema central de este artículo es el filtrado espacial que se realiza definiendo un entorno con los vecinos de un píxel central. Este entorno se denomina ventana, máscara o matriz de convolución, y suele ser cuadrado o rectangular, aunque es posible definir otras formas rómbicas, circulares, etc.

A cada posición en la ventana se le asigna un peso o participación en el cálculo que dará el nuevo valor para el píxel central. Entonces se va desplazando la máscara centrándola en cada uno de los píxeles de la imagen. Al recorrido completo es a lo que denominamos filtrado, y los sucesivos resultados, siempre a partir de los valores originales, forman la nueva imagen. Es obvio que en los bordes y esquinas la ecuación varía, ya que parte de la máscara se pierde.

Dos campos típicos en los que centraremos esta exposición, son los de desenfoque mediante promedios y la detección de bordes.

Técnicas de promediado
Seguramente el ejemplo más simple de máscara de filtrado es la que promedia un entorno de 3x3 píxeles. Se suman los 9 valores y se divide por 9. El peso de cada valor inicial es 1/9 del resultado. Los filtros más simples de desenfoque emplean estas máscaras, produciendo un efecto similar a los de Paso bajo. De hecho se les llama filtros de Paso bajo espacial.

f
Promediado homogéneo con una máscara de 3x3 píxeles.

Cuanto más grande sea el entorno abarcado -5x5, 7x7, 9x9-, más se difuminan los detalles de la imagen, ya que cada vez habrá más proporción de valores idénticos dentro de dos máscaras contiguas. Pero se difumina enseguida la información de la imagen.

f f

f f

f f
Desenfoque con máscaras de 3x3 y de 5x5 píxeles

Se controla mucho mejor el alcance del desenfoque con una matriz donde los pesos disminuyen con la distancia al píxel central. Es lo que se denomina promediado ponderado.

La disminución se puede calcular en forma de campana gaussiana, en base a una ecuación en la que el valor de la varianza determina el número de píxeles a tener en cuenta. Eso es lo que manejamos como valor radio en los filtros de desenfoque gaussiano, con tan buenos resultados.

f
Máscara de convolución gaussiana de 7x7 píxeles.

El promedio tiene el inconveniente de desdibujar bordes y formas. Para evitarlo se emplean técnicas de promediado selectivo. Por ejemplo, se pueden calcular las cuatro medias proporcionales entre los dos vecinos laterales, los dos verticales, los dos en un sentido diagonal y los del sentido inverso, y elegir el más cercano al valor original del píxel.

En ciertos casos es más efectivo el cálculo de la Mediana. No es propiamente una convolución, sinó un criterio tan simple como seleccionar de la máscara el valor medio de los existentes. Se asemeja en esto a los filtros Máximo y Mínimo. Máximo consiste en asignar al píxel de referencia el valor más alto de los encontrados en la máscara, por lo que su efecto es ensanchar las zonas claras y adelgazar las oscuras. Mínimo hace justo lo contrario, seleccionando el valor más bajo.

La mediana de un conjunto de valores discretos es tal que hay igual número de valores por debajo y por encima. Para entenderlo: Una secuencia de valores 3, 2, 4, 8, 3, 12, 3, se ordena así: 2, 3, 3, 3, 4, 8, 12, el promedio es 5, el valor central es 4, pero la mediana es 3, porque es el valor que tiene el píxel del medio de la fila.

f

f

f
De arriba a abajo, imagen afectada en un 10% por ruído de
puntos blancos, filtrada con promedio y con mediana de
radio 1 o 3x3 píxeles (zoom 200%).

Detección de bordes
Se utilizan diferentes patrones, que resaltan los cambios bruscos de nivel. Estos patrones, llamados operadores, son unidireccionales, aunque se pueden combinar en una convolución múltiple.

f
Las dos máscaras de la izquierda rastrean las
diferencias de píxeles contiguos por filas y por columnas.
Las de la derecha comparan píxeles separados.

Con máscaras pequeñas, se pueden definir ocho direcciones, que se indican como puntos cardinales:

f
Operadores de Kirsch para ocho direcciones.

Nótese en el gráfico cómo los pesos positivos igualan a los negativos. Si los valores positivos y negativos de los píxeles también se igualasen, el resultado sería cero, por eso en muchos filtros de detección de bordes vemos en tonos muy oscuros las regiones homogéneas.

Los operadores de gradiente por filas y por columnas que vimos localizan bien los cambios de tono, pero son excesivamente sensibles al ruído, al igual que el operador de Roberts, que rastrea en diagonal.

Esto se debe a que son muy pocos los valores a calcular. Los operadores de Sobel, Prewitt o Frei-Chen lo evitan extendiendo el gradiente de píxeles separados de forma que participen los píxeles en diagonal.

f
De izquierda a derecha, operador en diagonal de Roberts
y operadores de fila de Prewitt, Sobel y Frei-Chen.

El operador Prewitt les da el mismo peso que a los contiguos al píxel central. El de Sobel duplica estos últimos teniendo en cuenta que son más próximos al píxel central, y el de Frei-Chen afina más para darles el peso correcto raíz de 2. De todos modos las diferencias visuales son tan sutiles que en la práctica se usan los dos primeros.

ff

f f

f f
De arriba a abajo, detección de bordes con operadores Sobel O, N y SE.

La característica común a todos los filtros de detección de diferencias es la combinación de pesos positivos con negativos. Así, una versión espacial simple de un filtro de paso alto la darían máscaras como estas:

f
A la izquierda, se combinan los gradientes de filas y columnas.
A la derecha, también los gradientes diagonales.

Son muy efectivos para acentuar el contraste y detectar puntos aislados, o pequeños detalles, si se aumenta el tamaño de la máscara. Con igual razonamiento se pueden diseñar máscaras que detecten la presencia de líneas finas.

f
Detección de líneas horizontales y verticales.

En la próxima entrega veremos cómo sacar partido a estas ideas creando filtros personalizados.

 

PÁGINA DE RECURSOS   En galego ►