Você está na página 1de 15

UNIVERSIDADE FEDERAL DO AMAZONAS

Disciplina: Processamento Digital de Imagens

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.

A operao de zooming requer:


1: a criao de novos pixels e
2: a designao de um valor de nvel de cinza a cada um desses novos pixels;

nesse item 2 que a interpolao utilizada.

Vamos comear com um exemplo simples:

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.

A seguir ilustramos o processo de interpolao de ordem zero:

Profa Dra Marly Guimares Fernandes Costa


e-mail: mcosta@ufam.edu.br
UNIVERSIDADE FEDERAL DO AMAZONAS
Disciplina: Processamento Digital de Imagens

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 )

Atribuio de nvel de cinza do vizinho mais


prximo de (x,y) para o (x,y) na imagem
escalonada Vizinho mais prximo a ( x, y)
IMAGEM ESCALONADA IMAGEM ORIGINAL

Obs.: dependendo do fator de ampliao ou reduo, esse par de coordenada (x, y) pode
resultar em coordenadas fracionrias. Dessa forma, efetua-se:

Passo (2): atribuio do nvel de cinza do pixel (x,y)

Na interpolao do vizinho mais prximo, o valor da intensidade (nvel de cinza) a ser


atribudo ao pixel (x, y) na imagem escalonada ser o mesmo valor do pixel que estiver mais
prximo da posio ocupada pelo pixel (x,y) na imagem original

p1 p2

p3 p4

No exemplo da figura, o pixel (x,y) da imagem escalonada mapeado na imagem original


(ponto vermelho) est mais prximo do pixel p4, portanto, deve receber o valor da intensidade
de nvel de cinza de p4.

Profa Dra Marly Guimares Fernandes Costa


e-mail: mcosta@ufam.edu.br
UNIVERSIDADE FEDERAL DO AMAZONAS
Disciplina: Processamento Digital de Imagens

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)

Profa Dra Marly Guimares Fernandes Costa


e-mail: mcosta@ufam.edu.br
UNIVERSIDADE FEDERAL DO AMAZONAS
Disciplina: Processamento Digital de Imagens

NOTAS DE AULA

Interpolao de dados

Relembrando o conceito:
Interpolao o processo de usar dados conhecidos para estimar valores em localizaes
desconhecidas.

Nosso objetivo a interpolao de dados em uma funo 2D (imagem). No entanto


comearemos pensando na interpolao de dados unidimensional. Poderamos dizer que
estamos inicialmente pensando em uma linha de uma dada imagem.

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

Profa Dra Marly Guimares Fernandes Costa


e-mail: mcosta@ufam.edu.br
UNIVERSIDADE FEDERAL DO AMAZONAS
Disciplina: Processamento Digital de Imagens

NOTAS DE AULA

Mapeamento inverso

x1 x2 x3 x4

x'1 x'2 x'3 x'4 x'5 x'6 x'7 x'8

Figura A1

Primeiro passo obter uma relao entre os valores da coleo escalonada (x) e
os valores da coleo original (x) mapeamento inverso

Vejamos nesse exemplo: Temos 4 valores X f(x)


1 5
2 3
3 1
4 4

e desejamos ter uma coleo de 8 valores

x' f(x)
1 ?
2 ?
3 ?
4 ?
5 ?
6 ?
7 ?
8 ?

Para obter a relao entre x e x desenhamos a figura a seguir A1 levemente modificada:

1 2 x 3 4

1 2 3 4 x 5 6 7 8
Figura A2

Dessa forma, obtemos as seguintes relaes:

Profa Dra Marly Guimares Fernandes Costa


e-mail: mcosta@ufam.edu.br
UNIVERSIDADE FEDERAL DO AMAZONAS
Disciplina: Processamento Digital de Imagens

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

Para o exemplo em questo temos:

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)

Profa Dra Marly Guimares Fernandes Costa


e-mail: mcosta@ufam.edu.br
UNIVERSIDADE FEDERAL DO AMAZONAS
Disciplina: Processamento Digital de Imagens

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.

A seguir apresenta-se duas opes de interpolao

1. INTERPOLAO DE ORDEM ZERO - VIZINHO MAIS PRXIMO


