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