Transformaciones espaciales lineales

  • Francesc Martí Pérez

  • Sílvia Pujalte Piñán

PID_00258144
Ninguna parte de esta publicación, incluido el diseño general y la cubierta, puede ser copiada, reproducida, almacenada o transmitida de ninguna forma, ni por ningún medio, sea este eléctrico, mecánico, óptico, grabación, fotocopia, o cualquier otro, sin la previa autorización escrita del titular de los derechos.

Introducción

Una vez vistas las transformaciones puntuales más importantes, en este tema nos centraremos en las transformaciones espaciales, aquellas que emplean la información de un píxel y los más cercanos para obtener el píxel modificado.
Comenzaremos hablando del filtrado espacial, en este primer apartado introduciremos el concepto de máscara, la herramienta que utilizaremos para implementar las diferentes transformaciones del módulo.
El segundo apartado lo dedicaremos a las transformaciones de suavización, que difuminan la imagen con la suavización de los contornos de los objetos que figuran en ella.
En el tercer apartado veremos las transformaciones de detección de contorno y realce; las primeras, como su nombre indica, localizan los contornos en una imagen, mientras que las segundas los destacan sin modificar el resto de la imagen. Nos referiremos a dos tipos de máscaras, las laplacianas y las de gradiente.
En el cuarto y último apartado describiremos algunas aplicaciones de las transformaciones vistas anteriormente, más allá de las más inmediatas.
Como en el módulo «Histogramas y transformaciones puntuales», los ejemplos y ejercicios están pensados para realizarlos con Photoshop.

Objetivos

Los principales objetivos de este módulo son:
  1. Introducir el concepto de filtrado espacial.

  2. Introducir el concepto de suavizado.

  3. Introducir el concepto de realce.

  4. Introducir el concepto de detección de contornos.

  5. Relacionar, mediante experimentos dirigidos, los conceptos introducidos con la transformación de imágenes.

Estos objetivos están relacionados con las siguientes competencias de la asignatura:
A. Capacidad de modificar una imagen digital en base a unos requisitos previos.
C. Capacidad de discriminar las opciones factibles de las que no lo son, en un estudio de especificaciones de un proyecto, sistema o tarea.
D. Capacidad de visualizar e imprimir imágenes de forma eficaz y eficiente.
Y con las siguientes competencias generales del grado:
11. Capacidad de capturar, almacenar y modificar información de audio, imagen y vídeo digitales aplicando principios y métodos de realización y composición del lenguaje audiovisual.
22. Capacidad de utilizar los fundamentos matemáticos, estadísticos y físicos para comprender los sistemas TIC.

1.Máscara de convolución

Ya conocemos las transformaciones puntuales, aquellas en que el valor de cada píxel de la imagen transformada depende solo del valor del píxel que ocupa la misma posición en la imagen original y de la función que define la transformación. En este módulo trataremos las transformaciones espaciales.
Las transformaciones especiales son aquellas en que el valor de cada píxel depende del píxel que ocupa la misma posición en la imagen original y también de sus vecinos.
Podéis ver un ejemplo de transformación espacial en la figura 1 donde podemos ver los vecinos más próximos a un píxel cualquiera en la posición (7,3), los ocho vecinos de la cuadrícula 3 × 3 a su alrededor; a partir de aquí podemos considerar «vecindarios» más grandes, formados por la cuadrícula 5 × 5, 7 × 7, etc.
Figura 1. Vecinos de un píxel en la posición (7,3)
Figura 1. Vecinos de un píxel en la posición (7,3)
Dentro de las transformaciones espaciales, nos interesan las que cumplen la condición de linealidad (1) .
La condición de linealidad dice que si aplicamos la operación sobre dos imágenes diferentes y posteriormente las sumamos, el resultado es el mismo que si sumamos las dos imágenes primero y después aplicamos la operación. Además, este resultado no varía si multiplicamos las imágenes por una constante (oscureciéndola o aclarándola según el valor de la constante).
Las operaciones de este apartado son operaciones lineales; dejamos para el apartado siguiente las transformaciones espaciales no lineales, que no cumplen esta condición.
Así como las transformaciones puntuales están descritas por una función que representamos gráficamente, las operaciones espaciales lineales están descritas por una máscara de convolución, simbolizada normalmente con h. Las máscaras (al igual que las imágenes) se expresan como matrices, habitualmente cuadradas, y cada uno de sus elementos, denominados coeficientes, tiene asociado un valor que depende de la transformación que apliquemos; por convenio se toma como referencia h(0,0) el coeficiente central de la máscara. Por ejemplo, la máscara:
h I ( i , j ) = 0 0 0 0 1 0 0 0 0 (1)
es una máscara de dimensiones 3 × 3, con coeficiente central de valor 1 y el resto de coeficientes de valor 0.