Nessa opo, atribumos a fe(x) o valor de f conhecido, cujo x esteja mais prximo ao
valor de x escalonado. A figura A3 ilustra o processo.

Tabela: (a) Funo original e (b) Funo escalonada (interpolao pelo vizinho mais prximo)

x f(x) x' x f(x)


1 5 1 1 f(1) f(1) 5
2 3 2 1,43 f(1,43) f(1) 5
3 1 3 1,86 f(1,86) f(2) 3
4 4 4 2,29 f(2,29) f(2) 3
5 2,71 f(2,71) f(3) 1
6 3,14 f(3,14) f(3) 1
7 3,57 f(3,57) f(4) 4
8 4 f(4) f(4) 4
(a) (b)

Esse procedimento pode ser obtido com:

f ( x' ) f ( round( x ))

Em que round uma funo que aproxima um nmero para seu valor inteiro mais prximo.

Profa Dra Marly Guimares Fernandes Costa


e-mail: mcosta@ufam.edu.br
UNIVERSIDADE FEDERAL DO AMAZONAS
Disciplina: Processamento Digital de Imagens

NOTAS DE AULA

f(x)

x1 x2 x3 x4

x1 x2 x3 x4 x5 x6 x7 x8

Figura A3

Assim, valores dos novos pixels sero:


5 3 1 4

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

Profa Dra Marly Guimares Fernandes Costa


e-mail: mcosta@ufam.edu.br
UNIVERSIDADE FEDERAL DO AMAZONAS
Disciplina: Processamento Digital de Imagens

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

Profa Dra Marly Guimares Fernandes Costa


e-mail: mcosta@ufam.edu.br
UNIVERSIDADE FEDERAL DO AMAZONAS
Disciplina: Processamento Digital de Imagens

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)

Para o exemplo em questo temos:

Para x=1 x=1 (est entre xi=1 e xi+1=2)

x xi x xi 0
f ( x ) f ( xi 1 ) ( 1 ) f ( xi )
f ( 1 ) 0. f ( x2 ) 1 f ( x1 ) 0 5 5

Para x=2 x=1,43 (est entre xi=1 e xi+1=2)

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

Para x=3 x=1,86

f ( 1,86 ) 0,86 f ( x2 ) ( 1 0,86 ) f ( x1 ) 0,86.3 0,14.5 3,28

Para x=4 x=2,29

f ( 2 ,29 ) 0 ,29 f ( x3 ) ( 1 0 ,29 ) f ( x2 ) 0 ,29.1 0 ,71.3 2 ,42

Para x=5 x=2,71

f ( 2 ,71 ) 0 ,71 f ( x3 ) ( 1 0 ,71 ) f ( x2 ) 0 ,71.1 0 ,29.3 1,58

Para x=6 x=3,14

f ( 3,14 ) 0 ,14 f ( x4 ) ( 1 0 ,14 ) f ( x3 ) 0 ,14.4 0 ,86.1 1,42

Para x=7 x=3,57

f ( 3,57 ) 0 ,57 f ( x4 ) ( 1 0 ,57 ) f ( x3 ) 0 ,57.4 0 ,43.1 2 ,71


Profa Dra Marly Guimares Fernandes Costa
e-mail: mcosta@ufam.edu.br
UNIVERSIDADE FEDERAL DO AMAZONAS
Disciplina: Processamento Digital de Imagens

NOTAS DE AULA

Para x=8 x=4

f ( 4 ) 1. f ( x4 ) 0. f ( x3 ) 4

Tabela: (a) Funo original e (b) Funo escalonada (interpolao pelo linear)

x f(x) x' x f(x)=f(x)


1 5 1 1 fe(1)=f(1) 5
2 3 2 1,43 fe(2)=f(1,43) 4,41
3 1 3 1,86 fe(3)=f(1,86) 3,28
4 4 4 2,29 fe(4)=f(2,29) 2,42
5 2,71 fe(5)=f(2,71) 1,58
6 3,14 fe(6)=f(3,14) 1,42
7 3,57 fe(7)=f(3,57) 2,71
8 4 fe(8)=f(4) 4
(a) (b)

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

Profa Dra Marly Guimares Fernandes Costa


e-mail: mcosta@ufam.edu.br
UNIVERSIDADE FEDERAL DO AMAZONAS
Disciplina: Processamento Digital de Imagens

