鄧向武 坎雜 李景彬 謝凡 董翠翠 王曉華
摘要:為了實(shí)現(xiàn)脫絨棉種顏色特征的快速、簡單、程序化提取,應(yīng)用 MATLAB GUI 討論了 I/O 文件讀取函數(shù)、回調(diào)函數(shù)等具體函數(shù)的應(yīng)用,設(shè)計(jì)出簡明美觀的人機(jī)交互式界面,并實(shí)現(xiàn)了脫絨棉種的圖像讀取、顏色特征值提取和顯示,并以.xls 格式保存,可實(shí)現(xiàn)RGB顏色模型下各顏色分量直方圖曲線顯示;并且通過對(duì)定時(shí)器的設(shè)置,實(shí)現(xiàn)了目標(biāo)圖像的自動(dòng)數(shù)據(jù)采集;通過對(duì) mcc 進(jìn)行編譯,將設(shè)計(jì)好的程序轉(zhuǎn)化為獨(dú)立的 .exe文件?;贛ATLAB GUI 設(shè)計(jì)的簡單、快速提取脫絨棉種圖像特征值的方法,有助于基于脫絨棉種顏色特征的種子質(zhì)量研究。
關(guān)鍵詞:MATLAB GUI;脫絨棉種;顏色特征;提取
中圖分類號(hào): S126文獻(xiàn)標(biāo)志碼: A文章編號(hào):1002-1302(2014)01-0374-02
通信作者:坎雜(1963—),男,新疆精河人,教授,碩士生導(dǎo)師,研究方向?yàn)檗r(nóng)產(chǎn)品智能化檢測(cè)分級(jí)。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ì)量檢測(cè)研究意義重大。Zhang等選取了油菜種子H和B顏色分量作為特征參數(shù),對(duì)不同種皮顏色的油菜種子吸脹和浸泡特性進(jìn)行了研究,結(jié)果表明,油菜種子吸脹和浸泡特性與種子顏色和種皮黑色素含量有非常重要的關(guān)系[3]。Mavi 研究了深紅色甜西瓜的種子種皮顏色與種子質(zhì)量之間的關(guān)系,試驗(yàn)數(shù)據(jù)表明,深紅色甜西瓜種子質(zhì)量的差異可以通過種子種皮顏色來判定[4]。
棉種質(zhì)量是影響棉花產(chǎn)量和質(zhì)量的重要因素之一。種子表面顏色特征與棉種質(zhì)量之間顯著相關(guān),可以作為脫絨棉種發(fā)芽率和發(fā)芽勢(shì)檢測(cè)的重要特征[5]。本研究以 MATLAB GUI為開發(fā)工具,開發(fā)了一套脫絨棉種顏色特征值提取系統(tǒng),設(shè)計(jì)出一種簡單、快速提取脫絨棉種圖像特征值的方法。MATLAB 是集科學(xué)計(jì)算、符號(hào)運(yùn)算和圖形處理等多種功能于一體的強(qiáng)有力工具軟件,同時(shí)也提供了GUI設(shè)計(jì)工具和編寫程序,可以簡單、便捷地設(shè)計(jì)出美觀、方便的菜單化和控件式的人機(jī)交換界面,實(shí)現(xiàn)預(yù)定的功能[6-8]。
1設(shè)計(jì)路線
以脫絨棉種靜態(tài)圖像為研究對(duì)象,應(yīng)用 MATLAB GUI 設(shè)計(jì)出脫絨棉種圖像輸入與顯示,棉種R、G、B、H、S、I共6個(gè)顏色特征參數(shù)的提取與顯示,數(shù)據(jù)保存以及RGB顏色模型下各顏色特征的直方圖曲線顯示等功能??傮w技術(shù)路線如圖 1 所示。
2MATLAB GUI 界面開發(fā)
2.1界面總體設(shè)計(jì)
在設(shè)計(jì)人機(jī)交互操作界面時(shí),在 MATLAB 命令行中輸入 guide 或者選擇 MATLAB 主界面File菜單New子菜單下的GUI項(xiàng),打開GUIDE啟動(dòng)對(duì)話框,在GUIDEtemplates菜單下4個(gè)選項(xiàng)中選擇空白模板Blank GUI(Default),在點(diǎn)擊OK后進(jìn)入GUI編輯界面。
在GUIDE設(shè)計(jì)界面下,通過單擊或者拖拽鼠標(biāo)的方式創(chuàng)建自己的 GUI 程序界面。本界面選擇2個(gè)按鈕組(Botton Group)和7個(gè)按鈕(Push Button)、2個(gè)軸對(duì)象(Axes)、8個(gè)靜態(tài)文本(Static Text)、7個(gè)文本框(Edit Text)和1個(gè)LED ActiveX Control等對(duì)象,并擺放于合適位置。其中,Axes控件用于顯示脫絨棉種原始圖像和RGB顏色模型下各顏色特征的直方圖曲線;6個(gè)文本框用于顯示顏色分量R、G、B、H、S、I的值,剩余1個(gè)文本框控件用于顯示系統(tǒng)的當(dāng)前時(shí)間;8個(gè)靜態(tài)文本控件用于說明相關(guān)坐標(biāo)軸的名稱和脫絨棉種顏色分量的說明。界面設(shè)計(jì)結(jié)果如圖2所示。
2.2圖像輸入與顯示
應(yīng)用MATLAB提供的uigetfile函數(shù),設(shè)置脫絨棉種圖片讀取格式為.jpg或.bmp格式,并將這2種格式放在1個(gè)單元數(shù)組中,即{′*.jpg′;′*.bmp′},設(shè)置title為“選擇圖片”;str
為“讀入圖像”。用 if…end 結(jié)構(gòu)來實(shí)現(xiàn)在Windows環(huán)境下對(duì)脫絨棉種的圖片進(jì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個(gè)文本框控件放置于如圖2所示位置,使用回調(diào)函數(shù)(Callback)實(shí)現(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個(gè)值用xlsread函數(shù)寫入xls目標(biāo)文件中,實(shí)現(xiàn)脫絨棉種顏色特征提取信息的數(shù)據(jù)保存,從而實(shí)現(xiàn)了快速提取脫絨棉種顏色特征信息的功能,便于后續(xù)對(duì)脫絨棉種顏色特征與質(zhì)量之間的數(shù)據(jù)進(jìn)行處理和分析。
2.5顏色特征的直方圖曲線繪制
脫絨棉種的顏色特征直方圖曲線繪制,主要是根據(jù)讀入的棉種圖像在RGB顏色模型下顯示出R、G、B顏色分量值變化曲線,如圖4所示。
2.6時(shí)間顯示
在試驗(yàn)過程中,為了便于觀察和記錄試驗(yàn)時(shí)間,設(shè)置了LEDActiveX1控件來顯示系統(tǒng)時(shí)間(圖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)退出
程序在運(yùn)行過程中或者運(yùn)行完畢后,按設(shè)計(jì)要求能及時(shí)退出系統(tǒng),因此,對(duì)該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可以進(jìn)行文件編譯。安裝編譯器可在命令行輸入mbuild命令。
對(duì)于設(shè)計(jì)好的脫絨棉種顏色特征提取界面,需用mbuild setup命令安裝編譯器,編譯GUI的調(diào)用在命令行輸入:
mcc m getcotton(getcotton為M文件名)
編譯getcotton使GUI 為可執(zhí)行文件,在Matlab默認(rèn)路徑下能找到獨(dú)立的可執(zhí)行文件(.exe),最終使界面脫離 MATLAB 也可運(yùn)行[9]。
3結(jié)論與展望
基于MATLAB GUI這個(gè)強(qiáng)大人機(jī)交互中介,設(shè)計(jì)出一種簡單快速提取脫絨棉種的圖像特征值的方法,為后續(xù)基于顏色特征的脫絨棉種子質(zhì)量檢測(cè)提供了基礎(chǔ),也為其他基于顏色特征檢測(cè)種子質(zhì)量的作物,提供了一種快速提取種子顏色特征及其他特征信息的人機(jī)交互界面設(shè)計(jì)方法。
參考文獻(xiàn):
[1]田新椿,趙勇生. 對(duì)支持新疆棉花產(chǎn)業(yè)發(fā)展的思考[J]. 農(nóng)業(yè)發(fā)展與金融,2011(12):69-70.
[2]李雪源,艾先濤,王俊鐸,等. 新疆棉花產(chǎn)業(yè)發(fā)展現(xiàn)狀、問題與對(duì)策[C]//中國棉花學(xué)會(huì)2012年年會(huì)暨第八次代表大會(huì),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é)報(bào),2010,26(10):172-177.
[6]王垚. 精通MATLAB GUI 設(shè)計(jì)[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è)計(jì)學(xué)習(xí)手記[M]. 北京:北京航空航天大學(xué)出版社,2011.李楠,張為. 基于提升小波變換的薯類視覺圖像濾波處理[J]. 江蘇農(nóng)業(yè)科學(xué),2014,42(1):376-378.endprint