劉付桂蘭
摘要:在社會(huì)信息化高速發(fā)展的今天,我們的身邊被各種各樣的信息包圍著,人們?cè)诜N類(lèi)繁雜的各類(lèi)信息中努力尋找屬于自己的有用信息,從而使自己以更快的步伐追趕時(shí)代的潮流,以防被時(shí)代淘汰。隨著計(jì)算機(jī)技術(shù)的發(fā)展,數(shù)字圖像處理技術(shù)廣泛地被應(yīng)用至社會(huì)各個(gè)領(lǐng)域,圖像處理則成為一門(mén)學(xué)科。MATLAB又稱(chēng)矩陣實(shí)驗(yàn)室,具備強(qiáng)大的矩陣運(yùn)算能力,非常適用于圖像處理。本文通過(guò)實(shí)例分析,重點(diǎn)介紹了基于Matlab GUI的常見(jiàn)圖像處理算法實(shí)現(xiàn)。
關(guān)鍵詞:MATLAB;平滑處理;圖像增強(qiáng)
科學(xué)技術(shù)的不斷發(fā)展,數(shù)字圖像處理技術(shù)應(yīng)用需求激增,前景空前廣闊,技術(shù)本身也得到了迅速的發(fā)展。數(shù)字圖像處理已經(jīng)成為認(rèn)識(shí)和改造世界的重要手段,成為人類(lèi)生產(chǎn)和生活當(dāng)中必不可少的部分。
1 用戶(hù)界面的創(chuàng)建
1.1 創(chuàng)建一個(gè)GUI的界面
首先打開(kāi)matlab 軟件,在創(chuàng)建界面之前首先選擇工作路徑,點(diǎn)擊搜索欄旁邊的白色文檔按鈕,選擇對(duì)應(yīng)你需要儲(chǔ)備本次設(shè)計(jì)的路徑,在界面選項(xiàng)欄點(diǎn)擊guide按鈕可以直接進(jìn)行g(shù)ui界面的選擇,同時(shí)也可以在語(yǔ)句框里輸入guide同時(shí)也可以彈出如圖1界面,進(jìn)行一個(gè)gui的用戶(hù)創(chuàng)建。
彈出對(duì)話(huà)框,其中會(huì)有兩個(gè)選項(xiàng),一個(gè)是創(chuàng)建新的gui,另一個(gè)是讀取之前存儲(chǔ)的gui的設(shè)計(jì)。本次為第一次創(chuàng)建則是點(diǎn)擊第一個(gè)選項(xiàng),創(chuàng)建新的gui.點(diǎn)擊borse可以對(duì)文檔進(jìn)行更名,方便后面查找文件。
點(diǎn)擊確認(rèn)后,彈出兩個(gè)窗口,左邊窗口為設(shè)計(jì)的基本窗口,右邊的是程序的窗口。通過(guò)設(shè)計(jì)的窗口,幾乎可以實(shí)現(xiàn)任何的設(shè)計(jì),通過(guò)程序窗口來(lái)決定設(shè)計(jì)如何運(yùn)作。接下來(lái)進(jìn)行界面的基本設(shè)計(jì),對(duì)旁邊的選項(xiàng)按鈕進(jìn)行一系列的搭建,就能完成我們需要的設(shè)計(jì)。
1.2 用戶(hù)圖像的讀取
按照系統(tǒng)的需求分析,需要先建立一個(gè)可以解決圖像顯示和讀取的功能模塊,以及對(duì)圖像進(jìn)行篩選,圖像顯示以及圖像保存等處理,最后將經(jīng)過(guò)處理后的圖像在GUI里進(jìn)行顯示。
本模塊詳細(xì)設(shè)計(jì)中,添加相應(yīng)組件時(shí)一定要考慮組件的類(lèi)型,要添加相應(yīng)功能按鈕以實(shí)現(xiàn)圖像的顯示和讀取,還要添加“文件”菜單并添加子菜單以實(shí)現(xiàn)“新建”“打開(kāi)”“保存”和“退出”功能等。具體模塊框圖如圖5所示:
完成基本設(shè)計(jì)后,右鍵點(diǎn)擊按鈕組件,也就是編輯后的“讀取圖片”按鈕,選擇callback,當(dāng)用戶(hù)觸發(fā)程序設(shè)計(jì)時(shí),在按下一個(gè)pushbutton或者拖動(dòng)一個(gè)進(jìn)度條按鈕時(shí),所要執(zhí)行的字符功能。點(diǎn)擊進(jìn)去后進(jìn)行程序函數(shù)設(shè)計(jì)界面,如下圖6。
2 圖像的基本處理方式
2.1圖像的邊緣檢測(cè)模塊
1)基本原理
本實(shí)驗(yàn)的主要目的是對(duì)圖像的邊緣進(jìn)行提取,通過(guò)對(duì)圖像邊緣的分析來(lái)解構(gòu)圖像的特征。
在邊緣檢測(cè)當(dāng)中,主要是提取圖像中不連續(xù)部分的特征,然后根據(jù)閉合的邊緣來(lái)確定區(qū)域。而在區(qū)域劃分中,則把圖像分割成各個(gè)特征相同的區(qū)域,各區(qū)域之間的邊界即為邊緣。因?yàn)檫吘墮z測(cè)方法無(wú)需將圖像逐個(gè)像素進(jìn)行分割,故其更適用于大圖像的分割。接下來(lái)開(kāi)始進(jìn)行具體的操作,操作:點(diǎn)開(kāi)matlab軟件,輸入或者點(diǎn)擊GUIDE,彈出對(duì)話(huà)框后,點(diǎn)擊讀取歷史文檔,從而進(jìn)行操作,如圖7。
2.2直方圖處理模塊
根據(jù)系統(tǒng)的需求分析和總體功能設(shè)計(jì),本模塊需解決圖像的顯示和讀取,直方圖的顯示,包括對(duì)圖像進(jìn)行直方圖均衡化、統(tǒng)計(jì)等處理,還包括最后的輸出。
總體而言,本模塊功能設(shè)計(jì)應(yīng)包括4個(gè)部分,一是選擇圖像和直方圖顯示部分;二是直方圖處理方式的選擇部分;三是處理后圖像及其直方圖顯示部分;四是處理后圖像的輸出、保存部分。具體模塊框圖如圖9所示。
本次設(shè)計(jì)新增組件popumenu,GUIDE中右鍵popmenu控件,將屬性 Value的默認(rèn)值改成 3,彈出式菜單有兩種方式,一種就是你直接雙擊控件,彈出屬性框,在string屬性中填寫(xiě)下拉菜單的內(nèi)容,沒(méi)有內(nèi)容請(qǐng)用回車(chē)分開(kāi),另一種就是在M文件中的open函數(shù)中。
3 matlab GUI 設(shè)計(jì)一個(gè)學(xué)生成績(jī)查詢(xún)系統(tǒng)
3.1 學(xué)生成績(jī)查詢(xún)界面設(shè)計(jì)
(1)目的
以某個(gè)班級(jí)某個(gè)學(xué)生作為研究者,導(dǎo)入一個(gè)txt文件內(nèi)容,設(shè)計(jì)一個(gè)GUI的仿真設(shè)計(jì),實(shí)現(xiàn)以下功能。
①顯示這個(gè)班級(jí)5個(gè)人的個(gè)人信息和3個(gè)科目;
②查詢(xún)到5個(gè)人對(duì)應(yīng)3個(gè)科目的成績(jī)情況。
實(shí)現(xiàn)方法
①利用Matlab語(yǔ)言編寫(xiě)程序和GUI設(shè)計(jì)系統(tǒng)對(duì)話(huà)框;
②利用matlab函數(shù)實(shí)現(xiàn)圖像處理的數(shù)據(jù)統(tǒng)計(jì)。
(2)設(shè)計(jì)內(nèi)容及步驟
打開(kāi)Matlab建立新的GUI界面,添加需要的控件對(duì)象,添加需要的按鈕組件,和菜單控件。主要是創(chuàng)建一個(gè)listbox來(lái)顯示學(xué)生的姓名,創(chuàng)建三個(gè)text來(lái)顯示目標(biāo)學(xué)生的對(duì)應(yīng)三個(gè)科目,創(chuàng)建一個(gè)text顯示目標(biāo)學(xué)生的成績(jī)顯示。初始text組件只能顯示一行字,需要右鍵點(diǎn)擊MAX選項(xiàng),對(duì)于‘radiobutton和‘listbox是用戶(hù)所能選擇的最大值,必須比Min的值要大,默認(rèn)為一,即只能顯示一欄,對(duì)于‘edit型組件,max-min<=1只能進(jìn)行單項(xiàng)選擇,max-min>=1,即可進(jìn)行多項(xiàng)選擇。故將max的值填5,將列表最大值改到學(xué)生的人數(shù)也就是5,同樣listbox也許要同樣對(duì)Max選項(xiàng)進(jìn)行同樣的調(diào)整最大人數(shù)的操作,也增加到對(duì)應(yīng)的5個(gè)學(xué)生,如圖11。
3.2 matlab GUI 學(xué)生成績(jī)查詢(xún)程序設(shè)計(jì)
創(chuàng)建一個(gè)txt文件“chengji”,主要是為了讓matlab GUI 讀取txt文件,來(lái)導(dǎo)入一些信息,在平時(shí)的生活工作中,我們也會(huì)需要將一些文本檔的內(nèi)容進(jìn)行編輯,這里添加GUI的組件設(shè)計(jì),就是為了實(shí)現(xiàn),一個(gè)完整的學(xué)生成績(jī)查詢(xún)系統(tǒng)。編輯內(nèi)容如下: