|
Paulo Porta.-
Mejora global y local
Ya he mencionado un par de veces la diferencia entre dos tipos de técnicas de mejora de la imagen: las de mejora global, en las 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 (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. Esta parte, no obstante, no es una zona en el sentido espacial, sino que está compuesta por aquel conjunto de píxeles que poseen ciertos valores de densidad.
El funcionamiento de la mayoría de técnicas de mejora global ya lo hemos descrito en los artículos sobre niveles y curvas, sobre todo mediante 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:
Tabla de correspondencias en forma de función continua (izquierda) y de índice (derecha).
Dominio espacial y de frecuencia
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 de frecuencia 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 del 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, a cambios suaves. El filtro Paso bajo, por tanto, consigue reducir el ruido suavizando las transiciones, mientras que la alternativa Paso alto refuerza los contrastes.
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 3 x 3 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.
Promediado homogéneo con una máscara de 3 x 3 píxeles.
Cuanto más grande sea el entorno abarcado (5 x 5, 7 x 7, 9 x 9), 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 en seguida la información de la imagen.
Desenfoque con máscaras de 3 x 3 y de 5 x 5 píxeles.
Se controla mucho mejor el alcance del desenfoque con una matriz donde los pesos disminuyen con la distancia respecto 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.
Máscara de convolución gaussiana de 7 x 7 píxeles.
El promedio tiene el inconveniente de desdibujar bordes y formas. Para evitarlo se emplean técnicas de promediado selectivo. Se pueden calcular, por ejemplo, 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 resultado que más se parezca 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, sino 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.
El filtro 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. El 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.
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.
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:
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 ruido, 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.
De izquierda a derecha, operador en diagonal de Roberts, y operadores de fila de Prewitt, Sobel y Frei-Chen.
El operador de Prewitt otorga el mismo peso a los píxeles contiguos en vertical y horizontal, que a los contiguos en diagonal. El de Sobel duplica el coeficiente de los primeros teniendo en cuenta que sus centros están más próximos al píxel central, y el de Frei-Chen afina más, distinguiendo la proporción real de 1 a 1,41 (raíz de 2)
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 éstas:
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:
Detección de líneas horizontales y verticales.
En la próxima entrega veremos cómo sacar partido a estas ideas creando filtros personalizados.
Paulo Porta Paulo Porta es profesor de instituto. Imparte plástica y fotografía digital y es autor del manual 'Fotografía e Imaxe Dixital'.
Los artículos de la serie "Mapa de bits" se publican, normalmente, los días 15 y 30 de cada mes.

|