NOTAS DE AULA

INTERPOLAO DE IMAGENS:

Os mtodos apresentados podem ser aplicados a imagens.


A figura a seguir mostra uma imagem 4 x 4 que deve ser interpolada para produzir uma
imagem 8 x 8

Os crculos abertos grandes so os pontos (pixels) originais


Os crculos preenchidos menores so os novos pontos

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 )

(xi+1,yi) (xi+1,y) (xi+1,yi+1)

Profa Dra Marly Guimares Fernandes Costa


e-mail: mcosta@ufam.edu.br
UNIVERSIDADE FEDERAL DO AMAZONAS
Disciplina: Processamento Digital de Imagens

NOTAS DE AULA

Podemos designar valores para os pontos da funo interpolada atravs dos seguintes
mtodos:

Interpolao de ordem zero (vizinho mais prximo)


Interpolao linear (bilinear)

No primeiro caso, o valor de f(x,y) ser igual ao do vizinho mais prximo entre os quatro
vizinhos.

A interpolao pode ser expressa como:

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

A equao apresentada acima pode ser reescrita como:

f ( x, y) f ( x , y ) f ( round( x ),round( y ))

No segundo caso podemos:

1. Aplicar interpolao linear primeiro ao longo da linha do topo para obter o valor de
f(xi,y):

Usando a expresso da interpolao linear anteriormente apresentada tem-se


que:

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)

f ( xi1 , y ) . f ( xi1 , yi1 ) ( 1 ). f ( xi 1 , yi ) (5)

3. Interpolar ao longo da coluna y entre esses dois novos valores para obter o valor de
f(x,y).

Profa Dra Marly Guimares Fernandes Costa


e-mail: mcosta@ufam.edu.br
UNIVERSIDADE FEDERAL DO AMAZONAS
Disciplina: Processamento Digital de Imagens

NOTAS DE AULA

Ao longo da coluna y temos:

f ( x , y ) . f ( xi 1 , y ) ( 1 ). f ( xi , y ) (6)

Substituindo com os valores j obtidos ((4) e (5) em (6) temos:

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)

A equao (7) corresponde a equao para a interpolao bilinear

Como o valor de f(x,y) tem que ser inteiro, deve-se realizar o arredondamento do valor obtido:

f ( x' , y' ) round( f ( x , y ))

Relembrando que os valores de e so obtidos pelo mapeamento das coordenadas inteiras


da matriz escalonada (x, y) em coordenadas (x,y) na matriz original.

Uma outra abordagem da interpolao bilinear apresentada:

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.

f ( x' , y' )imagem _ escalonada f ( x , y )imagem _ original a0 a1 .x a2 .y a3 .x.y (8)

Os coeficientes a0 , a1 , a2 e a 3 da expresso acima so obtidos resolvendo-se o sistema de


equaes, escrito a partir das coordenadas dos 4 pixels vizinhos conhecidos
( x0 , y0 ), ( x1 , y1 ), ( x2 , y2 )e( x3 , y3 ) e seus respectivos nveis de cinza f0 , f1 , f 2 e f 3 .

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

Profa Dra Marly Guimares Fernandes Costa


e-mail: mcosta@ufam.edu.br
UNIVERSIDADE FEDERAL DO AMAZONAS
Disciplina: Processamento Digital de Imagens

NOTAS DE AULA

Como identificar os vizinhos mais prximos?


Atravs de uma medida de distncia, por exemplo, a distncia euclidiana, distncia de
quarteiro, etc

possvel usar mais de 4 vizinhos na interpolao?

Sim. O prximo nvel de complexidade, envolve os 16 vizinhos mais prximos do ponto


a interpolao bicbica. Geralmente a interpolao bicbica trabalha melhor que a bilinear
preservando os detalhes finos da imagem.

A interpolao bicbica usada em programas de edio de imagens comerciais tais como o


Adobe Photoshop e o Corel Photopaint.

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).

I ( x' , y' ) I ( x, y) ( I ( xi 1 , yi 1 ) (1 ) I ( xi 1 , yi )) (1 )( I ( xi , yi 1 ) (1 ) I ( xi , yi )) (7)

Profa Dra Marly Guimares Fernandes Costa


e-mail: mcosta@ufam.edu.br

Você também pode gostar