Tiempo-frecuencia e imagen · Definición
Convolución bidimensional en imágenes
Los filtros de imagen como el suavizado y la detección de bordes se implementan con convolución 2D. Entender su forma matemática permite diseñarlos y predecir su efecto.
Definición
La convolución bidimensional es la operación que combina una imagen \(f(x,y)\) con un kernel \(h(x,y)\) deslizando el kernel y sumando productos en cada posición.
La convolución 2D es conmutativa y asociativa, y además es lineal e invariante al desplazamiento. Si el kernel es separable, \(h[m,n]=h_1[m]h_2[n]\), la convolución puede hacerse en dos pasadas 1D, lo que reduce el número de multiplicaciones. En el dominio de Fourier, la convolución se convierte en producto punto a punto de las transformadas.
Consideremos una imagen de \(3\times3\) con un único píxel brillante en el centro, \(f[1,1]=9\), y el kernel de promedio \(h\) de \(3\times3\) con todos sus valores iguales a \(1/9\). Al convolucionar, el píxel brillante se reparte sobre los nueve píxeles de su entorno, incluido él mismo, con valor 1 en cada uno, lo que ilustra el suavizado.
Un error típico es olvidar invertir el kernel en la definición, usando correlación en lugar de convolución. Para kernels simétricos el resultado coincide, pero con kernels asimétricos como los de derivada el signo del resultado cambia.
Para pensar
¿Por qué la convolución y la correlación dan signos opuestos en un borde con kernel de derivada?
Porque la convolución invierte el kernel: su \(-1\) cae sobre el píxel más brillante, mientras la correlación lo aplica al más oscuro.
Ejercicios 10
- ¿Qué operación combina una imagen con un kernel deslizándolo y sumando productos?
- ¿Qué propiedad hace que la convolución 2D sea conmutativa?
- ¿En qué dominio la convolución 2D se convierte en un producto punto a punto?
- ¿Qué tipo de kernel puede implementarse en dos pasadas 1D?
- ¿Qué efecto produce el kernel de promedio 3×3 sobre una imagen?
- Si \(f\) es una imagen de \(5\times5\) con un 1 en el centro y ceros en el resto, y \(h\) es un kernel \(3\times3\) de unos, ¿cuánto vale la suma total de la salida, sin contar bordes de relleno?
- Un kernel \(h\) de derivada en \(x\) tiene valores \(-1\) a la izquierda y \(+1\) a la derecha. Usando la convolución definida en este concepto (kernel invertido), ¿qué signo tiene la salida en un borde donde la intensidad sube de izquierda a derecha?
- ¿Cuál es el resultado de convolucionar la imagen de un solo píxel \(\delta[m,n]\) con cualquier kernel \(h\)?
- Un kernel de promedio \(3\times3\) se aplica dos veces seguidas. ¿Cuál es el efecto equivalente en cuanto a suavizado?
- Una imagen \(f\) de \(4\times4\) se convoluciona con un kernel separable \(h=h_1 h_2^T\), donde \(h_1=[1,2,1]\) y \(h_2=[1,2,1]\). ¿Cuál es el valor del píxel de salida en la posición central si la ventana de \(f\) vale 1 en todas sus entradas, sin normalizar?
Referencias
- Alan V. Oppenheim, Alan S. Willsky, Signals and Systems, 2nd edition, Pearson, 1996.
- Alan V. Oppenheim, Ronald W. Schafer, Discrete-Time Signal Processing, 3rd edition, Pearson, 2010.