高揚
摘要:在MATLABGUI的環(huán)境下,設(shè)計實現(xiàn)了一個數(shù)字圖像處理演示系統(tǒng),利用系統(tǒng)演示圖像處理的方法、過程。系統(tǒng)界面友好、內(nèi)容豐富、具有良好的交互性和實用性,為學(xué)生提供了一個數(shù)字圖像處理的算法演示及模擬開發(fā)的實驗平臺,能幫助學(xué)生掌握數(shù)字圖像處理的理論方法,有利于學(xué)生加深對原理、算法的理解,激發(fā)學(xué)生的學(xué)習(xí)興趣。
關(guān)鍵詞:數(shù)字圖像處理;圖形用戶界面;交互式可視化
引言
數(shù)字圖像處理處在科技發(fā)展的前沿,是一門理論性和實踐性非常強(qiáng)的學(xué)科,為了讓學(xué)生對數(shù)字圖像處理過程有一個比較直觀的認(rèn)識,在學(xué)習(xí)具體算法時需要形象化演示來加深理解。MATLAB軟件提供了圖像處理工具箱,GUI更提供了友好的圖形用戶交互界面開發(fā)環(huán)境,使操作便捷簡單,方便進(jìn)行功能的修改和擴(kuò)充。
為了讓學(xué)生加深理解MATLAB圖像處理工具箱中的函數(shù)的使用方法,以及利用GUI進(jìn)行二次開發(fā)的過程。本文基于MATLAB GUI設(shè)計了一個數(shù)字圖像處理演示系統(tǒng),該系統(tǒng)具有很好的交互性,用戶可以與機(jī)器交互操作,在界面上直接輸入設(shè)置參數(shù),即可得到直觀的的處理結(jié)果,因而便于使用者的處理操作和分析處理結(jié)果。
1.實驗平臺總體結(jié)構(gòu)設(shè)計
本次設(shè)計是通過MATLAB R2014b軟件實現(xiàn)一個數(shù)字圖像處理演示系統(tǒng)。本系統(tǒng)功能分為八個模塊,如下所示:圖像基本操作模塊數(shù)字圖像處理基礎(chǔ)模塊圖像增強(qiáng)模塊圖像分割模塊圖像幾何變換模塊頻域處理模塊數(shù)學(xué)形態(tài)學(xué)模塊綜合演示模塊。系統(tǒng)框圖如圖1所示:
本次系統(tǒng)結(jié)構(gòu)設(shè)計采用總分的方法,即先設(shè)計系統(tǒng)介紹界面和主界面,再設(shè)計各個子界面。M文件的編寫也是如此,先編寫主框架的回調(diào)函數(shù),再編寫子模塊的回調(diào)函數(shù)。系統(tǒng)的子界面是由不同功能按鍵調(diào)用的,每個按鍵都有相對應(yīng)的子界面。通過點擊按鍵運行相對應(yīng)的M文件,而后彈出相應(yīng)的子界面。
此系統(tǒng)的主界面設(shè)計為先是動畫界面介紹系統(tǒng)名稱,而后跳轉(zhuǎn)到系統(tǒng)介紹界面。介紹界面具體設(shè)計為:在圖形界面編窗口里,首先調(diào)用axes控件和靜態(tài)文本框,axes控件用來生成坐標(biāo)軸對象,以便于顯示界面背景圖像。再通過改變靜態(tài)文本框的屬性來顯示相關(guān)系統(tǒng)介紹。同時添加一個按鈕并設(shè)置為進(jìn)入系統(tǒng)。系統(tǒng)介紹界面效果如圖2所示。
在介紹界面單擊進(jìn)入按鈕后,進(jìn)入系統(tǒng)主界面,主界面中央有一個系統(tǒng)功能選擇面板,分布著八個按鍵,分別為圖像基本操作、圖像處理基礎(chǔ)、圖像增強(qiáng)、圖像分割、圖像幾何運算、頻域處理、數(shù)學(xué)形態(tài)學(xué)及綜合演示。界面右下角為退出按鍵,用以退出系統(tǒng)。如圖3所示為主界面窗口:
本實驗系統(tǒng)有多個功能模塊,下面只詳細(xì)敘述圖像分割模塊。
2. 圖像分割模塊的實現(xiàn)
2.1 閾值分割
閾值分割是最常用的圖像分割方法,因其操作簡單、計算量小、性能較穩(wěn)定而成為圖像分割中最基本、最廣泛使用的分割技術(shù)。閾值分割特別適用于目標(biāo)和背景占據(jù)不同灰度級的圖片。此界面通過滑動條的滑動來設(shè)置閾值參數(shù),也可通過動態(tài)文本框手動輸入閾值T,滑動條與文本框是連通的,滑動條滑動后的值可在文本框內(nèi)顯示,文本框內(nèi)的值也可以轉(zhuǎn)換成滑動條的值,實現(xiàn)不同閾值的分割。其處理效果如圖4所示。
閾值滑動條回調(diào)函數(shù)如下:
T=get(hObject,'Value');
axes(handles.axes6);
I=imread('xiaoxiang.jpg');
Ibw = im2bw(I,T/255); %閾值分割
imshow(Ibw);
set(handles.edit3,'string',num2str(get(hObject,'Value')));
閾值文本框回調(diào)函數(shù)如下:
T=get(hObject,'string');
T=str2num(T);
axes(handles.axes6);
I=imread('xiaoxiang.jpg');
Ibw = im2bw(I,T/255);
imshow(Ibw);
set(handles.slider3,'Value',str2num(get(hObject,'string')));
2.2 邊緣檢測
圖像邊緣是所要提取的目標(biāo)區(qū)域和背景的分界線,將圖像邊緣檢測出來才能進(jìn)一步將目標(biāo)和背景區(qū)分開來。通過讀取圖像按鈕激活算子選擇按鈕和算子類型面板控件,使用radiobutton單選按鈕來選擇邊緣檢測的算子并進(jìn)行邊緣檢測。共有5個算子,Canny算子、Sobel算子、Robert算子、Prewitt算子、Log算子。以Canny算子邊緣檢測為例,算子檢測圖像邊緣效果如圖5所示。
Canny算子按鍵回調(diào)函數(shù)如下:
I=imread('yaoli.jpg');
I=rgb2gray(I);
axes(handles.axes4);
BW1 = edge(I,'canny');
imshow(BW1);
3. 結(jié)論
本文主要闡述了數(shù)圖像處理演示系統(tǒng)的設(shè)計步驟和實現(xiàn)方法,此系統(tǒng)可以達(dá)到界面操作可視化、處理結(jié)果可視化的要求,系統(tǒng)的各級界面都能實現(xiàn)人為動態(tài)的參數(shù)設(shè)置,并能在界面上顯示處理結(jié)果進(jìn)行分析,同時突出了原理介紹、實驗操作和結(jié)果分析的功能,將理論與實踐完美結(jié)合,有助于學(xué)習(xí)圖像處理技術(shù)和進(jìn)行進(jìn)一步的開發(fā)。通過對圖像處理結(jié)果的比較,可以形象地驗證圖像處理算法,能夠充分的體現(xiàn)出圖形用戶界面的易用性、良好的擴(kuò)展性以及便捷性,用戶只需通過簡單的操作就能完成想實現(xiàn)的功能。此外,圖形用戶界面十分的人性化,我們可以人為的設(shè)計界面,使界面上的控件布局更加美觀,達(dá)到激起學(xué)生學(xué)習(xí)興趣的效果。
參考文獻(xiàn):
[1]邢文博,蔣敬.基于Matlab開發(fā)數(shù)字圖像處理GUI[N].電氣電子教學(xué)學(xué)報,2013-12-15.
[2]賈永紅.研究生《圖像處理與分析》課程的建設(shè)與改革[J].地理空間信息,2012,10(1):171-174.
[3]岡薩雷斯.數(shù)字圖像處理的MATLAB實現(xiàn)[M].第2版.北京:清華大學(xué)出版社,2013:4-6.
[4]羅華飛.MATLAB GUI設(shè)計學(xué)習(xí)手記[M].第2版.北京:北京航空航天大學(xué)出版社,2011:345-402.
[5]張鳴.基于MATLAB GUI的通信原理演示系統(tǒng)設(shè)計[J].實驗技術(shù)與管理,2013,30(9):111-113.
[6]曹高飛.基于MATLAB的圖像增強(qiáng)教學(xué)演示系統(tǒng)的設(shè)計與實現(xiàn)[D].成都:電子科技大學(xué),2013:24.
[7]陳垚光,毛濤濤.精通MATLAB GUI設(shè)計[M].第3版.北京:電子工業(yè)出版社,2013:87.
[8]李磊.基于MATLAB GUI的數(shù)字圖像處理系統(tǒng)設(shè)計[D].成都:成都理工大學(xué),2012:31.
[9]張弘,謝鳳英.數(shù)字圖像處理與分析[M].第2版.北京:機(jī)械工業(yè)出版社,2013:124.
[10]陳超.MATLAB應(yīng)用實例精講----圖像處理與GUI設(shè)計篇[M].北京:電子工業(yè)出版社,2011:286-293.
[11]郭依正,焦蓬蓬.Matlab GUI在低質(zhì)量指紋圖像增強(qiáng)中的應(yīng)用[J].計算機(jī)技術(shù)與發(fā)展,2013(07):57-63.endprint