“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