1.1.Filtraje espacial

La imagen transformada la obtenemos efectuando una operación de convolución entre la imagen original y la máscara de convolución. Para cada píxel X(i,j) de la imagen original, se centra la máscara sobre este píxel –la región de la imagen que coincide con la máscara se conoce como ventana de trabajo–; entonces, se multiplican los coeficientes de la máscara por los valores del píxeles correspondientes y los productos resultantes se suman, obteniendo el píxel Y(i,j). De este modo, desplazando la máscara por toda la imagen, se obtiene la imagen transformada.
Figura 2. Multiplicación espacial de una máscara de dimensiones 3 × 3 con una imagen. Cálculo de uno de sus píxeles. Desplazando la máscara por toda la imagen obtenemos la imagen filtrada.
Figura 2. Multiplicación espacial de una máscara de dimensiones 3 × 3 con una imagen. Cálculo de uno de sus píxeles. Desplazando la máscara por toda la imagen obtenemos la imagen filtrada.
Dado que esta operación de convolución entre una imagen y una máscara es la base de todas las transformaciones que veremos en este módulo, nos detendremos a describirla gráfica e intuitivamente, tomando como ejemplo una imagen X de dimensiones 5 × 5 y la máscara de suavización h1(i,j), la cual estudiaremos más adelante. La figura 3 nos muestra esquemáticamente la operación que efectuamos para obtener el píxel Y(1,1) de la imagen transformada. Como podemos ver, el píxel de la imagen original X(1,1), con un nivel de gris 47, se transforma en el píxel Y(1,1), que tiene un nivel de gris 58.
Figura 3. Filtraje espacial de la imagen X con la máscara h1(i,j). Cálculo del píxel Y(1,1).
Figura 3. Filtraje espacial de la imagen X con la máscara h1(i,j). Cálculo del píxel Y(1,1).
Superponemos la máscara a la imagen y la centramos en X(1,1). En la figura, podemos ver marcada la ventana de trabajo, es decir, la región de la imagen que coincide espacialmente con la máscara.
Y(1,1) se calcula teniendo en cuenta el píxel X(1,1) y sus vecinos incluidos en la ventana de trabajo. Multiplicamos el valor de intensidad de cada píxel por el valor de h que se superpone y sumamos los productos:
Y(1,1) = 35 · (1/9) + 65·(1/9) + 58·(1/9) + 36·(1/9) + 47·(1/9) + 80·(1/9) + 98·(1/9) + 93·(1/9) + 8·(1/9) ≈ 58
Ahora, la figura 4 muestra el cálculo que se tiene que efectuar para generar el píxel Y(2,1) a partir del píxel X(2,1) y sus vecinos. Hemos desplazado la máscara h1(i,j) una posición a la derecha y efectuamos de nuevo los cálculos con los nuevos valores de la ventana:
Y(2,1) = 65·(1/9) + 58·(1/9) + 11·(1/9) + 47·(1/9) + 80·(1/9) + 21·(1/9) + 93·(1/9) + 8·(1/9) + 23·(1/9) ≈ 45
Figura 4. Filtraje espacial de la imagen X con la máscara h1(i,j). Cálculo del píxel Y(2,1).
Figura 4. Filtraje espacial de la imagen X con la máscara h1(i,j). Cálculo del píxel Y(2,1).
Para obtener el siguiente píxel, continuaríamos desplazando la máscara sobre la fila y, al llegar al final, tenemos que continuar por los píxeles de la siguiente fila, y así sucesivamente hasta llegar al último píxel. Es decir, como mencionábamos al presentar la operación, la máscara se desplaza píxel a píxel por toda la imagen X para obtener la imagen Y.
Y en los bordes de la imagen, ¿qué sucede? Como podemos ver en la figura 5, al intentar hacer los cálculos sobre uno de los puntos del borde, parte de la máscara queda fuera. Pero no podemos descartar estos puntos, puesto que tenemos que tener en cuenta que, después de una transformación, la nueva imagen tiene que tener la misma medida que la imagen de la cual partimos, como sucedía en las transformaciones puntuales.
Figura 5. Al intentar hacer los cálculos sobre los puntos del borde, parte de la máscara queda fuera.
Figura 5. Al intentar hacer los cálculos sobre los puntos del borde, parte de la máscara queda fuera.
Para resolver este problema podemos optar por tres soluciones, siempre teniendo en cuenta que en cualquiera de los casos habrá una ligera distorsión en los bordes de la imagen transformada.
1) Situar la máscara de forma que quede por completo sobre la imagen original. De esta manera, los cálculos son exactos pero perdemos las filas y columnas de los márgenes, que recuperamos en la imagen transformada replicando las filas y columnas más cercanas.
2) Realizar el filtrado considerando solo los píxeles de la imagen que coinciden con la máscara; en este caso hay un cierto error en el cálculo de los píxeles de los márgenes, pero las dimensiones de la imagen transformada son correctas.xº
3) Añadir a la imagen original las filas y columnas necesarias para que la máscara no quede fuera; estas filas y columnas pueden ser réplicas de las adyacentes o pueden tener todos los píxeles de un mismo nivel de gris. Fijémonos que la segunda opción es un caso particular de esta tercera, ya que consideramos todos los píxeles externos con nivel de intensidad 0.
El resultado de aplicar la máscara h1(i,j) sobre la imagen X se puede ver en la figura 6. Aquí hemos optado por la solución 2, aunque también habríamos podido optar por cualquiera de las otras soluciones. Como se puede ver –y estudiaremos en detalle más adelante–, una máscara de suavización tiende a eliminar las diferencias de nivel bruscas entre píxeles próximos, generando una imagen más difuminada.
Figura 6. Filtraje espacial de la imagen X por la máscara h1(i,j).
Figura 6. Filtraje espacial de la imagen X por la máscara h1(i,j).
Ejemplo de máscara
A partir de la matriz hI(i,j) podemos intuir que la máscara que nos genera el negativo de una imagen tiene la forma:
h N ( i , j ) = 0 0 0 0 - 1 0 0 0 0 (2)
Sin embargo, esta máscara nos plantea un problema de representación: los píxeles de la imagen Y(i,j) tendrán valores de intensidad negativos, no permitidos, y para poderlos representar correctamente, será necesario desplazarlos para que se sitúen en los niveles de intensidad permitidos, (0,255). En este caso debemos sumar a los píxeles de la imagen resultante de la transformación el valor 255 (como siempre, considerando que trabajamos con 8 bits).
La figura 7 muestra el resultado de aplicar a una imagen la máscara hN(i,j) (mediante la herramienta Filters/Others/Custom de Photoshop) con la correspondiente corrección, sumándole 255.
Figura 7. Máscara negativo
Figura 7. Máscara negativo

