Processamento de Imagens e Fotografia Digital Images Alive: - - PowerPoint PPT Presentation

processamento de imagens e fotografia digital
SMART_READER_LITE
LIVE PREVIEW

Processamento de Imagens e Fotografia Digital Images Alive: - - PowerPoint PPT Presentation

Processamento de Imagens e Fotografia Digital Images Alive: Manipulao de gradientes Eric Jardim ericjardim@gmail.com IMPA - Instituto Nacional de Matemtica Pura e Aplicada Prof. Luiz Velho Images Alive: Manipulao de gradientes


slide-1
SLIDE 1

Processamento de Imagens e Fotografia Digital

Images Alive: Manipulação de gradientes

Eric Jardim

ericjardim@gmail.com

IMPA - Instituto Nacional de Matemática Pura e Aplicada

  • Prof. Luiz Velho

Images Alive: Manipulação de gradientes – p. 1

slide-2
SLIDE 2

Tema: Images Alive

Com a popularização de aparelhos com dispositivos gráficos como celulares, handhelds, MP3 players e câmeras digitais, o conceito de “imagem” ou “foto” deixou de ser algo exclusivo para visualização em papel. Com isso, existe a possibilidade de termos imagens mais “vivas”, sejam com pequenas animações de uma imagem ou cena original que dão um efeito de movimento, sem perder a qualidade de imagem. É nesse limiar entre imagem, animação e aplicações interativas que reside o tema “Images Alive”.

Images Alive: Manipulação de gradientes – p. 2

slide-3
SLIDE 3

Técnica escolhida

Edge Suppression by Gradient Field Transformation Using Cross-Projection Tensors, dos autores Amit Agrawal, Ramesh Raskar e Rama Chellappa. A técnica consiste em utilizar as informações dos gradientes das imagens tiradas de uma mesma cena sob pequenas variações de iluminação ou com pequenas alterações. A partir de duas imagens, é possível gerar uma terceira que combina informações das duas.

Images Alive: Manipulação de gradientes – p. 3

slide-4
SLIDE 4

Exemplos de uso da técnica

Extração de objetos em primeiro plano

Images Alive: Manipulação de gradientes – p. 4

slide-5
SLIDE 5

Exemplos de uso da técnica

Extração de reflexos

Images Alive: Manipulação de gradientes – p. 5

slide-6
SLIDE 6

Técnica e o tema

Problema: como amarrar o tema com a técnica escolhida? Solução: transições suaves entre imagens resultantes e

  • riginais (dissove)

Images Alive: Manipulação de gradientes – p. 6

slide-7
SLIDE 7

Técnica: definições

Modelo funcional

f : U ⊂ R2 → R3 = E U = [a, b] × [c, d] = {(x, y) ∈ R2; a ≤ x ≤ b, c ≤ x ≤ d}

Representação matricial (discreta), associa um reticulado ∆ = (∆x, ∆y) ao domínio U

∆ = {(xj, yk) ∈ U; xj = j∆x, yk = ∆yk} j, k ∈ Z, ∆x, ∆y ∈ N}

O espaço de cor é representado por valores reais por cada canal utilizando ponto flutuante.

Images Alive: Manipulação de gradientes – p. 7

slide-8
SLIDE 8

Técnica: definições

Podemos olhar a imagem como o gráfico de

(x, y, f(x, y)) (x, y) ∈ U

Vamos agora denotar a imagem por I = f(x, y) Definimos o gradiente de I como

∇I =

  • Ix

Iy

  • Para estimarmos os valores de ∇I utilizamos diferenças

finitas

Images Alive: Manipulação de gradientes – p. 8

slide-9
SLIDE 9

Exemplo: gradiente

Gradiente de um canal de uma imagem

Images Alive: Manipulação de gradientes – p. 9

slide-10
SLIDE 10

Técnica: definições

Vamos também definir o tensor de estrutura suavizado por

Gσ = (∇I∇IT) ∗ Kσ =

  • I2

x

IxIy IxIy I2

y

  • ∗ Kσ
  • nde Kσ é núcleo gaussiano de variança σ

