You are on page 1of 8

Departamento de Ingenier´ ıa y Ciencia de la Computaci´ on

Ingenier´ ıa Inform´ atica Inspecci´ on Visual Autom´ atica (II77)

Notas de clase
La Transformada Discreta de Fourier en An´ alisis de Imagen
Jos´ e Miguel Sanchiz Mart´ ı

1

1.

Objetivos
Entender la utilidad de la transformada discreta de Fourier en del tratamiento de im´ agenes. Entender la relaci´ on entre una imagen en el dominio del espacio y en el dominio de la frecuencia. Ver la aplicaci´ on de filtros digitales en el dominio de la frecuencia. Entender el fundamento del algoritmo recursivo para calcular la transformada discreta de Fourier, conocido como la Transformada R´ apida de Fourier, FFT (Fast Fourier Transform).

2.

La transformada continua de Fourier

Un proceso f´ ısico se puede describir en el dominio del tiempo, h(t), o en el dominio de la frecuencia, H (f ). En general, h(t) y H (f ) son funciones complejas. h(t) y H (f ) son dos representaciones diferentes de la misma funci´ on:
+∞

H (f ) =
−∞ +∞

h(t)ej 2πf t dt H (f )e−j 2πf t df

h(t) =
−∞

donde t se mide en segundos, y f en Hz., o segundos−1 . En la literatura se puede encontrar tambi´ en la definici´ on de la transformada de Fourier en funci´ on de la frecuencia angular w = 2πf :
+∞

H (w) =
−∞

h(t)ejwt dt
+∞

h(t) =

1 2π

H (w)e−jwt dw
−∞

Indicaremos pares de transformadas as´ ı: h(t) ⇔ H (f ). Una de las principales aplicaciones de la transformada de Fourier es que transforma convoluciones en el dominio del tiempo, en multiplicaciones en el dominio de la frecuencia. Esto es de gran aplicaci´ on en tratamiento de se˜ nal, porque aplicar un filtro a una se˜ nal es convolucionar la se˜ nal con la respuesta impulsional del filtro:
+∞

g∗h≡
−∞

g (τ )h(t − τ )dτ ;

g ∗ h ⇔ G(f )H (f )

3.

La transformada discreta de Fourier

En tratamiento digital de se˜ nal, y por extensi´ on en tratamiento digital de imagen, no disponemos de una se˜ nal continua, sino de una serie de muestras de la se˜ nal. Supongamos que tenemos N muestras: hk = h(tk ); tk = k ∆; k = 0, 1, 2, 3, ..., N − 1

donde ∆ es el int´ ervalo de muestreo. Con N n´ umeros de entrada no podemos producir m´ as que N n´ umeros independientes entre si en la salida. Estimaremos la transformada de Fourier, H (f ), solo para algunos valores discretos de frecuencia: fn = n ; N∆ n = −N/2, ..., N/2

Aproximamos la integral por una suma discreta:

2

+∞

N −1

N −1

H (fn ) =
−∞

h(t)ej 2πfn t dt ≈
k=0

hk ej 2πfn tk ∆ = ∆
k=0

hk ej 2πkn/N

La suma final no depende del int´ ervalo de muestreo, ∆, y se conoce como transformada discreta de Fourier de la serie de N n´ umeros hk :
N −1

Hn =
k=0

hk ej 2πkn/N

La transformada discreta mapea N n´ umeros complejos, hk , en N n´ umeros complejos Hn . La relaci´ on entre la transformada de Fourier (continua) en las frecuencias fn , y la transformada discreta, es: H (fn ) ≈ ∆Hn . Finalmente, la transformada discreta inversa de Fourier, que recupera los n´ umeros hk a partir de los n´ umeros Hn , tiene la expresi´ on: hk = 1 N
N −1

Hn e−j 2πkn/N
k=0

4.

La transformada r´ apida de Fourier (FFT)

Si definimos el n´ umero complejo W = ej 2π/N , la expresi´ on de la transformada discreta de Fourier queda:
N −1

Hn =
k=0

W nk hk

El n´ umero de multiplicaciones a realizar es del orden de N 2 , O(N 2 ). No obstante Hn se puede calcular con un n´ umero de multiplicaciones del orden de N log2 (N ), O(N log2 (N )), con un algoritmo recursivo conocido como la transformada r´ apida de Fourier, FFT. La reducci´ on de tiempo de c´ alculo es muy grande, imaginemos una se˜ nal unidimensional de N = 1000 muestras: la transformada discreta con un c´ alculo cl´ asico consta de 106 multiplicaciones, el algoritmo de la FFT har´ ıa solo 9966. El fundamento del algoritmo consiste en el hecho de que una transformada discreta de Fourier de longitud N se puede escribir como suma de dos transformadas de Fourier de longitud N 2 , una formada para las muestras pares y otra para las impares:
N −1 N/2−1 N/2−1

Hn ≡
k=0 N/2−1

hk ej 2πkn/N ≡
k=0

h2k ej 2π(2k)n/N +
k=0 N/2−1