2.Suavizado

Las máscaras de suavizado tienden a difuminar la imagen y a borrar los detalles más finos. Los detalles los encontramos en regiones con fuertes contrastes (píxeles próximos con niveles de intensidad muy diferentes) que determinan los contornos de los objetos; una región donde todos los píxeles tienen niveles de intensidad similares se percibe como una región sin mucho detalle.
Para difuminar los detalles, se promedia el píxel central de la ventana de trabajo con sus vecinos y se sustituye el píxel correspondiente a la imagen de salida por el valor promediado siguiendo el esquema de cálculo presentado en el subapartado 1.1. Los valores extremos de la imagen original se eliminan y los píxeles muy claros o muy oscuros tienden a volverse más grises.
Las máscaras de suavizado se diseñan con la condición que la suma de los coeficientes sea la unidad. Podemos ver los siguientes ejemplos, h1(i,j) y h2(i,j):
h 1 ( i , j ) = 1 9 1 9 1 9 1 9 1 9 1 9 1 9 1 9 1 9 h 2 ( i , j ) = 1 16 2 16 1 16 2 16 4 16 2 16 1 16 2 16 1 16 (3)
Con la máscara h1(i,j) todos los píxeles de la ventana de trabajo tienen la misma importancia, de hecho esta máscara no es más que la mediana aritmética de los nueve píxeles implicados. La máscara h2(i,j) da más peso al píxel central, cuatro veces más que a los cuatro píxeles extremos y el doble que a los píxeles de la misma fila y columna. Si comparamos el efecto de ambas máscaras, vemos que la máscara h1 (figura 8a) difumina los contornos más que la máscara h2 (figura 8b). En general, cuanta más importancia tenga el píxel central respecto al resto, menos acusado será el efecto de suavizado de la máscara.
Figura 8. Efecto del filtrado con la máscara h1(i,j) y h2(i,j)
Figura 8. Efecto del filtrado con la máscara h1(i,j) y h2(i,j)
Configuración de máscaras en Photoshop
La herramienta Filters/Others/Custom (o Filtro/Otro/A medida en la versión en castellano) de Photoshop no permite introducir directamente coeficientes en forma de fracciones. Para introducir los denominadores de los coeficientes usa el campo Scale o Escala. Así pues, para configurar la máscara hI con Photoshop tendríamos que escribir:
17067_m2_006.jpg
Además, como ya hemos comentado, algunas máscaras presentan el problema de generar píxeles con valores de intensidad fuera del rango permitido. Si, por ejemplo, por un píxel dado, una máscara genera otro píxel con un nivel de intensidad -100, este pasa automáticamente a tener un nivel de intensidad 0.
Si bien este comportamiento no es realmente un problema en algunos tipos de máscaras –en las detectoras y realce de contornos, por ejemplo–, para intentar mitigar este efecto, en Photoshop se usa el campo Desplazamiento u Offset. Por norma general, seguiremos las siguientes indicaciones:
  • Si la suma de todos los coeficientes dividida por la escala es 1, el desplazamiento tiene que ser 0.

  • Si la suma de todos los coeficientes es 0, el desplazamiento tiene que ser 128.

  • Si la suma de todos los coeficientes dividida por la escala es -1, el desplazamiento tiene que ser 255.

