Upload
rhenan-bezerra
View
11
Download
3
Embed Size (px)
Citation preview
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
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 =
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
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
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);
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