“O homem que fala dois idiomas vale por dois” - Ditado Popular
RQF-Agostol/2004
Realce no Domínio da Freqüência
1
Jean Baptiste Joseph Fourier
1768  Auxerre, França
1807  1822 
On the Propagation of Heat in Solid Bodies
(Série de Fourier)
1830  Paris
RQF-Agostol/2004
Realce no Domínio da Freqüência
2
Transformada de Fourier Contínua
• A Transformada de Fourier  f x  F u  de uma função contínua de
uma variável f(x) em R é definida por :

 f x   F u    f(x)e j2πux dx, onde j   1

• Define-se a correspondente Transformada Inversa de Fourier como:

 F u   f x    F(u)ej2πux du
1

• A Transformada de Fourier  f x, y   F u, v de uma função contínua
de duas variáveis f(x,y) em R2 é definida por :
 f x, y   F u, v   



 
f(x, y)e j2π ux vy  dxdy
• Define-se a a correspondente Transformada Inversa de Fourier como:
 F u, v   f x, y   
1



 
RQF-Agostol/2004
F u, v e j2πux vy  dudv
Realce no Domínio da Freqüência
3
Analogia entre Transformada de Fourier e um Prisma
f(x)
F(M-1)
F(1)
F(0)
Transformada de Fourier
RQF-Agostol/2004
Realce no Domínio da Freqüência
4
Transformada de Fourier Discreta (DFT) de Uma Variável
• A DFT F(u) de uma função discreta de uma variável f(x), x=0, 1, 2, ... M-1
em R é dada pela equação :
componente
em freqüência
1
F u  
M
M 1
 f xe
 j 2ux / M
, para u  0,1, 2, ..., M
x 0
• Define-se a correspondente DFT Inversa como:
domínio da
freqüência
M 1
f x    F(u)ej2πux / M
u 0
• O conceito de Domínio da Freqüência decorre da fórmula de Euler:
e j  cos  j sen 
• Substituindo na primeira equação obtém-se:
1
F u  
M
RQF-Agostol/2004
M 1
 f(x)cos 2πux / M   j sen 2πux / M , para u  0,1,2,...,M 1
x 0
Realce no Domínio da Freqüência
5
Transformada de Fourier em Uma Dimensão
• f(x) será neste curso sempre uma função real.
• F(u) é em geral uma função complexa.
F (u)  Ru   jI u 
F u   F u  e j u 

2
 I u  
 u   tan 



R
u



F u   R u   I u 
2
1/ 2
1
• Espectro de Potência de f(x)
P (u )  F u   R 2 u   I 2 u 
2
Válido para as transformadas Contínuas e Discretas
RQF-Agostol/2004
Realce no Domínio da Freqüência
6
Transformada de Fourier Discreta (DFT) de Uma Variável
|F(0)|
AK/M |F(u)|
|F(1)|
Δx
∆u = 1
M ∆x
M amostras
|F(2)|
Δu
. . .
f(M-1)
f(x
0+[M-1]Δx)
f(x
f(2)
0+2Δx)
f(1)
f(x
0+Δx)
f(x
0)
f(0)
f(x)
. . .
M amostras
• f(x) para x=0,1,2,..., M representam M amostras igualmente espaçadas da
correspondente função contínua
• x0 é o primeiro ponto da seqüência e a primeira amostra é, portanto, f (x0)
• a próxima amostra é tomada Δx unidades adiante, isto é, f (x0+ Δx)
• a k-ésima amostra é, f (x0+ kΔx), e a última f (x0+ [M-1]Δx),

• para tornar independente da resolução faz-se f (k) = f(x0+ kΔx)
• análogo para F(u), sendo que u0 é necessariamente igual a 0 (zero)
RQF-Agostol/2004
Realce no Domínio da Freqüência
7
Transformada de Fourier Discreta Bidimensional
•As transformadas direta e inversa discreta em duas dimensões ficam:
1 M 1 N 1
F u, v  
f ( x, y)e  j2π ux / M vy / N 

