鄧向武 坎雜 李景彬 謝凡 董翠翠 王曉華
摘要:為了實現(xiàn)脫絨棉種顏色特征的快速、簡單、程序化提取,應(yīng)用 MATLAB GUI 討論了 I/O 文件讀取函數(shù)、回調(diào)函數(shù)等具體函數(shù)的應(yīng)用,設(shè)計出簡明美觀的人機交互式界面,并實現(xiàn)了脫絨棉種的圖像讀取、顏色特征值提取和顯示,并以.xls 格式保存,可實現(xiàn)RGB顏色模型下各顏色分量直方圖曲線顯示;并且通過對定時器的設(shè)置,實現(xiàn)了目標(biāo)圖像的自動數(shù)據(jù)采集;通過對 mcc 進行編譯,將設(shè)計好的程序轉(zhuǎn)化為獨立的 .exe文件?;贛ATLAB GUI 設(shè)計的簡單、快速提取脫絨棉種圖像特征值的方法,有助于基于脫絨棉種顏色特征的種子質(zhì)量研究。
關(guān)鍵詞:MATLAB GUI;脫絨棉種;顏色特征;提取
中圖分類號: S126文獻標(biāo)志碼: A文章編號:1002-1302(2014)01-0374-02
通信作者:坎雜(1963—),男,新疆精河人,教授,碩士生導(dǎo)師,研究方向為農(nóng)產(chǎn)品智能化檢測分級。E-mail:kz-shz@ 163.com。新疆是我國主要的商品棉生產(chǎn)基地。自1993年起,新疆棉花種植面積、總產(chǎn)量、單產(chǎn)、商品調(diào)出量連續(xù)18年排在全國首位[1],棉花種植面積穩(wěn)定在153.3萬hm2以上,新疆棉花的總產(chǎn)量占到我國棉花總產(chǎn)量的45%以上[2]。
種子是農(nóng)業(yè)生產(chǎn)中最基本的生產(chǎn)資料,基于種子顏色特征的種子質(zhì)量檢測研究意義重大。Zhang等選取了油菜種子H和B顏色分量作為特征參數(shù),對不同種皮顏色的油菜種子吸脹和浸泡特性進行了研究,結(jié)果表明,油菜種子吸脹和浸泡特性與種子顏色和種皮黑色素含量有非常重要的關(guān)系[3]。Mavi 研究了深紅色甜西瓜的種子種皮顏色與種子質(zhì)量之間的關(guān)系,試驗數(shù)據(jù)表明,深紅色甜西瓜種子質(zhì)量的差異可以通過種子種皮顏色來判定[4]。
棉種質(zhì)量是影響棉花產(chǎn)量和質(zhì)量的重要因素之一。種子表面顏色特征與棉種質(zhì)量之間顯著相關(guān),可以作為脫絨棉種發(fā)芽率和發(fā)芽勢檢測的重要特征[5]。本研究以 MATLAB GUI為開發(fā)工具,開發(fā)了一套脫絨棉種顏色特征值提取系統(tǒng),設(shè)計出一種簡單、快速提取脫絨棉種圖像特征值的方法。MATLAB 是集科學(xué)計算、符號運算和圖形處理等多種功能于一體的強有力工具軟件,同時也提供了GUI設(shè)計工具和編寫程序,可以簡單、便捷地設(shè)計出美觀、方便的菜單化和控件式的人機交換界面,實現(xiàn)預(yù)定的功能[6-8]。
1設(shè)計路線
以脫絨棉種靜態(tài)圖像為研究對象,應(yīng)用 MATLAB GUI 設(shè)計出脫絨棉種圖像輸入與顯示,棉種R、G、B、H、S、I共6個顏色特征參數(shù)的提取與顯示,數(shù)據(jù)保存以及RGB顏色模型下各顏色特征的直方圖曲線顯示等功能。總體技術(shù)路線如圖 1 所示。
2MATLAB GUI 界面開發(fā)
2.1界面總體設(shè)計
在設(shè)計人機交互操作界面時,在 MATLAB 命令行中輸入 guide 或者選擇 MATLAB 主界面File菜單New子菜單下的GUI項,打開GUIDE啟動對話框,在GUIDEtemplates菜單下4個選項中選擇空白模板Blank GUI(Default),在點擊OK后進入GUI編輯界面。
在GUIDE設(shè)計界面下,通過單擊或者拖拽鼠標(biāo)的方式創(chuàng)建自己的 GUI 程序界面。本界面選擇2個按鈕組(Botton Group)和7個按鈕(Push Button)、2個軸對象(Axes)、8個靜態(tài)文本(Static Text)、7個文本框(Edit Text)和1個LED ActiveX Control等對象,并擺放于合適位置。其中,Axes控件用于顯示脫絨棉種原始圖像和RGB顏色模型下各顏色特征的直方圖曲線;6個文本框用于顯示顏色分量R、G、B、H、S、I的值,剩余1個文本框控件用于顯示系統(tǒng)的當(dāng)前時間;8個靜態(tài)文本控件用于說明相關(guān)坐標(biāo)軸的名稱和脫絨棉種顏色分量的說明。界面設(shè)計結(jié)果如圖2所示。
2.2圖像輸入與顯示
應(yīng)用MATLAB提供的uigetfile函數(shù),設(shè)置脫絨棉種圖片讀取格式為.jpg或.bmp格式,并將這2種格式放在1個單元數(shù)組中,即{′*.jpg′;′*.bmp′},設(shè)置title為“選擇圖片”;str
為“讀入圖像”。用 if…end 結(jié)構(gòu)來實現(xiàn)在Windows環(huán)境下對脫絨棉種的圖片進行選擇,圖片顯示用imshow函數(shù)顯示在axesl中。原始圖像如圖3所示。
程序如下:
[fname,pname,index]= uigetfile({′*.jpg′;′*.bmp′},‘選擇圖片);
if index == 1 || index == 2
str=[pname fname];
axes(handles.axes1);
imshow(str);
end
2.3圖像特征值提取與顯示
在MATLAB GUI控件選擇區(qū),選擇6個文本框控件放置于如圖2所示位置,使用回調(diào)函數(shù)(Callback)實現(xiàn)脫絨棉種圖像的顏色特征值提取與顯示,程序如下:
Functionpushbutton2_Callback(hobject,eventdata,handles)
f1=getimage(handles.axes1);
imR = f1(:,:,1);
imG = f1(:,:,2);
imB = f1(:,:,3);
f2 = rgb2hsv(f1);
imH = f2(:,:,1);
imS = f2(:,:,2);
imI = f2(:,:,3);
set(handles.edit1,′string′,num2str(imR));endprint
set(handles.edit1,′string′,num2str(imG));
set(handles.edit1,′string′,num2str(imB));
set(handles.edit1,′string′,num2str(imH));
set(handles.edit1,′string′,num2str(imS));
set(handles.edit1,′string′,num2str(imI));
2.4數(shù)據(jù)保存
用get函數(shù)得到脫絨棉種圖像顏色特征的R、G、B、H、S、I值,將這6個值用xlsread函數(shù)寫入xls目標(biāo)文件中,實現(xiàn)脫絨棉種顏色特征提取信息的數(shù)據(jù)保存,從而實現(xiàn)了快速提取脫絨棉種顏色特征信息的功能,便于后續(xù)對脫絨棉種顏色特征與質(zhì)量之間的數(shù)據(jù)進行處理和分析。
2.5顏色特征的直方圖曲線繪制
脫絨棉種的顏色特征直方圖曲線繪制,主要是根據(jù)讀入的棉種圖像在RGB顏色模型下顯示出R、G、B顏色分量值變化曲線,如圖4所示。
2.6時間顯示
在試驗過程中,為了便于觀察和記錄試驗時間,設(shè)置了LEDActiveX1控件來顯示系統(tǒng)時間(圖4)。程序如下:
function t_update(obj,eventdata,handles)
str1=datestr(now,′HH:MM:SS′)
set(handles.activex1,′AlphaNumeric′,str1)
空間屬性設(shè)置為:
On Color:[0 255 0]
Off Color:[40 40 40]
ItalicsOffset:0
DisplayMode:Alpha_Numeric
DisplayNumeric:11:57:12(任意給定)
SegmentWidth:4
SegmentSeparation:1
SpacingHorizonttal:8
SpacingVertical:6
2.7系統(tǒng)退出
程序在運行過程中或者運行完畢后,按設(shè)計要求能及時退出系統(tǒng),因此,對該Button控件而言,在其回調(diào)函數(shù)中使用Switch…case…end 結(jié)構(gòu)即可。即:
case ′Yes′
delete(huiyilunwen)
case′No′
return
2.8mcc編譯
mcc命令用于調(diào)用MATLAB編譯器。執(zhí)行mcc命令前,需要安裝C或者C++編譯器,以便MATLAB Compiler可以進行文件編譯。安裝編譯器可在命令行輸入mbuild命令。
對于設(shè)計好的脫絨棉種顏色特征提取界面,需用mbuild setup命令安裝編譯器,編譯GUI的調(diào)用在命令行輸入:
mcc m getcotton(getcotton為M文件名)
編譯getcotton使GUI 為可執(zhí)行文件,在Matlab默認(rèn)路徑下能找到獨立的可執(zhí)行文件(.exe),最終使界面脫離 MATLAB 也可運行[9]。
3結(jié)論與展望
基于MATLAB GUI這個強大人機交互中介,設(shè)計出一種簡單快速提取脫絨棉種的圖像特征值的方法,為后續(xù)基于顏色特征的脫絨棉種子質(zhì)量檢測提供了基礎(chǔ),也為其他基于顏色特征檢測種子質(zhì)量的作物,提供了一種快速提取種子顏色特征及其他特征信息的人機交互界面設(shè)計方法。
參考文獻:
[1]田新椿,趙勇生. 對支持新疆棉花產(chǎn)業(yè)發(fā)展的思考[J]. 農(nóng)業(yè)發(fā)展與金融,2011(12):69-70.
[2]李雪源,艾先濤,王俊鐸,等. 新疆棉花產(chǎn)業(yè)發(fā)展現(xiàn)狀、問題與對策[C]//中國棉花學(xué)會2012年年會暨第八次代表大會,2012:10-13.
[3]Zhang X K,Chen J,Wang H Z. Imbibition behavior and flooding tolerance of rapeseed seed(Brassica napus L.)with different testa color[J]. Genetic Resources and Crop Evolution,2008,55(8):1175-1184.
[4]Mavi K. The relationship between seed coat color and seed quality in watermelon crimson sweet[J]. Hort Sci,2010,37(2):62-69.
[5]張若宇,坎雜,馬蓉,等. 基于RGB模型的脫絨棉種顏色特征與發(fā)芽狀況的關(guān)系[J]. 農(nóng)業(yè)工程學(xué)報,2010,26(10):172-177.
[6]王垚. 精通MATLAB GUI 設(shè)計[M]. 北京:電子工業(yè)出版社,2008.
[7]Choi Y J,McCarthy K L,McCarthy M J. A MATLAB graphical user interface program for tomographic viscometer data processing[J]. Computers and Electronicsin Agriculture,2005,47(1):59-67.
[8]陳杰. MATLAB 寶典[M]. 北京:電子工業(yè)出版社,2010.
[9]羅華飛. MATLAB GUI 設(shè)計學(xué)習(xí)手記[M]. 北京:北京航空航天大學(xué)出版社,2011.李楠,張為. 基于提升小波變換的薯類視覺圖像濾波處理[J]. 江蘇農(nóng)業(yè)科學(xué),2014,42(1):376-378.endprint