王帆 劉慧
1中國(guó)人民解放軍94159部隊(duì)99分隊(duì), 蘭州 730020
2甘肅省銀行學(xué)校,蘭州 730020
基于Matlab GUI的數(shù)字圖像處理實(shí)驗(yàn)平臺(tái)設(shè)計(jì)
王帆1劉慧2
1中國(guó)人民解放軍94159部隊(duì)99分隊(duì), 蘭州 730020
2甘肅省銀行學(xué)校,蘭州 730020
利用Matlab的圖形用戶(hù)界面環(huán)境(GUI)設(shè)計(jì)了數(shù)字圖像處理實(shí)驗(yàn)平臺(tái)。該平臺(tái)具有良好的交互性,實(shí)用性和可擴(kuò)展性,能幫助學(xué)生切實(shí)掌握數(shù)字圖像處理的基本理論和基本方法。
數(shù)字圖像處理;圖形用戶(hù)界面;實(shí)驗(yàn)平臺(tái)Abstract In this paper, a experiment platform of digital image processing was designed by Graphic User Interface (GUI) of Matlab.This platform has good interaction,practicability and extensibility,it can help students master the basic theories and technique of digital image processing.
digital image processing;graphic user interface;experiment platform
隨著數(shù)字圖像處理[1,2]在諸多領(lǐng)域的廣泛應(yīng)用,許多高校開(kāi)始在電子信息、通信工程、計(jì)算機(jī)、自動(dòng)化等專(zhuān)業(yè)開(kāi)設(shè)數(shù)字圖像處理課程。但是數(shù)字圖像處理涉及面廣、實(shí)用性強(qiáng),學(xué)生在較緊的課時(shí)安排內(nèi)要掌握該課程的基本理論和基本方法有一定難度,因此,如何幫助學(xué)生深入理解基本概念和基礎(chǔ)理論,切實(shí)掌握數(shù)字圖像處理的典型方法是教學(xué)中的一個(gè)難點(diǎn)問(wèn)題。
針對(duì)這一難點(diǎn)問(wèn)題,我們利用Matlab的圖形用戶(hù)界面環(huán)境(GUI)[3]設(shè)計(jì)了數(shù)字圖像處理實(shí)驗(yàn)平臺(tái)。同其他基于Matlab GUI的平臺(tái)一樣[4-7],該平臺(tái)具有良好的交互性,實(shí)用性和可擴(kuò)展性,為學(xué)生提供了一個(gè)數(shù)字圖像處理的算法演示及模擬開(kāi)發(fā)的實(shí)驗(yàn)平臺(tái),能幫助供學(xué)生熟悉并掌握數(shù)字圖像處理的基本理論和基本方法。
該實(shí)驗(yàn)平臺(tái)分為五大模塊,包括圖像變換、圖像增強(qiáng)、圖像壓縮、圖像復(fù)原和圖像分割。實(shí)驗(yàn)平臺(tái)模塊如圖1所示,由于圖像處理涵蓋的內(nèi)容較多,因此各大模塊還包含了不同的功能子塊。
利用M語(yǔ)言編程建立實(shí)驗(yàn)平臺(tái)主界面的部分代碼如下,在主界面中點(diǎn)擊任一子模塊,就可打開(kāi)相應(yīng)子模塊界面。如果學(xué)生需要增減模塊或調(diào)整主界面的外觀,可以通過(guò)修改主界面的代碼來(lái)實(shí)現(xiàn)。
本實(shí)驗(yàn)系統(tǒng)有多個(gè)功能模塊,下面只詳細(xì)敘述邊緣檢測(cè)子模塊。
在Matlab命令窗口中輸入GUIDE,打開(kāi)界面編輯器(Layout Editor),從界面編輯器的左側(cè)控件中,選擇4個(gè)坐標(biāo)軸(Axes)控件,4個(gè)文本標(biāo)簽(Static Text)控件,2個(gè)按鈕(Push Button)控件,通過(guò)布置這些控件的位置和設(shè)置它們的屬性就可以設(shè)計(jì)出邊緣檢測(cè)子模塊運(yùn)行前的界面如圖2所示。
圖1 實(shí)驗(yàn)平臺(tái)模塊
圖2 邊緣檢測(cè)子程序界面(運(yùn)行前)
圖3 邊緣檢測(cè)子程序界面(運(yùn)行后)
界面設(shè)計(jì)好之后再按下列代碼設(shè)計(jì)界面中重要控件的回調(diào)函數(shù)。
回調(diào)函數(shù)設(shè)計(jì)好之后,點(diǎn)擊“邊緣檢測(cè)”按鈕可以得到原始圖像對(duì)應(yīng)于Soble,Canny,Roberts三種算子的邊緣如圖3所示。點(diǎn)擊“返回主程序”可以關(guān)閉邊緣檢測(cè)子模塊,返回到圖像分割模塊。通過(guò)修改回調(diào)程序中圖像讀入函數(shù)imread中的文件名,學(xué)生可以對(duì)不同圖像做邊緣檢測(cè)。
與Visual Basic、Visual C++和Java等面向?qū)ο蟮某绦蛘Z(yǔ)言相比,由于Matlab提供了豐富的圖像處理函數(shù),且M語(yǔ)言和Matlab GUI開(kāi)發(fā)環(huán)境也較簡(jiǎn)單,因此本文提出的數(shù)字圖像處理實(shí)驗(yàn)平臺(tái),易于學(xué)生理解,使用和做二次開(kāi)發(fā),具有良好的應(yīng)用前景。
[1] RAFAEL C.GONZALEZ,RICHARD E.WOODS著;阮秋琦,等譯. 數(shù)字圖像處理(第二版)[M]. 電子工業(yè)出版社.2003
[2] KENNETH R.CASTLEMAN著; 朱志剛等譯. 數(shù)字圖像處理[M].電子工業(yè)出版社.2004
[3] 陸垚光,毛濤濤,王正林,王玲.精通MATLAB GUI設(shè)計(jì)[M].電子工業(yè)出版社.2008
[4] 潘文霞, 范永威, 陸小花, 劉迅.MATLAB 在電路教學(xué)中的三種應(yīng)用方法[J]. 電力系統(tǒng)及其自動(dòng)化學(xué)報(bào).2006,18(6):108-112
[5] 藺紅,陳潔.Matlab在電路理論分析中的應(yīng)用[J].計(jì)算機(jī)應(yīng)用與軟件.2007,24(3):106-107
[6] 秦輝,席裕庚.基于Matlab GUI的預(yù)測(cè)控制仿真平臺(tái)設(shè)計(jì)[J]. 系統(tǒng)仿真學(xué) 報(bào).2006,18(10):2778-2781
[7] Selleri, S. A Matlab application programmer interface for educational elctromagnetics[J],Antennas and Propagation Society International Symposium,IEEE,2003(3):450-453
10.3969/j.issn.1001-8972.2011.07.065