Técnicas de Proc. Imagens Aplicações Fourier 2D
Transformada de Fourier 2D Contínua Discreta
Exemplos de DFT/FFT 2D
Pulso / Sync 2D x y f(x,y)
Amplitude e Fase |F(u,v)| amplitude fase original 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); 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. Filtro alta 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); for i=1:13, NHsinus1(i)=0; NHsinus1(301-i)=0; 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
Filtro passa baixa:
Filtro passa alta
Filtro passa banda
Exemplo:
Passa baixa - resultado
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)));
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
Gaussiano x 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
Gaussian Filter
Filtro de Marr-Hildreth Prova biológica campos receptivos da retina de primatas origem da cibernética Livro -> Vision, David Marr