鐘倫超 ,何川
(1.黃山學院 教務處,安徽 黃山 245041;2.黃山學院 信息工程學院,安徽 黃山 245041)
隨著計算機技術的快速發展,數字圖像處理成了日常生活和工作應用中不可或缺的部分,很多材料分析和文檔存儲都是通過圖像處理來實現.二值圖像雖然是只有黑白兩種顏色組成的簡單圖像,但是它在數字圖像處理中占據了很重要的地位.二值圖像能夠有效區分圖像的背景和目標物,這一特性使得二值圖像被廣泛應用到各個研究領域,例如,醫學圖像中CT圖像特征提取、生物學方向的植物葉片等輪廓分析、車牌識別和圖像的字符提取等.
二值圖像處理離不開圖像放大技術,圖像放大有利于觀察圖像的細節特征.但是傳統的二值圖像放大會給圖像邊界帶來鋸齒,使圖像邊界不光滑,降低二值圖像的視覺效果,嚴重影響圖像的使用和美觀.針對該問題,江巨浪、張佑生等人提出一種基于區域填充的二值圖像放大算法[1],對鋸齒區域檢測并進行處理,使圖像邊界變得光滑.該算法有效地解決了二值圖像放大所帶來的邊緣鋸齒問題,但是這類算法也存在一定不足,其在對二值圖像放大產生的鋸齒區域進行補償后,新圖像的邊緣出現外擴現象,圖像面積增加,圖像目標物像素占比遠大于原放大圖像目標物像素占比.針對這個問題,江巨浪等人提出了一種基于區域補償的鋸齒消除算法[2],先對圖像近鄰放大一定倍數,再用鋸齒區域補償法對鋸齒進行去除,最后通過提出的形態學腐蝕算法對圖像邊緣外擴部分進行合理收縮.本文基于鋸齒檢測和填充算法[1],提出一種改進的邊界保持算法,將圖像邊緣收縮到合理位置,同時使圖像邊緣保持良好的結構性.通過實驗對比,本文算法處理的圖像效果明顯優于文獻[1]、文獻[2]提出的算法.
在利用圖像對數據特征進行分析時,需要對圖像進行預處理,例如,灰度圖像的二值化、圖像放大.
(1)圖像二值化:本文采用MATLAB R2016b圖像處理自帶的graythresh和im2bw函數來完成圖像的二值化.
(2)二值圖像放大:二值圖像放大算法多種多樣,例如近鄰取樣法,雙線性插值法[3],樣條插值法[4]與B樣條插值法[5]等,通過多種二值圖像放大方法的實驗結果比較,由于近鄰放大法處理后的二值圖像邊緣沒有出現灰度漸變的模糊現象,因此此處二值圖像的放大采用近鄰放大法,得到如圖1(b)所示放大5倍后的二值圖像.
本文的鋸齒檢測和填充方法是基于江巨浪、張佑生等人提出的基于區域填充的鋸齒消除算法[1],在此僅作簡單介紹:將原圖像通過近鄰放大法放大5倍,再設定鋸齒邊長長度門限L,通過對近鄰放大的二值圖像進行鋸齒檢測,確定鋸齒所在區域三角形,通過填充條件得到如圖1(c)所示的填充像素,將填充像素與近鄰放大圖像合并,得到邊界光滑的放大圖像.處理效果如圖1(d)所示.

(a)原圖像 (b)近鄰放大5倍的圖像 (c)填充像素 (d)填充后的圖像圖1 區域填充去鋸齒的處理效果
如圖1(d)所示,通過區域填充得到了邊界光滑的菱形圖像,但是不難發現,新圖像目標物像素占比遠大于圖1(b)的近鄰放大圖像,針對基于區域填充的鋸齒消除算法[1]帶來的圖像邊界外擴問題,本節提出改進的形態學腐蝕算法對圖像進行處理.采用圖像銳化中的一階微分思想,多次檢測圖像的非水平和非垂直邊界,再進行腐蝕處理.腐蝕算法:從圖像左上角開始依次檢測每一個像素的像素值,對于像素值為0的黑色像素點I(i,j),執行式(1)的邏輯運算,若邏輯運算結果為TRUE,則將該黑色像素點像素值置為1;若邏輯運算執行結果為FALSE,則不改變目標像素點的像素值.
~I(i,j)&(I(i-1,j)|I(i+1,j)|I(i,j-1)|I(i,j+1))&~(~I(i-1,j)&~I(i+1,j))&~(~I(i,j-1)&~I(i,j+1))
(1)
式(1)所表示的邏輯關系:目標像素點為黑色,只要該點的4-近鄰像素值滿足左右不同時為黑且上下不同時為黑,就將該點的像素值置為1.我們用如圖2所示的圖形來進一步說明目標像素點P0的4-近鄰的像素點分布情況,更形象地闡釋式(1)所表示的邏輯關系.圖2(a)-(h)為符合腐蝕條件式(1)的8種情形:

