7
Aula PDI – 25/02/2013 – UFRN/DEE Prof. José Alfredo F. Costa A = imread(‘nome_imagem.formato’): Comando para o MATLAB ler uma imagem axis square image(A) ou imagesc(A) : Exibe a imagem colormap gray interp2( ) : interpolar a matriz -> serve para aumento da imagem; exemplo: A_aumentada = interp2(A) hist( ): histograma floor( ): arredonda o valor sempre para o inteiro antecessor round( ): arredonda para um valor inteiro mean( ): calcula a média c = A(1:2:end, 1:2:end); - Reduz ¼ da resolução da imagem, pois reduz ½ da quantidade de linhas e ½ da quantidade de colunas. ‘A’ é a imagem original. As medidas de qualidade entre uma imagem original e a restaurada são a função do erro quadrado médio (MSE) e a relação sinal / ruído (PSNR), dadas por: (5) (6) onde I(x, y) representa a imagem original, Î(x, y) é a imagem reconstruída e 255 é o valor máximo para o pixel. Para diferentes imagens e diferentes algoritmos (abordagens), fazer tabelas como:

Algumas Anotações da Aula de PDI - 25.Fev.13

Embed Size (px)

Citation preview

Page 1: Algumas Anotações da Aula de PDI - 25.Fev.13

Aula PDI – 25/02/2013 – UFRN/DEE

Prof. José Alfredo F. Costa

A = imread(‘nome_imagem.formato’): Comando para o MATLAB ler uma imagem axis square image(A) ou imagesc(A) : Exibe a imagem colormap gray interp2( ) : interpolar a matriz -> serve para aumento da imagem; exemplo:

A_aumentada = interp2(A) hist( ): histograma floor( ): arredonda o valor sempre para o inteiro antecessor round( ): arredonda para um valor inteiro mean( ): calcula a média

c = A(1:2:end, 1:2:end);- Reduz ¼ da resolução da imagem, pois reduz ½ da quantidade de linhas e ½ da quantidade de colunas. ‘A’ é a imagem original.

As medidas de qualidade entre uma imagem original e a restaurada são a função do erro quadrado médio (MSE) e a relação sinal / ruído (PSNR), dadas por:

(5)

(6)

onde I(x, y) representa a imagem original, Î(x, y) é a imagem reconstruída e 255 é o valor máximo para o pixel.

Para diferentes imagens e diferentes algoritmos (abordagens), fazer tabelas como:

TABELA 1A análise quantitativa da imagem reconstruída do Lena

MSE PSNRMétodo 1Método 2

…Método n

Page 2: Algumas Anotações da Aula de PDI - 25.Fev.13

X e Y são imagens.

No MATLAB, fazemos: MSE= 1

∏ (¿(img¿))∗(∑ (∑ ( (X−Y ) .2) ))

----------------------

Alguns comandos do ‘diary’, da sala de aula.

a = imread('jackson5b.tiff');b = dobra(a);figure; imagesc(a); axis square; colormap grayfigure; imagesc(b); axis square; colormap grayfigure; subplot(1,2,1); imagesc(a); axis square; colormap graysubplot(1,2,2); imagesc(b); axis square; colormap gray

whos a Name Size Bytes Class Attributes

a 352x288 101376 uint8

c = a(1:2:end, 1:2:end); whos c Name Size Bytes Class Attributes

c 176x144 25344 uint8

figure; subplot(1,2,1); imagesc(a); axis square; colormap graysubplot(1,2,2); imagesc(c); axis square; colormap gray

whos Name Size Bytes Class Attributes

a 352x288 101376 uint8 ans 1x30 60 char b 703x575 3233800 double c 176x144 25344 uint8 ss 703x575 3233800 double

a

img = a;tam_img = size(img)

tam_img =

352 288

tam_img(1)

ans =

352

tam_img(2)

ans =

288

floor(100.5)

ans =

Page 3: Algumas Anotações da Aula de PDI - 25.Fev.13

100

round(100.5)

ans =

101

whos Name Size Bytes Class Attributes

a 352x288 101376 uint8 ans 1x1 8 double b 703x575 3233800 double c 176x144 25344 uint8 img 352x288 101376 uint8 ss 703x575 3233800 double tam_img 1x2 16 double

img_sai = zeros(floor(tam_img(1)/num), floor(tam_img(2)/num));

