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?

trican
fonte
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
Peter K.
fonte
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
gyy
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