圖2 腐蝕算法中的目標像素鄰域結構
應用此算法對填充后的圖像進行處理,運算一次就會使得圖像的邊界收縮一次,通過實驗結果表明,由于放大倍數的原因,僅運行一次并不能達到預期效果.在本文提出的算法中,我們設置腐蝕次數c,由試探方法決定c的數值,即腐蝕運行次數.我們通過不斷增加腐蝕次數,計算腐蝕后的圖像中的目標物像素比,并和近鄰放大圖像的目標物像素比進行比較,最終選擇和原圖像目標像素占比最接近的c值,終止運算,并輸出此時的處理圖像.
通過實驗算法探測,最終通過目標物像素占比比較分析,得出腐蝕次數c值為3,即對原填充圖像運用本文提出的腐蝕算法腐蝕3次,得到如圖3(b)所示的圖像,顯然,可以看到圖像邊界光滑且圖像結構保持不變,原本外擴的圖像邊界也進行了合理的收縮.

(a)原填充圖像 (b)腐蝕后的圖像圖3 本文算法腐蝕的圖像效果
為了進一步驗證本文算法實際應用中的有效性和實用性,通過民間剪紙來進一步分析算法,處理結果如圖4所示.圖4(a)是189×183的原圖像,圖4(b)是用近鄰放大算法將原圖像放大5倍(945×915)的圖像,可以看出,圖像的非水平和非垂直邊界存在嚴重的鋸齒效應,圖像邊界不光滑,影響圖像的美觀;圖4(c)是基于區域填充處理的去鋸齒圖像,顯然,圖像的邊界出現了很嚴重的外擴現象,通過表1的數據分析,可以得出目標物像素占比大于原近鄰放大圖像;圖4(d)是基于補償法的腐蝕算法處理的結果,雖然該方法保證了合理的面積比,但是邊界光滑程度不理想,有較明顯的“抖動感”,影響圖像美觀;圖4(e)為本文算法處理的圖像結果,不但有效去除了近鄰放大所帶來的邊界鋸齒,目標物像素面積占比更加接近原放大圖像,且比(d)圖更加平滑美觀.
表1根據剪紙圖像的實際處理結果,統計了各類算法的目標物像素面積占比及相對誤差,并與原近鄰放大圖像進行比較分析.不難看出,本文算法處理的圖像目標像素面積最接近原近鄰放大圖像,相對誤差僅為2.75%,明顯優于文獻[1]和文獻[2]的處理結果,且誤差值在實驗誤差允許范圍內.

(a)原圖像 (b)近鄰放大5倍的圖像 (c)文獻[1]算法處理的圖像

(d)文獻[2]算法處理的結果 (e)本文算法處理的結果圖4 二值圖像的鋸齒消除和腐蝕處理圖像效果

表1 圖像的目標物像素占比及相對誤差的比較
圖4(e)的實驗結果是在Intel(R) Pentium(R) CPU G2030(3.00GHz)、內存4G的微機上采用MATLAB R2016b軟件編程實現的,算法運行時間僅為305.52 ms.完全滿足實時處理圖像的時間要求.
二值圖像的放大技術應用廣泛,但是傳統的二值圖像放大處理會給圖像帶來嚴重的邊界鋸齒,通過區域填充的方法消除邊界鋸齒時,不可避免地出現邊界外擴現象,增加放大圖像的目標像素面積占比.本文采用區域填充的鋸齒去除算法[1]對近鄰放大圖像的邊界鋸齒區域進行有效填充,研究表明區域填充方法的輸出圖像中存在目標物邊緣外擴問題,本文提出了有效的形態學腐蝕算法,對填充算法帶來的邊界外擴問題進行研究處理.通過算法仿真與結果分析,本文算法能有效將填充圖像的邊界進行合理收縮,保持與原放大圖像最接近的目標像素面積占比,并保持圖像結構不變.