Parte 2. Parte 2. Operações Topológicas Bruno Barufaldi Processamento Digital de...

45
Parte 2. Operações Topológicas Bruno Barufaldi Processamento Digital de Imagens

Transcript of Parte 2. Parte 2. Operações Topológicas Bruno Barufaldi Processamento Digital de...

Parte 2. Operações Topológicas

Bruno Barufaldi

Processamento Digital de Imagens

Conteúdo (parte 2) Dissolve Cruzado Detecção de

Movimento Redução de Ruído Zoom Reconstrução de

Imagens Rebatimento (flip) Rotação

Warping Morphing

Dissolve Cruzado O dissolve cruzado uniforme de duas imagens

f e g é uma nova imagem h dada por:h(i,j) = (1-t) f(i,j) + t g(i,j)

Dissolve Cruzado

ABC

A B C

Imagem resultante com t = 0,3Imagem resultante com t = 0,5Imagem resultante com t = 0,7

h(i,j) = (1-t) f(i,j) + t g(i,j)

Dissolve Cruzado O dissolve cruzado não uniforme, t é uma

matriz com mesmas dimensões de f e g h2(i,j) = [1 – t(i,j)] f(i,j) + t(i,j) g(i,j)

A B C

(A) t(i,j) = (i+j)/(R+C-2) (B) t(i,j) = j/(C-1) (C) t(i,j) = i/(R-1)

Detecção de Movimento Videos (frames/seg)

Subtração de Imagens

contrario caso ,0

|| se ,1 21 tLffLg

f1 f2 g

Detecção de Movimento

Redução de Ruído por Média das Imagens

Imagens estacionárias

f(i, j) imagem sem ruído

nk(i, j) ruído de média m

gk(i,j) = f(i,j) + nk(i,j)

M

kk jig

Mjig

