李曉斌,郭玉明
(山西農(nóng)業(yè)大學 工學院,山西 太谷030801)
冷凍干燥技術(shù)能充分保持農(nóng)產(chǎn)品原料的營養(yǎng)成分和活性物質(zhì),保持原有的天然色澤、風味和形態(tài),復水性好,深受人們的喜愛。我國特色農(nóng)產(chǎn)品資源豐富,品種多,質(zhì)量好,價格低,若利用冷凍干燥加工技術(shù)對特色農(nóng)產(chǎn)品進行加工開發(fā),對農(nóng)民增收和農(nóng)業(yè)產(chǎn)業(yè)化發(fā)展有重要意義。為此,本文以Matlab GUI為工具,開發(fā)一套果蔬凍干圖像特征值提取系統(tǒng),對凍干過程中物料含水率進行實時監(jiān)測,及時了解凍干狀態(tài),控制凍干工藝。
Matlab是當今應(yīng)用較廣泛的科學計算軟件之一,它具有強大的矩陣計算、符號運算和數(shù)據(jù)可視化功能。同時也提供了圖形用戶界面(GUI)的設(shè)計和開發(fā)功能,界面友好,直觀易懂,用戶只需要用鼠標或鍵盤來激活相應(yīng)控件,就能實現(xiàn)預(yù)定的功能[1,2]。
以土豆在真空冷凍干燥過程中表面顏色變化的序列圖像為研究對象,利用Matlab GUI實現(xiàn)圖像輸入與顯示、圖像特征值提取與顯示、數(shù)據(jù)保存和含水率曲線繪制等功能,其總體技術(shù)路線如圖1所示。
圖1 技術(shù)路線Fig.1 The route of design
調(diào)整布局區(qū)大小,在GUI對象選擇區(qū)布置5個按鈕(Push Button)、3個軸對象(Axes)、8個靜態(tài)文本(Static Text)、8個 LED ActiveX Control和4個按鈕組(Button Group)等對象,并擺放于合適位置[3]。其中,3個Axes控件用于顯示GUI讀入的原始圖像和圖像特征值曲線圖;4個LED ActiveX控件用于顯示圖像特征值和物料含水率,剩余1個LED ActiveX控件用于顯示系統(tǒng)的當前時間;8個Static Text控件用于說明ActiveX控件和相關(guān)坐標軸的名稱。界面設(shè)計結(jié)果如圖2所示。
圖2 界面設(shè)計結(jié)果Fig.2 The designing results of interface
利用uigetfile函數(shù),設(shè)置選擇的圖片類型為jpg或bmp,并將其放在一個單元數(shù)組中,即{'*.jpg';'*.bmp'},設(shè) 置title為 “選 擇 圖 片 文 件”;string為“讀入圖像”。用if…end結(jié)構(gòu)實現(xiàn) Windows環(huán)境下的圖片選擇,并用imread和imshow函數(shù)將圖片顯示于axes1中[3~5]。如圖3所示。
圖3 原始圖像Fig.3 Original image
在對象選擇區(qū)點擊ActiveX控件,選擇4個七段數(shù)碼LED控件放于圖2所示位置,編寫如下回調(diào)函數(shù)(Callback)實現(xiàn)圖像特征值提取與顯示:
其中,w2為物料(土豆)含水率,它與圖像R值、G值和B值的關(guān)系模型需預(yù)先確定。
ActiveX控件的部分屬性為:
Digits:7
On Color:[255 255 255]
Back Color:[000]
R、G、B值顯示結(jié)果如圖4所示。
圖4 R、G、B值檢測結(jié)果Fig.4 Detecting results of RGB values
用get函數(shù)得到 R、G、B和 w2(handles.activex)的value值,將[R G B w2]這四個值用xlsread函數(shù)寫入目標文件中,從而實現(xiàn)數(shù)據(jù)保存,便于后續(xù)數(shù)據(jù)處理和分析。
曲線圖繪制主要是把2.4中存儲的數(shù)據(jù)用曲線或點展示出來,以便實時、直觀地表達物料含水率變化趨勢。Axes2和Axes3分別用于展示圖像R、G、B特征值和物料含水率隨時間的變化規(guī)律。二者均采用默認屬性值。在該Button的回調(diào)函數(shù)里編寫如下代碼:
利用Matlab的plot函數(shù),就能實現(xiàn)系統(tǒng)數(shù)據(jù)的直觀展示。
程序運行完畢后要求能及時退出系統(tǒng),因此就該Button而言,其回調(diào)函數(shù)應(yīng)考慮Switch…case…end結(jié)構(gòu)[6]。即:
出現(xiàn)提示對話框后,點擊“Yes”就能退出系統(tǒng),點擊“No”則返回界面,“No”是默認值。
為便于試驗時間觀察和記錄,因此設(shè)置LED ActiveX9控件顯示系統(tǒng)時間,其屬性值為:
另外,在界面的Opening函數(shù)內(nèi)添加如下代碼:
并編寫t_update定時器函數(shù):
function t_update(obj,eventdata,handles)
最終實現(xiàn)系統(tǒng)時間顯示。
對于設(shè)計好的界面,需用mbuild-setup命令安裝編譯器,根據(jù)命令窗口提示安裝好后,在命令行輸入:
mcc-m huiyilunen
Matlab開始編譯,編譯完成后,在 Matlab默認的路徑下能找到獨立的exe可執(zhí)行文件,最終使程序脫離 Matlab環(huán)境也可運行[3,7,8]。
(1)Matlab GUI是實現(xiàn)人機交互的中介,具有強大的功能,將VC++引入,同Matlab一起實現(xiàn)混合編程,不僅可以完成許多復雜的程序模塊,而且還將大大提高程序的執(zhí)行效率和靈活性。
(2)程序本身缺乏一定的自動處理能力,在后續(xù)的研究中應(yīng)考慮如何實現(xiàn)真空凍干物料含水率的實時監(jiān)測問題,使Matlab GUI為降低凍干能耗和揭示凍干規(guī)律提供必要的技術(shù)支持。
[1]秦襄培.Matlab圖像處理與界面編程寶典[M].北京:電子工業(yè)出版社,2009:571-611.
[2]陳華,蔡光興.基于 Matlab/GUI的 RSA密碼演示系統(tǒng)[J].計算機與現(xiàn)代化,2009(7):60-63.
[3]羅華飛.Matlab GUI設(shè)計學習手記[M].北京:北京航空航天大學出版社,2009:271-302.
[4]孫祥,黃曉鳴.基于 Matlab的集成化圖像處理系統(tǒng)[J].科學技術(shù)與工程,2007,7(20):5386-5388.
[5]全星慧,范武君,張華.基于 Matlab的數(shù)字圖像處理課件設(shè)計[J].計算機與現(xiàn)代化,2008(7):70-73.
[6]蔡恒恩.基于 Matlab/GUI處理噴霧圖像的研究[D].西安:長安大學,2009:18-40.
[7]張燁.播種性能指標統(tǒng)計計算的 GUI界面系統(tǒng)開發(fā)[J].農(nóng)機化研究,2005(4):236-237.
[8]宋節(jié)保,段柳云,王瑩,等.基于 Matlab GUI軟件制作方法的研究與實現(xiàn)[J].電子設(shè)計工程,2010,18(7):54-56.