Al ser una relación lineal, todos los otros valores se pueden calcular fácilmente con la fórmula f(x) = -128x + 128. Por ejemplo, si la suma de todos los coeficientes dividida por la escala es 0,5, entonces el desplazamiento tiene que ser f(0,5) = -128 · (0,5) + 128 = 64.

2.1.Ejercicios con máscaras de suavizado

Ejercicio 1
La máscara h3(i,j) se corresponde con una máscara de suavizado:
h 3 ( i , j ) = 0 1 10 0 1 10 6 10 1 10 0 1 10 0 (4)
Explicad qué importancia tienen en el promediado los nueve píxeles de la ventana de trabajo. Comprobad vuestro razonamiento aplicando la máscara a la misma imagen utilizada en la figura 8.
Solución
Los cuatro píxeles de los extremos no promedian, tienen un peso cero; el píxel que tiene más importancia es el central, seis veces más que los de la misma fila y columna. Comparando con el efecto de las máscaras h1(i,j) y h2(i,j), su efecto es menos acusado.
Ejercicio 2
La imagen pallon.pgm (2) presenta unas líneas en diagonal que distorsionan la imagen, que seguramente provienen de una adquisición deficiente. Intentad reducir esta distorsión aplicando a la imagen las máscaras h1(i,j), h2(i,j) y h3(i,j). ¿Qué máscara os parece que cumple mejor el objetivo? ¿Qué inconveniente tiene?
Solución
La máscara h1(i,j) es la que difumina mejor las líneas, pero tiene como inconveniente que difumina también los contornos de los globos.
Ejercicio 3
Aplicad nuevamente las máscaras de suavizado h1(i,j), h2(i,j) y h3(i,j), esta vez a la imagen mapasp.pgm. ¿Qué conclusiones extraéis?
Solución
Confirmamos que la máscara h1(i,j) se comporta mal cuando la imagen presenta muchos contornos muy cercanos entre ellos, la imagen queda muy desenfocada.