MN x0 y 0
para u=0, 1, 2,...,M-1, v=0, 1, 2,...,N-1, e
f x , y  
M 1 N 1
 F
u 0 v 0
u ,v e
j2 π  ux / M  vy / N 
f(x,y) representa as amostras da função f(x0+xx,y0+yy) , para
x=0, 1, 2,...,M-1, e y=0, 1, 2,...,N-1.
.
Aplica-se o mesmo a F(u,v).
Os incrementos nas amostras em ambos os domínios estão relacionados por:
1
Δu 
MΔx
RQF-Agostol/2004
e
Realce no Domínio da Freqüência
Δv 
1
NΔ y
8
Transformada de Fourier Discreta Bidimensional
• f(x,y) será neste curso sempre uma função real de dimensão 2, tipicamente
uma imagem.
• F(u,v) é em geral uma função complexa.
F (u, v)  Ru, v  jI u, v
F u, v  F u, v e j u,v 


F u, v   R u, v   I u, v 
2
2
1/ 2
 I u, v  
 u, v   tan 



R
u
,
v


1
• Espectro de Potência de f(x)
P(u, v)  F u, v   R 2 u, v   I 2 u, v 
2
RQF-Agostol/2004
Realce no Domínio da Freqüência
9
Exemplo de Senos e Cossenos em Duas Dimensões
As figuras abaixo estão normalizada de modo a se ajustarem ao intervalo [0:1]
cos[2(0,y)]
cos[2 (3x,4y)]
RQF-Agostol/2004
cos[2 (x,0)]
sen[2 (5x,2y)]
sen[2 (0,y)]
sen[2 (x,0)]
cos[2 (3x,-5y)]
sen[2 (-3x,6y)]
Realce no Domínio da Freqüência
10
Propriedade da Periodicidade e Simetria do Conjugado
F u, v   F u  M , v  N   F *  u,v 
F u, v  F  u,v
Exemplo:
RQF-Agostol/2004
Realce no Domínio da Freqüência
11
Propriedade da Translação

 f x,y  1
x y
  F u  M / 2,v  N / 2

e
f x  M / 2, y  N / 2   F u,v 1
1
Exemplo:
Imagem Original
RQF-Agostol/2004
origem
Transformada
sem deslocamento
Realce no Domínio da Freqüência
u v

origem
Transformada com
origem no centro
da matriz
12
Propriedade da Rotação
•Introduzindo coordenadas polares
x  r cosθ y  r senθ u  ω cos
v  ω sen
f(x,y) e F(u,v) se tornam f(r,) e F(, )
Exemplo:
f r,θ θ 0   F , θ 0 
Imagem
original
Espectro
Imagem
rotacionada
RQF-Agostol/2004
Espectro
resultante
Realce no Domínio da Freqüência
13
Propriedades da Distributividade, Escala, Similaridade, Valor Médio
•Distributividade:
 f1 x, y   f 2 x, y    f1 x, y   f 2 x, y 
 f1 x, y  f 2 x, y    f1 x, y   f 2 x, y 
