###Date: 2018.5.8函數
================================================編碼
轉載自:http://www.javashuo.com/article/p-migvxzge-eb.html spa
引言
圖像模糊是一種拍攝常見的現象,我曾在圖像去模糊(維納濾波) 介紹過。這裏再也不詳述,只給出物理模型,這裏咱們仍在頻率域表示
.net
G(u,v)=H(u,v)F(u,v)+N(u,v)(1)G(u,v)=H(u,v)F(u,v)+N(u,v)(1)
其中提到最簡單的復原方法是直接作逆濾波(Inverse filter)。
F^(u,v)=G(u,v)H(u,v)(2)F^(u,v)=G(u,v)H(u,v)(2)
該除法是陣列操做,即按位除。
在含有噪聲狀況下,將(1)式兩端除以 H(u,v)H(u,v)
F^(u,v)=F(u,v)+N(u,v)H(u,v)(3)F^(u,v)=F(u,v)+N(u,v)H(u,v)(3)
這裏 N(u,v)N(u,v) 未知,式子代表,即便知道退化函數也不能準備復原圖像。還有當退化函數 H(u,v)H(u,v) 是零或者很是小的值,則 N(u,v)H(u,v)N(u,v)H(u,v) 很容易支配整個式子。
下面我將用代碼說明一下逆濾波,這裏我採用直接編碼形式。對了,前面我提到過,當噪聲信息比
NSR
等於0時,此時維娜濾波等同於逆濾波。所以能夠直接使用matlab自帶deconvwnr函數,將第三個參數
NSR
設置成0便可,省事的同窗能夠試一下。
代碼
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
這裏使用了經典的lena圖是灰度圖像,分別對圖像進行運動模糊,逆濾波,運動模糊+高斯噪聲,假定噪聲未知直接逆濾波,噪聲已知逆濾波。3d
效果
說明
逆濾波對噪聲很是敏感,除非咱們知道噪聲的分佈狀況(事實上,這也很難知道),逆濾波幾乎不可用,能夠從二排中間看出,恢復圖像效果極差。但若知道噪聲分佈,也是能夠徹底復原信息的。能夠從二排最後一張圖能夠看出。寫做本文的目的也僅是在數學角度上對圖像模糊現象進行分析,後續會介紹更加有效的圖像復原方法,敬請關注。rest
相關閱讀及參考文獻
圖像去模糊(維納濾波) http://blog.csdn.net/bluecol/article/details/46242355
圖像去模糊(約束最小二乘濾波) http://blog.csdn.net/bluecol/article/details/47359421
數字圖像處理(第三版) 岡薩雷斯著 chapter 5,圖像復原與重建code
轉載請保留如下信息
做者 | 日期 | 聯繫方式 |
---|---|---|
風吹夏天 | 2015年8月8日 | wincoder@qq.com |