Baixe o app para aproveitar ainda mais
Prévia do material em texto
IMAGENS MÉDICAS 2 Exercício 6 Engenharia Biomédica Mariana Soares Carneiro 11811EBI012 _______________________________________________ Uberlândia-MG Dezembro/2022 Usando o Octave, selecione 2 imagens diferentes e aplique sobre a imagem original: · Filtro passa baixa ideal com 2 diferentes frequências de cortes; · Filtro passa alta ideal relativo aos passa baixa feitos acima (PA = 1 - PB); · Plote as seguintes imagens: Imagem original; Espectro de Fourier da imagem original; Espectro de Fourier do filtro; Imagem resultante após a passagem do filtro Inicialmente foram escolhidas e carregadas duas imagens para a realização dos processamentos. Em todas as técnicas utilizadas, a primeira imagem será sempre a nomeada como ‘mama1.jpg’ e a segunda imagem será a ‘lua.jpg’. Em seguida, foi calculada a transformada de Fourier e seu deslocamento, além do módulo e do log para melhor visualização do espectro. Além disso, foi calculada a transformada inversa. clear; clc; pkg load image a = imread('mama1.jpg'); #a = imread('lua.jpg'); b = fft2(double(a)); #Fourier b = fftshift(b); # deslocamento c = abs(b); #módulo, pega só a magnitude c = 15*log(1+c); #log pra visualizar melhor o espectro c = uint8(c); # transformar para inteiro #------------------------------- Inversa --------------------------------------- i = ifft2(b); i = abs(i); i = abs(i); i = uint8(i); · Filtro Passa Baixa Ideal Em seguida, foram criados dois filtros do tipo passa baixa ideal, com frequências de corte distintas: 5 e 50. # ---------------------------------Filtro PBI1 ----------------------------------- [M,N] = size(a); #linhas e colunas da imagem original (M,N) fcorte1 = 5; filtropbi1 = zeros(M,N); #plotar cx1 = floor(M/2) +1; cy1 = floor(N/2) + 1; for x = 1:M for y = 1:N D = sqrt(power((x - cx1), 2) + power((y-cy1),2)); #distância euclidiana if D < fcorte1 filtropbi1(x,y) = 1; endif endfor endfor res = filtropbi1 .* b; #multiplicação do filtro pelo espectro centralizado G1 = ifftshift(res); #descentralização do espectro resultante da operação acima im_filtrada_PBI1 = uint8(real(ifft2(G1))); # transformada inversa no espectro resultante descentralizado #-------------------------------Filtro PBI2------------------------------------- fcorte2 = 50; filtropbi2 = zeros(M,N); #plotar cx2 = floor(M/2) +1; cy2 = floor(N/2) + 1; for x = 1:M for y = 1:N D = sqrt(power((x - cx2), 2) + power((y-cy2),2)); #distância euclidiana if D < fcorte2 filtropbi2(x,y) = 1; endif endfor endfor res = filtropbi2 .* b; #multiplicação do filtro pelo espectro centralizado G2 = ifftshift(res); #descentralização do espectro resultante da operação acima im_filtrada_PBI2 = uint8(real(ifft2(G2))); #transformada inversa no espectro resultante descentralizado # -----------------------------------plotando------------------------------------ figure(1); subplot(3,2,1); imshow(a) #original title('Original'); subplot(3,2,2); imshow(c); #espectro title('Espectro'); subplot(3,2,3) imshow(filtropbi1); title('Filtro PB f = 5'); subplot(3,2,4); imshow(im_filtrada_PBI1); title('Filtrada PB f = 5'); subplot(3,2,5) imshow(filtropbi2); title('Filtro PB f = 50'); subplot(3,2,6); imshow(im_filtrada_PBI2); title('Filtrada PB f = 50'); 1) Imagem ‘mama1.jpg’ Figura 1 – Resultado da filtragem passa baixa ideal com frequências distintas. Figura 2 – Histogramas das imagens original e filtradas. 2) Imagem ‘lua.jpg’ Figura 3 – Resultado da filtragem passa baixa ideal com frequências distintas. Figura 4 – Histogramas das imagens original e filtradas. · Filtro Passa Alta Ideal Por fim, foram criados dois filtros do tipo passa alta ideal, com frequências de corte distintas. #---------------------------Filtro Passa Alta ideal----------------------------- filtropai1 = 1 - filtropbi1; #Filtro Passa Alta ideal = 1 - filtro Passa Baixa Ideal GA = filtropai1 .* b; #multiplicação do filtro pelo espectro centralizado H = ifftshift(GA); #descentralização do espectro resultante da operação acima im_filtrada_PAI1 = uint8(real(ifft2(H))); # transformada inversa do espectro resultante filtropai2 = 1 - filtropbi2; # Filtro Passa Alta ideal = 1 - filtro Passa Baixa Ideal GA2 = filtropai2 .* b; #multiplicação do filtro pelo espectro centralizado H2 = ifftshift(GA2); #descentralização do espectro resultante da operação acima im_filtrada_PAI2 = uint8(real(ifft2(H2))); #transformada inversa do espectro resultante figure(2); subplot(2,2,1); imshow(filtropai1); title('Filtro Passa Alta Ideal 1'); subplot(2,2,2); imshow(im_filtrada_PAI1); title('Imagem Filtrada 1'); subplot(2,2,3); imshow(filtropai2); title('Filtro Passa Alta Ideal 2'); subplot(2,2,4); imshow(im_filtrada_PAI2); title('Imagem Filtrada 2'); 1) Imagem ‘mama1.jpg’ Figura 5 – Resultado da filtragem passa alta ideal com frequências distintas. Figura 6 – Histogramas das imagens original e filtradas. 2) Imagem ‘lua.jpg’ Figura 7 – Resultado da filtragem passa alta ideal com frequências distintas. Figura 8 – Histogramas das imagens original e filtradas. Discuta os resultados (Utilize as seguintes perguntas para ajudar na discussão): · O espectro de Fourier foi muito diferente das 2 imagens que você escolheu? Comente. · O que o aumento/diminuição da frequência de corte promove nas imagens? · Foi possível observar o efeito de ringing (ondulações) em alguma das suas imagens tanto com passa baixa quanto com passa alta? · Explique em quais situações seria útil, por exemplo, fazer uma filtragem no domínio da frequência, vez de uma filtragem no domínio espacial? As imagens ‘mama1.jpg’ e ‘lua.jpg’ apresentaram espectros de Fourier distintos. Enquanto que o espectro de Fourier da imagem ‘lua.jpg’ apresenta uma maior concentração de informações em baixa frequência. Já na imagem ‘mama1.jpg’, o espectro de Fourier também apresenta maior concentração de informações em baixa frequência além de apresentar linhas perpendiculares. O filtro passa baixa utilizado não atenua as frequências contidas dentro do círculo branco e atenua as informações presentes na região escura da imagem do filtro. Quanto maior é a frequência de corte, maior é o círculo claro e, assim, menor é a quantidade de informações “cortadas” na imagem filtrada. É possível observar este fato ao analisarmos as imagens do tipo “Filtrada PB” tanto para a ‘mama’.jpg’ quanto para a ‘lua.jpg”: quando f = 5, a imagem filtrada perde a nitidez, os contornos acentuados e as bordas pois mais informações são “cortadas” pelo filtro. Já com o filtro passa alta, as bordas foram melhor percebidas quando a frequência de corte era menor. Não consegui identificar o efeito de “ringing” em nenhuma das imagens. A Transformada de Fourier pode ser usada nas operações de filtragem para ajustar as modificações espaciais de uma imagem no domínio da frequência. Através deste tipo de filtragem, é possível atenuar ruídos que estão presentes a uma frequência específica.
Compartilhar