張廣才 萬守鵬 何繼榮
摘? 要: 本文要述了數(shù)字圖像處理技術(shù)常見方法,然后引入數(shù)學(xué)軟件MATLAB,介紹其在圖像處理方面實(shí)用功能及GUI的優(yōu)勢,最后基于MATLAB GUI結(jié)合圖像處理工具箱設(shè)計(jì)開發(fā)出一款數(shù)字圖像處理系統(tǒng)。該系統(tǒng)包含七大模塊,涵蓋數(shù)字圖像處理基礎(chǔ)技術(shù)及進(jìn)階技術(shù),最后在實(shí)際工程應(yīng)用中得到展示,實(shí)現(xiàn)了圖像處理的可視化操作?;贛ATLAB GUI開發(fā)的數(shù)字圖像處理系統(tǒng)界面友好,操作方便,減少了重復(fù)編程的過程,且交互性強(qiáng)、維護(hù)簡易,易于后期機(jī)器人相關(guān)應(yīng)用擴(kuò)展。
關(guān)鍵詞: 信號處理;數(shù)字圖像;MATLAB;GUI設(shè)計(jì);工程應(yīng)用
【Abstract】: In this article some common methods of DIP are briefly summarized. The powerful function of MATLAB and the superiority of GUI are discussed and a DIP system based on MATLAB GUI combined with image processing toolbox is designed. The system contains seven modules, including basic and advanced techniques of DIP. At the end of the article, it is demonstrated in engineering application and visualized operation is realized. This system has a friendly interface, a convenient operation, a good interaction, less programming and robot application is extensible.
【Key words】: Signal processing; Digital image; MATLAB; GUI design; Engineering application
0? 引言
人類探索、感知外部世界,其中視覺提供的信息占3/4以上。大腦接收到這些信息后,會憑借已有的經(jīng)驗(yàn)進(jìn)行處理,更深入地分析和判斷[1]。同樣,機(jī)器視覺模仿人類視覺從真實(shí)世界獲取光學(xué)信息,經(jīng)過CPU計(jì)算、分析,進(jìn)而用于機(jī)器檢查、勘測、操控等。機(jī)器視覺重點(diǎn)用于像自動化生產(chǎn)線這樣大批量的制造產(chǎn)業(yè),還有人類視覺不能達(dá)到需求或者如CT檢測等不適宜人為操作的場合,能夠提高生產(chǎn)效率和保護(hù)人員安全。隨著我國科技高速發(fā)展,社會空前進(jìn)步,出現(xiàn)了大量對機(jī)器視覺和圖像處理的工農(nóng)商兵等需求,不僅要求自動化,更面向信息
化、智能化等方向,機(jī)器視覺有了許多新領(lǐng)域的應(yīng)用,同時(shí)機(jī)器視覺也是機(jī)器人運(yùn)動、導(dǎo)航、避障的關(guān)鍵環(huán)節(jié),這其中設(shè)計(jì)到的重要技術(shù)便是圖像處理技術(shù)。
數(shù)字圖像處理依托計(jì)算機(jī)強(qiáng)大的計(jì)算性能完成對數(shù)字圖像的解析,其目的最初是為了提升圖像品質(zhì),加強(qiáng)外觀感受。隨著科技持續(xù)發(fā)展,數(shù)字圖像處理技術(shù)已不僅局限于從人類視覺角度看圖像,更多的是從圖像特征提取、重構(gòu)、識別上來分析圖像,優(yōu)勢更加突出,應(yīng)用更加廣泛[2]。
1? MATLAB及GUI簡介
MATLAB全稱為矩陣實(shí)驗(yàn)室,在計(jì)算控制領(lǐng)域可謂首屈一指,其界面友好,方便調(diào)用函數(shù),解決相同的問題比C、C++、FORTRAN等要便捷許多,發(fā)展至今已有豐富的工具箱,某些領(lǐng)域有特殊的優(yōu)勢。圖像本身就是二維矩陣,用MATLAB軟件成了圖像處理自然的選擇。
GUI即圖形用戶界面(Graphical User Interface),是采取圖形樣式展示和操作計(jì)算機(jī)的使用界面。GUI消除了面對枯燥的代碼,通過具象化的圖形如窗口、按鈕、菜單等簡便地操縱計(jì)算機(jī)。MATLAB GUI非常靈活,與命令行界面不同,用鼠標(biāo)拖動控件并雙擊即可對其進(jìn)行屬性設(shè)置,操作上和視覺上都更易于接受[3]。
在圖像處理方面,MATLAB供給20余類上百個(gè)經(jīng)典的相關(guān)函數(shù),可對JPEG、PNG、BMP、GIF、PCX、HDF、TIFF、XWD等常用格式的圖像進(jìn)行處理,實(shí)現(xiàn)對圖像處理的全覆蓋。本文依托MATLAB高性能的計(jì)算能力,結(jié)合圖像處理工具箱,利用GUI設(shè)計(jì)開發(fā)一款數(shù)字圖像處理系統(tǒng)。
2? 詳細(xì)內(nèi)容及設(shè)計(jì)
2.1? 系統(tǒng)設(shè)計(jì)
MATLAB及其Toolbox使得程序簡短、直觀,結(jié)合GUI的可視化,用戶可以花更多的時(shí)間選取多種方案中的最優(yōu)算法,系統(tǒng)的框架如圖1所示[4]。
該系統(tǒng)集成7個(gè)模塊:圖像運(yùn)算、變換、壓縮編碼、改善、形態(tài)學(xué)、分割和綜合案例,各模塊拆分出對應(yīng)的子模塊,在相應(yīng)的子界面中展示,通過修改界面中控件的參數(shù),編寫回調(diào)函數(shù),實(shí)現(xiàn)主界面與子界面間的切換及圖像處理,最終通過文本框及I/O域等展示在相應(yīng)的位置[5]。
2.2? 主界面設(shè)計(jì)
GUI主界面由面板、文本框、按鈕和坐標(biāo)域組成,每個(gè)按鈕編寫對應(yīng)的回調(diào)函數(shù),主界面如圖2所示。
以圖像運(yùn)算為例,打開圖像運(yùn)算子界面程序?yàn)椋?/p>
2.3? 子界面設(shè)計(jì)
設(shè)計(jì)7個(gè)模塊的子界面,實(shí)現(xiàn)主界面和對應(yīng)子界面的切換,相關(guān)運(yùn)算、處理等按鈕均設(shè)計(jì)在子界面,下面分模塊介紹。
(1)圖像運(yùn)算
圖像運(yùn)算是圖像處理最基本的運(yùn)算,本系統(tǒng)設(shè)計(jì)點(diǎn)運(yùn)算、代數(shù)運(yùn)算和幾何運(yùn)算的相關(guān)操作,兩個(gè)坐標(biāo)分別顯示原始圖像和經(jīng)處理后的圖像,在沒有讀取圖像或未選擇處理方法的情況下點(diǎn)擊任一運(yùn)算按鈕均有msgbox提示,引導(dǎo)用戶規(guī)范操作。圖像運(yùn)算子界面如圖3所示。