570 likes | 704 Views
Técnicas de Proc. Imagens. Aplicações Fourier 2D. Transformada de Fourier 2D. Contínua Discreta. Exemplos de DFT/FFT 2D. f(x,y). y. x. Pulso / Sync 2D. Amplitude e Fase. |F(u,v)|. amplitude. fase. original. F(u,v). Rotação. Combinação Linear.
E N D
Técnicas de Proc. Imagens Aplicações Fourier 2D
Transformada de Fourier 2D • Contínua • Discreta
f(x,y) y x Pulso / Sync 2D
Amplitude e Fase |F(u,v)| amplitude fase original F(u,v)
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
Matlab NHsinus1=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 D(u,v) D0 v=N/2 v=0 v=-N/2
Matlab %%%%%%% espectro de a Ha=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)));
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);
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);
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
ideal butterworth gaussian
Gaussiana • Importante filtro em FT • Análise multiescala • Filtros derivativos