Buscar

Tarefa Transformações Intensidades

Prévia do material em texto

TRANSFORMAÇÕES INTENSIDADES
IMAGENS MÉDICAS 2
Profª. Ana Claudia Patrocínio
Maria Vitória Garcia - 11821EBI013
Uberlândia, 12 de Abril de 2023
http://www.feelt.ufu.br/pessoas/docentes/eduardo-lazaro-martins-naves
Primeiro teste - código original e parâmetros fornecidos
clc;
pkg load image;
im_in = imread('mamografia 7_2.jpg');
r = 0:255;
##
##%---------------------------------------------------------------------
% transformação de contraste por faixas (os r e s são para definir os intervalos das
faixas)
r0 = 0 ; s0 = 0;
r1 = 100 ; s1 = 80;
r2 = 170; s2 = 230;
r3 = 255; s3 = 255;
%primeira faixa
r = r0:r1;
a = ( s1 - s0 ) / ( r1 - r0 );
b = s0 - a * r0;
s ( 1 + r ) = a * r + b;
%segunda faixa
r = r1+1:r2;
a = ( s2 - s1 ) / ( r2 - r1 );
b = s1 - a * r1;
s ( 1 + r ) = a * r + b;
%terceira faixa
r = r2+1:r3;
a = ( s3 - s2 ) / ( r3 - r2 );
b = s2 - a * r2;
s ( 1 + r ) = a * r + b;
r = 0:255;
##
%---------------------------------------------------------------------
%negativo
%s( 1 + r ) = 255 - r;
%---------------------------------------------------------------------
%identidade
%s( 1 + r ) = r;
%---------------------------------------------------------------------
%logaritmica
%factor = 0.9;
%s( 1 + r ) = ( 255 / log( 1 + 255 / factor ) ) * log( 1 + r / factor );
1
%---------------------------------------------------------------------
%exponencial
%factor = 500;
%s( 1 + r ) = ( 255 / ( exp( 255 / factor ) - 1 ) ) * ( exp( r / factor ) - 1 );
%---------------------------------------------------------------------
%potencia
%factor = 0.5;
%s( 1 + r ) = ( 255 / ( 255 .^ factor ) ) * ( r .^ factor );
%==============================================================
=======
im_out = s ( im_in + 1);
%==============================================================
=======
mediaIm_in = mean(im_in(:))
mediaIm_out = mean(im_out (:))
dp_im_in= std(im_in(:))
dp_im_out = std(im_out(:))
%---------------------------------------------------------------------
%show imagem original
subplot( 1, 3, 1 ); imshow(uint8 ( im_in ) );
%---------------------------------------------------------------------
%show plot de funcao
subplot( 1, 3, 2 ); plot( r , s );
axis( [ 0, 255, 0, 255 ] );
xlabel('r')
ylabel('s(r)')
%---------------------------------------------------------------------
%show imagem processada
subplot( 1, 3, 3 ); imshow(uint8( im_out ) );
%---------------------------------------------------------------------
2
Valores médios - primeiro teste
Fig. 1 - Primeiro Teste.
Segundo teste - as faixas foram reduzidas em 50 unidades
clc;
pkg load image;
im_in = imread('mamografia 7_2.jpg');
r = 0:255;
##
##%---------------------------------------------------------------------
% transformação de contraste por faixas (os r e s são para definir os intervalos das
faixas)
r0 = 0 ; s0 = 0;
r1 = 50 ; s1 = 30;
r2 = 120; s2 = 180;
r3 = 205; s3 = 205;
3
%primeira faixa
r = r0:r1;
a = ( s1 - s0 ) / ( r1 - r0 );
b = s0 - a * r0;
s ( 1 + r ) = a * r + b;
%segunda faixa
r = r1+1:r2;
a = ( s2 - s1 ) / ( r2 - r1 );
b = s1 - a * r1;
s ( 1 + r ) = a * r + b;
%terceira faixa
r = r2+1:r3;
a = ( s3 - s2 ) / ( r3 - r2 );
b = s2 - a * r2;
s ( 1 + r ) = a * r + b;
r = 0:255;
##
%---------------------------------------------------------------------
%negativo
%s( 1 + r ) = 255 - r;
%---------------------------------------------------------------------
%identidade
%s( 1 + r ) = r;
%---------------------------------------------------------------------
%logaritmica
%factor = 0.9;
%s( 1 + r ) = ( 255 / log( 1 + 255 / factor ) ) * log( 1 + r / factor );
%---------------------------------------------------------------------
%exponencial
%factor = 500;
%s( 1 + r ) = ( 255 / ( exp( 255 / factor ) - 1 ) ) * ( exp( r / factor ) - 1 );
%---------------------------------------------------------------------
%potencia
%factor = 0.5;
%s( 1 + r ) = ( 255 / ( 255 .^ factor ) ) * ( r .^ factor );
%==============================================================
=======
im_out = s ( im_in + 1);
4
%==============================================================
=======
mediaIm_in = mean(im_in(:))
mediaIm_out = mean(im_out (:))
dp_im_in= std(im_in(:))
dp_im_out = std(im_out(:))
%---------------------------------------------------------------------
%show imagem original
subplot( 1, 3, 1 ); imshow(uint8 ( im_in ) );
%---------------------------------------------------------------------
%show plot de funcao
subplot( 1, 3, 2 ); plot( r , s );
axis( [ 0, 255, 0, 255 ] );
xlabel('r')
ylabel('s(r)')
%---------------------------------------------------------------------
%show imagem processada
subplot( 1, 3, 3 ); imshow(uint8( im_out ) );
%---------------------------------------------------------------------
Valores médios - segundo teste
5
Fig. 2 - Segundo Teste.
Terceiro teste - as faixas foram acrescidas em 50 unidades
clc;
pkg load image;
im_in = imread('mamografia 7_2.jpg');
r = 0:255;
##
##%---------------------------------------------------------------------
% transformação de contraste por faixas (os r e s são para definir os intervalos das
faixas)
r0 = 0 ; s0 = 0;
r1 = 150 ; s1 = 130;
r2 = 220; s2 = 255;
r3 = 255; s3 = 255;
%primeira faixa
r = r0:r1;
a = ( s1 - s0 ) / ( r1 - r0 );
b = s0 - a * r0;
s ( 1 + r ) = a * r + b;
%segunda faixa
r = r1+1:r2;
a = ( s2 - s1 ) / ( r2 - r1 );
b = s1 - a * r1;
s ( 1 + r ) = a * r + b;
6
%terceira faixa
r = r2+1:r3;
a = ( s3 - s2 ) / ( r3 - r2 );
b = s2 - a * r2;
s ( 1 + r ) = a * r + b;
r = 0:255;
##
%---------------------------------------------------------------------
%negativo
%s( 1 + r ) = 255 - r;
%---------------------------------------------------------------------
%identidade
%s( 1 + r ) = r;
%---------------------------------------------------------------------
%logaritmica
%factor = 0.9;
%s( 1 + r ) = ( 255 / log( 1 + 255 / factor ) ) * log( 1 + r / factor );
%---------------------------------------------------------------------
%exponencial
%factor = 500;
%s( 1 + r ) = ( 255 / ( exp( 255 / factor ) - 1 ) ) * ( exp( r / factor ) - 1 );
%---------------------------------------------------------------------
%potencia
%factor = 0.5;
%s( 1 + r ) = ( 255 / ( 255 .^ factor ) ) * ( r .^ factor );
%==============================================================
=======
im_out = s ( im_in + 1);
%==============================================================
=======
mediaIm_in = mean(im_in(:))
mediaIm_out = mean(im_out (:))
dp_im_in= std(im_in(:))
dp_im_out = std(im_out(:))
%---------------------------------------------------------------------
%show imagem original
subplot( 1, 3, 1 ); imshow(uint8 ( im_in ) );
7
%---------------------------------------------------------------------
%show plot de funcao
subplot( 1, 3, 2 ); plot( r , s );
axis( [ 0, 255, 0, 255 ] );
xlabel('r')
ylabel('s(r)')
%---------------------------------------------------------------------
%show imagem processada
subplot( 1, 3, 3 ); imshow(uint8( im_out ) );
%---------------------------------------------------------------------
Valores médios - terceiro teste
Fig. 3 - Terceiro Teste.
8
Discussão
Os valores de faixa começaram com os seguintes valores:
r0 = 0 ; s0 = 0;
r1 = 100 ; s1 = 80;
r2 = 170; s2 = 230;
r3 = 255; s3 = 255;
E a idealização foi fazer o segundo e terceiro teste diminuindo e
acrescentando 50 unidades, respectivamente a fim de ter um parâmetro ‘fixo’ a
modo de comparação. Sendo assim, o segundo teste, apresentou os seguintes
valores:
r0 = 0 ; s0 = 0;
r1 = 50 ; s1 = 30;
r2 = 120; s2 = 180;
r3 = 205; s3 = 205;
E o terceiro, com:
r0 = 0 ; s0 = 0;
r1 = 150 ; s1 = 130;
r2 = 220; s2 = 255;
r3 = 255; s3 = 255;
Nota-se, que para o terceiro teste, os valores ficaram limitados a 255, isto
porque estamos trabalhando com uma capacidade de 8 bits na qual pode-se ter os
valores de pixels variando de 0 a 255, nesse caso, de análise quantitativa pode não
ter sido interessante no tratamento da imagem pois aumentou o número de pixels
que passará a ter mesmotom da escala de cinza.
Quando compara-se os valores de média, tem-se os seguintes resultados.
primeiro teste segundo teste terceiro teste
Nota-se que a média referente im_out foram reduzindo a cada teste, no
segundo teste já era o esperado por estar reduzindo em 50 unidades pela escala, já
no terceiro, têm-se essa redução pois houve a concentração de pixels em 255 - o
número máximo permitido pela utilização da quantidade de 8 bits - diminuindo assim
a diferença dos números de pixels da imagem.
Agora para uma análise qualitativa, obteve-se os seguintes resultados das
imagens, nota-se que a faixa delimitada no primeiro teste não é interessante para
9
uma análise de possíveis lesões na mama pois não há muita diferenciação dos
tons.
Primeiro Teste.
Já para o segundo teste, a imagem ficou mais uniforme, dificultando também
identificar os tecidos, ductos e possíveis lesões, calcificações.
Segundo Teste.
10
Apesar de ter agrupado mais pixels para uma menor faixa de valor de cinza,
a imagem tornou-se interessante para destaque de diferenciação de tecidos,
ductos, lesões e coisas similares que possam estar presentes.
Terceiro Teste.
11

Continue navegando