蘇婕+于蓮芝



摘 要:為改善原始圖像清晰度差、提高圖像視覺效果,采用空間域圖像濾波方法。該方法相比時域濾波方法,雖然算法復雜,但可使圖像獲得更好的視覺效果。運用MATLAB軟件對原始圖像進行平均平滑、高斯平滑、中值濾波及基于一階和二階微分的銳化算子進行一系列處理,分析了每種處理方法的優缺點。實驗結果顯示:采用空間域的圖像濾波方法不僅具有良好的去噪效果,而且可以極大改善原始圖像質量。
關鍵詞:空間域;平均平滑;高斯平滑;中值濾波;圖像濾波
DOIDOI:10.11907/rjdk.171326
中圖分類號:TP319
文獻標識碼:A 文章編號文章編號:1672-7800(2017)008-0132-03
0 引言
圖像增強研究與應用始于20世紀60年代,一些研究者對來自太空飛船實時發回的圖像信息進行一系列圖像增強處理,以便獲取較好的圖像質量。圖像增強技術被廣泛應用于信息學、天文學、工農業、國防、藝術等領域[1]。
數字圖像處理是指使用計算機對量化的數字型圖像進行處理,具體來說就是對圖像進行加工來改善圖像質量。數字圖像處理分為3塊:圖像預處理、圖像特征提取、圖像的識別和分析。
圖像預處理一般包括圖像的幾何運算、灰度變換以及濾波變換等,主要目的是盡可能消除圖像識別干擾,利于圖像特征提取以及識別分析。如果預處理出現較大偏差,則后期處理工作很難開展,所以對原圖的預處理要盡可能選擇最優處理方法,達到最好效果;圖像特征提取指使用計算機來提取圖像中包含的信息,從而判斷圖像上的每一個點是否為某一個具體圖像特征;圖像識別與分析指對圖像內容進行分析和識別。
1 空間域圖像增強基本理論
空間域圖像增強與頻率域圖像增強是在不同領域對圖像進行濾波處理,只不過有些濾波更加適合在空間域完成,有些則更適合在頻域中完成。本文研究的空間域圖像增強技術主要包含直方圖均衡化、圖像平滑以及圖像銳化等操作[2]。
直方圖均衡化:通過某種方式把圖像轉化為在一定范圍內的每一個灰度級上都有數量相仿的像素點數(即輸出的直方圖是均勻的),這樣的圖像有相對高的對比度。
圖像平滑及圖像銳化:圖像平滑是減少噪聲的數字圖像處理技術,常采用領域平均以達到平滑,而圖像銳化是把模糊度較低的圖像變得更加清晰。
2 MATLAB軟件開發環境
MATLAB是由Mathworks 公司開發的一款工程數學計算軟件,是高性能數值計算和可視化軟件,全稱是Matrix laboratory。C++、Java、C#、Fortran等高級編程語言用于對機器行為進行描述,MATLAB用于對數學操作進行直接描述。
MATLAB圖像處理工具箱(Image Processing Toolbox ,IPT)封裝一系列圖像處理算法,通過直接或間接調用MATLAB中的矩陣運算和數值運算函數完成圖像處理任務。利用MATLAB的圖像處理工具箱可以不用太在意圖像格式、顯示以及內容等細節,專心致力于圖像處理算法研究,極大提高了工作效率,靈活可行 [3]。
3 空間域圖像增強在MATLAB上的實現
3.1 濾波操作的MATLAB實現
MATLAB中與濾波相關的函數有imfilter和fspecial,imfilter完成濾波操作,而fspecial可以創建一些預定義的二維濾波器,直接提供給imfilter使用。濾波函數imfilter原型如下:
g=imfilter(f,w,option1,option2,...)(1)
式(1)中f是進行濾波操作的圖像,w是濾波操作使用的模板,為一個二維數組。option1,option2,...是可選項。
fspecial創建預定義的二維濾波器,其調用格式如下:
h=fspecial(type,parameters)(2)
式(2)中type用于指定濾波器類型,Parameter為可選項,是和所選的濾波器類型type相關的配置參數。
3.2 平滑空間濾波器
3.2.1 平均模板及其實現
模板中所有系數都相等,表示它們對某一像素值的貢獻大小一樣。模板元素之和為1,這樣就能讓新圖像和原始圖像一樣保持在一個灰度范圍之內,這樣的模板叫平均模板。
主要的MATLAB程序如下:
A=imread('D:\\Program Files\\MATLAB\\R2012b\\pic\萌圖.jpg');
h=fspecial('average',5);
C=imfilter(B,h)
其在MATLAB上的處理結果如圖1所示。
從圖1可以看出,平均模板雖然在濾波過程中平滑處理了更多噪聲,但同時也使圖像不清晰,這是由平均模板的工作機理決定的。
3.2.2 高斯平滑及其實現
為了減少平均平滑處理中的模糊問題,采取加大模板中心點權重方法,即離中心點遠的點權重減小,這種模板稱為高斯模板。
MATLAB程序如下:
A=imread('D:\\Program Files\\MATLAB\\R2012b\\pic.jpg');
h3_5=fspecial('gaussian',3,0.5);
I3_5=imfilter(B,h3_5);
h3_6=fspecial('gaussian',3,0.8);
I3_6=imfilter(B,h3_6);
h3_7=fspecial('gaussian',3,1.8);endprint
I3_7=imfilter(B,h3_7)
分別對標準差Sigma取不同值,高斯平滑在MATLAB軟件上實現的效果分別為如圖2(a)、(b)、(c)、(d)所示。
由圖2可見,當標準差sigma取不同值時,會出現不同效果。Sigma過小,無法起到平滑噪聲作用;sigma過大則退化為平均模板。一般在3×3模板中,取0.8較為合適。
3.3 統計排序濾波器
統計濾波器是一種非線性濾波器,其中中值濾波器使用最普遍。這種濾波器先將模板中包圍圖像區域像素大小進行排序,然后用排序結果決定的值替代模板中心像素的值。中值濾波是消除椒鹽噪聲的典型應用 [4-6]。MATLAB提供了medfilt2函數實現中值濾波,原型為:I2=medfilt2(I1,[m,n]) (3)
式(3)中I1是原圖矩陣,m和n是中值濾波處理的模板大小。
統計濾波器在MATLAB實現程序如下:
A=imread('D:\\Program Files\\MATLAB\\R2012b\\pic.jpg');
C=medfilt2(A,[3,3],'symmetric')
中值濾波在MATLAB的實現效果如圖3所示。
對比圖3的(a)、(b),可見中值濾波不僅可以抑制椒鹽噪聲,還使模糊效應明顯降低,使圖像清晰度更高,效果更優。
3.4 圖像銳化處理
銳化處理主要目的是突出灰度過渡部分。
3.4.1 基于一階導數的圖像增強
分別采用w1算子和w2算子對一階導數的圖像增強進行圖像銳化處理,其在MATLAB中的實現效果如圖4所示。
由w1和w2算子分別進行銳化的結果都可能存在負值,所以采取取絕對值后的圖像。圖4(b)中接近正45°邊緣較明顯,而圖4(c)顯示出近負45°方向的邊緣。兩者相結合就是圖4(a)中顯示的Robert交叉梯度圖像。
3.4.2 基于二階微分的圖像增強
拉普拉斯模板結構不同于一階梯度算子模板,它對于90°的旋轉是各向同性的,這表明拉普拉斯算子在近水平和接近豎直方向的邊緣都有很好的增強效果,避免了用梯度算子時需要進行兩次濾波的繁瑣。基于二階微分的圖像增強實現效果如圖5所示。
3.4.3 基于一階和二階導數的銳化算子比較
一階導數往往會產生比二階導數算子寬的圖像邊緣,而二階導數對細節有較強的響應,比如細線和孤立噪聲點。對于圖像增強來說,基于二階導數的算子應用會更加廣泛,對于細節的處理更優,一階算子和二階算子結合使用能達到更好的銳化增強效果。
4 結語
本文基于MATLAB軟件環境,對空間域圖像增強進行了研究。在該研究中,對于線性和非線性濾波以及圖像銳化處理,應用了軟件的算術運算和矩陣運算功能,并對圖像增強中的平均模板、高斯平滑、中值濾波以及圖像銳化進行了MATLAB實現,在數字圖像處理研究中能得心應手,極大提高了工作效率。結果表明,空間域的圖像增強技術不僅具有良好的去躁效果,而且可以提高圖像清晰度。后續將研究時域圖像處理技術,將兩者優勢結合起來,使圖像處理效果更好。
參考文獻:
[1] 岡薩雷斯.數字圖像處理[M].MATLAB版.北京:電子工業出版社,2007.
[2] 張錚,王艷平,薛桂香.數字圖像處理與機器視覺——VisualC++與Matlab實現[M].北京:人民郵電出版社,2010.
[3] 鄧紅濤,趙慶展.基于MATLAB的圖像處理研究[J].信息技術, 2009(2):17-19.
[4] 楊丹,趙海濱,龍哲.MATLAB圖像處理實例詳解[M].北京:清華大學出版社,2013.
[5] 余成波.數字圖像處理及MATLAB實現[M].重慶:重慶大學出版社,2003.
[6] P RAMESH BABU.Digital image processing[M].Scitech Publications,2003.endprint