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