3.Contornos

Así como los filtros de suavizado tienden a difuminar los detalles de una imagen, hay otra familia de filtros que realizan la función contraria: se utilizan para aumentar el contraste, destacar detalles finos o detectar contornos. Estos filtros se conocen como filtros de realce o filtros derivadores; la primera denominación responde a su función; la segunda, al origen matemático, ya que las operaciones que buscan encontrar diferencias entre valores se basan en la derivada de funciones. Sin entrar en los razonamientos matemáticos, veremos dos tipos de máscaras de filtros de realce: las laplacianas y las de gradiente; en ambos casos el nombre alude a la forma en que calculan la derivada de la imagen.

3.1.Énfasis general de contornos: máscaras laplacianas

Las máscaras laplacianas pueden ser detectoras de contorno o de realce según como se definan. Tomemos como ejemplo la máscara h4(i,j):
h 4 ( i , j ) = - 1 - 1 - 1 - 1 8 - 1 - 1 - 1 - 1 (5)
La suma de sus coeficientes es cero, de forma que cuando los píxeles de la ventana de trabajo tienen niveles muy similares, el filtrado tiende a valer cero y solo es diferente de este valor cuando la ventana contiene un contorno. Así, esta máscara nos proporciona una imagen de salida más bien plana, excepto por los contornos, como se puede ver en el ejemplo de la figura 9. Se podría decir que esta máscara de convolución detecta exclusivamente los contornos.
Si lo que queremos es realzar los contornos de la imagen original sin perder la información sobre las zonas uniformes, se puede utilizar una máscara como h5(i,j):
h 5 ( i , j ) = - 1 - 1 - 1 - 1 9 - 1 - 1 - 1 - 1 (6)
Figura 9. Efecto del filtraje con la máscara laplaciana h4(i,j)
Figura 9. Efecto del filtraje con la máscara laplaciana h4(i,j)
El píxel central de la ventana se multiplica por nueve y se le resta el valor de intensidad del resto de píxeles; si todos los valores son cercanos, el píxel central no variará mucho, pero si hay una diferencia de intensidades importante, quedará remarcada. Esta máscara también se puede interpretar como la suma de la máscara anterior y la máscara identidad, es decir, superponemos a la imagen original la imagen con los contornos. Se trata de un caso típico de filtro de realce, ya que no busca localizar contornos sino darles más importancia; la figura 10 nos muestra la misma imagen de la figura 9 filtrada ahora con la máscara h5(i,j).
Figura 10. Efecto del filtraje con la máscara laplaciana h5(i,j)
Figura 10. Efecto del filtraje con la máscara laplaciana h5(i,j)
Se aprecia como los contornos de los objetos son más nítidos que los de la imagen original, incluso se distinguen detalles de la cubierta del libro blanco que antes prácticamente no se percibían.

3.2.Énfasis selectivo de contornos: máscaras de gradiente

