“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 xe
j 2ux / 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) Ru 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 x0 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+xx,y0+yy) , 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) Ru, 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 aFu, 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 log1 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 m0 n0
•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 wx f m wx m
f x wx f mwx m
m 0
f mwx 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 é,
hx, y H (u, v)
então vale a relação
f x, y hx, y F u, v H u, v
f x, y hx, 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 MN 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 uZ
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 AB e CD
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 Du, v Do
H u, v
, onde D(u, v) u 2 v 2
0 se Du, 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 Du, 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