whos Name Size Bytes Class Attributes

a 352x288 101376 uint8 ans 1x1 8 double b 703x575 3233800 double c 176x144 25344 uint8 img 352x288 101376 uint8 img_sai 176x144 202752 double num 1x1 8 double ss 703x575 3233800 double tam_img 1x2 16 double

tic; for i = 1:100000; g(i) = i; end; tocElapsed time is 20.860415 seconds.

g

whos Name Size Bytes Class Attributes

a 352x288 101376 uint8 ans 1x1 8 double b 703x575 3233800 double c 176x144 25344 uint8 g 1x100000 800000 double i 1x1 8 double img 352x288 101376 uint8 img_sai 176x144 202752 double num 1x1 8 double ss 703x575 3233800 double tam_img 1x2 16 double

tic; for i = 1:100000; g(i) = i; end; tocElapsed time is 0.012151 seconds.20.8 / 0.01215

ans =

1.7119e+003

whos Name Size Bytes Class Attributes

a 352x288 101376 uint8 ans 1x1 8 double

Page 4: Algumas Anotações da Aula de PDI - 25.Fev.13

b 703x575 3233800 double c 176x144 25344 uint8 g 1x100000 800000 double i 1x1 8 double img 352x288 101376 uint8 img_sai 176x144 202752 double num 1x1 8 double ss 703x575 3233800 double tam_img 1x2 16 double

a(1:end, 1)

i = 1;

j = 1;

janela = img(i:i+num-1, j:j+num-1)

janela =

219 221 222 226

whos img Name Size Bytes Class Attributes

img 352x288 101376 uint8

img = double(img)

whos img Name Size Bytes Class Attributes

img 352x288 811008 double

mean(img(i:i+num-1, j:j+num-1))

ans =

220.5000 223.5000

janela

janela =

219 221 222 226

mean(janela)

ans =

220.5000 223.5000

sum(janela)

ans =

441 447

janela = img(i:i+num-1, j:j+num-1)

janela =

219 221 222 226

Page 5: Algumas Anotações da Aula de PDI - 25.Fev.13

z = reduz_img_pela_media(img); pwd

pwd

dir

cd ..

cd ..

pwd

dir

a

pwd

path

z = reduz_img_pela_media(img);

tam_img =

352 288

z2 = reduz_img_pela_media(z);

tam_img =

176 144

z3 = reduz_img_pela_media(z2);

tam_img =

88 72

whos img Name Size Bytes Class Attributes

img 352x288 811008 double

pwd

img_sai = reduz_escala(img, 10); colorbarsubplot(1,2,1), colorbarimg(1:15, 1:15)

img(1:10, 1:10)

img_sai(1:10, 1:10)

uint8(img_sai(1:10, 1:10))

img(1:10, 1:10)

figure; hist(img(:), 256)figure; hist(img_sai(:), 256)figure; hist(img_sai(:), 10)img_sai = reduz_escala(img, 4);img_sai = reduz_escala(img, 2);

Page 6: Algumas Anotações da Aula de PDI - 25.Fev.13

img_sai(1:10, 1:10)img_sai = reduz_escala(img, 8);img_sai = reduz_escala(img, 2);img_sai(1:15, 1:15)figure; plot(img_sai(:))figure; plot(sort(img_sai(:)))sum(img_sai(:) == 128)sum(img_sai(:) == 0)

whos Name Size Bytes Class Attributes

a 352x288 101376 uint8 ans 1x1 8 double b 703x575 3233800 double c 176x144 25344 uint8 g 1x100000 800000 double i 1x1 8 double img 352x288 811008 double img_sai 352x288 811008 double j 1x1 8 double janela 2x2 32 double num 1x1 8 double ss 703x575 3233800 double tam_img 1x2 16 double z 176x144 202752 double z2 88x72 50688 double z3 44x36 12672 double

z2_aumentada = interp2(z2, 2);figure; subplot(1,2,1); imagesc(z); axis square; colormap graysubplot(1,2,2); imagesc(z2_aumentada); axis square; colormap grayz2_aumentada = interp2(z2);whos z2_aumentada Name Size Bytes Class Attributes z2_aumentada 175x143 200200 double

subplot(1,2,2); imagesc(z2_aumentada); axis square; colormap gray