Las máscaras de gradiente son otra familia de máscaras detectoras de contorno; su particularidad reside en que se pueden descomponer en dos máscaras que localizan los contornos horizontales y verticales por separado. Entre las máscaras de este tipo podemos citar las de Prewitt:
h P x ( i , j ) = - 1 - 1 - 1 0 0 0 1 1 1 h P y ( i , j ) = - 1 0 1 - 1 0 1 - 1 0 1 (7)
y las de Sobel:
h S x ( i , j ) = - 1 - 2 - 1 0 0 0 1 2 1 h S y ( i , j ) = - 1 0 1 - 2 0 2 - 1 0 1 (8)
La figura 11 muestra un ejemplo de detección selectiva de contornos mediante la utilización de máscaras de Prewitt. La máscara hPx aplicada sobre la imagen original detecta los contornos horizontales de las figuras (11b) y la máscara hPy detecta los contornos verticales (11c). La figura 11a muestra el resultado conjunto de la detección de contornos.
Figura 11. Detección de contornos con la máscara de Prewitt: a. contornos globales; b. contornos horizontales; c. contornos verticales
Figura 11. Detección de contornos con la máscara de Prewitt: a. contornos globales; b. contornos horizontales; c. contornos verticales
En general, los contornos detectados con máscaras laplacianas son más finos que los detectados con máscaras de gradiente; no obstante, son más sensibles al grano de la imagen.

3.3.Ejercicios de máscaras detectoras de contorno y de realce

Ejercicio 1
Aplicad la máscara h6(i,j) a la imagen indor4.pgm y comparad el resultado con el que se obtiene al aplicar la máscara laplaciana h5(i,j). ¿Qué tipo de máscara es h6(i,j)?
h 6 ( i , j ) = 0 - 1 0 - 1 5 - 1 0 - 1 0 (9)
Solución
La máscara h6(i,j) es, como la h5(i,j), una máscara de realce. Vemos dos diferencias: que el peso del píxel central es más pequeño y que los píxeles vecinos en diagonal no se tienen en cuenta. El resultado es que con h5(i,j) el realce es más marcado; esta diferencia puede observarse, por ejemplo, en la veta de la madera, en comparación con la veta en la imagen filtrada con h6(i,h).
Ejercicio 2
¿Cómo podemos modificar la máscara h6(i,j) para obtener una máscara que detecte los contornos?
Solución
Del mismo modo que podemos obtener la máscara h4(i,j) a partir de la máscara h5(i,j): restando la unidad al coeficiente central.
Ejercicio 3
Queremos detectar los contornos horizontales de la imagen portofino.pgm. Indicad qué máscara utilizaríais y comprobad si los resultados se ajustan a lo que deseábamos.
Solución
Las máscaras que nos interesan son las de gradiente, en particular hSx(i,j) o hPx(i,j), que son las que detectan los contornos horizontales. Con cualquiera de las dos, conseguiremos los resultados que queremos, muy similares entre ellos.
Ejercicio 4
Proponed otras máscaras que detecten contornos, en todas direcciones, como la laplaciana, o en direcciones concretas. ¿Cómo detectaríamos contornos en diagonal?
Solución
Las máscaras laplacianas que detectan exclusivamente contornos cumplen la condición que la suma de sus coeficientes es cero; por ejemplo, la máscara hex4-a. Las máscaras de gradiente cumplen la condición que su fila central (para detectar contornos horizontales) o su columna central (para detectar contornos verticales) tiene todos los coeficientes iguales a cero y el resto de filas (o columnas) sumadas valen cero; por ejemplo, las máscaras hex4-bx y hex4-by. Para detectar contornos en diagonal podemos utilizar, por ejemplo, la máscara hex4-c, que, manteniendo la suma de los coeficientes a cero, tiene todos los elementos de una diagonal iguales. Si queremos observar el efecto de estos filtros, podéis aplicarlos sobre la imagen 25.pgm, que tiene contornos bien definidos en las direcciones horizontal, vertical y diagonal.
h e x 4 - a ( i , j ) = 0 1 0 1 - 4 1 0 1 0 h e x 4 - c ( i , j ) = - 1 - 1 2 - 1 2 - 1 2 - 1 - 1 (10)
h e x 4 - b x ( i , j ) = - 1 0 - 1 0 0 0 1 0 1 h e x 4 - b y ( i , j ) = - 1 0 1 0 0 0 - 1 0 1 (11)

