杜翔宇
(南京理工大學(xué) 江蘇 南京 210094)
?
基于特征參數(shù)的水果識別系統(tǒng)
杜翔宇
(南京理工大學(xué) 江蘇 南京 210094)
本文基于Matlab識別一幅數(shù)字蔬菜水果圖像中的胡蘿卜、橘子、黃瓜和雞蛋。整個(gè)識別過程涉及圖像數(shù)據(jù)獲取、對比度增強(qiáng)、去噪,二值化、標(biāo)簽化、特征參數(shù)計(jì)算、水果識別等過程。為了彌補(bǔ)由于原始圖像中灰度分布不均勻和光照等因素的影響而造成的二值化后圖像出現(xiàn)的斷邊和同一類水果中出現(xiàn)的孔洞,借助Sobel算子進(jìn)行邊緣提取以接合斷邊,基于數(shù)學(xué)形態(tài)學(xué)算子填充二值化圖像中出現(xiàn)的孔洞。
圖像識別;二值化;特征參數(shù);Matlab
隨著計(jì)算機(jī)的普遍使用,人類已經(jīng)進(jìn)入了一個(gè)高速發(fā)展的信息化時(shí)代,圖像處理技術(shù)也愈來愈成為科學(xué)技術(shù)領(lǐng)域中必不可少的手段。計(jì)算機(jī)圖像處理與圖像識別的關(guān)系非常密切。一般圖像處理包括編碼、增強(qiáng)、壓縮、復(fù)原和分割等內(nèi)容。
我國是世界蔬菜、水果大國,但由于品種結(jié)構(gòu)等問題,水果分級分類基本上由人工完成。這種方式雖然方便,但也造成了勞動(dòng)量大、生產(chǎn)率低的問題。機(jī)械分揀具有短時(shí)、高效等特點(diǎn)。因此,研究和開發(fā)水果識別系統(tǒng)具有重要意義。
本系統(tǒng)基于MATLAB軟件進(jìn)行水果識別。MATLAB是一個(gè)交互式軟件系統(tǒng),具有很強(qiáng)的數(shù)值計(jì)算功能和編程功能;具有結(jié)構(gòu)控制,函數(shù)調(diào)用,輸入輸出等程序語言特征;有豐富的工具箱,圖像處理就是其中一個(gè)功能強(qiáng)大的工具。
MATLAB的推出得到了各個(gè)領(lǐng)域?qū)<覍W(xué)者的廣泛關(guān)注,其強(qiáng)大的擴(kuò)展功能為各個(gè)領(lǐng)域的應(yīng)用提供了基礎(chǔ)。它的工具箱主要有通信、控制系統(tǒng)、濾波器設(shè)計(jì)、圖像處理、非線性控制設(shè)計(jì)、系統(tǒng)識別、神經(jīng)網(wǎng)絡(luò)、最優(yōu)化、模糊邏輯、信號處理、魯棒控制、統(tǒng)計(jì)等,而且工具箱還在不斷的增加。借助這些工具,各個(gè)層次的研究人員可直觀方便地進(jìn)行分析、計(jì)算及設(shè)計(jì)工作,從而大大地節(jié)省了時(shí)間。為此,MATLAB已經(jīng)成為目前最廣泛的工程應(yīng)用軟件。
(一)計(jì)算機(jī)讀取圖像
為了在計(jì)算機(jī)上進(jìn)行處理,必須把作為處理對象的模擬圖像轉(zhuǎn)換成數(shù)字。為了得到理想的二值圖像,一般采用閾值分割技術(shù)。閾值分割技術(shù)主要利用圖像中背景與對象之間的灰度差異。理想狀態(tài)下,背景與對象之間灰度差異很大,且同一個(gè)對象有基本相同的灰度值。
(二)圖像的二值化
所謂圖像的二值化,就是使圖像上所有點(diǎn)的灰度值不是“0”就是“255”,也就是使整個(gè)圖像呈現(xiàn)出黑白效果圖像的二值化通常采用閾值法。閾值法是一種簡單有效的圖像分割方法,它用一個(gè)或幾個(gè)閾值將圖像的灰度級分為幾個(gè)部分,將屬于同一部分的像素視為相同的物體。利用閾值法,對于物體與背景之間存在明顯差別(對比)的景物,分割效果十分有效。只要閾值選取合適,將每個(gè)像素與之比較,進(jìn)行二值化或者半二值化處理,就可以很好地將對象從背景中分離出來。
(三)算法
(1)形態(tài)學(xué)基本運(yùn)算
形態(tài)學(xué)圖像處理表現(xiàn)為一種鄰域運(yùn)算形式。有一種特殊定義的鄰域稱為“結(jié)構(gòu)元素”(StructureElement),在每個(gè)像素位置上它與二值圖像對應(yīng)的區(qū)域進(jìn)行特定的邏輯運(yùn)算,運(yùn)算結(jié)果為輸出圖像的相應(yīng)像素。形態(tài)學(xué)運(yùn)算的效果取決于結(jié)構(gòu)元素的大小、內(nèi)容以及邏輯運(yùn)算的性質(zhì)。常見的形態(tài)學(xué)運(yùn)算有腐蝕和膨脹兩種。常用的簡單對稱結(jié)構(gòu)元素有:圓形(disk)、方形(square)、菱形(diamond)。
①腐蝕(imerode):腐蝕是一種消除邊界點(diǎn),使邊界向內(nèi)部收縮的過程。利用該操作,可以消除小且無意義的物體。
②膨脹(imdilate):膨脹是將與物體接觸的所有背景點(diǎn)合并到該物體中,使邊界向外部擴(kuò)張的過程。利用該操作,可以填補(bǔ)物體中的空洞。
③開運(yùn)算(imopen):先腐蝕后膨脹的過程稱為開運(yùn)算。利用該運(yùn)算可以消除小物體,在纖細(xì)點(diǎn)處分離物體,平滑較大物體的邊界,同時(shí)并不明顯改變原來物體的面積。
④閉運(yùn)算(imclose):先膨脹后腐蝕的過程稱為閉運(yùn)算。利用該運(yùn)算可以填充物體內(nèi)細(xì)小的空洞,連接鄰近物體,平滑其邊界,同時(shí)并不明顯改變原來物體的面積。
(2)為了使程序簡單,將程序邊緣計(jì)算的方法統(tǒng)一給出,可以簡化程序。
①周長計(jì)算:利用邊界的像素之和代表周長;②面積計(jì)算:利用imfill函數(shù)填充圖像區(qū)域,for語句計(jì)算區(qū)域的像素和來代表面積;③圓度計(jì)算:物體的形狀不一,通過圓度計(jì)算可以提取出圓形的圖片;④對于形狀大小接近的圖像,可以采用計(jì)算平均色度的方法。將圖片轉(zhuǎn)化為HSV各式,for語句將矩陣各個(gè)位置的像素相加和平均實(shí)現(xiàn)。
測試圖中黃瓜可以利用平均圓率分離出,調(diào)整im2bw的閾值突出黃瓜然后分離。胡蘿卜可以通過最大面積分離。橘子利用圓度分離。雞蛋由于亮度接近白色,可使用平均色度的方法。
界面設(shè)計(jì)。界面設(shè)計(jì)入手對比較難,我通過比對其他程序的界面學(xué)習(xí),發(fā)現(xiàn)其實(shí)原理比較簡單,類似于超鏈接。
1、程序利用HSV格式圖片完成了參數(shù)提取,還將分割的圖片從二值圖變成RGB彩色圖,實(shí)現(xiàn)彩色圖的提取,并且物體位置不變。
2、程序同時(shí)利用課上所學(xué),完成圖片灰度化,二值化的轉(zhuǎn)化,并進(jìn)行開運(yùn)算,通過腐蝕膨脹的方法使輪廓清晰,并提取邊緣圖。
3、給出了圖片的灰度直方圖和灰度直方圖的均衡化。
4、制作界面,通過按鈕實(shí)現(xiàn)圖片提取,實(shí)現(xiàn)文件讀取和關(guān)閉。
基于MATLAB軟件建立起來的識別系統(tǒng),可以進(jìn)行對黃瓜、胡蘿卜、橘子和雞蛋的識別。通過與實(shí)物圖的對比,提取效果比較好。在此基礎(chǔ)上進(jìn)行程序的拓展和豐富,可以適用于各種大型的綜合性的水果識別和分揀場合。
[1]岡薩雷斯(Gonzalez,R.C.)等著;阮秋琦等譯.數(shù)字圖像處理[M].第3版.電子工業(yè)出版社.2011
[2]胡小風(fēng),趙輝.VisualC++/MATLAB圖像處理與識別實(shí)用案例精選[M].北京郵電出版社.2004
[3]劉剛.MATLAB數(shù)字圖像處理[M].機(jī)械工業(yè)出版社.2010
[4]高成.Matlab圖像處理與應(yīng)用[M].國防工業(yè)出版社.2007
[5]高展宏等.基于MATLAB的圖像處理案例教程[M].清華大學(xué)出版社.2011
[6]王曉丹等.基于MATLAB的系統(tǒng)分析與設(shè)計(jì)[M].西安電子科技大學(xué)出版社.2000
[7]徐惠榮.基于機(jī)器視覺的樹上柑桔識別方法研究[D].浙江大學(xué).2004
[8]丁亞蘭.基于機(jī)器視覺的獼猴桃果實(shí)識別與定位關(guān)鍵技術(shù)研究[D].西北農(nóng)林科技大學(xué).2009
杜翔宇(1995.12-),男,漢族,河北人,本科在學(xué),南京理工大學(xué),光電信息科學(xué)與工程。