任海鵬+鄧春紅
摘要:隨著圖像處理需求的增大,單一算法處理圖像信息已不能滿(mǎn)足人們的需求。本文利用Matlab GUI組件,結(jié)合圖像處理工具箱,設(shè)計(jì)一個(gè)全新的圖像處理平臺(tái)。該處理平臺(tái)中包含對(duì)圖像處理算法的集成、用戶(hù)交互區(qū)的可視化及二次開(kāi)發(fā)接口設(shè)計(jì),為用戶(hù)帶來(lái)了便利,使用戶(hù)處理圖像的效率加快,并且得到的圖像信息更完整。在該平臺(tái)上進(jìn)行圖像處理,能夠最大程度的減輕用戶(hù)顧慮,最大程度的滿(mǎn)足用戶(hù)需求,從而,增大用戶(hù)的使用率。
關(guān)鍵詞:可視化;Matlab GUI組件;用戶(hù)交互區(qū);圖像處理平臺(tái)
中圖分類(lèi)號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2017)34-0205-03
Abstract: With the increasing demand for image processing, single image processing algorithms can not meet the needs of people. In this paper, Matlab GUI component is combined with image processing toolbox to design a new image processing platform. The design of integrated visualization and user interaction area of image processing algorithm and the two interface comprises the processing platform, brings convenience to users, users to speed up the efficiency of image processing, image information and get more complete. The image processing on the platform can reduce the user's worry to the greatest extent and satisfy the user's demand to the greatest extent, thus increasing the user's utilization rate.
Key words: visualization; Matlab GUI components; user interaction area; image processing platform
1 概述
隨著技術(shù)的發(fā)展,圖像處理算法技術(shù)也達(dá)到了較高的水平,并且在Matlab中已經(jīng)被實(shí)現(xiàn),但這些算法是以函數(shù)的形式存在于圖像處理工具箱中,因此,對(duì)于使用者的專(zhuān)業(yè)素養(yǎng)有較高的要求。它需要使用者查詢(xún)相關(guān)專(zhuān)業(yè)書(shū)籍才能進(jìn)行圖像處理,因此,給使用者帶來(lái)極大的不便[1]。同時(shí)隨著需求的增大,單一算法處理圖像信息已經(jīng)不能滿(mǎn)足人們的需求,因此,需要開(kāi)發(fā)出一款集所有算法于一體的圖像處理平臺(tái)。只有這樣,才能滿(mǎn)足各行業(yè)、各領(lǐng)域的需求,才能被廣泛使用[2]。
2 系統(tǒng)設(shè)計(jì)整體方案
設(shè)計(jì)這個(gè)方案主要是為了將處理圖像的方法進(jìn)行系統(tǒng)化,方便用戶(hù)使用。使他們能夠在一個(gè)系統(tǒng)中就能夠使用多種圖像處理的方法。在一定程度上,能夠增大用戶(hù)與系統(tǒng)之間的互動(dòng),同時(shí)還能為用戶(hù)提供二次開(kāi)發(fā)端口,使用戶(hù)處理圖片的效率提高。
2.1 平臺(tái)總體功能設(shè)計(jì)
平臺(tái)總體功能設(shè)計(jì)如下:包括算法的集中、用戶(hù)與系統(tǒng)之間互動(dòng)的可視性以及提供二次開(kāi)發(fā)的端口。算法的集中包括對(duì)現(xiàn)有算法的集中和對(duì)于新算法的集中。具體功能如下所述:
1) 對(duì)現(xiàn)有的算法進(jìn)行集中操作,使用戶(hù)能夠直接調(diào)用函數(shù)。根據(jù)各個(gè)算法功能的不同,進(jìn)行分類(lèi)。例如,傅里葉變換、小波變換、離散變換等屬于圖像變換類(lèi)型,應(yīng)歸為一類(lèi)[3]。使用戶(hù)在一個(gè)平臺(tái)就可以對(duì)各種圖像進(jìn)行圖像處理。
2) 對(duì)新算法進(jìn)行集中操作,對(duì)新研發(fā)出的算法進(jìn)行集中處理。新算法包括改進(jìn)水平集算法、交互式圖割法、細(xì)胞自動(dòng)機(jī)分割算法等,這些算法均是針對(duì)圖像切割處理的。將新研發(fā)出的算法按照功能的不同,進(jìn)行分類(lèi)集中處理。
3) 用戶(hù)與系統(tǒng)之間的互動(dòng)的可視性,代表的是用戶(hù)在使用該系統(tǒng)處理圖像時(shí),結(jié)果的可視性,以及用戶(hù)還能夠與系統(tǒng)之間進(jìn)行專(zhuān)門(mén)的互動(dòng)。用戶(hù)在進(jìn)行圖像處理時(shí),可以同步觀(guān)察到圖像的變化,能夠?qū)崟r(shí)掌握?qǐng)D像的處理結(jié)果。
4) 提供二次開(kāi)發(fā)端口,代表的是用戶(hù)不僅能夠在系統(tǒng)上進(jìn)行圖片處理,同時(shí)還能上傳自己習(xí)慣的算法進(jìn)行圖片處理,加快圖片處理進(jìn)程。設(shè)計(jì)二次開(kāi)發(fā)接口,為用戶(hù)進(jìn)行二次處理圖像提供方便,使用戶(hù)在使用該平臺(tái)時(shí)感覺(jué)熟悉,不會(huì)覺(jué)得陌生。
2.2 總體布局設(shè)計(jì)
一個(gè)受喜愛(ài)的圖像處理平臺(tái)必定具有優(yōu)秀的圖像處理模式,能夠滿(mǎn)足大多數(shù)用戶(hù)的需求。方便用戶(hù)進(jìn)行圖像處理。因此,本系統(tǒng)設(shè)計(jì)了快捷按鈕來(lái)實(shí)現(xiàn)操作的便捷性,用戶(hù)只需要通
過(guò)點(diǎn)擊菜單欄即可操作按鈕對(duì)圖像進(jìn)行處理。具體的布局設(shè)計(jì)圖如圖1所示:
通過(guò)系統(tǒng)自帶的工具包可以自由對(duì)布局進(jìn)行調(diào)整,以達(dá)到自己喜愛(ài)、方便的目的。
1) 菜單功能區(qū)設(shè)計(jì)。菜單功能區(qū)包括了該系統(tǒng)中的所有功能,使用戶(hù)能夠簡(jiǎn)單明了的操作該系統(tǒng)。其具體功能如下:包含了文件操作、圖像增強(qiáng)、圖像變換、圖像恢復(fù)、圖像分割以及幫助欄等功能。點(diǎn)擊對(duì)應(yīng)按鈕即可實(shí)現(xiàn)對(duì)圖像的快捷處理。
2) 快捷按鈕功能區(qū)和用戶(hù)交互按鈕區(qū)設(shè)計(jì)??旖莅粹o功能區(qū)與用戶(hù)交互按鈕區(qū)中包含了算法快捷按鈕與互動(dòng)按鈕。方便了用戶(hù)操作的同時(shí),也增加了用戶(hù)與系統(tǒng)之間交流互動(dòng)的機(jī)會(huì)。使處理后的圖像能夠最大程度的滿(mǎn)足用戶(hù)需求。
3) DEMO顯示區(qū)和可視化效果顯示區(qū)設(shè)計(jì)。圖1中所示的兩個(gè)矩形區(qū)域即代表DEMO顯示區(qū)和可視化效果顯示區(qū)。它們的作用在于,對(duì)圖像進(jìn)行處理時(shí),能夠同步觀(guān)察到圖像的變化,以及最后處理的結(jié)果。而且,可以通過(guò)調(diào)節(jié)矩形區(qū)域的大小來(lái)控制顯示區(qū)域的大小。方便用戶(hù)更直觀(guān)的了解處理后圖片的效果[4]。endprint
3 圖像平滑子模塊的具體實(shí)現(xiàn)
3.1 系統(tǒng)界面的構(gòu)建
本系統(tǒng)的開(kāi)發(fā)環(huán)境為MA TLAB R2013a,第一步先在MATLAB的主菜單欄單擊GUIDE按鈕,再選擇Blank GUI(Default)模板,點(diǎn)擊ok界面就會(huì)彈出設(shè)計(jì)欄目,將設(shè)計(jì)欄目保存為L(zhǎng)BF_DIP,系統(tǒng)中就會(huì)生成兩個(gè)文件。在設(shè)計(jì)欄中,添加兩個(gè)Axes對(duì)象。按照計(jì)劃改變兩個(gè)Axes的位置和大小達(dá)到目標(biāo)。在設(shè)計(jì)窗口中打開(kāi)Menu Editor,菜單計(jì)時(shí)分為Menu和Menu Item。點(diǎn)擊ok按鈕,然后系統(tǒng)會(huì)自動(dòng)將該文件保存在LBF_dip內(nèi)并會(huì)在其后自動(dòng)添加上CallBack函數(shù),在CallBack函數(shù)內(nèi)編寫(xiě)MATLAB代碼能夠?qū)崿F(xiàn)具體圖像處理算法。
文件菜單和圖像平滑菜單中部分內(nèi)容設(shè)計(jì)如下表1所示:
3.2 仿真系統(tǒng)能夠處理的圖像類(lèi)型
仿真系統(tǒng)能夠處理系統(tǒng)中所包含的函數(shù)類(lèi)型,提高其準(zhǔn)確性與便捷性。它能夠處理的圖像類(lèi)型包括了,bmp,jpg,tif等。由于這些都是彩色圖像,因此,在對(duì)圖像進(jìn)行處理之前,應(yīng)該利用RGBtoGray菜單中的RGBtoGray_Callback函數(shù)將彩色圖像轉(zhuǎn)換成灰色圖像。這是由于系統(tǒng)處理的圖像只針對(duì)于灰色圖像,而且,灰色圖像處理出來(lái)圖像信息更為清晰眀了。
3.3 圖像平滑子模塊的代碼實(shí)現(xiàn)
由于圖像在傳輸過(guò)程中容易受到干擾,使圖像信息變得模糊,因此,就需要對(duì)其進(jìn)行平滑處理,其目的是為了降低干擾。對(duì)圖像進(jìn)行平滑處理時(shí),可以在空間中進(jìn)行,也可以在頻率上進(jìn)行。對(duì)空間中處理圖像所采用的方法一般是中值濾波法和鄰域平均法。
鄰域平均值法,是在原圖像的基礎(chǔ)上,對(duì)其每一個(gè)像素點(diǎn)取鄰域進(jìn)行灰度值平均計(jì)算,將此灰度值作為處理后圖像的像素點(diǎn)值。這種方法具有計(jì)算簡(jiǎn)便快捷的優(yōu)點(diǎn),但同時(shí)也具有使圖像變模糊的缺點(diǎn)。尤其在圖片邊緣處更為明顯,因此,要設(shè)計(jì)出更好的方法來(lái)替代此方法。
中值濾波法,是使用一個(gè)含有奇數(shù)個(gè)像素點(diǎn)的滑動(dòng)窗口進(jìn)行替換的方法。將窗口中最中心的一個(gè)像素點(diǎn)移動(dòng)到圖像的領(lǐng)域中,使領(lǐng)域中的灰度平均值代替該滑動(dòng)窗口中的像素點(diǎn)值,從而形成一個(gè)新的圖像。由于它是非線(xiàn)性運(yùn)動(dòng)的,因此,它抗干擾能力較強(qiáng)。但是,用于處理細(xì)節(jié)多的圖像也不合適。太為繁瑣復(fù)雜。
3.4 綜合例子子模塊的設(shè)計(jì)
綜合例子子模塊是該處理平臺(tái)的一個(gè)全新的組成部分。它能夠提供許多生活中的例子,增大用戶(hù)的興趣性及使用性,使用戶(hù)在使用過(guò)程中也能感受到樂(lè)趣。同時(shí),用戶(hù)能夠在最大程度上了解該平臺(tái)的功能,在使用的過(guò)程中也能對(duì)該平臺(tái)提供改進(jìn)意見(jiàn)等。以使該平臺(tái)達(dá)到完美狀態(tài)。
由于綜合例子的呈現(xiàn)較為復(fù)雜,因此,需要專(zhuān)門(mén)設(shè)計(jì)一個(gè)GUI界面,并單獨(dú)對(duì)其編碼后才能調(diào)用。
4 系統(tǒng)各模塊的功能實(shí)現(xiàn)
以Windows XP操作系統(tǒng)中的Matlab2009為例,對(duì)該系統(tǒng)進(jìn)行編碼處理,系統(tǒng)各模塊具體功能實(shí)現(xiàn)如下所示。
4.1 平臺(tái)主界面實(shí)現(xiàn)
該圖像處理平臺(tái)的運(yùn)行主界面如下圖所示。
圖2中所示界面最上方是該系統(tǒng)中的各項(xiàng)主要功能,接著是各項(xiàng)功能下的快捷按鈕,最右方是用戶(hù)交互區(qū)按鈕和集成按鈕區(qū)。該圖所示為均衡化圖像處理算法和gcbac圖像分割算法共同作用時(shí)的運(yùn)行界面。
4.2 用戶(hù)交互區(qū)設(shè)計(jì)實(shí)現(xiàn)
用戶(hù)交互區(qū)的實(shí)現(xiàn)是通過(guò)點(diǎn)擊圖2中的用戶(hù)交互區(qū)按鈕,采用動(dòng)態(tài)邊緣檢測(cè)算法對(duì)圖像進(jìn)行處理,其用戶(hù)交互區(qū)顯示界面如下圖3所示。
圖3(a)是使用鼠標(biāo)左鍵對(duì)圖像進(jìn)行標(biāo)記處理,標(biāo)記出需要進(jìn)行分割的范圍,接著,圖3(b)顯示的是圖像處理中間過(guò)程,該過(guò)程是對(duì)圖像進(jìn)行初次分割后的結(jié)果,可以操作鼠標(biāo)左鍵對(duì)圖像進(jìn)行二次分割,直到達(dá)到用戶(hù)的需求。圖3(c)是處理后的最終圖像信息,通過(guò)操作鼠標(biāo)右鍵來(lái)停止分割處理操作,使圖像呈現(xiàn)最完美狀態(tài)。
該功能設(shè)計(jì)的目的是為了彌補(bǔ)系統(tǒng)中算法設(shè)計(jì)的不足,通過(guò)多次分割處理來(lái)使圖像呈現(xiàn)最完美的一面,既提高了圖像質(zhì)量,也使用戶(hù)與圖像有最為直接的交流。是該系統(tǒng)優(yōu)化設(shè)計(jì)必不可少的一部分。
4.3 二次開(kāi)發(fā)接口設(shè)計(jì)實(shí)現(xiàn)
二次開(kāi)發(fā)接口的實(shí)現(xiàn)是通過(guò)點(diǎn)擊圖2中的集成說(shuō)明按鈕,它能夠?qū)τ脩?hù)提供的新算法進(jìn)行集成。點(diǎn)擊以后,會(huì)出現(xiàn)圖4所示界面。
按照?qǐng)D4文本框中的文字說(shuō)明對(duì)新算法進(jìn)行命名,并按照要求操作,最后保存下來(lái),那么一個(gè)新算法就集成好了。
該二次開(kāi)發(fā)算法模板是系統(tǒng)直接提供的,用戶(hù)提供的新算法可以利用該模板中的提示信息進(jìn)行更改、復(fù)制、粘貼、保存。更改是針對(duì)于某些參數(shù),復(fù)制粘貼是針對(duì)于集成代碼,通過(guò)這一系列操作以后,一個(gè)新的算法就形成了,作為二次開(kāi)發(fā)接口而存在。
5 結(jié)束語(yǔ)
利用Matlab GUI組件,結(jié)合圖像處理工具箱,設(shè)計(jì)出了一個(gè)全新的圖像處理平臺(tái)。該處理平臺(tái)中包含了對(duì)圖像處理算法的集成、以及用戶(hù)交互區(qū)的可視化,同時(shí),還包含了二次開(kāi)發(fā)接口設(shè)計(jì),是一款比較全面的圖像處理平臺(tái)。該平臺(tái)中的算法部分來(lái)源于Matlab系統(tǒng),也有新開(kāi)發(fā)的分割處理算法。新設(shè)計(jì)的用戶(hù)交互區(qū)的可視化以及二次開(kāi)發(fā)接口,為用戶(hù)帶來(lái)了便利,使用戶(hù)處理圖像的效率加快,并且得到的圖像信息更完整。
參考文獻(xiàn):
[1] 藺紅,陳潔.Matlab在電路理論分析中的應(yīng)用[J].計(jì)算機(jī)應(yīng)用與軟件,2007(3).
[2] 潘文霞,范永威,陸小花,等.MATLAB在電路教學(xué)中的三種應(yīng)用方法[J].電力系統(tǒng)及其自動(dòng)化學(xué)報(bào),2006(6).
[3] 秦輝,席裕庚.基于Matlab GUI的預(yù)測(cè)控制仿真平臺(tái)設(shè)計(jì)[J].系統(tǒng)仿真學(xué)報(bào),2006(10).
[4] 楊娟,郭海湘,楊文霞,等.基于MATLAB的GUI設(shè)計(jì)車(chē)輛路徑問(wèn)題的仿真優(yōu)化平臺(tái)[J].系統(tǒng)仿真學(xué)報(bào),2012(3).endprint