Fundamentos del Procesamiento de imágenes en el Dominio de la Frecuencia

Table of contents
- Transformada de Fourier 1D
- Transformada de Fourier 2D
- Muestreo y Aliasing
- Transformada de Fourier Discreta DFT
- Transformada de Fourier Discreta en 2D
- Visualización de la DFT 2D
- Magnitud y fase
- Uso del logaritmo y desplazamiento del espectro
- Interpretación periódica y replicación
- Observaciones sobre la distribución de energía

La Transformada de Fourier es una de las herramientas más influyentes en las matemáticas, capaz de revelar los patrones fundamentales que componen una señal. Aunque su interpretación suele estar oculta tras ecuaciones complejas, en este artículo se ofrece una revisión accesible e intuitiva, comenzando por la versión unidimensional y extendiéndola al caso bidimensional, clave en el análisis y procesamiento de imágenes digitales. Se explican también las técnicas necesarias para visualizar e interpretar el espectro de frecuencias, que permite pasar del dominio espacial —donde una imagen se ve como una distribución de píxeles— al dominio de la frecuencia, donde se revelan sus estructuras internas organizadas según su escala y variación.
Transformada de Fourier 1D
Para una señal continua g(t), su transformada de Fourier está definida como:
$$G(f) = \int_{-\infty}^{\infty} g(t) \cdot e^{-j2\pi f t} , dt$$
donde:
t representa el tiempo (o la posición, en el caso de imágenes),
f representa la frecuencia,
j = √-1 es la unidad imaginaria.
Este proceso equivale a medir cuánto "resuena" la señal g(t) con una onda sinusoidal de frecuencia f. Para cada frecuencia, el resultado G(f) es un número complejo que codifica tanto la magnitud como la fase de esa frecuencia dentro de la señal.
Aunque esta formulación puede parecer abstracta, se puede entender mejor aplicando la fórmula de Euler:
$$e^{−j2πft}=cos(2πft)−jsin(2πft)$$
Lo que nos permite ver la transformada como dos integrales:
$$G(f) = \int_{-\infty}^{\infty} g(t) \cos(2\pi f t) \, dt - j \int_{-\infty}^{\infty} g(t) \sin(2\pi f t) \, dt$$
Estas integrales separadas representan la contribución de las componentes pares y impares de la señal. Así, G(f) captura información tanto de la simetría como de la variabilidad de la señal en torno a cada frecuencia.
Transformada Inversa y Reconstrucción
Una de las propiedades más importantes de la Transformada de Fourier es su reversibilidad: a partir de la representación en el dominio de la frecuencia es posible reconstruir exactamente la señal original, siempre que se cumplan ciertas condiciones suaves sobre la señal (como ser absolutamente integrable o cuadrado-integrable).
La transformada inversa se define de forma muy similar a la directa, con un pequeño cambio en el signo del exponente:
$$g(t) = \int_{-\infty}^{\infty} G(f) \cdot e^{j2\pi f t} \, df$$
Esta simetría entre la transformada directa e inversa resalta una idea clave: la Transformada de Fourier no pierde información (cuando se aplica correctamente), sino que simplemente reorganiza los datos de una forma distinta, enfocándose en las frecuencias presentes en la señal en lugar de sus valores locales en el tiempo o el espacio.
La posibilidad de reconstruir exactamente una señal a partir de su representación en el dominio de la frecuencia es lo que hace viable el filtrado en este espacio. Gracias a esta propiedad, es posible transformar una señal —como una imagen— al dominio frecuencial, modificar selectivamente ciertas frecuencias mediante un filtro, y luego aplicar la transformada inversa para regresar al dominio original. Este proceso garantiza que los cambios realizados se reflejen con precisión en la señal reconstruida, conservando la información relevante mientras se eliminan o atenúan componentes no deseados.
Transformada de Fourier 2D
En el caso de imágenes, que pueden considerarse funciones bidimensionales g(x, y), se utiliza la Transformada de Fourier 2D:
$$G(u, v) = \iint_{-\infty}^{\infty} g(x, y) \cdot e^{-j2\pi (ux + vy)} \, dx \, dy$$
Aquí:
(x, y) son las coordenadas espaciales,
(u, v) son las coordenadas de frecuencia espacial,
G(u, v) representa la contribución de la frecuencia $(u, v)$ a la imagen.
Este cambio de representación permite analizar la imagen desde una nueva perspectiva: en lugar de observar el contenido local de la imagen, nos enfocamos en cómo varía globalmente la intensidad en diferentes escalas y direcciones.
Muestreo y Aliasing
En la práctica, la mayoría de las señales que se procesan digitalmente (audio, imágenes, sensores) no son continuas, sino discretas: se obtienen mediante muestreo de una señal continua a intervalos regulares. Esta operación transforma una señal continua g(t) en una secuencia discreta g[n] = g(nT), donde T es el periodo de muestreo y fₛ = 1/T la frecuencia de muestreo.
Aquí entra en juego un principio fundamental: el teorema de muestreo de Nyquist-Shannon, que establece que:
Una señal puede ser reconstruida perfectamente a partir de sus muestras si ha sido muestreada a una frecuencia mayor que el doble de su frecuencia más alta (frecuencia de Nyquist).
Esto significa que si una señal contiene componentes hasta 500 Hz, debemos muestrearla a más de 1000 Hz para evitar pérdida de información. Una señal que cumple esta condición se denomina banda limitada, y cuando el muestreo se realiza adecuadamente, la señal original puede ser recuperada sin ambigüedades a partir de sus muestras.
Aliasing
Cuando la frecuencia de muestreo es insuficiente, es decir, menor que el doble de la frecuencia más alta presente en la señal, ocurre un fenómeno llamado aliasing. En este caso, las frecuencias altas comienzan a disfrazarse como frecuencias más bajas, dando lugar a distorsiones irreversibles en el dominio de la frecuencia.
Matemáticamente, si una señal de frecuencia f es muestreada con una frecuencia fₛ, la frecuencia aparente o alias que se observa está dada por:
$$f' = \left| f_s \cdot n - f \right| \quad n = \text{round}\left(\frac{f}{f_s}\right)$$
Esto significa que la muestra tomada a una frecuencia incorrecta puede ser indistinguible de otra frecuencia completamente diferente. Por ejemplo, si f = 1000 Hz y fₛ = 1250 Hz, el alias observado será f' = 250 Hz. En otras palabras, la señal de 1 kHz parecerá una de 250 Hz, y no hay forma de saber cuál era la original. Este tipo de ambigüedad destruye la posibilidad de una reconstrucción precisa.
Este fenómeno no es solo una curiosidad matemática: se manifiesta de forma visual en situaciones como el efecto de la rueda de carreta*, donde las ruedas parecen girar en sentido inverso cuando su velocidad supera la capacidad de muestreo de la cámara. Por esta razón, aliasing también es conocido como el **efecto wagon wheel**\.*
Debido a este riesgo, en sistemas digitales se emplean filtros antialiasing antes del muestreo, los cuales eliminan las frecuencias que podrían provocar ambigüedad, asegurando que la señal resultante se mantenga dentro del rango permitido por la frecuencia de muestreo.
Tipos de muestreo
Sobremuestreo: fₛ ≫ 2fₘₐₓ – Alta fidelidad, mayor tamaño de datos.
Muestreo crítico: fₛ = 2fₘₐₓ – Reconstrucción exacta, pero sin margen de seguridad.
Submuestreo: fₛ < 2fₘₐₓ – Ocurre aliasing, se pierde información.
Transformada de Fourier Discreta DFT
La Transformada de Fourier Discreta (DFT). permite representar señales digitales como combinaciones de frecuencias discretas, facilitando el análisis espectral, el filtrado y la compresión de datos. Además de su aplicabilidad, la DFT tiene la ventaja de que siempre existe, independientemente de las propiedades matemáticas de la señal, lo cual no ocurre con otras variantes como la serie de Fourier.
Transformada Discreta 1D
Sea g[x] una señal unidimensional discreta compuesta por $w$ muestras. La DFT se define como:
$$G[k] = \sum_{x=0}^{w-1} g[x] \cdot e^{-j2\pi \frac{kx}{w}}$$
donde k = 0, 1, ..., w-1 es el índice de frecuencia discreta. Esta fórmula reemplaza la integral de la versión continua por una suma finita, y convierte las frecuencias continuas en frecuencias discretas y periódicas.
Usando la fórmula de Euler, se puede reescribir en términos de funciones reales:
$$G[k] = \sum_{x=0}^{w-1} g[x] \cdot \left[\cos\left(\frac{2\pi kx}{w}\right) - j \sin\left(\frac{2\pi kx}{w}\right)\right]$$
Esto revela que cada valor G[k] representa cuánto de una sinusoide (frecuencia) de índice k está presente en la señal original.
Propiedades clave
La señal de entrada g[x] típicamente es real, pero su DFT G[k] es compleja (parte real + imaginaria).
La DFT produce el mismo número de muestras que la señal original: w puntos en el dominio de la frecuencia.
Las frecuencias resultantes son periódicas, es decir, G[k] = G[k + w]. Esta periodicidad es clave en el análisis espectral.
Transformada Inversa 1D
La DFT es reversible, lo que significa que es posible recuperar la señal original a partir de sus coeficientes de frecuencia:
$$g[x] = \frac{1}{w} \sum_{k=0}^{w-1} G[k] \cdot e^{j2\pi \frac{kx}{w}}$$
Esto garantiza que ninguna información se pierde en la transformación, siempre que se conserve la totalidad de los coeficientes G[k].
Transformada de Fourier Discreta en 2D
En una función bidimensional sea g[x, y] como una imagen discreta de tamaño w × h, donde x y y representan las coordenadas espaciales horizontales y verticales respectivamente. La DFT 2D está definida como:
$$G[k_x, k_y] = \sum_{x=0}^{w-1} \sum_{y=0}^{h-1} g[x, y] \cdot e^{-j2\pi\left( \frac{k_x x}{w} + \frac{k_y y}{h} \right)}$$
donde kₓ y k_y son los índices de frecuencia discreta en las direcciones horizontal y vertical, respectivamente.
Forma real usando la fórmula de Euler
Usando la identidad de Euler, esta expresión puede descomponerse en términos reales e imaginarios:
$$G[k_x, k_y] = \sum_{x=0}^{w-1} \sum_{y=0}^{h-1} g[x, y] \cdot \left[\cos\left(2\pi\left( \frac{k_x x}{w} + \frac{k_y y}{h} \right)\right) - j \sin\left(2\pi\left( \frac{k_x x}{w} + \frac{k_y y}{h} \right)\right)\right]$$
Esto permite interpretar G[k_x, k_y] como una combinación de senos y cosenos bidimensionales, lo que resulta útil para analizar patrones periódicos en las imágenes, como texturas o bordes.
Propiedades clave de la DFT 2D
La imagen de entrada g[x, y] suele ser real, pero su DFT G[kₓ , k_y] es compleja, conteniendo información de magnitud y fase.
La DFT 2D produce una imagen en el dominio de la frecuencia del mismo tamaño que la original: w × h coeficientes complejos.
El espectro de frecuencias es periódico tanto en kₓ como en k_y, con periodo w y h respectivamente.
Se puede calcular como una composición de dos DFTs unidimensionales:
$$\text{DFT}_{2D}[g(x,y)] = \text{DFT}_x(\text{DFT}_y(g(x,y)))$$
Esto permite reutilizar implementaciones eficientes de la DFT 1D.
def FourierTransform2D(image):
"""
Computes the 2D Fourier Transform of an image step by step
using two 1D FFTs: first along rows, then along columns.
Parameters:
- image: Input image (2D numpy array).
Returns:
- 2D Fourier Transform of the image.
"""
# First, apply FFT along the rows (axis=1)
fft_rows = np.fft.fft(image, axis=1)
# Then, apply FFT along the columns (axis=0)
fft2d = np.fft.fft(fft_rows, axis=0)
return fft2d
Transformada Inversa 2D
Al igual que en el caso unidimensional, la DFT 2D es reversible. La Transformada Inversa Discreta de Fourier 2D permite reconstruir exactamente la imagen original:
$$g[x, y] = \frac{1}{wh} \sum_{k_x=0}^{w-1} \sum_{k_y=0}^{h-1} G[k_x, k_y] \cdot e^{j2\pi\left( \frac{k_x x}{w} + \frac{k_y y}{h} \right)}$$
Esto garantiza que no se pierde información si se conserva el espectro completo G[kₓ , k_y].
Visualización de la DFT 2D
La Transformada Discreta de Fourier bidimensional (DFT 2D) produce una representación compleja de la frecuencia espacial de una imagen. Sin embargo, esta información no es directamente interpretable por el ojo humano, por lo que es necesario realizar ciertas transformaciones para poder visualizarla de forma útil.
Magnitud y fase
El primer paso consiste en descomponer la DFT compleja en dos componentes reales: la magnitud y la fase.
La fase contiene la información sobre la alineación de las ondas sinusoidales en la reconstrucción de la imagen. Puede visualizarse escalándola linealmente al rango [0, 255] para mostrarla como una imagen en escala de grises.
La magnitud, que representa la intensidad de cada frecuencia espacial presente, es más complicada de visualizar. Si se muestra directamente, se suele obtener una imagen casi negra con un único punto brillante en la esquina superior izquierda. Este punto representa la componente DC, que normalmente tiene un valor muy alto en comparación con las demás frecuencias.
Este comportamiento se debe a que el módulo de la DFT posee un rango dinámico extremadamente amplio: unas pocas frecuencias dominan en magnitud mientras que la mayoría de las demás tienen valores mucho menores. Así, si se visualiza sin ningún tipo de ajuste, los valores más pequeños quedan prácticamente invisibles.
def ComputeFourierSpectra(image):
"""
Computes and returns the magnitude and phase spectra of a 2D Fourier Transform.
This function takes a grayscale image as input, applies the 2D Fourier Transform,
and returns both the magnitude and phase spectra. The magnitude spectrum is
log-scaled and normalized to enhance visibility, while the phase spectrum is also
normalized to the 0–255 range for visualization purposes.
Parameters:
----------
image : np.ndarray
2D numpy array representing a grayscale image (real-valued input).
Returns:
-------
magnitude : np.ndarray
2D array (uint8) representing the normalized log-magnitude spectrum.
phase : np.ndarray
2D array (uint8) representing the normalized phase spectrum in the range [0, 255].
Notes:
-----
- The function assumes the input is a 2D image.
- Zero-frequency components are shifted to the center using `np.fft.fftshift`.
- The Fourier transform is computed using a custom implementation `FourierTransform2D`.
"""
dft = FourierTransform2D(image)
# Compute magnitude and apply log-scaling
magnitude = np.abs(dft)
magnitude = np.log1p(magnitude) # log(1 + |F(u,v)|)
magnitude = np.fft.fftshift(magnitude)
magnitude = (magnitude / np.max(magnitude) * 255).astype(np.uint8)
# Compute and normalize phase
phase = np.angle(dft)
phase = np.fft.fftshift(phase)
phase = (phase + np.pi) / (2 * np.pi) * 255 # Normalize to [0, 255]
phase = phase.astype(np.uint8)
return magnitude, phase
Uso del logaritmo y desplazamiento del espectro
Para hacer visible la magnitud, se aplican dos transformaciones:
Escala logarítmica:
$$\log(1 + |G(k_x, k_y)|)$$
Esto reduce las diferencias extremas entre las frecuencias fuertes y débiles, haciendo visibles las frecuencias de menor energía. El uso del logaritmo en este contexto es análogo a la percepción del sonido por parte del oído humano: no responde linealmente a la intensidad, sino logarítmicamente. De este modo, se preservan los detalles de baja frecuencia sin saturar las regiones dominadas por componentes de gran magnitud.
Centrar la componente DC:
Por defecto, la componente DC (frecuencia cero) está en la esquina superior izquierda del espectro. Para una visualización más simétrica e intuitiva, se reorganizan los cuadrantes del espectro:
A = superior izquierda
B = superior derecha
C = inferior izquierda
D = inferior derecha
El reordenamiento D–C–B–A lleva la componente DC al centro de la imagen, colocando las bajas frecuencias en el centro y las altas en los bordes. Esta representación resulta más natural para el análisis visual, ya que alinea la estructura radial de la frecuencia con la disposición visual esperada.
Una forma matemática equivalente a este reordenamiento consiste en multiplicar la imagen original por (-1)ˣ⁺ʸ antes de aplicar la DFT:
$$\text{DFT} \left[ g(x, y)(-1)^{x+y} \right] = G\left(k_x - \frac{w}{2}, k_y - \frac{h}{2} \right)$$
donde w y h son el ancho y el alto de la imagen. Esta modulación espacial alterna el signo de los píxeles formando un patrón similar a un tablero de ajedrez, lo que tiene como efecto el desplazamiento del espectro de frecuencia. El resultado es una traslación del espectro tal que las bajas frecuencias se ubican en el centro de la imagen transformada, facilitando así su análisis visual y cuantitativo.
Interpretación periódica y replicación
La DFT asume que la imagen de entrada es periódica en ambas direcciones. Esto implica que su espectro también es periódico.
Si replicamos la imagen original cuatro veces (en una disposición 2×2) y aplicamos la DFT a esta imagen extendida, obtendremos una réplica del espectro en cada cuadrante. El cuadrante central (resultante del reordenamiento D–C–B–A) corresponde al espectro con la componente DC centrada.
Esta observación justifica conceptualmente por qué es válido y útil reordenar los cuadrantes del espectro para facilitar su interpretación: al centrar el origen de la frecuencia, se obtiene una vista más coherente y balanceada del contenido frecuencial de la imagen.
Observaciones sobre la distribución de energía
Este tipo de visualización revela patrones importantes. Por ejemplo, es común observar que las frecuencias ubicadas en el centro del espectro (bajas frecuencias) contienen la mayor parte de la energía, mientras que las frecuencias ubicadas hacia los bordes (altas frecuencias) tienen menor intensidad. Esto concuerda con el hecho de que la mayoría de las imágenes naturales presentan transiciones suaves y pocas variaciones abruptas.
En consecuencia:
El centro del espectro suele brillar más debido a la mayor concentración de energía en frecuencias bajas.
Las regiones periféricas contienen información sobre bordes, texturas y detalles finos de la imagen original.
Esta distribución espectral refleja el contenido estructural de la imagen en el dominio de la frecuencia, permitiendo tanto su análisis cualitativo como su manipulación mediante filtrado.
La Transformada de Fourier constituye una de las herramientas más poderosas en el procesamiento de señales, ya sea en audio, imágenes o datos multidimensionales. Su capacidad para descomponer una señal en sus componentes frecuenciales permite revelar estructuras ocultas y operar sobre ellas de manera precisa. Comprender cómo se representa una imagen en el dominio de la frecuencia —y las condiciones necesarias para que esta representación sea fiel, como lo establece el teorema de muestreo de Nyquist-Shannon— es fundamental antes de aplicar cualquier técnica de filtrado.
En este artículo nos enfocamos en los fundamentos teóricos y computacionales que permiten transformar una imagen desde el dominio espacial al dominio frecuencial. También se abordó el fenómeno del aliasing, una distorsión crítica que puede surgir cuando las señales no se muestrean adecuadamente. En artículos posteriores, exploraremos con mayor profundidad el filtrado en el dominio de la frecuencia, analizando distintos tipos de filtros (ideales, Butterworth, gaussianos, etc.), su implementación práctica, y sus efectos visuales y espectrales en imágenes reales. Esta base conceptual será clave para comprender por qué y cómo aplicar estos filtros de forma eficaz en aplicaciones reales de procesamiento digital de imágenes.
Subscribe to my newsletter
Read articles from Francisco Zavala directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
