Buscar

Exercício Restauração - Maria Vitória (2)

Prévia do material em texto

RESTAURAÇÃO
IMAGENS MÉDICAS 2
Profª. Ana Claudia Patrocínio
Maria Vitória Garcia - 11821EBI013
Uberlândia, 29 de Maio de 2023
http://www.feelt.ufu.br/pessoas/docentes/eduardo-lazaro-martins-naves
Passo 1: Utilizando o ImageJ
Imagem Ruidosa 1
Imagem Ruidosa 2
Imagem Ruidosa 3
1
Passo 2: Testagem dos Filtros
Imagem Ruidosa 1
Código
clear all;
clc;
pkg load image;
im_in = imread('Imagem Simulada - gaussiano.jpg');
im_orig = imread('Imagem Simulada_8bits.jpg');
% Filtro de Média
filtro_media = fspecial('average', [3 3]);
im_media = imfilter(im_in, filtro_media);
% Filtro de Mediana
im_mediana = medfilt2(im_in);
% Filtro de Mínimo (substituído por ordfilt2)
filtro_minimo = ones(3, 3);
im_minimo = ordfilt2(im_in, 1, filtro_minimo);
% Subtração e cálculo da média
subtracao_media = double(im_orig) - double(im_media);
subtracao_mediana = double(im_orig) - double(im_mediana);
subtracao_minimo = double(im_orig) - double(im_minimo);
media_subtracao_media = mean(subtracao_media(:));
media_subtracao_mediana = mean(subtracao_mediana(:));
media_subtracao_minimo = mean(subtracao_minimo(:));
% Cálculo do PSNR em relação à imagem original
psnr_media_orig = psnr(im_orig, im_media);
psnr_mediana_orig = psnr(im_orig, im_mediana);
psnr_minimo_orig = psnr(im_orig, im_minimo);
% Cálculo do PSNR em relação à imagem ruidosa
psnr_media_ruidosa = psnr(im_in, im_media);
psnr_mediana_ruidosa = psnr(im_in, im_mediana);
psnr_minimo_ruidosa = psnr(im_in, im_minimo);
% Plota as imagens
figure;
subplot(2,3,1);
imshow(im_in);
title('Imagem Ruidosa');
subplot(2,3,2);
2
imshow(im_orig);
title('Imagem Original');
subplot(2,3,4);
imshow(im_media);
title('Filtro de Média');
subplot(2,3,5);
imshow(im_mediana);
title('Filtro de Mediana');
subplot(2,3,6);
imshow(im_minimo);
title('Filtro de Mínimo');
Resultados
3
Imagem Ruidosa 2
Código
clear all;
clc;
pkg load image;
im_in = imread('Imagem Simulada - ruidosa.jpg');
im_orig = imread('Imagem Simulada_8bits.jpg');
% Filtro de Média
filtro_media = fspecial('average', [3 3]);
im_media = imfilter(im_in, filtro_media);
% Filtro de Mediana
im_mediana = medfilt2(im_in);
% Filtro de Mínimo (substituído por ordfilt2)
filtro_minimo = ones(3, 3);
im_minimo = ordfilt2(im_in, 1, filtro_minimo);
% Subtração e cálculo da média
subtracao_media = double(im_orig) - double(im_media);
subtracao_mediana = double(im_orig) - double(im_mediana);
subtracao_minimo = double(im_orig) - double(im_minimo);
media_subtracao_media = mean(subtracao_media(:));
media_subtracao_mediana = mean(subtracao_mediana(:));
media_subtracao_minimo = mean(subtracao_minimo(:));
% Cálculo do PSNR em relação à imagem original
psnr_media_orig = psnr(im_orig, im_media);
psnr_mediana_orig = psnr(im_orig, im_mediana);
psnr_minimo_orig = psnr(im_orig, im_minimo);
% Cálculo do PSNR em relação à imagem ruidosa
psnr_media_ruidosa = psnr(im_in, im_media);
psnr_mediana_ruidosa = psnr(im_in, im_mediana);
psnr_minimo_ruidosa = psnr(im_in, im_minimo);
% Cálculo da média do resultado da subtração
media_resultado_subtracao = mean(subtracao_media(:));
4
% Plota as imagens
figure;
subplot(2,3,1);
imshow(im_in);
title('Imagem Ruidosa');
subplot(2,3,2);
imshow(im_orig);
title('Imagem Original');
subplot(2,3,4);
imshow(im_media);
title('Filtro de Média');
subplot(2,3,5);
imshow(im_mediana);
title('Filtro de Mediana');
subplot(2,3,6);
imshow(im_minimo);
title('Filtro de Mínimo');
Resultados
5
Imagem Ruidosa 3
Código
clear all;
clc;
pkg load image;
im_in = imread('Imagem Simulada - sal e pimenta.jpg');
im_orig = imread('Imagem Simulada_8bits.jpg');
% Filtro de Média
filtro_media = fspecial('average', [3 3]);
im_media = imfilter(im_in, filtro_media);
% Filtro de Mediana
im_mediana = medfilt2(im_in);
% Filtro de Mínimo (substituído por ordfilt2)
filtro_minimo = ones(3, 3);
im_minimo = ordfilt2(im_in, 1, filtro_minimo);
% Subtração e cálculo da média
subtracao_media = double(im_orig) - double(im_media);
subtracao_mediana = double(im_orig) - double(im_mediana);
subtracao_minimo = double(im_orig) - double(im_minimo);
media_subtracao_media = mean(subtracao_media(:));
media_subtracao_mediana = mean(subtracao_mediana(:));
media_subtracao_minimo = mean(subtracao_minimo(:));
% Cálculo do PSNR em relação à imagem original
psnr_media_orig = psnr(im_orig, im_media);
6
psnr_mediana_orig = psnr(im_orig, im_mediana);
psnr_minimo_orig = psnr(im_orig, im_minimo);
% Cálculo do PSNR em relação à imagem ruidosa
psnr_media_ruidosa = psnr(im_in, im_media);
psnr_mediana_ruidosa = psnr(im_in, im_mediana);
psnr_minimo_ruidosa = psnr(im_in, im_minimo);
% Cálculo da média do resultado da subtração
media_resultado_subtracao = mean(subtracao_media(:));
% Plota as imagens
figure;
subplot(2,3,1);
imshow(im_in);
title('Imagem Ruidosa');
subplot(2,3,2);
imshow(im_orig);
title('Imagem Original');
subplot(2,3,4);
imshow(im_media);
title('Filtro de Média');
subplot(2,3,5);
imshow(im_mediana);
title('Filtro de Mediana');
subplot(2,3,6);
imshow(im_minimo);
title('Filtro de Mínimo');
Resultados
7
Discussão
PSNR
Imagem Ruidosa 1 Imagem Ruidosa 2 Imagem Ruidosa 3
psnr_med_orig 22.801 19.262 25.050
psnr_med_ruidosa 23.146 20.318 17.359
psnr_mediana_orig 23.470 19.804 43.158
8
psnr_mediana_ruidosa 22.830 20.000 16.745
psnr_minimo_orig 21.786 19.079 20.111
psnr_minimo_ruidosa 18.216 15.351 15.283
Levando em consideração que o PSNR é uma métrica amplamente utilizada
para avaliar a qualidade de uma imagem em relação a uma imagem de referência.
O psnr compara as imagens original e as processadas - no caso adicionada a ruídos
e posteriormente filtragem. Quanto maior o valor de PSNR, maior é a semelhança
entre as imagens, indicando assim uma menor perda de informação, detalhamento
e distorção.
Sendo assim, na med_original a Imagem Ruidosa 3 é a que menos se
distorceu entre elas, porém estão todas praticamente na mesma casa decimal o que
mantém longe da realidade da original apresentada. Os valores, exceto a
pnsr_media_orig da Imagem Ruidosa 3, se mantiveram na mesma região e longe de
atingir uma maior fidelidade à imagem original. E isso também é possível perceber
na análise visual quando é possível identificar os borramentos, pontilhados
causados pelos ruídos entre outros.
Média
Imagem Ruidosa 1 Imagem Ruidosa 2 Imagem Ruidosa 3
media_resultado_subtracao -15.168 -23.051 -6.2382
media_subtracao_media -15.168 -23.051 -6.2382
media_resultado_mediana -13.350 -20.737 -0.4840
media_resultado_minimo 7.7713 9.3747 7.1387
A média mostra as diferenças entre os pixels das imagens originais e as
imagens filtradas, podendo assim analisar a eficácia dos filtros. Ao calcular a média
dessas diferenças, é possível ter uma ideia do nível médio de alteração entre as
imagens antes e depois da aplicação dos filtros. Valores mais baixos indicam uma
menor diferença média, o que geralmente é desejável para uma boa filtragem de
imagens.
A partir disso e uma análise visual e quantitativa, identificamos que em todos
os parâmetros a imagem ruidosa 3 foi a que mais teve benefícios em relação a sua
filtragem, apresentando valores de média mais baixos quando comparada as outras
duas imagens.
9

Continue navegando