h2k+1 ej 2π(2k+1)n/N =

h2k e
k=0

j 2πkn/(N/2)

+W

n k=0

par impar h2k+1 ej 2πkn/(N/2) = Hn + W n Hn

Este algoritmo puede usarse recursivamente, reducimos el problema de calcular una transformada de longitud N a calcular dos transformadas de longitud N 2 , y cada una de ellas la calculamos como dos transformadas de longitud N , etc., hasta llegar a una transformada de longitud 1, que simplemente es el 4 mismo n´ umero. El problema principal consiste en reorganizar los datos en n´ umeros pares e impares en cada iteraci´ on.

5.

La transformada discreta de Fourier en dos dimensiones

Dada una funci´ on compleja h(k1 , k2 ), definida sobre un mallado bidimensional, 0 ≤ k1 ≤ N1 − 1, 0 ≤ k2 ≤ N2 − 1, su transformada discreta de Fourier es una funci´ on compleja H (n1 , n2 ):

3

N2 −1 N1 −1

Hn1 ,n2 =
k2 =0 k1 =0

hk1 ,k2 ej 2πk1 n1 /N1 ej 2πk2 n2 /N2

La exponencial que no depende de n1 puede salir fuera del sumatorio interior, por tanto la transformada bidiminsional se puede calcular como dos transformadas unidimensionales: H (n1 , n2 ) = F F Tsobre k2 {F F Tsobre k1 {hk1 ,k2 }} En el caso de una imagen, la transformada se realiza por filas, obteniendo la transformada de cada fila. Al resultado se le calcula la transformada por columnas, obteniendo la transformada final.

6.

La transformada de Fourier de una funci´ on real

Si hk es real podemos f´ acilmente separar la transformada en una parte real y una parte imaginaria:
N −1 N −1

Hn =
k=0

hk ej 2πkn/N =
k=0 N −1

hk (cos(2πkn/N ) + jsen(2πkn/N ))
N −1

Hn =
k=0

hk cos(2πkn/N ) + j
k=0

hk sen(2πkn/N )

Como se puede observar, la parte real es una funci´ on sim´ etrica en n, y la parte imaginaria es antisim´ etrica. Esta propiedad es importante para el c´ alculo y representaci´ on de transformadas de Fourier de im´ agenes, que son funciones reales.

7.

La transformada de Fourier es peri´ odica, de periodo N

Efectivamente, si calculamos la transformada para desplazada un n´ umero entero (l) de N :
N −1 N −1

Hn+lN =
k=0

hk ej 2πk(n+lN )/N =
k=0

hk ej 2πkn/N ej 2πkl

Como ej 2πkl = 1, queda Hn+lN = Hn .

8.

Representaci´ on de la transformada de Fourier de una imagen

Las dos anteriores propiedades implican que Hn s´ olo tiene valores u ´nicos desde n = 0 a n = N/2 − 1 (suponiendo N par, hasta N/2 para N impar). Por la propiedades de periodicidad y simetr´ ıa se cumple: HN = H0
∗ HN/2 = HN/ 2−1

HN +1 = H1

... ...

∗ HN/2+1 = HN/ 2−2

Por tanto s´ olo es necesario calcular Hn para n = 0, 1, 2, ..., N/2 − 1. El m´ odulo de la transformada representa la mayor o menor aparici´ on de cada frecuencia espacial en la imagen. Normalmente la transformada de Fourier de una imagen de N × M se visualiza en otra imagen de N × M , donde el origen de los ejes n1 y n2 est´ a en el centro de la imagen. Se visualiza s´ olo el m´ odulo. La fase normalmente no se representa por tener poco inter´ es su visualizaci´ on Por tanto se est´ a representando |Hn1,n2 | para n1 = −(N − 1)/2 . . . N/2, y para n2 = −(M − 1)/2 . . . M/2.

4

El m´ odulo se representa en escala logar´ ıtmica para poder visualizar mejor los cambios: 255 ∗ log (|Hn1 ,n2 |)/max(|Hn1 ,n2 |). La visualizaci´ on del m´ odulo de la transformada aparece siempre simetr´ ıca respecto del centro de la imagen, o sea, respecto de (n1 , n2 ) = (0, 0).

9.

Aplicaci´ on de filtros digitales en el dominio de la frecuencia

Las t´ ecnicas de dise˜ no de filtro digitales quedan fuera del alcance de estas notas. Comentaremos que una de las t´ ecnicas para dise˜ nar filtros digitales es usar filtros anal´ ogicos conocidos, y digitalizarlos con una transformaci´ on que pase de frecuencia continua a frecuencia discreta. Existen dos tranformaciones para realizar esto. Si llamamos Ω a la frecuencia continua, y ω a la frecuencia discreta, tenemos estas transformaciones: Respuesta impulsional invariante: ω = Ω∆, Ω = ω/∆. Tranformaci´ on bilineal: ω = 2 arctan Ω∆ 2 , Ω=
2 ∆

