Por que os filtros gaussianos são usados ​​como filtros passa-baixo no processamento de imagens?

30

No processamento de sinal 1d, muitos tipos de filtros passa-baixo são usados. Porém, filtros gaussianos quase nunca são usados.

Por que eles são tão populares em aplicativos de processamento de imagem? Esses filtros são o resultado da otimização de qualquer critério ou são apenas uma solução ad hoc, já que a 'largura de banda' da imagem geralmente não está bem definida.

nimrodm
fonte

Respostas:

28

Os aplicativos de processamento de imagem são diferentes dos aplicativos de processamento de áudio, porque muitos deles são ajustados para o olho. As máscaras gaussianas simulam quase perfeitamente o desfoque óptico (consulte também as funções de espalhamento pontual ). Em qualquer aplicativo de processamento de imagem orientado à produção artística, os filtros gaussianos são usados ​​para desfocar por padrão.

Outra propriedade quantitativa importante dos filtros gaussianos é que eles estão em todos os lugares não negativos . Isso é importante porque a maioria dos sinais 1D varia cerca de 0 ( ) e pode ter valores positivos ou negativos. As imagens são diferentes no sentido de que todos os valores de uma imagem são não negativos ( ). A convolução com um kernel gaussiano (filtro) garante um resultado não negativo; portanto, essa função mapeia valores não negativos para outros valores não negativos ( ). O resultado é, portanto, sempre outra imagem válida.xRxR+f:R+R+

Em geral, a rejeição de frequência no processamento de imagens não é tão crucial quanto nos sinais 1D. Por exemplo, em esquemas de modulação, seus filtros precisam ser muito precisos para rejeitar outros canais transmitidos em diferentes frequências de operadoras e assim por diante. Não consigo pensar em algo tão constrangedor para problemas de processamento de imagem.

Phonon
fonte
21

Os filtros gaussianos são usados ​​no processamento de imagens porque possuem uma propriedade cujo suporte no domínio do tempo é igual ao suporte no domínio da frequência. Isso ocorre porque o Gaussiano é sua própria Transformada de Fourier.

Quais são as implicações disto? Bem, se o suporte do filtro for o mesmo em qualquer domínio, isso significa que a proporção de ambos os suportes é 1. Como se vê, isso significa que os filtros gaussianos têm o 'produto mínimo de largura de banda de tempo'.

Então o que você pode dizer? Bem, no processamento de imagens, uma tarefa muito importante é remover o ruído branco, mantendo ao mesmo tempo bordas salientes. Isso pode ser uma tarefa contraditória - o ruído branco existe em todas as frequências igualmente, enquanto as bordas existem na faixa de alta frequência. (Mudanças repentinas nos sinais espaciais). Na remoção tradicional de ruído por meio de filtragem, um sinal é filtrado com passa-baixo, o que significa que os componentes de alta frequência em seu sinal são completamente removidos.

Mas se as imagens tiverem bordas como componentes de alta frequência, o LPF'ing tradicional também as removerá e, visualmente, isso se manifesta à medida que as bordas se tornam mais "borradas".

Como então, para remover o ruído, mas também preservar as bordas de alta frequência? Digite o kernel gaussiano. Como a transformada de Fourier de um gaussiano também é gaussiana, o filtro gaussiano não possui um corte agudo em alguma frequência da banda de passagem além da qual todas as frequências mais altas são removidas. Em vez disso, possui uma cauda graciosa e natural que se torna cada vez mais baixa à medida que a frequência aumenta. Isso significa que ele atuará como um filtro passa-baixo, mas também permitirá que componentes de alta frequência sejam proporcionais à rapidez com que sua cauda se deteriora. (Por outro lado, um LPF terá um produto de largura de banda maior, porque seu suporte no domínio F não é tão grande quanto o de um gaussiano).

Isso permite obter o melhor dos dois mundos - remoção de ruído e preservação de bordas.

