Técnicas de Proc. Imagens Aplicações Fourier 2D. Transformada de Fourier 2D n Contínua n...

Preview:

Citation preview

Técnicas de Proc. Imagens

Aplicações Fourier 2D

Transformada de Fourier 2D

Contínua

Discreta

Exemplos de DFT/FFT 2D

2

4

6

8

10

12

14

16Spectra

Pulso / Sync 2D

xy

f(x,y)

Amplitude e Fase

original

amplitude

fase

|F(u,v)|

F(u,v)

Rotação

Combinação Linear

Relação de freqüência espaço/espectro

Alguns pares...

Aplicações da FT em imagens:

Filtros Gaussiana Marr-Hildreth Convolução Descritores de fourier

Filtrando sinais 1D

Exemplo de filtro para onda 1D

sinus1= 2*sin(nn/50+1); sinus2= 5*sin(nn/20+1); sinus3= sin(nn/3+1); sinus=sinus1+sinus2+sinus3;

Composição do sinal

sinal1

sinal2

sinal3

Sinal=1+2+3

Transformada de Fourier

f(t)

f(u)

f(t)

Matlab

nn=1:300;sinus1= 2*sin(nn/50+1);sinus2= 5*sin(nn/20+1);sinus3= sin(nn/3+1);sinus=sinus1+sinus2+sinus3;Hsinus= fft(sinus);figure(1)subplot (3,1,1), plot(nn,sinus);subplot (3,1,2), plot(nn,real(fftshift(Hsinus)),'r-',nn,imag(fftshift(Hsinus)),'g-');Fsinus= ifft(Hsinus);subplot (3,1,3), plot(nn,Fsinus);

Filtrando no espectro

Filtro baixa freq. F(u) = 0 | u = 1..13 | u = 288..300

Filtro alta freq.

F(u) = 0 | u = 5..296

MatlabNHsinus1=Hsinus;NHsinus2=Hsinus;for i=1:300, NHsinus2(i)=0;end;for i=1:4, NHsinus2(i)=Hsinus(i); NHsinus2(301-i)=Hsinus(301-i);end;for i=1:13, NHsinus1(i)=0; NHsinus1(301-i)=0;end;subplot(3,2,3), plot(nn,real(NHsinus1),'r-',nn,imag(NHsinus1),'g-');subplot(3,2,4), plot(nn,ifft(NHsinus1));subplot(3,2,5), plot(nn,real(NHsinus2),'r-',nn,imag(NHsinus2),'g-');subplot(3,2,6), plot(nn,ifft(NHsinus2));

Filtrando em 2D

Distribuição de freqüências em 2D

u=-N/2 u=0 u=N/2

v=N

/2

v

=0

v=-

N/2

D0

D(u,v)

Filtro passa baixa:

Filtro passa alta

Filtro passa banda

Exemplo:

Passa baixa - resultado

Matlab%%%%%%% espectro de aHa=fft2(a);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Filtragem passa baixa%%%%%%%%%%%%%%%%%%%%%%%%%%%%Hpb=fftshift(fftshift(Ha).*circ);pb=ifft2(Hpb);%figure (1)subplot (1,2,1), mesh (real(pb));subplot (1,2,2), image(abs(real(pb)));

Passa alta - resultado

Matlab

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Filtragem passa alta%%%%%%%%%%%%%%%%%%%%%%%%%%%%Hpa=fftshift(fftshift(Ha).*icirc);pa=ifft2(Hpa);%figure (2)subplot (1,2,1), mesh (real(pa));subplot (1,2,2), image(abs(real(pa))*10);

Passa banda - resultado

Matlab

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Filtragem passa freq.%%%%%%%%%%%%%%%%%%%%%%%%%%%%Hpf=fftshift(fftshift(Ha).*anel);pf=ifft2(Hpf);%figure (3)subplot (1,2,1), mesh (real(pf));subplot (1,2,2), image(abs(real(pf))*10);

Efeito oscilatório

Gaussian Filter

2

22

2 2exp

21,

yxyxG

2

22

2 211exp

21,

kjkijiH

array 1212 is , where kkjiH

Gaussiano x butterworth

Butterworth– corte mais abrupto– ainda apresenta ruído oscilatório

Gaussiano– corte suave - maior blur– não apresenta ruído oscilatório

Comparação passa baixa

ideal

butterworth

gaussian

Exemplo quadrado:

Passa baixa

Passa alta

Filtrando Ruído

Gaussiana

Importante filtro em FT

Análise multiescala

Filtros derivativos

Gaussian Filter

2

22

2 2exp

21,

yxyxG

2

22

2 211exp

21,

kjkijiH

array 1212 is , where kkjiH

Filtro de Marr-Hildreth

Prova biológica– campos receptivos da retina de primatas

origem da cibernética

Livro -> Vision, David Marr

Marr-Hildreth2

22

22

22

32 2

21

yx

eyxG

0.0008 0.0066 0.0215 0.031 0.0215 0.0066 0.00080.0066 0.0438 0.0982 0.108 0.0982 0.0438 0.00660.0215 0.0982 0 -0.242 0 0.0982 0.0215

0.031 0.108 -0.242 -0.7979 -0.242 0.108 0.0310.0215 0.0982 0 -0.242 0 0.0982 0.02150.0066 0.0438 0.0982 0.108 0.0982 0.0438 0.00660.0008 0.0066 0.0215 0.031 0.0215 0.0066 0.0008

X

Y

Marr-Hildreth

Zero CrossingsDetection

I ImageG2*

IG *2 Edge Image

IG *2 Zero Crossings

Convolução

A propriedade mais importante da FT Muitos filtros digitais são

implementados em FT através desta propriedade

Conv. No espaço versus freqüência– Depende do tamanho da máscara o custo

computacional

h(t) H( f ) e g(t) G( f )

(h*g)(t) H( f )G( f )

Recommended