4.Aplicaciones de las transformaciones espaciales lineales

En las aplicaciones de edición de imagen, como Photoshop, Corel Draw o Gimp, encontramos herramientas con nombres como enfoque o desenfoque y reducción de ruido, entre otras. Las transformaciones vistas en este módulo, así como algunas que veremos en el próximo, u otras que quedan fuera del alcance de este curso, se encuentran en la base de las herramientas mencionadas. Acabaremos este módulo describiendo brevemente cómo se aplican las transformaciones espaciales lineales para obtener estos efectos.

4.1.Reducción de ruido

La figura 12 muestra los dos tipos de ruido más habituales en una imagen, generalmente introducidos por el dispositivo de captura: el ruido de fondo, que se percibe como una superposición en toda la imagen (y se observa, por ejemplo, en fotografías hechas con poca luz), y el ruido impulsional, que se percibe como puntos aislados de valores extremos, blancos o negros (que aparece, por ejemplo, cuando el sensor tiene algún defecto en alguna celda). Cuando el ruido es perceptible necesitamos herramientas que lo eliminen y, si no es posible, lo reduzcan.
Figura 12. a. Imagen con ruido de fondo; b. Imagen con ruido impulsional
Figura 12. a. Imagen con ruido de fondo; b. Imagen con ruido impulsional
Una de estas herramientas, especialmente indicada para el ruido de fondo, es el suavizado. Hemos estudiado cómo el filtro de media (máscara h1(i,j)) promedia cada píxel con sus vecinos. En una imagen ruidosa, este promedio hace que el nivel medio del ruido se reduzca. Desgraciadamente, y como también hemos tenido ocasión de observar, el filtro de media difumina los contornos de la imagen, en mayor grado cuanto más filtramos el ruido. Por tanto, deberemos llegar a un compromiso entre el ruido que reducimos y el suavizado de los márgenes que permitimos. La figura 13 muestra la figura 12a filtrada con dos filtros de media; el primero de dimensiones 3 × 3 y el segundo, 5 × 5. Podemos observar como la mayor reducción del ruido en este segundo caso comporta unos márgenes menos nítidos que en el primero.
Figura 13. Ruido de fondo filtrado con filtro de mediana: a. 3 × 3, b. 5 × 5
Figura 13. Ruido de fondo filtrado con filtro de mediana: a. 3 × 3, b. 5 × 5
Sin embargo, el filtro de media no es apropiado para reducir el ruido impulsional, por su propia naturaleza: al tratarse de píxeles dispersos y de valores extremos, el promediado solo consigue reducirlo introduciendo una distorsión significativa en los márgenes.

4.2.Desenfoque

Si tenemos una imagen nítida y deseamos simular digitalmente el efecto de desenfoque que se produce ópticamente, podemos recorrer nuevamente al suavizado; esta vez no representa ningún problema que los contornos se difuminen, ja que es exactamente lo que buscamos, como vemos en la figura 14, donde se ha aplicado a la imagen original un filtro de media de 5 × 5.
Figura 14. Imagen desenfocada digitalmente mediante un filtro de mediana
Figura 14. Imagen desenfocada digitalmente mediante un filtro de mediana
Además de ser un efecto artístico, el desenfoque es un paso previo a otras transformaciones para las cuales haya un exceso de detalle en la imagen. Veámoslo con un ejemplo (figura 15).
Figura 15. Detección de contornos: a. aplicando solo una máscara de Sobel; b. aplicando primero un filtro de mediana
Figura 15. Detección de contornos: a. aplicando solo una máscara de Sobel; b. aplicando primero un filtro de mediana
Ejemplo
Nuestro objetivo es detectar los contornos de la silueta de la casa que se ve en la imagen, mediante la utilización de una máscara de gradiente (de Sobel, en este caso); la figura 15a muestra el resultado de aplicar directamente la transformación a la imagen original. Los muros de piedra tienen una textura marcada, muchas líneas horizontales y verticales los contornos de las cuales tienen suficiente relevancia en la imagen transformada como para distraer del objetivo perseguido. En la figura 15b se ha hecho una doble transformación: en primer lugar, se ha aplicado un filtro de media con el objetivo de suavizar los márgenes de las piedras y, a continuación, la misma máscara de gradiente que en el caso a. El resultado es que ahora la textura de los muros es menos visible y se destacan más los contornos de la casa, especialmente las ventanas de la fachada más cercana al árbol.