1

),(1),(

Redução de Ruído por Média das Imagens

)],(),([1),(1

jinjifM

jig k

M

k

M

kk jin

Mjifjig

1

),(1),(),(

njifjig ),(),(

Para M grande:

Zoom in Por replicação de pixels

10 1020 30

10 10

20 30

Original Ampliação por fator 3

10 10 10 10 10 10 10 10

10 10 10 10 10 10 10 10

20 20 20 20 20 20 20 20

30 30 30 30 30 30 30 30

Zoom in Por interpolação bilinear

10 1020 30

10 10

20 30

Original Ampliação por fator 3

Interpolação nas linhasPassos de níveis de cinza:10 a 10: 020 a 30: (30-20)/3 = 3,3

1010 1010

23 27 33 37

Zoom in Por interpolação bilinear

10 1020 30

10 10 10 10 10 10

20 23 27 30 33 37

Original Ampliação por fator 3

Interpolação nas colunasPassos de níveis de cinza:10 a 20: (20-10)/3 = 3,310 a 23: (23-10)/3 = 4,310 a 27: (27-10)/3 = 5,7...

1317

2327

1419

2732

1621

3338

1723

3743

1825

4148

1928

4655

Zoom in Exemplo: ampliação fator 10

Original Replicação Interpolação

Zoom out Por eliminação de pixels

Média

14 1828 41

10 10 10 10 10 1013 14 16 17 18 1917 19 21 23 25 2820 23 27 30 33 3723 27 33 37 41 4627 32 38 43 48 55

Original Redução por fator 3

(10 + 10 + 10 + 13 + 14 + 16 + 17 +19 + 21) / 9(10 + 10 + 10 + 17 + 18 + 19 + 23 + 25 + 28) / 9(20 + 23 + 27 + 23 + 27 + 33 + 27 + 32 + 38) / 9(30 + 33 + 37 + 37 + 41 + 46 + 43 + 48 + 55) / 9

Reconstrução de Imagens Quando queremos ampliar a imagem (zoom

in) por um fator não inteiro? Ex.: F = 3,75

Reconstruir a imagem

Reconstrução de Imagens

Dados f(i,j), f(i,j+1), f(i+1,j), f(i+1,j+1) (i, j)

(x,y)

(i, j+1)

(i+1, j) (i+1, j+1)

Reconstrução:Encontrar f(x,y),x em [i, i+1]y em [j, j+1]

Reconstrução de Imagens Interpolação bilinear

(i, j)

(x,y)

(i, j+1)

(i+1, j) (i+1, j+1)

(i, y)

(i+1, y)

f(i, y) = f(i, j)+(y–j)[f(i, j+1)-f(i, j)] f(i+1,y)=f(i+1,j)+(y–j)[f(i+1,j+1)-f(i+1, j)] f(x, y) = f(i, y) + (x – i) [f(i+1, y) - f(i, y)]

Reconstrução de imagens Ex: f(10.5, 15.2)=?

f(10, 15) = 10f(10, 16) = 20f(11,15) = 30f(11, 16) = 30

(10,15)

(10.5, 15.2)

(10,16)

(11,15) (11,16)

(10,15.2)

(11,15.2)

f(10, 15.2)=f(10,15)+(15.2-15)*[f(10,16)-f(10,15) = 10 + 0.2*[20 – 10] = 12

f(11, 15.2)=f(11,15)+(15.2-15)*[f(11,16)-f(11,15) =30 + 0.2*[30 – 30] = 30

f(10.5, 15.2)=12+(10.5-10)*[30-12] = 21

Reconstrução de imagens Ex: f(10.5, 15.2)=?

f(10, 15) = 20f(10, 16) = 15f(11,15) = 13f(11, 16) = 20

(10,15)

(10.5, 15.2)

(10,16)

(11,15) (11,16)

(10,15.2)

(11,15.2)

f(10, 15.2)=f(10,15)+(15.2-15)*[f(10,16)-f(10,15)] = 20 + 0.2*[15 – 20] = 19

f(11, 15.2)=f(11,15)+(15.2-15)*[f(11,16)-f(11,15)] = 13 + 0.2*[20 – 13] = 14

f(10.5, 15.2)=19+(10.5-10)*[14-19] = 17

Zoom com Reconstrução de ImagemEx: Ampliação por fator 2.3Passo para as coordenadas: 1/2.3 = 0.43x = 0, 0.43, 0. 87, 1.30, 1.74, 2.17, 2.61, 3.04...y = 0, 0.43, 0. 87, 1.30, 1.74, 2.17, 2.61, 3.04... g(0,0) = f(0,0); g(0,1) = f(0, 0.43);g(0,2) = f(0, 0.87); g(0,3) = f(0, 1.30);...

Ex: Redução por fator 2.3x = 0, 2.3, 4.6, 6.9, 9.2, 11.5, 13.8...y = 0, 2.3, 4.6, 6.9, 9.2, 11.5, 13.8...g(0,0) = f(0,0); g(0,1) = f(0, 2.3);g(0,2) = f(0, 4.6); g(0,3) = f(0,6.9);...

Rotação Rotação de um ângulo β em torno de um ponto

C(ic, jc)

Para cada ponto X(i, j) da imagem original, calculam-se as coordenadas do ponto X’(i’, j’) correspondente.

C(ic, jc)

X(i, j)

C(ic, jc)

X(i, j)

βα

X’(i’, j’)

θ

Rotação

C(ic, jc)

X’(i’, j’)

X(i, j)

βα

j - jc

i - ic

θ

α

Miiii cc

PX

)cos(

Mjjjj cc

PX

)sen(

M 'PXPX

i - ic

j - jc

Rotação

Miiii cc

'

'

')cos(PX

C(ic, jc)

X’(i’, j’)

X(i, j)

βα

θM

jjjj cc

'

'

')sen(PX

M 'PXPX

j’ - jc

i’ - ic

θ

i’ - ic

j’ - jc

Rotação Desenvolvendo as equações:

)cos(')cos('')cos( MiiMiiM

iicc

c

onde)sen()sen()cos()cos()cos()cos(

logo

)sen()()cos()('

)sen()()cos()('

)sen()cos('

)sen()sen()cos()cos()cos('

ccc

ccc

ccc

cc

jjiiiiM

jjiiMii

Mjj

MiiMii

MiMii

Rotação de um ângulo β em torno de um ponto C(ic, jc)

cos)(sen)('sen)(cos)('

ccc

ccc

jjiijjjjiiii

Rotação

Rotação Exemplos

Rotação constante com ângulo de 45 graus

Rotação com decrescimento linear, um centro de rotação

Imagem Original Rotação com crescimento quadrático e um centro de rotação

Rotação com decrescimento quadrático e multiplicação senoidal, e um centro de rotação

Rotação com crescimento linear e um centro de rotação

Rebatimento horizontal

Rebatimento vertical

Rebatimento

yyxRxyxryx ',1'),()','(

yCyxxyxryx 1','),()','(

Rebatimento

Imagem original Rebatimento vertical

Rebatimento horizontal

Rebatimento diagonal principal

Rebatimento diagonal secundária

xyyxyxryx ','),()','(

xCyyRxyxryx 1',1'),()','(

Rebatimento

Rebatimento

Imagem original Rebatimento pela diagonal principal

Rebatimento pela diagonal

secundaria

Warping = Deformação Transformação geométrica genérica que

modifica a relação espacial dos pontos da imagem

Várias técnicas de warping são definidas na literatura

Mesh warping, Field Morphing, Multilevel free-form deformation, etc.

Morphing Metamorfose gradual entre 2 ou mais imagens

envolvendo a deformação (warping)

Vídeo

Aplicação Prática Aplicação Prática #fail

Warping baseado em campos Determinar características relevantes na

imagem (nariz, boca, contorno da face, etc.) Definir vetores referência e vetores alvos

Warping baseado em campos

Parâmetros “u” e “v” estabelecem as relações que devem ser preservadas

v: distância do ponto X ao ponto que corta (Q-P) através de uma linha perpendicular ao vetor

u: distancia medida pelo ponto P até a linha que passa perpendicular a X.

Quanto maior a distância de X, menos influente será o ponto ao segmento

Representa um vetor perpendicular a V de mesmo módulo que este

Warping baseado em campos

Warping baseado em campos

Quando há mais de um par de vetores referência-alvo, cada ponto da imagem sofrerá a influência de todos os pares de vetores. Neste caso, será em geral encontrado um ponto diferente para cada par de vetores referência-alvo.

A combinação dos vetores referencia e alvo é efetuada por uma média ponderada produzindo o ponto X’

Warping baseado em campos

peso: quando mais de um vetor é definido, um pixel pode ser influenciado por ambos os segmentos. O segmento de maior peso, influenciará mais o valor de X’

tamanho: módulo do vetor p: importancia do comprimento do vetor (Se p = 0, comprimento

ignorado) b: concentração de força da característica a: aderência ao vetor (para valores próximos a 0, os pontos mais

próximos ao vetor serão mapeados exatamente como o vetor determina)

Experimentos com os parâmetros mostram que bons resultados, em termos de qualidade visual e tempo de processamento, são obtidos com a = 0 ou a = 1, b = 2 e p = 0 ou p = 1.

Warping baseado em campos

Morphing Interpolação de formas e cores entre duas

imagens distintas (f0 e fN-1)

Encontrar imagens f1, f2, ..., fN-2: transição gradual de f0 a fN‑1

Efeitos especiais na publicidade e na indústria cinematográfica; realidade virtual; compressão de vídeo; etc.

Warping + dissolve cruzado

Morphing São marcados v vetores de referência

(características relevantes) em f0 e v vetores de referência em fN-1

ai, i = 1, 2,..., v (f0) e bi, i = 1, 2,..., v (fN-1)

Para cada imagem interpolada e para cada par de vetores ai – bi , um novo vetor alvo ci é criado.

Se temos k imagens interpoladas, teremos cki vetores alvo

Morphing

Morphing

Morphing

Imagem Inicialai, i = 1, 2,..., v (f0) Imagem final

bi, i = 1, 2,..., v (fN-1)

Morphing

Morphing