Mas como Gσ é positiva e simétrica

Gσ = ΛΣΛT = [ v1 v2 ]

  • λ1

λ2 vT

1

vT

2

  • podemos encontrar autovetores v1, v2 e seus autovalores

associados λ1, λ2 onde λ1 ≥ λ2

Images Alive: Manipulação de gradientes – p. 10

slide-11
SLIDE 11

Exemplo: tensor de estrutura suavizado

Tensor de estrutura suavizado

Images Alive: Manipulação de gradientes – p. 11

slide-12
SLIDE 12

Técnica: definições

Problema: queremos retirar bordas comuns de uma imagem e preservar as outras Como fazer para remover uma borda de um gradiente de uma imagem? Idéia: aplicar uma transformação afim para projetar o vetor na direção perpendicular à borda.

Images Alive: Manipulação de gradientes – p. 12

slide-13
SLIDE 13

Tensor de projeção cruzada

A forma do tensor de projeção cruzada

D = [ u1 u2 ]

  • µ1

µ2 uT

1

uT

2

  • Utilizamos as informações do tensor de estrutura Gσ de

cada imagem, digamos A e B Por convenção queremos: remover as bordas de A que estão em B preservar as bordas de A que não estão em B Os valores µ1 e µ2 e os vetores u1 e u2 são baseados na análise dos tensores de estrutura das duas imagens

Images Alive: Manipulação de gradientes – p. 13

slide-14
SLIDE 14

Tensor de projeção cruzada

Vamos calcular o tensor de projeção cruzada Utilizamos as direções dos autovetores de GB

σ , ou seja,

u1 = vB

1 e u2 = vB 2

Temos então 3 situações:

B é homogêneo (λB

1 ≃ 0) e A tembém é (λA 1 ≃ 0)

µ1 = 0, µ2 = 0 B é homogêneo (λB

1 ≃ 0) e A não é (λA 1 > 0), retém a

borda

µ1 = 1, µ2 = 1 B não é homogêneo (λB

1 > 0), projeta na direção

perpendicular

µ1 = 0, µ2 = 1

Images Alive: Manipulação de gradientes – p. 14

slide-15
SLIDE 15

Exemplos de uso

Remoção de sombras e reflexos

Images Alive: Manipulação de gradientes – p. 15

slide-16
SLIDE 16

Inovações na técnica

Aplicar a transformação afim apenas a alguns canais para obter efeitos artísticos

Images Alive: Manipulação de gradientes – p. 16

slide-17
SLIDE 17

Inovações na técnica

Vamos fazer o reverso da aplicação. Vamos inserir um

  • bjeto em outra cena

Primeiros utilizamos uma imagem de funda para retirar

  • objeto da frente

Images Alive: Manipulação de gradientes – p. 17

slide-18
SLIDE 18

Inovações na técnica

Images Alive: Manipulação de gradientes – p. 18

slide-19
SLIDE 19

Inovações na técnica

Utilizamos as informações do tensor de estrutura para combinar imagens Onde existem bordas da imagem da frente, zeramos (ou abaixamos) o gradiente do fundo

Images Alive: Manipulação de gradientes – p. 19

slide-20
SLIDE 20

Sobre a implementação

O código foi reescrito na linguagem Python (os originais eram MatLab). Vantagens: Linguagem de alto nível com fácil aprendizado e utilização Roda em diversas plataformas É livre, grátis (e não necessita obter uma cópia do MatLab) Foi utilizado Qt4 como toolkit, permitindo parametrizar o algoritmo sem rescrever código. Todo o código está liberado sobre licença livre. Foram utilizadas rotinas numéricas de alto desempenho (NumPy e SciPy).

Images Alive: Manipulação de gradientes – p. 20

slide-21
SLIDE 21

Referências

Edge Suppression by Gradient Field Transformation Using Cross-Projection Tensors www.cfar.umd.edu/~aagrawal/cvpr06/EdgeSuprresion Python www.python.org Qt www.trolltech.com Numpy e SciPy www.scipy.org

Images Alive: Manipulação de gradientes – p. 21