Buscar

Atividade de Imagens Médicas

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.

Continue navegando