Escolar Documentos
Profissional Documentos
Cultura Documentos
NOTAS DE AULA
Interpolao
Zooming e Shrinking de imagens digitais
Interpolao uma ferramenta bsica muito usada em tarefas tais como zooming, shrinking,
rotao e correes geomtricas. Nosso objetivo nesta aula introduzir o conceito de
interpolao e aplic-lo no reescalonamento de imagens - shrinking e zooming - os quais, em
ltima instancia, so mtodos de re-amostragem de imagens.
Conceito:
Interpolao o processo de usar dados conhecidos para estimar valores em localizaes
desconhecidas.
Alguns exemplos onde a utilizao zooming uma tarefa comum so: cmaras de vdeo,
mquinas fotogrficas, sistemas de informao geogrfica e aplicaes grficas.
Apresentamos agora, uma breve discusso sobre como ampliar e reduzir uma imagem digital.
Este tpico est relacionado a amostragem e quantizao porque o zooming pode ser
visto como uma sobreamostragem, enquanto que o shrinking pode ser visto como
uma subamostragem. Ainda, a diferena chave entre essas duas operaes (zooming e
shrinking) e a amostragem e quantizao de uma imagem contnua original que o zooming
e shrinking so aplicados a imagens digitais.
O esquema mais simples para interpolao de nveis de cinza baseado numa abordagem de
vizinho mais prximo (nearest neighbor interpolation). Esse mtodo tambm denominado de
interpolao de ordem zero.
NOTAS DE AULA
Passo (1): mapeamento das coordenadas inteiras da matriz escalonada, (x,y) em coordenadas
(x,y) na matriz original criao de novos pixels (item 1)
MAPEAMENTO INVERSO
Transformao espacial
(x,y) (x,y)
(x,y)
' '
(x y )
Obs.: dependendo do fator de ampliao ou reduo, esse par de coordenada (x, y) pode
resultar em coordenadas fracionrias. Dessa forma, efetua-se:
p1 p2
p3 p4
NOTAS DE AULA
Uma abordagem mais razovel a interpolao bilinear que usa os nveis de cinza dos
quatro vizinhos mais prximos. Em outras palavras a idia que o nvel de cinza de cada
um dos quatro vizinhos mais prximos de um par de coordenadas (x, y), no inteiro, seja
conhecido. O valor do nvel de cinza de (x, y) da imagem escalonada, denotado por f (x, y)
pode ser ento interpolado a partir dos valores conhecidos dos vizinhos do par de coordenadas
(x, y)
NOTAS DE AULA
Interpolao de dados
Relembrando o conceito:
Interpolao o processo de usar dados conhecidos para estimar valores em localizaes
desconhecidas.
Suponha que essa linha seja composta de 4 pixels e desejamos ampli-la para 8 pixels. Como
se faz isso?
5 3 1 4
? ? ? ? ? ? ? ?
Vamos generalizar o exemplo, pensando nessa linha da imagem com uma funo f(x)
f(x)
5
x1 x2 x3 x4
NOTAS DE AULA
Mapeamento inverso
x1 x2 x3 x4
Figura A1
Primeiro passo obter uma relao entre os valores da coleo escalonada (x) e
os valores da coleo original (x) mapeamento inverso
x' f(x)
1 ?
2 ?
3 ?
4 ?
5 ?
6 ?
7 ?
8 ?
1 2 x 3 4
1 2 3 4 x 5 6 7 8
Figura A2
NOTAS DE AULA
4 1 4 x 3 4x
7(4 x ) 3(8 x)
8 1 8 x' 7 8 x'
7 7 28 7 24 28 7 4 7
(8 x' ) (4 x) x' 8 (4 x) 8 x x x
3 3 3 3 3 3 3 3 3
1
x ' (7 x 4) (1)
3
Mas eu quero mapear x em x. Ento, de forma similar
1
x (3x'4) (2)
7
1
x=1 = (3 . 1 + 4) = 1
7
1 10
x=2 = 7 (3 . 2 + 4) = =1,43
7
1 13
x=3 = 7 (3 . 3 + 4) = =1,86
7
1 16
x=4 = 7 (3 . 4 + 4) = =2,29
7
1 19
x=5 = 7 (3 . 5 + 4) = =2,71
7
1 22
x=6 = 7 (3 . 6 + 4) = =3,14
7
1 25
x=7 = 7 (3 . 7 + 4) = =3,57
7
1 28
x=8 = 7 (3 . 8 + 4) = =4
7
x' x fe(x)=f(x)
1 1 fe(1)=f(1)
2 1,43 fe(2)=f(1,43)
3 1,86 fe(3)=f(1,86)
4 2,29 fe(4)=f(2,29)
5 2,71 fe(5)=f(2,71)
6 3,14 fe(6)=f(3,14)
7 3,57 fe(7)=f(3,57)
8 4 fe(8)=f(4)
NOTAS DE AULA
O Segundo passo a partir dos dados conhecidos, atribuir um valor para fe(x), coleo de
pontos escalonada processo de interpolao propriamente dito.
Tabela: (a) Funo original e (b) Funo escalonada (interpolao pelo vizinho mais prximo)
f ( x' ) f ( round( x ))
Em que round uma funo que aproxima um nmero para seu valor inteiro mais prximo.
NOTAS DE AULA
f(x)
x1 x2 x3 x4
x1 x2 x3 x4 x5 x6 x7 x8
Figura A3
5 5 3 3 1 1 4 4
2. INTERPOLAO: LINEAR
Uma outra maneira de obter os novos valores unir os pontos consecutivos conhecidos
da funo original por segmentos de retas e pegar os valores interpolados a partir dos
valores dessa reta vide ilustrao na figura A4
NOTAS DE AULA
f(x)
x1 x2 x3 x4
x1 x2 x3 x4 x5 x6 x7 x8
Figura A4
Para calcular os valores requeridos por interpolao linear, considere a figura A5.
Nesta figura assumimos que xi 1 xi 1 ou xi 1 xi 1
f(x) f(xi)
f(x)
f(xi+1)
(1 )
x
xi x xi+1
Figura A5
Assim,
f ( xi 1 ) f ( xi ) f ( x ) f ( xi )
fazendo xi 1 xi 1 e x xi
xi 1 xi x xi
NOTAS DE AULA
f ( xi 1 ) f ( xi ) f ( x ) f ( xi )
f ( x ) f ( x1 ) f ( xi 1 ) f ( xi )
1
f ( x ) f ( xi 1 ) ( 1 ) f ( xi ) (3)
x xi x xi 0
f ( x ) f ( xi 1 ) ( 1 ) f ( xi )
f ( 1 ) 0. f ( x2 ) 1 f ( x1 ) 0 5 5
x xi 1,43 1 0 ,43
f ( 1,43 ) 0,43 f ( x2 ) ( 1 0,43 ) f ( x1 ) 0,43.3 0,57.5 4,14
NOTAS DE AULA
f ( 4 ) 1. f ( x4 ) 0. f ( x3 ) 4
Tabela: (a) Funo original e (b) Funo escalonada (interpolao pelo linear)
Assim, valores dos novos pixels sero os valores obtidos arredondados, pois as intensidades
so valores inteiros.
f ( x' ) round( f ( x ))
Em que round uma funo que aproxima um nmero para seu valor inteiro mais prximo.
5 3 1 4
5 4 3 2 2 1 3 4
NOTAS DE AULA
INTERPOLAO DE IMAGENS:
Para obter os valores da funo para os pontos interpolados, considere o diagrama a seguir:
(xi,y) (xi,yi+1)
(xi,yi )
(1 )
(x,y)
(1 )
NOTAS DE AULA
Podemos designar valores para os pontos da funo interpolada atravs dos seguintes
mtodos:
No primeiro caso, o valor de f(x,y) ser igual ao do vizinho mais prximo entre os quatro
vizinhos.
f ( xi , yi ) para 0 ,5 e 0 ,5
f ( x ,y ) para 0 ,5 e 0 ,5
i 1 i
f ( x, y )
f ( xi , yi 1 ) para 0 ,5 e 0 ,5
f ( xi 1 , yi 1 ) para 0 ,5 e 0 ,5
f ( x, y) f ( x , y ) f ( round( x ),round( y ))
1. Aplicar interpolao linear primeiro ao longo da linha do topo para obter o valor de
f(xi,y):
f ( xi , y ) . f ( xi , yi 1 ) ( 1 ). f ( xi , yi ) (4)
2. Aplicar interpolao linear ao longo da linha debaixo para obter o valor de f(xi+1, y)
3. Interpolar ao longo da coluna y entre esses dois novos valores para obter o valor de
f(x,y).
NOTAS DE AULA
f ( x , y ) . f ( xi 1 , y ) ( 1 ). f ( xi , y ) (6)
f ( x, y) f ( x , y ) ( . f ( xi 1 , yi 1 ) ( 1 ). f ( xi 1 , yi )) ( 1 ).( . f ( xi , yi 1 ) ( 1 ). f ( xi , yi ))
(7)
Como o valor de f(x,y) tem que ser inteiro, deve-se realizar o arredondamento do valor obtido:
O valor do nvel de cinza de (x, y) da imagem escalonada, denotado por f (x, y) pode
ser interpolado a partir dos valores conhecidos dos vizinhos do par de coordenadas (x,y)
conforme a relao a seguir lembre-se que (x,y) o resultado do mapeamento de (x,y) na
imagem original, levando em conta o fator de escalonamento.
f0 1 x0 y0 x0 y0 a0
f 1
x1 y1 x1 y1 a
1 . 1
f 2 1 x2 y2 x2 y2 a2
f3 1 x3 y3 x3 y3 a3
NOTAS DE AULA
Resultados ainda melhores so obtidos usando-se tcnicas mais sofisticadas, tal como a
interpolao por convoluao cbica (Bernstein, 1976), que fixa uma superfcie do tipo
sen(x)/x considerando 16 vizinhos, a fim de se obter uma estimativa suave do nvel de
cinza naquele ponto desejado.
Esse tipo de interpolao gera resultados mais suaves e mais adequados para a gerao de
imagens grficas 3D e processamento de imagens mdicas. No entanto, a carga computacional
extra raramente justifica o uso para ampliao e reduo de imagens de propsito geral (nesse
caso a interpolao bilinear a melhor escolha).