Processamento de Imagens Matemática por trás de Processamento de Imagens Operações Aritméticas...
Transcript of Processamento de Imagens Matemática por trás de Processamento de Imagens Operações Aritméticas...
Processamento de Imagens
• Processamento de Imagens• Matemática por trás de Processamento de Imagens• Operações Aritméticas com imagens• Conceito de Filtro• Realçar e Borrar• Ampliar e Reduzir• Combinação de Imagens
• Mistura• Transparência• Adição e Subtração• Morphing
• Outros Assuntos• Dithering• Animações com Sprites
Matemática por trás de Processamento de Imagens
• Teoria de Sinais
• Freqüência de uma imagem
• Transformada de Fourier 2D
• Shannon / Nyquist
• Convolução
• Impulso
• Subtração de duas imagens:– Útil para diferenças entre imagens
Ex: sequências em uma animação
• Adição de duas imagens
Operações Aritméticas com Imagens
• Multiplicação por um escalar
IMAGEM 2
IMAGEM 1 IMAGEMFINAL
Operação
FILTRO
IMAGEMORIGINAL
FILTROIMAGEM
FINAL
• Filtros de AmplitudeAtuam diretamente no espaço de cor das imagens
• Filtros TopológicosAtuam no domínio da imagem
Filtros de Amplitude x Topológico
Gamma Correction
PUNCH
Convolução Discreta 2DFiltro representadopor uma Matriz 3x3:
Imagem (5x5): 6 4 5 6 8
9 0 4 8 5
3 2 3 4 2
9 2 3 6 1
7 8 9 0 4111
111
111
1/9
Para cada pixel da imagem•Posicionar centro do filtro sobre o pixel•Calcular média ponderada dos pixels vizinhos segundo os valores do filtro•pixel correspondente na imagem final ganhará essa média
Exemplo no pixel (2,4): 6 4 5 6 8
9 0 4 8 5
3 2 3 4 2
9 2 3 6 1
7 8 9 0 4
(2+3+4+2+3+6+8+9+0) / 9 ≈ 4
Considerações:
• Complexidade?
• Valores Negativos?
• O que fazer na borda?
Algoritmo:
Considerações quanto a Convolução Discreta 2D
• Complexidade da operação entre uma imagem mxn e um filtro pxq? m•n•p•q Em alguns casos é possível melhorar através de duas passadas 1D
• Alguns filtros podem conter valores negativos, levando a resultados com valores negativos (ou mesmo valores fora do espaço de cores)! Duas soluções simples:
arrendondar para o valor existente mais próximo (negativos→0) Transformação dos valores (offset + redistribuição de valores)
Considerações quanto a Convolução Discreta 2D
• Problemas na borda: Como estender o domínio? Extensão nula Extensão periódica
Extensão por reflexão
• Quantidade par de coeficientes por linha ou coluna! Onde fica o centro do filtro?
? ?
? ?
Código da convolução?
Filtro BOX
111
111
111
1/9
Como será a imagem final após a filtragem pelo filtro BOX?• Cada pixel será a média dos vizinhos• Um pixel branco no meio de pixels azuis vai ficar azulado• Portanto este filtro vai borrar a imagem• É chamado de filtro passa baixa (porque deixa passar apenas baixas freqüências,as altas são filtradas)
Resultado de um Filtro BOX
BOX
• O Filtro BOX é anisotrópico
Filtro Gaussiano
n 2n Máscara de coeficientes
1 2 1 1
2 4 1 2 1
3 8 1 3 3 1
4 16 1 4 6 4 1
5 32 1 5 10 10 5 1
6 64 1 6 15 20 15 6 1
7 128 1 7 21 35 35 21 7 1
8 256 1 8 28 56 70 56 28 8 1
121
242
1211
16
1331
3993
3993
1331
164
14641
41624164
62436246
41624164
14641
1256
Triângulo de pascal para geração discreta da Gaussiana
Resultado do Filtro Gaussiano
Gauss
• O Filtro Gaussiano é isotrópico
Filtro Laplaciano
0 1 0
1 - 4 1
0 1 0
1 1 1
1 - 8 1
1 1 1
• Filtro passa alta.
• Somar à imagem originalpara realçar os detalhes.
truncation
offset
Ampliação e Redução
10 x 8
14 x 10
8 x 5
Redução
Ampliação Ampliação:• Pixel resize•Interpolação não linear bicubic resample
Redução:• Pixel resize (filtragem)• Interpolação linear bilinear resample
Combinação de Imagens
• Pixels alternados
• Imagens com as cores misturadas (blend)
• Álgebra (adição e subtração)
• Canal Alpha (composição)
• Morphing
• Profundidade *
Pixels Alternados
AAAAAA
AAAAAA
AAAAAA
AAAAAA
AAAAAA
AAAAAA
BBBBBB
BBBBBB
BBBBBB
BBBBBB
BBBBBB
BBBBBB
ABABAB
BABABA
ABABAB
BABABA
ABABAB
BABABA
Blend de imagens
Imagem A Imagem B
Imagem com 40% de A e 60% de B
Álgebra: 0.4·A + 0.6·B
Álgebra de imagens
IMAGEM 2
IMAGEM 1 IMAGEMFINAL
Operação
Canal Alpha (composição)
Canal Alpha
Canal Alpha (composição)
Canal Alpha com 8 bits.
Exemplo: imagem1 com alpha, compondo com a imagem2
O pixel da imagem final (pf) será a composição do pixel da imagem1(p1) com o da imagem2 (p2), na proporção do alpha [0,1].
Para cada pixel:
pf = α·p1 + (1- α)·p2
OBS: imagem com 32 bits (8 bits para o canal Alpha)
Morphing
Dithering / Half Toning
Animações com Sprites
Canal AlphaSeqüências coladas no mesmo fundo