Baixe o app para aproveitar ainda mais
Prévia do material em texto
FILTRO ESPACIAL SUAVIZAÇÃO IMAGENS MÉDICAS 2 Profª. Ana Claudia Patrocínio Maria Vitória Garcia - 11821EBI013 Uberlândia, 28 de Abril de 2023 http://www.feelt.ufu.br/pessoas/docentes/eduardo-lazaro-martins-naves Filtro média - Primeira imagem Código clc; pkg load image; img = imread('mamografia 7_2.jpg'); % Filtro de média com kernel de 3x3 kernel_size = 3; h = fspecial('average', [kernel_size kernel_size]); filtered_img1 = imfilter(img, h); % Filtro de média com kernel de 7x7 kernel_size = 7; h = fspecial('average', [kernel_size kernel_size]); filtered_img2 = imfilter(img, h); % Filtro de média com kernel de 15x15 kernel_size = 15; h = fspecial('average', [kernel_size kernel_size]); filtered_img3 = imfilter(img, h); % Plot das imagens figure; subplot(2, 2, 1); imshow(img); title('Imagem original'); subplot(2, 2, 2); imshow(filtered_img1, []); title('Filtro de média 3x3'); subplot(2, 2, 3); imshow(filtered_img2, []); title('Filtro de média 7x7'); subplot(2, 2, 4); imshow(filtered_img3, []); title('Filtro de média 15x15'); % Estatística da imamgem original disp(['Média da imagem original: ' num2str(mean(img(:)))]); disp(['Desvio padrão da imagem original: ' num2str(std(double(img(:))))]); disp(['Variância da imagem original: ' num2str(var(double(img(:))))]); % Histogramas figure; subplot(2,2,1); imhist(img); title('Histograma da Imagem Original'); subplot(2,2,2); imhist(filtered_img1); 1 title('Histograma Filtro do 3x3'); subplot(2,2,3); imhist(filtered_img2); title('Histograma Filtro do 7x7'); subplot(2,2,4); imhist(filtered_img3); title('Histograma Filtro do 15x15'); Resultados 2 3 4 Filtro média - Segunda imagem Código clc; pkg load image; img = imread('mamografia 9_2.tif'); % Filtro de média com kernel de 3x3 kernel_size = 3; h = fspecial('average', [kernel_size kernel_size]); filtered_img1 = imfilter(img, h); % Filtro de média com kernel de 7x7 kernel_size = 7; h = fspecial('average', [kernel_size kernel_size]); filtered_img2 = imfilter(img, h); % Filtro de média com kernel de 15x15 kernel_size = 15; h = fspecial('average', [kernel_size kernel_size]); filtered_img3 = imfilter(img, h); % Plot das imagens figure; subplot(2, 2, 1); imshow(img); title('Imagem original'); subplot(2, 2, 2); imshow(filtered_img1, []); title('Filtro de média 3x3'); subplot(2, 2, 3); 5 imshow(filtered_img2, []); title('Filtro de média 7x7'); subplot(2, 2, 4); imshow(filtered_img3, []); title('Filtro de média 15x15'); % Estatística da imamgem original disp(['Média da imagem original: ' num2str(mean(img(:)))]); disp(['Desvio padrão da imagem original: ' num2str(std(double(img(:))))]); disp(['Variância da imagem original: ' num2str(var(double(img(:))))]); % Histogramas figure; subplot(2,2,1); imhist(img); title('Histograma da Imagem Original'); subplot(2,2,2); imhist(filtered_img1); title('Histograma Filtro do 3x3'); subplot(2,2,3); imhist(filtered_img2); title('Histograma Filtro do 7x7'); subplot(2,2,4); imhist(filtered_img3); title('Histograma Filtro do 15x15'); Resultados 6 7 8 Filtro mediana - Primeira imagem Código pkg load image img = imread('mamografia 7_2.jpg'); % Filtro de média com kernel de 3x3 filtered_img1 = medfilt2(img, [3 3]); % Filtro de média com kernel de 7x7 filtered_img2 = medfilt2(img, [7 7]); 9 % Filtro de média com kernel de 15x15 filtered_img3 = medfilt2(img, [15 15]); % Plot das imagens figure; subplot(2, 2, 1); imshow(img); title('Imagem original'); subplot(2, 2, 2); imshow(filtered_img1, []); title('Filtro de mediana 3x3'); subplot(2, 2, 3); imshow(filtered_img2, []); title('Filtro de mediana 7x7'); subplot(2, 2, 4); imshow(filtered_img3, []); title('Filtro de mediana 15x15'); % Estatística da imamgem original disp(['Média da imagem original: ' num2str(mean(img(:)))]); disp(['Desvio padrão da imagem original: ' num2str(std(double(img(:))))]); disp(['Variância da imagem original: ' num2str(var(double(img(:))))]); disp(['Moda da imagem original: ' num2str(mode(img(:)))]); disp(' ') % Estatística do filtro 3x3 disp(['Média da imagem filtrada 3x3: ' num2str(mean(filtered_img1(:)))]); disp(['Desvio padrão da imagem filtrada 3x3: ' num2str(std(double(filtered_img1(:))))]); disp(['Variância da imagem filtrada 3x3: ' num2str(var(double(filtered_img1(:))))]); disp(['Moda da imagem filtrada 3x3: ' num2str(mode(filtered_img1(:)))]); disp(' ') % Estatística do filtro 7x7 disp(['Média da imagem filtrada 7x7: ' num2str(mean(filtered_img2(:)))]); disp(['Desvio padrão da imagem filtrada 7x7: ' num2str(std(double(filtered_img2(:))))]); disp(['Variância da imagem filtrada 7x7: ' num2str(var(double(filtered_img2(:))))]); disp(['Moda da imagem filtrada 7x7: ' num2str(mode(filtered_img2(:)))]); disp(' ') % Estatística do filtro 15x15 disp(['Média da imagem filtrada 15x15: ' num2str(mean(filtered_img3(:)))]); disp(['Desvio padrão da imagem filtrada 15x15: ' num2str(std(double(filtered_img3(:))))]); disp(['Variância da imagem filtrada 15x15: ' num2str(var(double(filtered_img3(:))))]); disp(['Moda da imagem filtrada 15x15: ' num2str(mode(filtered_img3(:)))]); disp(' ') 10 % Histogramas figure; subplot(2,2,1); imhist(img); title('Histograma da Imagem Original'); subplot(2,2,2); imhist(filtered_img1); title('Histograma Filtro do 3x3'); subplot(2,2,3); imhist(filtered_img2); title('Histograma Filtro do 7x7'); subplot(2,2,4); imhist(filtered_img3); title('Histograma Filtro do 15x15'); Resultados 11 12 13 Filtro mediana - Segunda imagem Código clc; pkg load image; img = imread('mamografia 9_2.tif'); % Filtro de média com kernel de 3x3 filtered_img1 = medfilt2(img, [3 3]); % Filtro de média com kernel de 7x7 filtered_img2 = medfilt2(img, [7 7]); % Filtro de média com kernel de 15x15 filtered_img3 = medfilt2(img, [15 15]); % Plot das imagens figure; subplot(2, 2, 1); imshow(img); title('Imagem original'); subplot(2, 2, 2); imshow(filtered_img1, []); title('Filtro de mediana 3x3'); subplot(2, 2, 3); imshow(filtered_img2, []); title('Filtro de mediana 7x7'); subplot(2, 2, 4); imshow(filtered_img3, []); title('Filtro de mediana 15x15'); 14 % Estatística da imamgem original disp(['Média da imagem original: ' num2str(mean(img(:)))]); disp(['Desvio padrão da imagem original: ' num2str(std(double(img(:))))]); disp(['Variância da imagem original: ' num2str(var(double(img(:))))]); disp(['Moda da imagem original: ' num2str(mode(img(:)))]); disp(' ') % Estatística do filtro 3x3 disp(['Média da imagem filtrada 3x3: ' num2str(mean(filtered_img1(:)))]); disp(['Desvio padrão da imagem filtrada 3x3: ' num2str(std(double(filtered_img1(:))))]); disp(['Variância da imagem filtrada 3x3: ' num2str(var(double(filtered_img1(:))))]); disp(['Moda da imagem filtrada 3x3: ' num2str(mode(filtered_img1(:)))]); disp(' ') % Estatística do filtro 7x7 disp(['Média da imagem filtrada 7x7: ' num2str(mean(filtered_img2(:)))]); disp(['Desvio padrão da imagem filtrada 7x7: ' num2str(std(double(filtered_img2(:))))]); disp(['Variância da imagem filtrada 7x7: ' num2str(var(double(filtered_img2(:))))]); disp(['Moda da imagem filtrada 7x7: ' num2str(mode(filtered_img2(:)))]); disp(' ') % Estatística do filtro 15x15 disp(['Média da imagem filtrada 15x15: ' num2str(mean(filtered_img3(:)))]); disp(['Desvio padrão da imagem filtrada 15x15: ' num2str(std(double(filtered_img3(:))))]); disp(['Variância da imagem filtrada 15x15: ' num2str(var(double(filtered_img3(:))))]); disp(['Moda da imagem filtrada 15x15: ' num2str(mode(filtered_img3(:)))]); disp(' ') % Histogramas figure; subplot(2,2,1); imhist(img); title('Histograma da Imagem Original'); subplot(2,2,2); imhist(filtered_img1); title('Histograma Filtro do 3x3'); subplot(2,2,3); imhist(filtered_img2); title('Histograma Filtro do 7x7'); subplot(2,2,4); imhist(filtered_img3); title('Histograma Filtro do 15x15'); Resultados 15 16 17 Discussão ❖ Qual kernel, na sua opinião, obteve melhores resultados de filtragem? Não dá para dizer qual dos filtros de tamanho diferente (3x3, 7x7, 15x15) é melhor só olhando para as imagensresultantes. Para escolher o melhor filtro, é preciso analisar as imagens e ver qual é o objetivo da filtragem. Por exemplo, se o objetivo for remover ruídos de alta frequência, o filtro de 15x15 pode ser melhor. Já se o objetivo for manter as bordas e detalhes nítidos, o filtro de 3x3 pode ser mais apropriado. A escolha do melhor filtro depende do tipo de imagem e do objetivo da filtragem. ❖ A mudança de desvio padrão do filtro mediana alterou muito o resultado visual da imagem? E no resultado quantitativo, a alteração de desvio 18 padrão do filtro mediana alterou enquanto os valores de média, moda, e variância das imagens resultantes filtradas? Em ambas as imagens não obtiveram resultados visuais tão significativos nem quantitativos analisados pelos histogramas, apenas sofreu um maior borramento das estruturas de acordo com que se tinha o aumento da escala dos filtros, isso talvez seja devido a composição da imagem e as estruturas presentes na mesma. ❖ Além dessas perguntas, sinta-se livre para comentar outros possíveis resultados. Talvez não sejam as melhores técnicas para imagens de mamografia como se apresenta dependendo do objetivo que se deseja obter. 19
Compartilhar