維納濾波進行影象去抖動去模糊
首先,我們簡單說明一下利用維納濾波進行影象去抖動去模糊的基本原理,並給出模擬結果。
利用維納濾波器進行影象去抖去模糊的基本原理如下所示:
對原始影象進行維納濾波的演算法是首先估計出每個畫素點的M*N鄰域內的平均值和方差值。有如下兩個表示式計算:
用如下的表示式計算輸出的灰度值。其中a(n1,n2)是調整前的灰度值,b(n1,n2)是調整後的灰度值:
以上這部分是維納濾波的基本原理,在我們提供的一些參考文獻中均有詳細介紹,所以這裡就不多做介紹了,我們主要是對後面的創新部分進行詳細的說明。
注意:由於手機拍攝抖動導致的模糊,在數學上屬於運動模糊,所以,我們為了對比濾波效能的好壞,直接使用運動模糊來模擬抖動效果。然後進行濾波對比。
使用傳統的維納濾波演算法,對抖動模糊的模擬效果如下所示:
執行程式:main.m
車1:
車2:
車3:
其餘結果可自行測試。
下面,我們對維納濾波之後的影象質量進行實際的分析。
執行程式:main_pnsr.m
圖1 圖2
圖3
注意,在程式main_pnsr.m中
上面的圖中:
圖1:引數為LEN=30,Motion=30
圖2:引數為LEN=30,Motion=38
圖3:引數為LEN=30,Motion=20
從模擬結果可知,通過維納濾波之後,影象的質量得到了明顯的提升,和我們肉眼看到的結果一致。
當影象處理端定義的運動模糊模型引數和實際模型完全吻合的時候,影象具有較好的濾波特性,而兩個引數出現偏差的時候,濾波效果較差。這個是維納濾波的一個缺陷,
在分析另一個缺陷:
缺陷分析:
開啟main_test.m
由於在實際中,進行維納濾波的模組都是固定引數的,但是手機拍攝輸入的抖動程度是不一定的,那麼這個時候,會導致某些程度的抖動,系統無法正常工作。我們對這種現象進行測試,效果如下所示:
設定模糊引數LEN=5,運動模型引數motion=10。
很明顯,當兩個引數不一致的時候,濾波效果比較差(注意,在實際中,我們不能直接使用PSF這個引數,因為這個引數僅僅在影象源)。
設定模糊引數LEN=15,運動模型引數motion=10。
假設LEN和motion引數完全相同,這個時候,我們又需要對維納濾波的引數進行設定,
假設LEN = Motion =50;然後設定不同的引數:
0.1:
0.01:
0.001:
0.0001:
0.00001:
0.000001:
即,引數的不同,會對最後的濾波效果有較大的影響。
通過上面分析,使用維納濾波的時候,由於同時需要控制兩個引數,這就大大增加了系統濾波的引數控制難度
注意,在很多現有資料中,程式碼都deconvwnr(Ipsf,PSF)這麼寫,其實這麼做是不完善的,因為PSF是在影象源中加入抖動的時候產生的。實際中PSF的具體值是未知的,只能知道其維度。
所以,直接使用維納濾波具有很大的難度。這裡我們選擇逆卷積+自適應引數控制的方法進行設計。
改進演算法的實現:
% 引數自適應識別
這裡,我們首先需要引入影象模糊度的概念(影象模糊度的參考論文很多,但是我這沒發現利用影象模糊度和去抖動濾波的資料,所以我這裡將這兩種演算法進行結合)
影象模糊度,這裡我提供的文獻如下所示:
首先,我們開啟這個資料夾,執行程式,選擇不同的影象進行測試,這裡,我們隨機的選擇三個影象來測試。模擬結果如下所示:
從上面的模擬結果可知,通過對不同的影象進行測試,我們都可以計算其模糊度來區分該影象的模糊程度,從而選擇一個合適K值。
這裡,我們發現,對於設定不同的模糊度LEN,其值差不多都是0.8左右最小,最大到0.9左右。因此,我們設定如下的對應關係:
即通過計算模糊度,然後根據不同的值,輸入進入逆卷積濾波。
改進後的演算法流程如下所示:
左圖是原始的演算法,有圖是本文介紹的改進後的演算法(看了一些資料,貌似都沒這麼幹)
通過加入模糊度計算之後,我們進行模擬,分別設定抖動程度為
10:
10:
50:
100:
從程式上看,改進後的演算法:
其通過對輸入模糊影象的模糊度估計,得到K值,而INIIPSF是全1的初始值,因此,整個模型,只需要輸入模糊影象即可,而不需要進行其他引數的人為輸入。
同時,我們對改進後的演算法,計算PNSR。
main_psnr1:輸入模糊程度相同的情況,LEN = 50;執行,獲得如下的曲線:
main_psnr2:輸入模糊程度隨機的情況,LEN = 20~100之間隨機變化;執行,獲得如下的曲線:
這個是對同一個場景下的不同抖動程度的模擬,通過分析,可知,對於任意隨機情況下的抖動,系統都能夠自動的獲得加好的去抖動效果。
關於論文的這個部分內容書寫提綱:
1.介紹抖動模糊的一些理論知識——運動模糊
2.介紹維納濾波和逆卷積濾波的理論知識
3.對維納濾波進行模擬分析,分析其優勢,缺陷
4.根據存在的缺陷,給出本問題的演算法
4.1模糊度的介紹(具體參考我發你的資料)
4.2根據模糊度得到逆卷積濾波引數
4.2模擬分析
5將我們的這個去模糊演算法,引入到你的模型中進行測試,分析效能提升了多少。