Processamento Digital de Imagens
Parte 1. Convolução e Correlação
Bruno Barufaldi
Convolução

Operação de filtragem no domínio espacial

Local (não pontual)

vizinhança

Muito utilizada em SLIT (Sistemas Lineares Invariantes no
Tempo)

Em processamento de imagens digitais, é possível realizar
operações de filtragem de maneira simples.
Convolução

A convolução entre duas funções s(t) e h(t), representada
por s(t)*h(t) gera uma função g(t) dada por:

Não é trivial.
Convolução

Representação gráfica:
Convolução

Primeiro passo:

Rebatimento de h(t) em relação a origem e deslocamento da
função resultante por t
Convolução
Sinal original
Sinal rebatido
Sinal deslocado
Convolução

Integração:

O resultado do produto será nulo para qualquer valor de
t onde não houver interseção entre os intervalos
Convolução

A convolução discreta é a extensão direta da convolução
contínua:

Em situações mais comuns, temos sequências de entradas
finitas, ou seja:
Convolução

Se s[n] e h[n] têm N0 e N1 amostras, temos:
N = N0 + N1 – 1 (extensão por zeros).
Convolução

Exemplo:
Convolução
s = [1,2,3,4,5,2,1]; h = [3,2,1,0,1,2]; N =12.
g[0] = s[0]*h[0-0] = 3
g[1] = s[0]*h[1-0] + s[1]*h[1-1] = 8
g[2] = s[0]*h[2-0] + s[1]*h[2-1] + s[2]*h[2-2] = 14
…
Não esqueçam de extender com 0s!
Convolução

Resultado:
Convolução
Outro exemplo:
s = [5,4,2,3,1,0,2]; h = [1,0,3,2,4,1];
Convolução
s = [5,4,2,3,1,0,2]; h = [1,0,3,2,4,1]; N = 12.
g[0] = s[0]*h[0-0] = 5
g[1] = s[0]*h[1-0] + s[1]*h[1-1] = 4
g[2] = s[0]*h[2-0] + s[1]*h[2-1] + s[2]*h[2-2] = 17
g[3] = 10+12+0+3 = 25
g[9] =0+0+0+0+0+2+0+0+0 = 2
g[4] = 20+8+6+0+1 = 35
g[10] = 0+0+0+0+0+2+0+0+0+0 = 2
g[5] = 5+16+4+9+0+0 = 34
g[11] = 0
g[6] = 0+4+8+6+3+0+2 = 23
g[7] = 0+0+2+12+2+0+0+0 = 16
g[8] = 0+0+0+3+4+0+0 +0 = 7
Convolução

y ( n)   x ( k ) h( n  k )
k 
x(k)
y(k)
0
k
0
k
h(-2-k)
0
k
Convolução

y ( n)   x ( k ) h( n  k )
k 
x(k)
y(k)
0
k
0
k
h(-1-k)
0
k
Convolução

y ( n)   x ( k ) h( n  k )
k 
x(k)
y(k)
0
k
0
k
h(0-k)
0
k
Convolução

y ( n)   x ( k ) h( n  k )
k 
x(k)
y(k)
0
k
0
k
h(1-k)
0
k
Convolução

y ( n)   x ( k ) h( n  k )
k 
x(k)
y(k)
0
k
0
k
h(2-k)
0
k
Convolução

y ( n)   x ( k ) h( n  k )
k 
x(k)
y(k)
0
k
0
k
h(3-k)
0
k
Convolução

y ( n)   x ( k ) h( n  k )
k 
x(k)
y(k)
0
k
0
k
h(4-k)
0
k
Convolução

y ( n)   x ( k ) h( n  k )
k 
x(k)
y(k)
0
k
0
k
h(5-k)
0
k
Convolução

y ( n)   x ( k ) h( n  k )
k 
x(k)
y(k)
0
k
0
k
h(6-k)
0
k
Convolução

Sinal Bidimensional

Máscaras convolucionais
h
h’
h-1,-1
h-1,0
h-1,1
h1,1
h1,0
h1,-1
h0,-1
h0,0
h0, 1
h0,1
h0,0
h0,-1
h1,-1
h1,0
h1,1
h-1,1
h-1,0
h-1,-1
Convolução

Fórmula:
R 1 C 1
gi , j   f a ,b h'i a , j b
a 0 b 0
Em que:
i = 0, 1,..., R-1, j = 0, 1,..., C-1.
f = imagem original
Convolução

Exemplos de máscaras convolucionais

Aguçamento
0
-c
0
-c
-c
-c
-c
4c+d
-c
-c
8c+d
-c
0
-c
0
-c
-c
-c
Convolução

Exemplos de máscaras convolucionais

Detecção de bordas
-1/8 -1/8 -1/8
-1
-1
-1
-1/8
-1/8
0
0
0
-1/8 -1/8 -1/8
1
1
1
1
Convolução

Exemplos de máscaras convolucionais

Detecção de bordas
-1
0
1
-1
-1
0
-1
0
1
-1
0
1
-1
0
1
0
1
1
Convolução

Exemplos de máscaras convolucionais

Relevo
0
0
0
0
0
-1
0
0
2
0
1
0
0
1
0
0
-1
0
0
0
-1
0
0
0
-1
0
0
Convolução

Exemplos de máscaras convolucionais

Gaussiano
1/16
2/16
1/16
2/16
4/16
2/16
1/16
2/16
1/16
Convolução

Exemplos de máscaras convolucionais

Média
1/(MN) 1/(MN)
...
1/(MN) 1/(MN)
...
...
...
...
Correlação

Convolução

Correlação
Download

h - Yimg