Professional Documents
Culture Documents
INSTITUTO DE MATEMATICA
EM MATEMATICA
PROGRAMA DE POS-GRADUAC
AO
APLICADA
Um estudo sobre a
Transformada R
apida de
Fourier e seu uso em
processamento de imagens
por
ii
NA PUBLICAC
CIP - CATALOGAC
AO
AO
SUMARIO
LISTA DE FIGURAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
iv
LISTA DE TABELAS . . . . . . . . . . . . . . . . . . . . . . . . . . . .
LISTA DE SIMBOLOS . . . . . . . . . . . . . . . . . . . . . . . . . . . .
vi
RESUMO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
vii
ABSTRACT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
viii
1 INTRODUC
AO
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2 TRANSFORMADA DE FOURIER . . . . . . . . . . . . . . . . . .
2.1 Condic
oes suficientes . . . . . . . . . . . . . . . . . . . . . . . . . .
11
2.4 Comparac
ao entre a Transformada Contnua e a Discreta de
Fourier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
15
. . . . . . . . . . . . . . . . . . . . . . . .
15
17
20
22
22
22
24
3.1.2.1 Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
ii
27
27
4.2 A representac
ao das imagens por sinais . . . . . . . . . . . . . .
29
30
31
. . . . . . . .
32
34
4.3.3.1 Translacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
4.3.3.2 Periodicidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
4.3.3.3 Convolucao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
35
4.3.3.4 Correlacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
37
4.4 Aplicac
oes da transformada de Fourier em domnios freq
uenciais 39
4.4.1 O modelo para a degradacao das imagens . . . . . . . . . . . . . . . .
40
41
45
45
46
DA EQUAC
DE POISSON VIA FFT . . . . .
5 RESOLUC
AO
AO
50
5.1 Introduc
ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
50
5.2 Discretizac
ao da equac
ao de Poisson . . . . . . . . . . . . . . . .
50
5.3 Resoluc
ao do sistema linear . . . . . . . . . . . . . . . . . . . . . .
51
52
5.3.2 Algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
57
. . . . . . . . . . . . . . . . . . . . . . . . . . .
57
57
6 CONCLUSAO
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
59
iii
REFERENCIAS
BIBLIOGRAFICAS
. . . . . . . . . . . . . . . . . . .
60
iv
LISTA DE FIGURAS
Figura 2.1 Transformada de Fourier da funcao (2.36) . . . . . . . . . . . .
13
13
13
18
19
Figura 3.1 Diagrama de Fluxo FFT de base 2 (array de entrada com 8 dados). 22
Figura 3.2 Fluxo de informacoes no processador myid=1 . . . . . . . . . .
24
26
Figura 4.1 Imagem superior esquerda com 328 por 496 pixels, superior direita
com 66 por 99 pixels.
Imagem inferior esquerda com 33 por 50 pixels e inferior direita
com 16 por 25 pixels. . . . . . . . . . . . . . . . . . . . . . . . .
28
31
. . . . . . . . . . . . .
43
43
46
48
LISTA DE TABELAS
Tabela 3.1 Escalabilidade do cluster . . . . . . . . . . . . . . . . . . . . . .
25
26
vi
LISTA DE SIMBOLOS
FFT
DCT
BMP
DC
PSF
vii
RESUMO
Este trabalho e uma sntese da transformada de Fourier na forma discreta e uma de suas principais aplicacoes `a computacao grafica, a restauracao de
imagens corrompidas por movimento, seja do aparelho optico ou da propria imagem.
viii
ABSTRACT
This work ...
INTRODUC
AO
A transformada rapida de Fourier foi um dos grandes passos que a
humanidade conquistou. Uma vez que descobre-se um novo algoritmo que economiza
custo computacional e ha varios pesquisadores com implementacoes cujo tempo de
processamento e inviavel, ocorre uma corrida para tentar usar de alguma forma este
algoritmo na implementacao de seus projetos. Este e o avanco que a Transformada
Rapida de Fourier possibilita, diminuir o tempo de processamento em aplicacoes
que variam desde resolucao de equacoes diferenciais, equacoes integrais, problemas
inversos ate incluir problemas de teoria dos n
umeros.
A motivacao inicial para a criacao da transformada rapida de Fourier
foi de criar um algoritmo que permitisse acelerar o processamento da interpolacao de
uma grande quantidade de dados por polinomios trigonometricos, que e um metodo
usado em Optica,
Mecanica Quantica e in
umeros problemas de simulacao. A interpolacao de 2m pontos de dados pelo calculo direto requer aproximadamente 4m2
multiplicacoes e o mesmo n
umero de adicoes. Em areas que requerem interpolacao
trigonometrica costumam-se ser necessarios calculos com milhares de pontos, o que
torna necessario uma avaliacao de milhoes de operacoes onde o erro de arredondamento associado costuma dominar a aproximacao. Em 1965, J. W. Cooley e J. W.
Tukey publicaram na revista Mathematics of Computation um metodo que requeria
em torno de m.log2 m multiplicacoes e adicoes, desde que fosse escolhido uma quantidade apropriada de termos, o que possibilita a diminuicao de n
umero de calculos de
milhoes para milhares, por isso recebendo o nome de Algoritmo da Transformada
R
apida de Fourier .
Neste trabalho a implementacao do algoritmo FFT (Fast Fourier Transform) foi realizado na versao Radix 2 com decrescimento em freq
uencia, por ser esta
a forma mais adequada para trabalhar com tratamento de sinais. Como a transformada rapida de Fourier possui bom rendimento em sua versao paralela foram
realizados testes do algoritmo FFT em cluster de 4 pcs e na estacao de trabalho
5.1 Introducao
TRANSFORMADA DE FOURIER
A Transformada de Fourier e, em essencia, uma ferramenta matematica
2.1
Condi
c
oes suficientes
Seja f uma funcao que possua as caractersticas do teorema integral de
Fourier,
ou seja, f (x) e f 0 (x) sao seccionalmente contnuas num intervalo finito e
Z
|f (x)| dx converge.
(2.1)
onde:
1
A() =
B() =
(2.2)
2 Transformada de Fourier
f (x+0)+f (x0)
.
2
2.2
(2.3)
(2.4)
f (x+0)+f (x0)
.
2
(2.5)
e, na forma inversa,
1
f (x) =
=
2
F ()eix d.
(2.6)
X(e ) =
x(n)ein ;
n=
Z
x(n)
1
=
2
(2.7)
in
X(e
)d
1
As constantes 1 e 2
nas equac
oes (2.5) e (2.6) podem ser alteradas para quaisquer outras
1
desde que o produto entre as duas seja igual a 2
.
1
2 Transformada de Fourier
X
a propriedade
|x(n)| < , entao a serie e dita absolutamente convergente e
n=
converge uniformemente para uma funcao contnua de . Segundo [4], tal condicao
e, em quase todos os casos, satisfeita na pratica, e nesse caso a seq
uencia possui
X
energia finita, o que matematicamente significa
|x(n)|2 < . A recproca,
n=
sen (0 n)
possui energia finita e
n
X
1
nx
nx
f (x) a0 +
(an cos(
) + bn sen(
))
2
L
L
n=1
(2.8)
cos =
ei + ei
2
(2.9)
i
sen =
e e
2i
e
.
L
L
2
2i
2
2i
(2.10)
2 Transformada de Fourier
1
1
cn = (an ibn ) =
2
2L
Definindo c0 =
1
cn =
2L
a0
2
1
2L
nx
nx
f (x) cos
isen
L
L
L
(2.11)
f (x)dx teremos:
L
f (x)eix/L dx;
para n = 0, 1, 2, . . .
(2.12)
cn einx/L
(2.13)
n=
Introduzindo a notacao n =
1
cn =
2L
Definindo h =
n
, para n = 0, 1, 2 . . . podemos escrever:
L
L
f (x)ein x dx,
n = 0, 1, 2, . . .
(2.14)
teremos
L
1 X
f (x)
hcn einx/L
2 n=
(2.15)
2 Transformada de Fourier
F (u) = |F (u)|ei(u) ,
(2.18)
onde
1
(2.19)
e
(u) = tan
I(u)
.
R(u)
(2.20)
2.3
N
1
X
xm W mk ,
m=0
i 2
N
W =e
2
,i =
k = 0, 1, ..., N 1
(2.21)
Encontra-se na literatura tanto as letras i como j para designar a unidade imaginaria. Livros
sobre Engenharia Eletrica costumam utilizar a letra j enquanto livros de Matematica ou Computacao a letra i.
2 Transformada de Fourier
N 1
1 X
X k W lk ,
N k=0
l = 0, 1, ..., N 1.
(2.22)
(2.23)
N
1
X
gn hn ,
(2.24)
n=0
1 se v = v 0 ,
0 caso contrario.
(2.25)
2 Transformada de Fourier
Por conseq
uencia, o conjunto bv forma uma base ortonormal para o
espaco vetorial e, assim, cada vetor do espaco pode ser expresso como combinacao
linear dos vetores da base do espaco de Fourier. A DFT calcula as projecoes do
vetor g em todos os vetores da base diretamente, ou seja, as componentes de g nas
direcoes dos vetores da base.
Sob esta optica a DFT e um funcao que transforma coordenadas num
espaco vetorial com N dimensoes, com a peculiaridade de trabalhar no corpo dos
complexos, e nao dos reais como em transformacoes mais familiares como rotacao
em espaco tridimensional, e de ter um grande n
umero de dimensoes.
Ao contrario do caso contnuo, nao ha sentido em discutir a existencia
da Transformada Discreta de Fourier, uma vez que (2.21) sempre existe.
Usando a relacao de ortogonalidade, temos que
N
1
N se r = u0
X
ux
2i
2i rx
N =
e Ne
0 caso contrario.
x=0
(2.26)
2i
2i
eN
eN
x=0
(N 1)
2i
eN 1
2i
eN 1
= 1.
(2.27)
2.3.1
(2.28)
(2.29)
10
2 Transformada de Fourier
onde [F] e a chamada matriz de Fourier a qual e uma matriz quadrada, de ordem
N , definida por:
[F(k,l) ] = W (k1)(l1) .
(2.30)
[Fi,j F1
i,j ]
N
N
1 X (i1)k k(j1)
1 X (ij)k
=
W
W
=
W
.
N k=1
N k=1
(2.31)
1
1
1
1
F4 =
2
4
6
1 (i) (i) (i)
3
6
9
1 (i) (i) (i)
F1
4
1 1
1 1 i
=
4
1 i2
1 i3
1
i
i4
i6
(2.32)
i6
9
i
3
(2.33)
11
2 Transformada de Fourier
1
Para i = j [Fi,j Fi,j
]=
N
X
N
1 X 0
W =1
N k=1
W N (ij) W ij W ij
W (ij) (W N (ij) 1)
Para i 6= j
W
=
=
W (ij) 1
W (ij) 1
k=1
Como W significa a primeira raiz n-esima da unidade, entao W N 1mod(N ) =
k(ij)
logo W ij
de [F] pelo vetor de entrada x(n), o que necessita que se efetuem N multiplicacoes,
teremos ao todo N 2 operacoes de multiplicacao, o que computacionalmente e uma
operacao cara. O algoritmo FFT e de suma importancia pelo fato de se conseguir
diminuir significativamente a complexidade da DFT, e sera tratado mais adiante
ainda neste captulo.
2.3.2
Interpretac
ao fsica da Transformada de Fourier
12
2 Transformada de Fourier
h(t)e2if t dt
H(f ) =
(2.34)
h(t) =
H(f )e2if t df
(2.35)
2.4
Compara
c
ao entre a Transformada Contnua e a
Discreta de Fourier
Freq
uentemente, sinais discretizados no tempo sao provenientes de sinais
contnuos obtidos por uma amostragem periodica. Por exemplo, seja a funcao
definida por:
f (x) =
1 se |x| < 3,
(2.36)
0 se |x| > 3.
A transformada de Fourier desta funcao e dada por:
iu
F () =
f (u)e
eiu =
sin (a)
eia eia
=2
,
i
6= 0.
(2.37)
2 Transformada de Fourier
13
14
2 Transformada de Fourier
Xa (i)eit d
(2.38)
xa (t)eit dt
(2.39)
Xa (i) =
A seq
uencia x(n) com valores x(n) = xa (nT ) e chamada originaria de
xa (t) por amostragem periodica, e T e dito perodo da amostra. Para determinar a
maneira como x(n) representa o sinal original xa (n), e oportuno relacionar Xa (i),
a transformada contnua no tempo de Fourier de xa (t), com X(ei ), a transformada
discreta de Fourier de x(n).
Usando (2.38), podemos escrever
Z
1
x(n) = xa (nT ) =
Xa (i)einT d
2
(2.40)
(2.42)
2r
, obtemos uma reducao nos limites de integracao:
T
Z
T
1 X
2r inT i2rn
Xa i + i
e
e
d
(2.43)
x(n) =
2 r= T
T
(2.44)
15
2 Transformada de Fourier
1
1
2r
ein d
(2.45)
x(n) =
Xa i + i
2 T r=
T
T
Observando que a equacao anterior e identica a (2.41), teremos:
1 X
2r
X(e ) =
Xa i + i
T r=
T
T
i
(2.46)
iT
X(e
2r
1 X
Xa iT + i
)=
T r=
T
(2.47)
2.5
2.5.1
FFT - Algoritmos r
apidos para DFT
FFT na forma seq
uencial
m = N1 m 2 + m 1 ,
k = N2 k 1 + k 2 ,
m1 , k1 = 0, ..., N1 1.
m2 , k2 = 0, ..., N2 1.
(2.48)
(2.49)
16
2 Transformada de Fourier
N
1 1
X
W N2 m1 k1 W m1 k2
m1 =0
N
2 1
X
(2.50)
m2 =0
Isto mostra que a DFT de dimensao N pode ser considerada como uma
DFT de tamanho N1 N2 , a menos da introducao dos fatores de rotacao W m1 k2 . O
calculo de X k por (2.50) e efetivado em tres passos, inicialmente correspondendo ao
calculo de N1 DFTs Y m1 k2 , o que corresponde a N1 valores distintos de m1
Y m1 k2 =
N
1 1
X
(2.51)
m1 =0
N
1 1
X
Y m1 k2 W m1 k2 W1m1 k1 ,
(2.52)
m1 =0
N
2 1
X
W2m2 k2
m2 =0
N
1 1
X
xN1 m2 +m1 W m1 k2 W1m1 k1
(2.53)
m1 =0
17
2 Transformada de Fourier
n
umero de operacoes necessarias para o calculo direto de uma DFT de N pontos
e proporcional a N 2 , o n
umero de operacoes diminui rapidamente, de acordo com
a particao da DFT original em varias DFTs menores. No caso mais trivial, uma
DFT de tamanho N1 N2 requer N12 N22 multiplicacoes. Em oposicao, utilizando as
equacoes (2.51) e (2.52) teremos a separacao de N1 DFTs de N2 termos, N2 DFTs
de N1 termos mais N1 N2 multiplicacoes pelos fatores de rotacao. Conclui-se que o
total de multiplicacoes que devem ser levadas a cabo para calcular a DFT de N1 N2
pontos se reduz a N1 N22 + N12 N2 + N1 N2 = N1 N2 (N1 + N2 + 1), o que obviamente e
menor do que N12 N22 . Na pratica, o algoritmo FFT e um recurso poderoso quando N
e decomponvel em muitos termos, preferencialmente uma potencia de um inteiro,
sendo indicada a potencia de 2. Assim e possvel que cada DFT de tamanho N1 e
N2 seja calculada recursivamente pelo algoritmo FFT ate que se obtenha um vetor
com n
umero primo de elementos sobre o qual sera calculada uma DFT simples, da
a preferencia por N igual a uma potencia de 2. Utilizando-se deste metodo em
cada estagio, obtem-se uma reducao de custo, o que o torna favoravel quando N
nao for potencia de 2 o completamento do vetor com zeros ate a potencia de 2 mais
proxima, acao feita na implementacao do algoritmo para tratamento de imagens
presente nesta dissertacao.
2.5.2
N
2
Xk =
N/21
x2m W
2mk
m=0
e dado que W
N
2
=1
X k+ N =
2
m=0
x2m+1 W 2mk ;
(2.54)
m=0
N/21
+W
N/21
x2m W
2mk
X
m=0
x2m+1 W 2mk ;
k = 0, 1, ...,
N
1.
2
(2.55)
18
2 Transformada de Fourier
As equacoes (2.54) e (2.55) formam a operacao conhecida como butterfly de dois pontos pela aparencia dada ao diagrama abaixo:
Figura 2.4: Operacao butterfly de dois pontos.
N
2
N
2
mais
DFTs de comprimento
N
2
N
4
ao custo de N adicoes e
N
2
N
2
2 Transformada de Fourier
19
20
2 Transformada de Fourier
gera uma perda exponencial para o tempo de sua construcao, visto que as matrizes
sempre dobram de tamanho a cada passo.
O algoritmo recursivo e por conseguinte composto pela multiplicacao
de tres matrizes, uma matriz butterfly, a matriz DFT do passo anterior e a matriz
de reagrupamento dos elementos. O primeiro passo do algoritmo e o feito abaixo:
F2 =
1 1
(2.56)
1 1
1 1
F2 =
1 1
1 1
(2.57)
1
1
1
i
B2 =
1
1
1
i
E, por u
ltimo, a matriz de permutacao sera composta por:
P2 =
(2.58)
(2.59)
2 Transformada de Fourier
21
1
1
1 1
1
1
i 1 1
1
(2.60)
[F4 ] =
1
1 1
1
1
i
1 1
1
A matriz [F4 ] tera duas copias de F4 nos quadrantes mpares da matriz
e assim sucessivamente, os detalhes de implementacao seq
uencial e paralela serao
discutidos no captulo 3.
22
DOS ALGORITMOS
IMPLEMENTAC
AO
FFT
3.1
FFT de base 2
3.1.1
Vers
ao seq
uencial
2i
N
)
2r
N
);
2r
N
);
2r
23
3 Implementac
ao do algoritmo FFT
Procedimento (exp-p):
Vers
ao paralela
n
p
n
p
posicoes de f, myid =
24
3 Implementac
ao do algoritmo FFT
Resultados
Os testes da tabela (3.1.2.1) foram feitos em um cluster de 4 PCs Pentium IV com clock de 1.7GHz. Os percentuais de ganho de tempo estao relacionados
abaixo.
Tabela 3.1: Escalabilidade do cluster
cluster
1 processador
2 processadores
variacao percentual
4 processadores
variacao percentual
212 dados
150000
900000
60%
70000
46, 6%
215 dados
1770000
1010000
57, 1%
750000
42, 4%
217 dados
3900000
2200000
56, 4%
1670000
42, 8%
219 dados
19040000
10590000
56, 1%
7560000
39, 7%
221 dados
90450000
50350000
55, 66%
34450000
38, 1%
222 dados
195840000
108250000
55, 27%
73370000
37, 5%
A tabela nos mostra que para valores de entrada maiores o aproveitamento aumenta. Para 2 processadores o valor mnimo do tempo de execucao seria
de 50% do tempo utilizado por 1 processador. Iniciando com 212 dados e terminando
com 222 dados passamos de 60% para 55, 7% do tempo de execucao. Isto se explica
pelo motivo de o n
umero de comunicacoes ser de log2 p.
Os testes a seguir foram realizados usando a estacao de trabalho Sun
Fire 6800, composta de 20 processadores SPARC III de 750MHz, localizada no
25
3 Implementac
ao do algoritmo FFT
212 dados
000000
000000
00%
00000
0000%
00000
0000%
00000
0000%
215 dados
0
0
0%
0
0%
000000
42, 4%
000000
0000%
217 dados
3870000
6170000
56, 4%
4700000
42, 8%
2400000
42, 8%
1350000
42, 8%
219 dados
0000000
0%
0000000
0%
0000000
0%
5950000
0%
221 dados
00000000
00000000
00000%
00000000
0000%
00000000
0000%
00000000
0000%
222 dados
000000000
000000000
00000%
00000000
0%
00000000
0000%
00000000
00000%
26
DO ALGORITMO FFT EM
APLICAC
AO
IMAGENS
4.1
27
4.2
A representa
c
ao das imagens por sinais
Analisa-se luminosidade como uma grandeza positiva. Um ser humano
m,n
P :
m,n
As imagens fundamentais
Pm0 ,n0 =
m,n
1,
se m = m0 e n = n0
0,
(4.1)
e definido em (4.1).
Uma imagem qualquer pode ser composta de imagens fundamentais de
(4.1) usando o somatorio:
C=
M
1 N
1
X
X
m=0 n=0
Cm,n (m,n P ) ;
(4.2)
28
onde Cm,n representa cada valor das cores fundamentais (RGB). Definindo o produto
vetorial entre duas imagens G e H por:
< G, H >=
M
1 N
1
X
X
Gm,n Hm,n
(4.3)
m=0 n=0
1
M
1 N
X
X
m0 ,n0
Pm,n
m00 ,n00
Pm,n = m0 m00 n0 n00 ;
(4.4)
m=0 n=0
4.3
29
Extens
ao da Transformada de Fourier para duas dimens
oes
(2D-DFT)
F (u, v)
u = 0, 1, . . . , N1 1;
(4.5)
v = 0, 1, . . . , N2 1;
e a respectiva inversa por:
f (x, y)
N
1 1 N
2 1
X
X
u=0
vy
ux
2i( N
+N
)
F (u, v)e
v=0
(4.6)
x = 0, 1, . . . , N1 1;
y = 0, 1, . . . , N2 1;
4.3.2
Transformada R
apida de Fourier para duas dimens
oes
N
1 1 N
2 1
X
X
para
m1 =0 m2 =0
k1
= 0, 1, ..., N1 1;
k2
= 0, 1, ..., N2 1;
2
i N
W1 = e
2
i N
2
W2 = e
e i=
onde
(4.7)
1.
N
1 1
X
m1 =0
W1m1 k1
N
2 1
X
m2 =0
xm1 m2 W2m2 k2
(4.8)
30
Definindo Y m1 k2 =
N
2 1
X
m2 =0
N
1 1
X
W1m1 k1 Y m1 k2 .
m1 =0
Sob este ponto de vista temos o calculo de N2 DFTs de N1 dados nas N2 seq
uencias
N
1 1
X
Y m1 k2 , correspondendo a N2 valores distintos de k2 , X k1 k2 =
Y m1 k2 W1m1 k1 .
m1 =0
Bu,v
1
u
WM
u
WM
..
.
(M 1)u
WM
h
i
(N 1)v
v
2v
= bu bv
1, WN , WN , . . . , WN
(4.9)
N1 1 N
2 1
X
1 X
=
xm1 m2 W1m1 k1 W2m2 k2
N1 N2 m =0 m =0
1
(4.10)
31
(4.11)
f (x, y)e N
(u0 x+v0 y)
F (u u0 , v v0 )
(4.12)
e por
f (u u0 , v v0 )
F (u, v)e
2i
(ux0 +vy0 )
N
(4.13)
onde as setas duplas indicam que as transformadas sao auto-recprocas, isto e, existe
correspondencia entre a funcao e sua transformada de Fourier na ordem direta e
inversa. Em outras palavras multiplicar uma funcao pela exponencial explicitada e
calcular a transformada deste produto significa trasladar o centro do grafico u v
para (u0 , v0 ) no plano freq
uencial. Analogamente multiplicar F (u, v) pelo termo
exponencial altera o centro do plano espacial para o ponto (x0 , y0 ).
importante salientar que a densidade espectral nao e alterada pela
E
alteracao aplicada a f (x, y), ou seja:
|F (u, v)e
2i
(ux0 +vy0 )
N
| = |F (u, v)|
32
4.3.3.2
Periodicidade
(4.14)
N 1 N 1
vy
ux
1 XX
f (x, y)e2i( N ) e2ix e2i N .
F (u + N, v) =
N x=0 y=0
(4.15)
Convolucao
f (x) g(x) =
f ()g(x )d
(4.16)
(4.17)
33
f (x)
fe (x) =
g(x)
ge (x) =
(4.20)
0, 1, 2, . . . , M 1
Desta forma, temos a convolucao como uma funcao discreta, periodica e de perodo
M , sendo que os valores de x descrevem um perodo completo de fe ge .
A convolucao em duas dimensoes e uma extensao da equacao (4.16),
assim:
Z
f (x, y) g(x, y) =
f (, )g(x , y )dd
(4.21)
34
(4.22)
F (u, v) G(u, v)
(4.23)
N B+D1
As seq
uencias periodicas sao formadas extendendo fe (x, y) e ge (x, y)
como segue:
fe (x, y) =
f (x, y) se 0 x A 1
ge (x, y) =
(4.24)
se A x M 1
g(x, y) se 0 x C 1
ou
B y N 1.
0 y D 1,
se C x M 1
0 y B 1,
(4.25)
ou
D y N 1.
M 1 N 1
1 XX
fe (m, n)ge (x m, y n),
M N m=0 n=0
x = 0, 1, 2, . . . , M 1
(4.26)
y = 0, 1, 2, . . . , M 1
Utilizando o domnio freq
uencial, o algoritmo FFT se torna uma ferramenta poderosa para o calculo da convolucao, diminuindo o n
umero de operacoes
executadas. Esta e o grande motivo da sua utilizacao e os filtros descritos adiante
fazem uso desta propriedade. Inicialmente, as duas funcoes no domnio freq
uencial
sao multiplicadas e entao a transformada inversa e calculada, obtendo-se a convolucao das duas funcoes no domnio temporal.
35
4.3.3.4
Correlacao
ou na forma discreta:
f (x) g(x)
M 1
1 X
fe (m)g(x + m)
M m=0
(4.28)
x = 0, 1, 2, . . . , M 1
onde f significa o conjugado complexo de f , e M e calculado da mesma forma que
a convolucao, para evitar aliasing. Uma definicao importante e que se f (x) e g(x)
forem a mesma funcao a equacao e chamada autocorrelacao.
Analogamente `a convolucao temos, para a forma contnua e discreta em
duas dimensoes:
Z
f (x, y) g(x, y) =
f (, )g(x + , y + )dd
fe (x) ge (x)
(4.29)
M 1 N 1
1 XX
=
f (m, n)g(x + m, y + n)
M N m=0 n=0 e
x = 0, 1, 2, . . . , M 1;
(4.30)
y = 0, 1, 2, . . . , N 1
O teorema da correlacao a seguir se aplica aos casos contnuo e discreto,
assumindo neste u
ltimo que todas as funcoes extendidas sao periodicas:
f (x, y) g(x, y)
F (u, v)G(u, v)
f (x, y)g(x, y)
(4.31)
F (u, v) G(u, v)
36
4.4
Aplica
c
oes da transformada de Fourier em domnios
freq
uenciais
As tecnicas basicas para utilizacao da Transformada de Fourier em i-
magens se baseia no teorema da convolucao. Seja g(x, y) uma imagem com algum
tipo de degradacao e f (x, y) a imagem ideal, sem o efeito indesejado de g(x, y).
Considera-se entao que g(x, y) e obtida pela convolucao de f pelo operador h(x, y), linear e invariante por translacao:
g(x, y) = h(x, y) f (x, y)
De forma analoga, [11] relaciona f e g pela formula:
Z Z
g(x, y) =
h (x, y, x0 , y 0 ) f (x0 , y 0 ) dx0 dy 0 + (x, y)
(4.32)
(4.33)
(4.34)
(4.35)
37
definindo G(u, v), F (u, v) e H(u, v) as transformadas de Fourier de g(x, y), f (x, y)
e h(x, y). A notacao . aproveita a convencao usada pelo software Matlab, isto
e, nao e o produto entre as matrizes H e F na forma tradicional, ou seja, cada
elemento de G como o produto interno das linhas de H com as colunas de F , e sim
o produto entre os termos de mesma posicao entre as duas matrizes, conforme o
exemplo (4.36):
50 10 12
40 25 12
1
0 1
2 1 1
100 10 12
. 1
0
4 = 40
0 48
34 1 1
34
0 1
(4.36)
(4.37)
38
u
E
til que o operador H seja invariante por translacoes, em outras palavras
H[f (x , y )] = g(x , y )
(4.38)
(4.39)
(4.40)
(4.41)
f (, )H [(x , y )] dd
g(x, y) =
(4.42)
(4.43)
39
e neste caso temos g(x, y) a imagem deteriorada e f (x, y) a imagem teorica (sem
movimento). Aplicando a transformada de Fourier obtem-se:
Z Z
G(u, v) =
g(x, y)exp[j2(ux + vy)]dxdy
(4.44)
G(u, v) =
T
2
(4.45)
T2
T
2
Z
G(u, v) =
T2
(4.47)
T
2
[exp(j2(u(t) + v(t))] dt
G(u, v) = F (u, v)
(4.48)
T2
(4.49)
T
2
[exp(j2(u(t) + v(t))] dt
H(u, v) =
(4.50)
T2
(4.51)
40
sin(uV T )
uV
(4.52)
De forma que o PSF h(x, y) pode ser obtido pela transformada inversa de Fourier
de (4.52).
No exemplo (4.4.2) temos a imagem original e em (4.4.2) o arrastamento
horizontal de 32 pixels sobre a imagem.
A simulacao e importante no sentido em que ha um controle sobre
o rudo adicionado, ou seja, nao ha a contaminacao da imagem por agentes de
captacao, como a propria camera ou scanner.
Chama-se mascara de PSF `a funcao de degradacao que gera a deterioracao pretendida. No caso do movimento uniforme mascara e obtida criando um
vetor com comprimento igual `a quantidade de pixels deslocados e com valor igual
ao inverso da quantidade destes pixels. No caso da imagem (4.4.2) utilizou-se a PSF
abaixo, de comprimento 32:
1 1
1
P SF =
, ,...,
32 32
32
(4.53)
Deve-se observar que as equacoes (2.36) e (2.37) refletem o mesmo resultado das equacoes (4.53) e (4.52), desde que em (2.37) sejam desprezados os valores
negativos de . Sumariamente, se n for o total de pixels deslocados, entao a funcao
de degradacao tem a sua PSF equivalente por um vetor com o n
umero de pontos
1
igual a n, e o valor de cada posicao do vetor igual a .
n
Distorcao com n pixels horizontais:
1 1
1
P SF =
, ,...,
;
n n
n
n posicoes.
(4.54)
Ou seja, (4.53) representa o PSF para imagens degradadas com movimento linear uniforme, com a escolha adequada da funcao contnua.
41
Deve-se completar este vetor com zeros formando uma matriz com a
mesma dimensao da imagem, entao aplicar FFT bidimensional com o cuidado de
deixar o valor DC no centro da matriz. Esta operacao e realizada dividindo a matriz
em quatro quadrantes e invertendo o primeiro com o quarto e o segundo com o
terceiro quadrantes. A convolucao entre as duas matrizes gera a imagem distorcida.
Neste caso teremos:
G(u, v) = H(u, v). F (u, v)
(4.55)
42
4.4.3
Restaurac
ao de imagens deterioradas por movimento uniforme
(4.56)
onde:
F1 [ ] e a transformada inversa de Fourier.
fe(i, j) e a imagem restaurada, uma aproximacao da imagem original.
Rf iltro e o tipo de filtro utilizado na restauracao.
4.4.4
Filtro Inverso
Assumindo que uma dada imagem nao apresenta rudo podemos concluir que da equacao (4.37) no domnio espectral temos que:
G(u, v) = H. F (u, v) + 0
(4.57)
(4.58)
(4.59)
43
Filtro de Wiener
Rw =
H (u,v)
Sn (u, v)
2
|H(u, v)| +
Sf (u, v)
(4.60)
H (u, v)
|H(u, v)|2 + K
(4.61)
44
45
Figura 4.1: Imagem superior esquerda com 328 por 496 pixels, superior direita com
66 por 99 pixels.
Imagem inferior esquerda com 33 por 50 pixels e inferior direita com 16
por 25 pixels.
Figura 4.2: Imagem simples (30 30 pixels) e a densidade espectral da imagem com
valores na forma log[1 + |F (u, v)|] (256 256 pixels), onde o array de
entrada foi completado com zeros ate ter o tamanho de 28 .
46
DA EQUAC
DE POISSON
RESOLUC
AO
AO
VIA FFT
5.1
Introdu
c
ao
Existem varios metodos para resolver numericamente a equacao de Pois-
son, e alguns destes sao chamados Fast Poisson Solvers, ou (FPS), por serem mais
eficazes do que o metodo da eliminacao gaussiana.
Dentre todos os FPS o de mais facil implementacao e o via FFT. Neste
caso a transformada rapida de Fourier e utilizada para aprimorar o custo computacional em sistemas de equacoes geradas por diferencas finitas ou elementos finitos a
partir da discretizacao da equacao de Poisson. Este captulo trata da resolucao da
equacao num domnio retangular com condicoes de contorno de Dirichlet.
A grande vantagem da FFT e preservar a precisao dos calculos e baixar
o tempo de processamento para a complexidade de O(n2 logn). A ttulo de comparacao, o metodo da eliminacao gaussiana opera com a ordem de O(n4 ), com o
mesmo erro de truncamento. Sob este ponto de vista a FFT pode ser comparada
com um dos melhores metodos para obter a solucao numerica para a equacao de
Poisson.
5.2
Discretiza
c
ao da equa
c
ao de Poisson
A equacao de Poisson sujeita `as condicoes de contorno de Dirichlet:
2u 2u
+
= f (x, y), para(x, y) ;
x2 y 2
u(x, y) = (x, y), para(x, y) ;
(5.1)
47
(5.2)
(5.3)
Na equacao (5.3) por conveniencia considera-se que os pontos da fronteira estao includos. Podemos descrever o sistema matricialmente por:
TN U + U TN = h2 Fe
(5.4)
5.3
Resolu
c
ao do sistema linear
Encontra-se a solucao do autosistema da matriz TN supondo que esta
(5.5)
V LV 1 U + U V LV 1 = h2 Fe
(5.6)
48
LV 1 U V + V 1 U V L = h2 V 1 FeV
(5.7)
(5.8)
F = h2 V 1 FeV
(5.9)
(5.10)
teremos:
U (j, k) =
F
L(j, j) + L(k, k)
(5.11)
Este problema resolvido por metodos matriciais tem ordem de complexidade O(N 4 ), o que representa um custo computacional elevado. A transformada
rapida de Fourier, conforme mencionado em (5.1) pode entao ser aplicada ao problema, preferencialmente, quando a malha e dividida em n
umero de celulas igual a
uma potencia de dois.
5.3.1
Aplicac
ao da Transformada R
apida de Fourier
49
Tm =
2 1
1
0
..
.
0
..
... ...
.
1
...
0
0
..
.
(5.12)
(5.13)
(5.14)
(5.15)
Tm
S1
S0 2S1 + S2
S1 2S2 + S3
..
.
=
Sk1 2Sk + Sk+1
..
.
Sm1 2Sm
(5.16)
(5.17)
S2
..
.
Sk
..
.
Sm
50
Tm
S1
S2
..
.
Sk
..
.
Sm
= 2.(C1 1)
S1
S2
..
.
Sk
..
.
Sm
0
0
0
0
..
.
(Sm1 2.Sm ) 2(C1 ).Sm
(5.18)
Au
ltima linha do segundo vetor de (5.18) e equivalente a
Sm1 2.Sm 2.C1 .Sm = Sm1 2C1 .Sm
(5.19)
(5.20)
Tm
S1
S2
..
.
Sk
..
.
Sm
= 2.(C1 1)
S1
S2
..
.
Sk
..
.
Sm
Tornando n = m 1 temos:
S1
S2
..
Tn1
= 2.(C1 1)
Sk
..
Sn1
S1
S2
..
.
Sk
..
.
Sn1
0
0
0
0
..
.
Sm+1
(5.21)
..
.
Sn
(5.22)
51
Fazendo a substituicao j =
j
teremos sin(nj ) = sin() = 0, e
n
portanto:
S1
S2
..
.
Tn1
Sk
..
.
Sn1
S1
S2
..
.
= 2.(C1 1)
Sk
..
Sn1
sin(j )
sin(j )
sin(2j )
sin(2j )
j
..
..
Tn1
= 2.(cos( ) 1)
.
.
2n
sin((n 2)j )
sin((n 2)j )
sin((n 1)j )
sin((n 1)j )
(5.23)
(5.24)
0 k, j 2n 1
(5.25)
0
1
2
1
=L
V Tn1 V =
..
.
0
n1
(5.26)
(5.27)
j
) 1) para 1 j n
n
(5.28)
52
e
V (j, k) = sin(
jk
) para 1 j, k n
n
(5.29)
(5.30)
(5.31)
0 j, k m 1.
n = cos( 2
) isin( 2
); i = 1
n
n
F(j,k) = [fjk ],
(5.32)
2jk
2jk
jk
jk
) isin(
) = cos(
) isin(
)
2n
2n
n
n
(5.33)
(5.34)
2
DST
n
(5.35)
53
Utilizando este modelo temos uma forma eficiente de calcular a solucao da equacao
de Poisson, porem para que o metodo seja satisfatorio devemos considerar que a
seq
uencia de entrada tenha valores igualmente espacados e que seja de comprimento
igual a uma potencia de 2, conforme discutido anteriormente.
5.3.2
Algoritmo
2 1
L
n
(5.36)
Aplicando (5.36):
F =
2
2 e
1
V F V Tn1
= L1
n
n
(5.37)
De forma analoga:
2
U = V U V 1 = V ( U )V 1
n
A equacao (5.11) nos da como resposta:
2
F (j, k)
U (j, k) = V
V
n
L(j, j) + L(k, k)
5.3.2.2
(5.38)
(5.39)
54
se o algoritmo:
func
ao x =FFT-Poisson(F,h)
(n,m) = dimensao de F
Para i variando de 1 ate n faca
i
))
L(i, i) = 2(1 cos( 2x
L(i, j) = 0, parai 6= j
pare
// (FFT bidimensional em F)
x = DST(F)
(F e a transposta de F )
x = DST(x)
2
x= x
n
Para i variando de 1 ate n faca
Para j variando de 1 ate n faca
x(i, j)
x(i, j) = 1
(L(j) + L(i))
h2
pare
pare
//(Transformada inversa)
x = DST (x0 )
2
x = x0
n
x = DST (x)
55
CONCLUSAO
56
REFERENCIAS
BIBLIOGRAFICAS
[1]
Blahut, R. E. Fast algorithms for digital signal processing. AddisonWesley Publishing Company, 1985.
[2]
[3]
[4]
[5]
Iserles, A. Numerical analysis lecture 17. Tech. rep., Cambridge Numerical Analysis Group, 2004.
[6]
[7]
[8]
[9]
[10]
Richard L. Burden, J. F. An
alise Numerica. Thompson Publishers.
[11]
[12]
Rudin, W. Real and Complex Analysis, terceira edicao ed. Mc Graw Hill
International Editions, 1987.
Referencias Bibliogr
aficas
[13]
57
Sezan, M. I., and Lagendijk, R. L. Motion Analysis and Image Sequence Processing. Kluwer Academic Publishers, Boston, 1993.
[14]
[15]
Snir, M., and Otto, S. W. MPI The Complete Reference. MIT Press,
Massachussetts, USA, 1996.
[16]
[17]
Strang, G. Linear Algegra and its applications. Harcourt Brace Jovanovich Publishers, San Diego, 1988.
[18]