Spacey
fonte
2
Não tenho certeza de que você possa comparar os dois suportes diretamente, pois um é medido em tempo / duração e o outro em Hz / radianos. Sua morfologia é idêntica, mas a propriedade de escala universal ainda é válida.
31412 Phonon
Obrigado por me lembrar do produto com largura de banda mínima de tempo. No entanto, como Phonon mencionou, reduzir o suporte ao domínio espacial (~ tempo) necessariamente aumenta a largura de banda. Não há como você ter a supressão de ruído e preservar as bordas com um simples filtro gaussiano. Por isso a Perona & Malik desenvolveu a filtragem anisotrópica.
Nimrodm
@Phonon Como eu já vi, os suportes são simplesmente quantas entradas diferentes de zero descrevem a função em ambos os domínios - acredito que sejam iguais. (Portanto, razão de 1). Dito isto, o produto de largura de banda no tempo é medido como um produto da variação da função no tempo e na frequência. Como sua normalizada difere dos autores, eu vi que isso equivale a 1/2 ou 1/4.
Spacey
1
@nimrodm "reduzir o suporte ao domínio espacial (~ tempo) necessariamente aumenta a largura de banda.", Sim, essa é a tendência , decorrente da relação inversa de tempo e frequência. (É daí que vem a incerteza da frequência do tempo). No entanto, a função gaussiana é de uma classe que minimiza totalmente esse produto. Dada a relação inversa entre tempo e frequência, não há como fazê-lo, a menos que tenha suporte igual nos dois domínios.
Spacey
@nimrodm Na difusão anisotrópica, os núcleos que vi ainda são gaussianos, embora com matrizes de covariância que dependem do gradiente da imagem. (Também é um método não linear, VS suavização gaussiana que é linear). Mas, o gaussiano permanece usado devido às suas propriedades.
Spacey
11

Você já tem boas respostas, mas vou adicionar mais uma propriedade útil dos filtros Gaussianos 2D, que são separáveis , ou seja, o filtro 2D pode ser decomposto em dois filtros 1D. Isso pode ser uma consideração importante de desempenho para tamanhos maiores de kernel, já que um filtro separável MxN pode ser implementado com M+Nmultiplicações adicionadas, enquanto um filtro MxN não separável requer M*Nmultiplicações adicionadas.

Paul R
fonte
2
Esse é um bom argumento. Um filtro Gaussiano 2D é radialmente simétrico e ainda separável, portanto a complexidade da implementação é bastante reduzida.
Nimrodm 01/08
1
Como referência, o Guia do cientista e do engenheiro para DSP fornece uma excelente descrição dessa propriedade no Capítulo 24 .
Caleb Reister
6

O manual do imagemagick tem uma ótima explicação de por que a filtragem com funções sinc leva a efeitos de "toque", enquanto os gaussianos não. ( http://www.imagemagick.org/Usage/fourier/#blurring e http://www.imagemagick.org/Usage/fourier/#circle_spectrum ). Quando você tem bordas (descontinuidades) em sua imagem (o que a maioria das imagens possui), cortar completamente todas as altas frequências deixa você com ondulações no domínio espacial. Você também toca quando filtra ondas quadradas com uma função sinc em uma dimensão.

Lógica Errante
fonte
2

Já houve respostas bonitas, mas adicionarei meu grão de sal, ou uma perspectiva diferente:

A filtragem no nível mais abstrato pode ser considerada como aplicação de algum conhecimento prévio a alguns dados brutos. Isso significa que aplicar algum algoritmo de filtragem é aplicá-lo antes de encontrar uma ótima relação sinal / ruído, por exemplo.

Para a imagem, um prior clássico é a suavidade dos valores (por exemplo, intensidade) em relação à posição (isso pode ser visto como a função de dispersão pontual mencionada por @Phonon). Geralmente, ele é modelado como um gaussiano, pois é a forma que você obteria ao misturar objetos diferentes com um raio de suavidade conhecido (isso é chamado de teorema do limite central ). Isso é útil principalmente quando você deseja derivar uma imagem: em vez de diferenciar o sinal bruto (o que produziria uma saída ruidosa), você deve fazer isso na imagem suavizada. Isso é equivalente à aplicação de um operador semelhante a uma wavelet, como os filtros Gabor .

meduz
fonte