1. 程式人生 > >使用 matlab 數字影象處理(十)—— 維納濾波復原

使用 matlab 數字影象處理(十)—— 維納濾波復原

逆濾波只能解決只有退化函式,沒有加性噪聲的問題。維納濾波又稱最小均方誤差濾波,綜合考慮了退化函式和噪聲。均方誤差由下式給出:

e2=|f(x)f^(x)|2

假定噪聲與影象是不相關的,復原影象的最佳估計可用下式表示:

F^(u,v)=[HH(u,v)|H(u,v)|2+Sn(u,v)/Sf(u,v)]G(u,v)

因為 |H(u,v)|2=H(u,v)HH(u,v),因而可以寫為:

F^(u,v)=[|H(u,v)|2|H(u,v)|2+Sn(u,v)/Sf(u,v)1H(u,v)]G(u,v)

式中各項的定義分別如下:

  • (1)H(u,v):退化函式
  • (2)HH(u,v):共軛
  • (3)|H(u,v)|2=HH(u,v)H(u,v)
  • (4)Sn(u,v):噪聲的功率譜
  • (5)Sf(u,v):為退化函式的功率譜

觀察公式可以發現,加入沒有噪聲,則 Sn(u,v)=0,此時維納濾波退化為逆濾波。那麼又該如何估計 Sn(u,v)/Sf(u,v) 呢。假設退化過程已知,則 H(u,v) 可以確定,假如噪聲為高斯白噪聲,則 Sn(u,v) 為常數,但 Sf(u,v) 通常難以估計。一種近似的解決方法即是用一個係數 K 來代替 Sn(u,v)/Sf(u,v)。此時公式變為:

F^(u,v)=[|H(u,v)|2|H(u,v)|2+K1H(u,v)]G(u,v)