•Escala:
•Similaridade:
•Valor Médio:
af x, y   aFu, v 
1
f ax, by 
F u / a, v / b
ab
f  x, y  
1
F 0,0
N
depende da implementação
RQF-Agostol/2004
Realce no Domínio da Freqüência
14
Visualização da Transformada em 2D
• A transformada de Fourier Discreta bidimensional é freqüentemente
visualizada como uma função de intensidade. Para facilitar a visualização,
ao invés de se apresentar |F(u,v)|, o que se apresenta é a função:
D(u, v)  c log1  F (u, v) 
onde c é uma constante arbitrária.
Exemplo
|F(u,v)|
RQF-Agostol/2004
D(u,v)
Realce no Domínio da Freqüência
15
Filtragem em Freqüência – relações espaço × freqüência
Características:
• bordas a ±45º
• duas incrustações de óxido
imagem
transformada
imagem microscópica de um circuito integrado
RQF-Agostol/2004
Realce no Domínio da Freqüência
16
Filtragem no Domínio da Freqüência - procedimento
H(u,v)
(1)
f(x,y)
(3)
×
Transformada
de Fourier
F(u,v)
(2)
Transformada
Inversa de
Fourier
parte
real
(4)
g(x,y)
G(u,v)
domínio da
freqüência
domínio do espaço
RQF-Agostol/2004
Realce no Domínio da Freqüência
17
Filtros Básicos: “Notch”
0
H u, v   
1
RQF-Agostol/2004
se u, v   0,0
caso contrário
Realce no Domínio da Freqüência
18
Filtros Básicos: Passa-Baixas
Filtros Passa-Baixas (FPB) “borram” a imagem
Função de Transferência
RQF-Agostol/2004
Imagem produzida por FPB
Realce no Domínio da Freqüência
19
Filtros Básicos: Passa-Altas
Filtros Passa-Baixas (FPA) realçam detalhes da imagem.
Função de Transferência
RQF-Agostol/2004
Imagem produzida por FPA
Realce no Domínio da Freqüência
20
Filtragem Espacial – Convolução - Correlação
A convolução entre duas funções f(x,y) e h(x,y) de dimensões M×N é definida por
1 M 1 N 1
f ( x, y)  h( x, y) 
f (m, n)h( x  m, y  n)

MN m0 n0
•Exemplo:
h(-,-)
f(,)


RQF-Agostol/2004
f(f(
,,):h():h(-
,-,-))


Realce no Domínio da Freqüência
 y yy
xx 
x
21
Comparação
Correlação
Convolução
M 1
M 1
f x   wx    f m wx  m 
f x   wx    f mwx  m
m 0
 f mwx  m
m   ( M 1) / 2
f (0)=0; f (1)=0; f (2)=1; f (3)=0; f (4)=0
w(0)=1; w(1)=2; w(2)=3
f (0)=0; f (1)=0; f (2)=1; f (3)=0; f (4)=0
w(-1)=1; w(0)=2; w(1)=3
0 0 1 0 0 0 0
0 0 0 0 1 0 0
0 0 0 0 1 0 0 0 0
1 2 3
3 2 1
1 2 3
3 2 1 0 0
-1
( M 1) / 2
g x  
m 0
f (0)=0; f (1)=0; f (2)=1; f (3)=0; f (4)=0
w(0)=1; w(1)=2; w(2)=3
x -2
Filtragem Digital
0
1
2
3
4
0 0 1 2 3
5
6
a ordem importa!
eqüivale a tomar o simétrico
de w e fazer a convolução.
RQF-Agostol/2004
x -2
-1
0
1
2
3
4
0 3 2 1 0
5
6
x -2
-1
0
1
2
3
4
5
6
a ordem não importa!
a ordem importa!
eqüivale a deslocar w e fazer a
correlação, ou
a tomar o simétrico de w,
deslocar e fazer a correlação.
Realce no Domínio da Freqüência
22
Filtragem nos Dois Domínios - Teorema da Convolução
Sejam
F(u,v) a transformada de Fourier de f(x,y), isto é,
f x, y   F (u, v)
e H(u,v) a transformada de Fourier de h(x,y), isto é,
hx, y   H (u, v)
então vale a relação
f x, y   hx, y   F u, v H u, v 
f x, y hx, y   F u, v   H u, v 
O símbolo  indica que a expressão do lado esquerdo pode ser obtida pela
transforma inversa de Fourier da expressão do lado direito, e vice-versa.
A Função de Transferência H(u,v) usada na filtragem no domínio da
freqüência é (quase) a transformada de Fourier da máscara h(x,y)
usada nos filtros lineares espaciais.
RQF-Agostol/2004
Realce no Domínio da Freqüência
23
Mais sobre Periodicidade
O que se assume quanto aos valores de f(x+y) fora do intervalo coberto
pelas MN amostras disponíveis? Da definição da transformada inversa
M 1 N 1
decorre
f x, y    F u, v e j2 π ux / M vy / N 
u 0 v 0
M 1 N 1
f x  M , y    F u, v e j2πu  x  M / M vy / N  
u 0 v 0
=1, pois uZ
M 1 N 1
  F u, v e j2πu  x  M / M vy / N e j2πu  f x, y 