tan ω 2.

Recordemos que en im´ agenes el periodo de muestreo se toma 1 p´ ıxel, ∆ = 1. El primer m´ etodo no evita el aliasing de frecuencias, y para frecuencias cercanas a f = 1/2 (ω = π , recordemos que ω = 2πf ), la funci´ on de transferencia del filtro digital queda algo diferente de la del filtro anal´ ogico, pues resulta ser la suma de funciones de tranferencia desplazadas en ω = 2π (f = 1) En el segundo m´ etodo la relaci´ on entre frecuencia anal´ ogica y digital no es constante, pero evita el aliasing pues para Ω = ∞ tenemos ω = π (f = 1/2). El filtro anal´ ogico m´ as usado para filtrado es el filtro de Butterworth, que tiene respuesta maximalmente plana en la banda de paso y en la banda eliminada. Para dise˜ nar un filtro digital partimos del filtro de Butterworth pasa bajas (frecuencias) b´ asico. Su funci´ on de transferencia es: A(j Ω) = √ 1 , 1 + Ω2N

donde N es el orden del filtro. √ Este filtro tiene frecuencia de corte Ω0 = 1. A esta frecuencia A(j Ω0 ) = 1/ 2, o sea 20logA(j Ω0 ) = −3dB . Esto representa una caida de potencia, para esta frecuencia, de la mitad, pues la potencia es proporcional al cuadrado de la amplitud de una se˜ nal. Si queremos dise nar un filtro pasa bajas, pasa altas, paso banda, o elimina banda, hemos de modificar la funci´ on de tranferencia b´ asica en estas otras: Pasa bajas: Ω → Ω/Ω0 , A(j Ω) = √ Pasa altas: Ω → Ω0 /Ω, A(j Ω) = √ Pasa banda: Ω →
Ω2 +Ω2 c ΩΩb , 1 1+(Ω/Ω0 )2N

1 1+(Ω0 /Ω)2N 1 1+(
Ω2 +Ω2 c 2N ΩΩb )

A(j Ω) =

Elimina banda: Ω →

ΩΩb , Ω2 +Ω2 c

A(j Ω) =
1+(

1
ΩΩb )2N Ω2 +Ω2 c

La banda de paso y la banda eliminada se definen as´ ı: Ωb = Ωsup − Ωinf , Ωc = Ωsup Ωinf . En el caso de im´ agenes, que son se˜ nales de dos dimensiones, aplicaremos dos filtros, uno que filtre las frecuencias horizontales y otro las verticales: A(j Ω1 , j Ω2 ) = A1 (j Ω1 )A2 (j Ω2 ). Una vez decidida la funci´ on de transferencia del filtro a aplicar, y los par´ ametros de dicho filtro, N , Ω0 , Ωsup , Ωinf , el filtrado de una imagen en el dominio de la frecuencia es como sigue:

5

Calcular la TDF de la imagen. Para cada ´ ındice de frecuencia horizontal y vertical n1 , n2 : • Calcular la frecuencia discreta f1 = n1 /N ∆, f2 = n2 /N ∆, ω1 = 2πf1 , ω2 = 2πf2 . • Calcular las frecuencias continuas con el m´ etodo de la respuesta impulsional invariante o de la transformaci´ on bilineal. Con el primer m´ etodo ser´ ıa: Ω1 = ω1 /∆, Ω2 = ω2 /∆. • Calcular las funciones de transferencia A1 (j Ω1 ), A2 (j Ω2 ). • Multiplicar la TDF de la imagen por ellas, obteniendo la TDF de la imagen resultado. Calcular la TDF inversa de la imagen resultado

10.

Ejemplos

Como ilustraci´ on, a continuaci´ on se puede ver el resultado de aplicar filtro pasa bajas y un filtro pasa altas a una imagen. El tama˜ no de la imagen es de 256 × 256. En la Figura 1 se puede ver el resultado de aplicar un filtro pasa bajas con frecuencias de corte horizontal y vertical de 10 p´ ıxeles. Se aprecia como el filtro disminuye el detalle de la imagen, emborron´ andola. La Figura 2 muestra la aplicaci´ on de un filtro pasa altas con frecuencias de corte horizontal y vertical de 10 p´ ıxeles. La imagen original se ha sumado al resultado del filtro para resaltar las altas frecuencias (cosa que realiza el filtro pasa altas), pero no eliminar las bajas frecuencias. La imagen filtrada queda m´ as n´ ıtida.

6

Figura 1: Imagen donde se han atenuado las bajas frecuencias. Izquierda: imagen original y su transformada de Fourier. derecha: tranformada de Fourier multiplicada por la funci´ on de transferencia de un filtro pasa bajas, e imagen resultado

7

Figura 2: Imagen donde se han resaltado (aumentao) las altas frecuencias. Izquierda: imagen original y su transformada de Fourier. derecha: tranformada de Fourier multiplicada por la funci´ on de transferencia de un filtro pasa altas, y sumada con un factor a la TDF original, e imagen resultado

8