4.3.Enfoque

Finalmente, dedicaremos unas líneas al enfoque, la operación inversa al desenfoque. Así como desenfocábamos mediante transformaciones de suavizado, enfocamos mediante trasformaciones de realce, ya que nuestro objetivo es destacar los contornos que han quedado difuminados por el desenfoque. La figura 16 muestra el enfoque de la imagen que vemos desenfocada en la imagen 14, donde hemos utilizado la máscara de realce h5(i,j).
Figura 16. Enfoque: a. imagen original desenfocada; b. después de aplicar realce de contornos
Figura 16. Enfoque: a. imagen original desenfocada; b. después de aplicar realce de contornos

5.Imágenes empleadas en las figuras

Las imágenes que se han utilizado en las figuras de esta unidad para los ejemplos con Photoshop son las siguientes.

Figura

Imagen

Dirección URL

7

nat4.pgm

https://decsai.ugr.es/cvg/dbimagenes/g256.php

8

indors2.pgm

https://decsai.ugr.es/cvg/dbimagenes/g256.php

9

indors4.pgm

https://decsai.ugr.es/cvg/dbimagenes/g256.php

10

indors4.pgm

https://decsai.ugr.es/cvg/dbimagenes/g256.php

11

test1.pgm

https://decsai.ugr.es/cvg/dbimagenes/g256.php

13

soroll de fons.tiff

Se adjunta la imagen

14

34.pgm

https://decsai.ugr.es/cvg/dbimagenes/g512.php

15

16.pgm

https://decsai.ugr.es/cvg/dbimagenes/g512.php

16

34.pgm

https://decsai.ugr.es/cvg/dbimagenes/g512.php

Resumen

Las transformaciones espaciales se diferencian de las puntuales en que la modificación de cada píxel tiene en cuenta al propio píxel y también a sus vecinos, entendiendo como vecinos los píxeles espacialmente más cercanos. Las transformaciones que hemos visto en esta unidad son aplicación directa del filtraje espacial, que es como denominamos a la operación que implementa la transformación.
Cada transformación espacial está definida por una máscara, una matriz de, como mínimo, 2 píxeles (aunque el filtro típico suele ser de 3 × 3 o 5 × 5), que filtra la imagen original para obtener la transformada. Los coeficientes de la máscara determinan el tipo de transformación, de manera equivalente a como la curva de transformación la determinaban en la puntual. Las transformaciones espaciales más habituales son:
  • Suavizado: difumina la imagen; las regiones más sensibles a la suavización son los contornos, que quedan menos definidos, mientras que las regiones más uniformes se ven menos afectadas.

  • Detección de contornos: localiza los contornos de los objetos en una imagen. Hemos visto máscaras laplacianas y de gradiente; la principal diferencia entre ambas es que las segundas se pueden descomponer en dos máscaras que detecten de forma independiente contornos horizontales y verticales.

  • Realce: enfatiza los contornos de una imagen sin modificar esencialmente el resto de la imagen.

Estas transformaciones son la base de algunas aplicaciones, como la reducción de ruido de fondo, el desenfoque (un efecto artístico o bien un paso previo a otras transformaciones) y el enfoque.