u 0 v 0
analogamente conclui-se que:
f x, y   f x  M , y   f x, y  N   f x  M , y  N 
A DFT assume implicitamente que f (x,y) é periódica, com período M e N.
F u, v  F u  M , v  F u, v  N   F u  M , v  N 
RQF-Agostol/2004
Realce no Domínio da Freqüência
24
Mais sobre Periodicidade
A convolução:
f (m)
h (m)
m
m
h (-m)
f (m)*h (m)
x
m
RQF-Agostol/2004
Realce no Domínio da Freqüência
x
25
Mais sobre Periodicidade
A convolução considerando a periodicidade implícita na DFT:
f (m)
h (m)
m
m
wraparound
error
h (-m)
f (m)*h (m)
x
m
RQF-Agostol/2004
Realce no Domínio da Freqüência
x
26
Mais sobre Periodicidade
Para contornar o problema acrescentam-se zeros (zero padding)
f (m)
h (m)
m
h (-m)
m
f (m)*h (m)
x
m
RQF-Agostol/2004
Realce no Domínio da Freqüência
x
27
“Zero padding” em 2 D
•
Para que o teorema da convolução seja válido, as funções no espaço
devem ter zeros “apendados” convenientemente.
Consideram-se f(x,y) e h(x,y) matrizes de dimensões AB e CD
respectivamente. As funções discretas são estendidas:
•
 f  x, y  0  x  A  1 e
f e  x, y   
A  x  M  1 ou
0
 h  x, y  0  x  C  1 e
he x, y   
C  x  M  1 ou
0
0  y  B 1
B  y  N 1
,e
0  y  D 1
D  y  N 1
onde M ≥ A+ C -1 e N ≥ B+ D -1
•
RQF-Agostol/2004
No MATLAB:
[A B]=size(f);
[C D]=size(h);
fe=zeros(A+C-1,B+D-1);
he=fe;
fe(1:A,1:B)=f;
he(1:C,1:D)=h;
Realce no Domínio da Freqüência
28
Correspondência Entre a Filtragem nos Dois Domínios
exemplo de “zero padding”
B
B
D
C
A
A
máscara h(x,y)
imagem filtrada
no espaço g(x,y)
imagem f(x,y)
B
D-1
D
B-1
B
C
A
A
A-1
C-1
imagem
estendida fe(x,y)
RQF-Agostol/2004
máscara
estendida he (x,y)
Realce no Domínio da Freqüência
imagem filtrada na
freqüência g(x,y) (miolo)
29
Filtragem no Domínio da Freqüência – procedimento completo
H(u,v)
f(x,y)
“ zero
padding ”
Transformada
de Fourier
F(u,v)
RQF-Agostol/2004
×
Transformada
Inversa de
Fourier
“ zero
unpadding”
g(x,y)
G(u,v)
Realce no Domínio da Freqüência
30
Filtros de Passa-Baixa Ideal (FPBI)
1 se Du, v   Do
H u, v   
, onde D(u, v)  u 2  v 2
0 se Du, v   Do

RQF-Agostol/2004
Realce no Domínio da Freqüência

