Exercício 03 - Pratica de resolução espacial e resolução radiométrica

Autor: Wagner Machado do Amaral
Data:24/03/2009

Enunciado: ia636-2009:exercicio3

Parte1 - Testes com tabuleiro de xadrez

Parte2 - Resolução espacial e radiométrica em uma imagem níveis de cinza

Parte 1 - Testes com tabuleiro de xadrez

O tabuleiro de xadrez abaixo é formado por mosaicos contendo valor 0 e 255.

Nesse caso as duas funções, mmshow e adshow, apresentaram tabuleiros identicos.

mmshow: valores 0 e 255

adshow: valores 0 e 255

O tabuleiro de xadrez abaixo é formado por casa contendo valor 110 e 111.

Agora há uma diferença no resultado das funções mmshow e adshow.

(A)mmshow: valores 110 e 111

(B)adshow: valores 110 e 111

(C)mmshow: valores 110 e 111

(D)adshow: valores 110 e 111

Os valores 110 e 111 são muito próximos. Essa diferença é imperceptível ao olho humano. Conforme exibido na figura (B).

Porém o tabuleiro da figura (A) está claramente visível.

Isso ocorre porque, ao contrario da função adshow, a função mmshow identifica o intervalo de valores formados pelo menor e pelo maior valor da imagem e transcreve cada valor desse intervalo para o intervalo de 0 a 255.

Desse modo, o tabuleiro com valores 110 e 111 passa a ser observado como um tabuleiro de valores 0 e 255

A figura (C) e (D) foram geradas após ser inserido na imagem um pixel com valor 0 e outro com valor 255.

Agora, conforme figura (C), a função mmshow encontrou no tabuleiro o menor valor igual a 0 e o maior valor igual a 255. Isso forçou a função a exibir cada pixel no tom de cinza correto.

No exemplo abaixo fica claro que:

A função mmshow exibe os valores 110, 111 e 112 na tonalidade correta.

Já a função adshow exibe os valores 110, 111 e 112 como se fossem aproximadamente 0, 127 e 255

mmshow: valores 110, 111 e 112

adshow: valores 110, 111 e 112

Testes visuais demonstraram que o valor mínimo de separação entre níveis de cinza para que o tabuleiro seja observável é aproximadamente 5 para uma imagem em 200 x 200 pixels com tabuleiros de 10 x 10 pixels. Conforme abaixo:

Obs: A visibilidade desse resultado pode variar conforme resolução do monitor.

(B)adshow: valores 250 e 255

O exemplo abaixo exibe varios tabuleiros com diferentes tamanhos de mosaicos (em pixels).

Observe que mosaicos maiores são mais faceis de observar, principalmente quando a diferença entre os valores dos pixels é pequena.

Tamanho do mosaico = 1

Tamanho do mosaico = 3

Tamanho do mosaico = 20

Tamanho do mosaico = 50

Parte 2 - Resolução espacial e radiométrica em uma imagem níveis de cinza

  • Simulação de redução da resolução em nível de cinza na aquisição da imagem.

O algorítmo abaixo divide o valor de cada pixel da imagem por um determinado fator de redução.

Após a divisão, para que a imagem não fique cada vez mais escura, cada valor é transcrito para o intervalo de 0 a 255 de modo que:

Ao maior valor resultante da divisão do tom de cinza pelo fator de redução é atribuido 255

E ao menor valor resultante da divisão do tom de cinza pelo fator de redução é atribuido 0

Conforme demonstrado na parte 1 desse exercício, a função mmshow faz essa transcrição automaticamente.

Isso faz com que a imagem sofra uma redução no intervalor de níveis de cinza proporcinal ao fator de redução determinado.

1 imgname = 'lenina.pgm'
2 
3 I =mmreadgray(imgname)
4 adshow(I,title=imgname)
5 
6 for fator in range(2,32,2):
7     I2 = I / fator
8     mmshow(I2, title= imgname + ' - fator de redução = ' + str(fator));

lenina.pgm

lenina.pgm - fator de redução = 2

lenina.pgm - fator de redução = 4

lenina.pgm - fator de redução = 6

lenina.pgm - fator de redução = 8

lenina.pgm - fator de redução = 10

lenina.pgm - fator de redução = 12

lenina.pgm - fator de redução = 14

lenina.pgm - fator de redução = 16

lenina.pgm - fator de redução = 18

lenina.pgm - fator de redução = 20

lenina.pgm - fator de redução = 22

lenina.pgm - fator de redução = 24

lenina.pgm - fator de redução = 26

lenina.pgm - fator de redução = 28

lenina.pgm - fator de redução = 30

  • Simulação da redução da resolução espacial na aquisição da imagem (menor número de sensores cobrindo a imagem do objeto).

Esse algoritmo contem um laço que percorre a imagem resultante e atribui para quadros proporcionais ao fator de redução valores da média dos pixels correspondentes na imagem original.

 1 #############################
 2 # Testando a lógica
 3 
 4 A = zeros([6,6])
 5 for l in range(0,6):
 6     for c in range(0,6):
 7         A[l,c] = c*l
 8 print A
 9 
10 R=2
11 B = zeros(A.shape)
12 L,C = A.shape
13 for FL in range(0,L-1,R):
14     for FC in range(0,C-1,R):
15         B[FL:FL+R,FC:FC+R] = average(A[FL:FL+R,FC:FC+R])
16 print B
17 #############################
18 
19 
20 imgname = 'lenina.pgm'
21 I =mmreadgray(imgname)
22 adshow(I,title=imgname)
23 
24 for fator in range(2,32,2):
25     B = zeros(I.shape)
26     L,C = I.shape
27     for FL in range(0,L-1,fator):
28         for FC in range(0,C-1,fator):
29             B[FL:FL+fator,FC:FC+fator] = average(I[FL:FL+fator,FC:FC+fator])
30     adshow(B,title= imgname + ' - fator de redução = ' + str(fator))
[[  0.   0.   0.   0.   0.   0.]
 [  0.   1.   2.   3.   4.   5.]
 [  0.   2.   4.   6.   8.  10.]
 [  0.   3.   6.   9.  12.  15.]
 [  0.   4.   8.  12.  16.  20.]
 [  0.   5.  10.  15.  20.  25.]]
[[  0.25   0.25   1.25   1.25   2.25   2.25]
 [  0.25   0.25   1.25   1.25   2.25   2.25]
 [  1.25   1.25   6.25   6.25  11.25  11.25]
 [  1.25   1.25   6.25   6.25  11.25  11.25]
 [  2.25   2.25  11.25  11.25  20.25  20.25]
 [  2.25   2.25  11.25  11.25  20.25  20.25]]

lenina.pgm

lenina.pgm - fator de redução = 2

lenina.pgm - fator de redução = 4

lenina.pgm - fator de redução = 6

lenina.pgm - fator de redução = 8

lenina.pgm - fator de redução = 10

lenina.pgm - fator de redução = 12

lenina.pgm - fator de redução = 14

lenina.pgm - fator de redução = 16

lenina.pgm - fator de redução = 18

lenina.pgm - fator de redução = 20

lenina.pgm - fator de redução = 22

lenina.pgm - fator de redução = 24

lenina.pgm - fator de redução = 26

lenina.pgm - fator de redução = 28

lenina.pgm - fator de redução = 30