Filtro Wiener para Redução de Ruído de Imagem (Denoising de Imagem)


16

Estou tentando entender a operação do filtro Wiener com a finalidade de reduzir o ruído da imagem. No meu caso, usarei primeiro outro filtro de redução de ruído e depois utilizarei o resultado disso como uma aproximação das características de ruído do filtro Wiener.

Em relação às informações sobre o filtro Wiener, achei útil o seguinte código e descrição do Matlab:

http://www.mathworks.co.uk/help/toolbox/images/f11-12251.html#f11-14272

e alguns outros bons links, como

http://blogs.mathworks.com/steve/2007/11/02/image-deblurring-wiener-filter/

Portanto, de uma perspectiva do Matlab, posso ver como usar a função incorporada do Matlab, mas gostaria de obter uma compreensão mais fundamental, em vez de apenas usar a chamada de função, mas ao mesmo tempo, prefiro encontrar algo mais digerível do que a entrada da Wikipedia sobre filtragem Wiener .

Alguém gostaria de oferecer uma breve explicação sobre a filtragem Wiener?


2
antes que uma resposta seja dada ... você precisa indicar qual é o seu histórico. você conhece a teoria dos processos aleatórios? Sem conhecer a teoria dos processos aleatórios, é quase impossível dar uma explicação concreta.
— Trevor Boyd Smith

A menos que você esteja bem com uma explicação mais acenando com a mão.
— Trevor Boyd Smith

Obrigado pela resposta. Sim, eu sou bastante confortável com a teoria processo aleatório e minha formação é em processamento de imagem
— Trican

3
bem ... se você tem experiência em processos aleatórios, deve ser possível dar uma boa explicação. (Agora eu preciso encontrar tempo para escrever uma boa explicação.)
— Trevor Boyd Smith

Obrigado Trevor! muito apreciado - mesmo algumas boas dicas para me chutar na direção certa seriam muito apreciadas.
— trican 22/09

Respostas:



11

Há outra entrada da Wikipedia sobre a filtragem Wiener mais aplicável ao processamento de imagens.

Para resumir (e convertido a 2D), dado um sistema de: , onde

y(n,m)=h(n,m)∗x(n,m)+v(n,m)
  • denota convolução,∗
  • é a imagem verdadeira (desconhecida),x
  • é a resposta ao impulso de um filtro linear, invariável no tempo,h
  • é ruído desconhecido aditivo independente de x , evx
  • é a imagem observada.y

Queremos encontrar um filtro de desconvolução de modo que podemos estimar x como se segue: x ( n , m ) = g ( n , m ) * y ( n , m ) onde X é uma estimativa de x que minimiza o médios erro quadrado.gx

x^(n,m)=g(n,m)∗y(n,m)
x^x

No domínio da frequência, a função de transferência de , G é: G ( ω 1 , ω 2 ) = H ∗ ( ω 1 , ω 2 ) S ( ω 1 , ω 2 )gG onde

G(ω1,ω2)=H∗(ω1,ω2)S(ω1,ω2)|H(ω1,ω2)|2S(ω1,ω2)+N(ω1,ω2)
  • Gg
  • Hh
  • Sx
  • Nv

G

G(ω1,ω2)=1H(ω1,ω2)[|H(ω1,ω2)|2H(ω1,ω2)|2+N(ω1,ω2)S(ω1,ω2)]
H

Muito obrigado pela sua resposta completa. Não estou claro como posso usar o estágio anterior de denoising dentro da explicação acima? No geral, vou precisar me sentar e descobrir como pegar a explicação acima e implementá-la.
— trican 27/09/11

g∗yy

Desculpe se eu não estava claro, o que eu quis dizer é que, para os principais algoritmos de redução de ruído de imagem como SADCT ou BM3D ( cs.tut.fi/~foi/GCF-BM3D ). Um primeiro estágio de redução de ruído é realizado (via SADCT ou filtragem 3d de correspondência de blocos para os dois algoritmos mencionados) e o resultado disso é usado como uma aproximação para o estágio secundário que utiliza filtragem de wiener. Estou tentando entender o estágio de filtragem da salsicha secundária, portanto, minha pergunta original.
— trican 27/09/11
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.