1
2
31
Filtros de Passa-Baixa Ideal (FPBI) - Exemplo
imagem 500×500 pixels
Saída FPBI raio=5
Saída FPBI raio=15
Saída FPBI raio=30
Saída FPBI raio=80
Saída FPBI raio=230
RQF-Agostol/2004
Realce no Domínio da Freqüência
32
Filtros de Passa-Baixa de Butterworth(FPBB)
1
H u, v  
2n
1  Du, v  / D0 
grau do filtro
freqüência de corte
RQF-Agostol/2004
Realce no Domínio da Freqüência
33
Filtros de Passa-Baixa de Butterworth(FPBB) - Exemplo
imagem 500×500 pixels
Saída FPBB raio=5
Saída FPBB raio=15
Saída FPBB raio=30
Saída FPBB raio=80
Saída FPBB raio=230
RQF-Agostol/2004
Realce no Domínio da Freqüência
34
Filtros de Passa-Baixa Gaussiano(FPBG)
H u, v   e
D2 u ,v 
2
2
e
 D2 u ,v 
2 D02
abertura do filtro
RQF-Agostol/2004
Realce no Domínio da Freqüência
35
Filtros de Passa-Baixa Gaussiano (FPBG) - Exemplo
imagem 500×500 pixels
Saída FPBG raio=5
Saída FPBG raio=15
Saída FPBG raio=30
Saída FPBG raio=80
Saída FPBG raio=230
RQF-Agostol/2004
Realce no Domínio da Freqüência
36
Filtros de Passa-Alta
Hfpai=1-Hfpbi
Hfpab=1-Hfpbb
Hfpag=1-Hfpbg
RQF-Agostol/2004
Realce no Domínio da Freqüência
37
Filtros de Passa-Alta - Exemplos
D0 = 15
D0 = 30
D0 = 80
Passa-alta Ideal
Passa-alta Butterworth
Passa-alta Gaussiano
RQF-Agostol/2004
Realce no Domínio da Freqüência
38
Unsharp Masking, High Bosst e Ênfase de Altas Freqüências
Unsharp Masking :
Subtrai da imagem parte da saída de um filtro de suavização (passa-baixa)
fum(x,y) = f(x,y) – B fpb(x,y)  Hum(u,v) = 1 – B Hpb(u,v)
High Boost:
Acrescenta à imagem parte da saída de um filtro de nitidez (passa-alta)
fhb(x,y) = f(x,y) + B fpa(x,y)  Hhb(u,v) = 1 + A Hpa(u,v)
Ênfase de Altas Freqüências:
Combina a imagem com a saída de um filtro de nitidez (passa-alta)
faf(x,y) = a f(x,y) + b fpa(x,y)  Haf(u,v) = a + b Hpa(u,v)
RQF-Agostol/2004
Realce no Domínio da Freqüência
39
Filtro de Ênfase de Altas Freqüências - Exemplo
imagem de Raio-X
saída de um filtro de
ênfase de altas freqüências
RQF-Agostol/2004
saída de um FPAB
após equalização
de histograma
Realce no Domínio da Freqüência
40
Filtros Rejeita-Faixa
Ideal
1 se D(u, v)  D0  W / 2

H u, v   0 se D0  W / 2  D(u, v)  D0  W / 2
1 se D(u , v)  D  W / 2
0

H (u, v) 
Butterworth
1
 D(u, v)W 
1  2
2
 D (u, v)  D0 
2n
Gaussiano
H (u, v)  1  e
RQF-Agostol/2004
1  D 2 ( u ,v )  D02 
 

2  D ( u ,v )W 
2
Realce no Domínio da Freqüência
41
Filtros Rejeita-Faixa - Exemplo
imagem com ruído senoidal
filtro rejeita-faixa de Butterworth
RQF-Agostol/2004
espectro da imagem
resultado da filtragem
Realce no Domínio da Freqüência
42
Filtros Notch
Sendo D1 (u, v)  (u  u0 )  (v  v0 )
1
e D2 (u , v)  (u  u0 )  (v  v0 )
2
1
2
Ideal
0 D1 (u, v)  D0 ou D2 (u, v)  D0
H u, v   
caso contrário
1
Butterworth
H (u, v) 
1


