Filtros de Convolução

Filtros de convolução são usados para criar efeitos em imagens como por exemplo borramento e aguçamento.

Como podem ser calculados os filtros de convolução

Os filtros de convolução podem ser calculados de forma espacial ou no domínio da frequência. Filtros no domínio espacial têm a vantagem de não requerirem nenhuma transformação e operam diretamente sobre os pixels da imagem. São eles (filtros espaciais) que serão abordados nesta página. Para facilitar a compreensão de filtros de convolução espaciais, primeiro lida-se com a aplicação deles em imagens em escala de cinza, para depois então ser discutido algo sobre sua aplicabilidade em imagens coloridas.

O cálculo de filtros de convolução em imagens é feito usando uma máscara ou kernel que é multiplicado pelos valores de intensidade da imagem. A aplicação desta máscara na imagem atual gera uma imagem nova de mesmas dimensões.

Alguns detalhes sobre o cálculo:

  • A máscara tem tamanho NxN, com N sendo um número ímpar.
  • A máscara é colocada sob uma determinada região da imagem. Desta forma a máscara encobre uma região da imagem, sendo que cada valor da máscara encobre exatamente um pixel da imagem
  • O pixel encoberto pela região central é aquele que está sendo alterado.

Segue um exemplo da alteração de um pixel da imagem através de convolução espacial:

convolution-ex.gif
Fonte: http://www.generation5.org/content/2002/convolution.asp

Aqui o pixel com valor 147 é alterado. o cálculo do novo valor é:

221 x -1 + 198 x 0 + 149 x 1 +
205 x -2 + 147 x 0 + 173 x 2 +
149 x -1 = 170 x 0 + 222 x 1 = -63

neste caso como o valor de imagens em escala de cinza está no alcance de [0, 255], o resultado -63 é fixado ao valor mais próximo representável em escala de cinza, isto é, zero.

A operação que foi demonstrada para o pixel de intensidade 147 na figura é aplicada para todos os outros pixels. É muito importante frisar a indpendẽncia entre os pixels. O valor calculado -63 que foi arredondado para zero nada influi no cálculo dos outros pixels, pois apesar da mesma máscara ser usada sempre considera-se os valores da imagem velha para a multiplicação a ser efetuada. assim, se fosse calculado o valor do pixel de intensidade 173 na figura o cálculo seria este:

198 x -1 + 149 x 0 + x * 1 +
147 x -2 + 173 x 0 + y * 2 +
170 x -1 + 222 x 0 + z * 1 = (novo valor do pixel 173)

tal operação pode ser visualizada abaixo

convolution-window.gif
Fonte: http://www.generation5.org/content/2002/convolution.asp

exemplos de filtros de convolução

TODO: Colocar exemplos

Links

TODO: Adicionar links.
TODO: Colocar como anexo código-fonte.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-Share Alike 2.5 License.