D02
1 

D
(
u
,
v
)
D
(
u
,
v
)
2
 1

n
Gaussiano
H (u, v)  1  e
RQF-Agostol/2004
1  D ( u ,v ) D2 ( u ,v ) 
  1

2 
D02

Realce no Domínio da Freqüência
43
Exemplo de Filtragem em Freqüência no MATLAB
%--------------------------------------% Procedimento de Filtragem
%--------------------------------------% Carrega a imagem, seja lá de onde for
load imdemos
f=im2double(flower);
[M,N]=size(f);
% Cria as matrizes contendo as coordenadas u e v nas mesmas dimensões da imagem
[u,v]=freqspace( [2*M 2*N],'meshgrid');
% Define os parâmetros do filtro, no caso, de Batterworth rejeita-faixa
W= 0.1; n=1; D0=.7;
%--------------------------------------% Construção da Função de Transferencia
%--------------------------------------% Cria uma matriz que contem o D(u,v)
D=sqrt(u.^2 +v.^2);
% Monta a função de transferencia
H=1./(1+((D*W)./(D.^2-D0.^2)).^(2*n));
%--------------------------------------% Filtragem no Domínio da Freqüência
%--------------------------------------H=fftshift(H);
% coloca a origem no canto superior esquerdo de H
F=fft2(f,[2*M 2*N]);
% Calcula a transformada da imagem de saída apendando zeros
G=H.*F;
% Filtragem no domínio da freqüência
g=real(ifft2(G));
% Parte real da transformada inversa
g=g(1:M,1:N);
% Recorta a área correspondente a imagem original
%--------------------------------------RQF-Agostol/2004
Realce no Domínio da Freqüência
44
Exemplo de Filtragem em Freqüência no MATLAB - Visualização
%--------------------------------------% Visualizacao
%--------------------------------------figure(1)
surfl(fftshift(H));
shading interp;
colormap copper
% Abre nova janela
% Visualiza Função de Transferência em 3D
%
%
figure(2)
subplot(2,2,1);imshow(f);title('Imagem de Entrada')
subplot(2,2,2); imshow(real(g)); title('Imagem Filtrada')
% Abre nova janela
% Visualiza a Imagem de Entrada
% Visualiza a Imagem de Saída
% Prepara a Visualizacao da Transformada da Imagem de Entrada
Faux=log(1+(abs(F)));
Faux=Faux-min(Faux(:));
Faux=Faux./max(Faux(:));
subplot(2,2,3); imshow(fftshift(Faux));
title('Transformada da Imagem de Entrada')
% Visualiza Transformada da Imagem de Entrada
% Prepara a Visualizacao da Transformada da Imagem Filtrada
Gaux=log(1+(abs(G)));
Gaux=Gaux-min(Gaux(:));
Gaux=Gaux./max(Gaux(:));
subplot(2,2,4); imshow(fftshift(Gaux));
title('Transformada da Imagem Filtrada')
% Visualiza Transformada da Imagem de Entrada
%--------------------------------------RQF-Agostol/2004
Realce no Domínio da Freqüência
45
Realce de Imagens Coloridas
Converte-se a imagem de RGB para HSI, opera-se sobre uma das componentes, como
para tons de cinza, e converte-se de volta para RGB.
• Em geral sobre a componente INTENSIDADE; exemplo :
Highboost
• Cores mais “vivas” obtém-se multiplicando a SATURAÇÃO por um fator >1; exemplo:
S= 2  S
• Somar (subtrair) uma constante ao MATIZ “esquenta” (“esfria”) a imagem.
Se a constante for elevada, pode haver alteração significativa na aparência da imagem.
RQF-Agostol/2004
Realce no Domínio da Freqüência
46