版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
基于OpenCV的目標(biāo)物體顏色及輪廓的識(shí)別方法摘要:針對(duì)機(jī)器人視覺中對(duì)目標(biāo)物體的拾取問題,提出一種基于OpenCV函數(shù)對(duì)從攝像頭輸入的目標(biāo)物體的顏色及輪廓進(jìn)行有效識(shí)別的方法。首先利用攝像頭讀取目標(biāo)物體及周圍環(huán)境,經(jīng)一系列圖像處理后進(jìn)行目標(biāo)物體的顏色識(shí)別,在此基礎(chǔ)上進(jìn)行Canny邊緣檢測(cè)并查找輪廓,最后將輪廓顯示。結(jié)果表明,該實(shí)驗(yàn)程序可以很好地完成對(duì)目標(biāo)物體的顏色及輪廓提取,且有效地避免了目標(biāo)物體周圍相近顏色的干擾。關(guān)鍵詞:機(jī)器人視覺;顏色識(shí)別;輪廓識(shí)別;Canny邊緣檢測(cè)中圖分類號(hào):TN919?34;TP391文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1004?373X(2014)24?0076?04Methodofobjects’colorandcontourrecognitionbasedonOpenCVHOUBin,ZHANGWen?zhi,DAIYuan?cheng,TIANHong?qiang(InnerMongoliaUniversityofTechnology,Huhhot010051,China)Abstract:Aimingattheproblemofrecognizingthetargetobjectinrobotvisual,awaybasedonOpenCVisproposed,whichcaneffectivelyrecognizethecolorandthecontouroftheobjectsfromthecamera.Thetargetobjectanditssurroundingenvironmentarereadoutbycamera,andthenthecoloroftheobjectisrecognizedafteraseriesofimageprocessing.Onthebasisofthis,theCannyedgedetectioniscarriedon,andthecontourisdeterminedanddisplayed.Theresultsshowthattheexpe?rimentalprocedurecancompletetheextractionoftargetobjects'colorandcontourperfectly,andavoidtheinterferenceofsimilarcoloraroundobjectseffectively.Keywords:robotvision;colorrecognition;contourrecognition;Cannyedgedetection0引言機(jī)器人視覺是機(jī)器人感知外部世界的重要媒介,也是未來機(jī)器人傳感器發(fā)展的主流方向。機(jī)器人視覺通過視覺傳感器獲取環(huán)境的圖像數(shù)據(jù),并通過軟件進(jìn)行圖像的分析和理解,使機(jī)器人能夠辨識(shí)目標(biāo)物體及確定其位置[1]。隨著機(jī)器人技術(shù)的快速發(fā)展及其在工業(yè)、醫(yī)學(xué)、軍事等領(lǐng)域的廣泛應(yīng)用,機(jī)器人視覺技術(shù)取得了快速發(fā)展,對(duì)機(jī)器人靈敏感知周圍環(huán)境的能力要求也不斷提高[2]。對(duì)目標(biāo)物體的精確識(shí)別問題是機(jī)器人視覺中最基本的環(huán)節(jié),而顏色識(shí)別和輪廓識(shí)別又是進(jìn)行其他深入研究的基礎(chǔ)。目前在這方面的主要應(yīng)用是單一的對(duì)顏色或輪廓的提取?;谏鲜銮闆r,本文提出了基于OpenCV函數(shù)庫(kù),對(duì)攝像頭取景范圍內(nèi)目標(biāo)物體顏色及輪廓共同精確提取的方法。利用OpenCV函數(shù)庫(kù)中提供的函數(shù),對(duì)目標(biāo)物體首先進(jìn)行各種圖像學(xué)方面的預(yù)處理以使得到的圖像符合實(shí)驗(yàn)要求,然后利用閾值調(diào)節(jié)進(jìn)行顏色識(shí)別,最后在顏色識(shí)別的基礎(chǔ)上進(jìn)行邊緣檢測(cè)及輪廓識(shí)別。1OpenCV簡(jiǎn)介OpenCV是由Intel公司資助的開源計(jì)算機(jī)視覺庫(kù),它由一系列C函數(shù)和少量C++類所組成,可實(shí)現(xiàn)圖像處理和計(jì)算機(jī)視覺方面的很多通用算法,例如特征檢測(cè)與跟蹤、運(yùn)動(dòng)分析、目標(biāo)分割與識(shí)別以及3D重建等[3?4]。由于OpenCV的源代碼是完全開放的,而且源代碼的編寫簡(jiǎn)潔而又高效,所以近年來在國(guó)內(nèi)外的圖像處理相關(guān)領(lǐng)域中被廣泛地使用,成為一種流行的圖像處理函數(shù)庫(kù)。本實(shí)驗(yàn)是在WindowsXP系統(tǒng)下基于OpenCV1.0版本及VC++6.0環(huán)境下實(shí)現(xiàn)的。2顏色空間的選取顏色空間的用途是在某些標(biāo)準(zhǔn)下用通??山邮艿姆绞綄?duì)彩色加以說明。常用的顏色空間有RGB,CMY,HSV,HSI等。本文采用的顏色空間為RGB和HSV[5]。RGB(紅、綠、藍(lán))如圖1所示,可將R,G,B看成一個(gè)三維的坐標(biāo)系,其中每一個(gè)坐標(biāo)點(diǎn)都代表了一種顏色。HSV顏色空間,如圖2所示。Hue表示的是顏色,通常使用一個(gè)帶有角度的圓形表示。Saturation表示的是飽和度,在圓心處的取值是0,表示顏色很淡,沿著圓的半徑方向增大顏色越來越濃。Value表示的是顏色的亮度,在圓錐的底端Value表示的是黑色,在頂端是白色。在實(shí)際中,RGB顏色表示容易受到強(qiáng)光,弱光,陰影等因素的影響。相比之下,HSV空間面對(duì)這些光照的變化更穩(wěn)定一些,能很好地反應(yīng)顏色的本質(zhì)。本實(shí)驗(yàn)采用普通CCD攝像頭讀入RGB顏色,再將RGB顏色轉(zhuǎn)換為HSV顏色。在OpenCV中RGB轉(zhuǎn)換到HSV時(shí),對(duì)Hue通道的存儲(chǔ)是用一個(gè)字節(jié)(8位)來表示,取值為[0,255],而Hue的取值[0,360],故需將Hue取值壓縮一倍為[0,180]。其余兩個(gè)量的取值為[0,255]。3算法實(shí)現(xiàn)如圖3所示為整個(gè)算法的大體流程圖。3.1圖像獲取及預(yù)處理利用普通CCD攝像頭獲取周圍環(huán)境圖像,對(duì)獲取的圖像進(jìn)行平滑濾波處理[6]:(1)進(jìn)行高斯濾波處理。由于高斯濾波器是一個(gè)低通濾波器故適合進(jìn)行平滑濾波處理,相對(duì)于均值濾波它的平滑效果更柔和,而且邊緣保留得也更好。高斯濾波函數(shù):cvSmooth(src,dst,CV_GAUSSIAN,3,3,0,0)。src為輸入的源圖像,dst為輸出的圖像。由于真實(shí)圖像在空間內(nèi)的像素是緩慢變化的,鄰近點(diǎn)的像素變化不會(huì)很明顯,但是隨機(jī)的兩個(gè)點(diǎn)就可能形成很大的像素差(也就是說空間上噪聲點(diǎn)不是相互聯(lián)系的),正是基于這一點(diǎn),高斯濾波在保留信號(hào)的條件下減少了噪聲[3]。(2)中值濾波器(CV_MEDIAN)將中心像素的正方形鄰域內(nèi)的每個(gè)像素值用中間像素值替換?;谄骄惴ǖ膕impleblur對(duì)噪聲圖像特別是有大的孤立點(diǎn)的圖像非常敏感,即使有少量點(diǎn)存在較大差異也會(huì)導(dǎo)致平均值的明顯波動(dòng),因此中值濾波可以通過選擇中間值避免這些點(diǎn)的影響[7]。中值濾波函數(shù):cvSmooth(src,dst,CV_MEDIAN,3,3,0,0)。基于兩種濾波器各自的特點(diǎn)及互補(bǔ)的特性故在程序中同時(shí)使用了這兩種濾波函數(shù)以使得到的圖像更平滑從而減少噪聲影響。3.2顏色空間轉(zhuǎn)換及圖像通道的分離由于HSV顏色空間相比于RGB顏色空間的優(yōu)越性,故將RGB轉(zhuǎn)化為HSV。RGB到HSV的數(shù)學(xué)轉(zhuǎn)換函數(shù)如下所示:[k1=max{r,g,b},k2=min{r,g,b};v=k1255](1)[s=0,k1=0(k1-k2)k1,k1≠0](2)[h=(0+g-bk1-k2)×60,s≠0,k1=r(2+b-rk1-k2)×60,s≠0,k1=g(4+r-gk1-k2)×60,s≠0,k1=bundefined,s=0](3)式中:r,g,b為RGB顏色空間中紅色、綠色、藍(lán)色3個(gè)分量的值;h,s,v為HSV顏色空間中色度、飽和度、亮度的值。采用下列函數(shù)實(shí)現(xiàn)RGB到HSV轉(zhuǎn)換:cvCvtColor(src,dst,CV_BGR2HSV)。接下來對(duì)得到的HSV圖像進(jìn)行通道分離,分離為3個(gè)單通道圖像,分別為H(色度通道圖像)、S(飽和度通道圖像)及V(亮度通道圖像)。采用如下函數(shù)實(shí)現(xiàn):cvCvtPixToPlane(src,H,S,V,0)。3.3創(chuàng)建滑動(dòng)條及閾值化處理創(chuàng)建滑動(dòng)條的目的是返回所想要的顏色參數(shù)閾值。本實(shí)驗(yàn)設(shè)定了6個(gè)調(diào)節(jié)參數(shù)LowHue(色度下限值)、HighHue(色度上限值)、LowSaturation(飽和度下限值)、HighSaturation(飽和度上限值)、LowBrightness(亮度下限值)、intHighBrightness(亮度上限值)。cvInRangeS()函數(shù)用于檢查圖像中像素的灰度是否屬于某一指定范圍。可以通過接收滑動(dòng)條返回的各個(gè)閾值而得到目標(biāo)顏色的色度、飽和度和亮度單通道圖像。3.4圖像生成及圖像形態(tài)學(xué)處理應(yīng)用“cvAnd()”函數(shù)對(duì)得到的三個(gè)單通道圖像進(jìn)行按位與運(yùn)算,最后得到檢測(cè)目標(biāo)的二值圖像。但是得到的圖像會(huì)出現(xiàn)噪聲,故接下來需對(duì)得到的圖像進(jìn)行圖像形態(tài)學(xué)處理。采用膨脹腐蝕的方法進(jìn)行處理得到的圖像,可以明顯去除或減少噪點(diǎn),使得到的目標(biāo)體進(jìn)行最大的連通。膨脹是指將一些圖像與核進(jìn)行卷積,求局部最大值的操作,數(shù)學(xué)公式為:[dst(x,y)=max{src(x+x′,y+y′)}](4)[(x′,y′)∈kernel]式中:dst為輸出圖像;src為輸入源圖像;kernel為用于腐蝕或膨脹的核結(jié)構(gòu)元素,本實(shí)驗(yàn)選取的核大小為3×3像素如圖4所示。腐蝕是膨脹的反操作。腐蝕操作要計(jì)算核區(qū)域像素的最小值。腐蝕的數(shù)學(xué)函數(shù)為:[dst(x,y)=min{src(x+x′,y+y′)}](5)在OpenCV中膨脹采用的函數(shù)是“cvDilate()”,腐蝕函數(shù)為“cvErode()”。一般來說,膨脹擴(kuò)展了區(qū)域,而腐蝕縮小區(qū)域。膨脹可以填補(bǔ)凹洞,腐蝕能夠消除凸起。腐蝕操作通常是用來消除圖像中的“斑點(diǎn)”噪聲,可以將斑點(diǎn)腐蝕掉,且能確保圖像內(nèi)的較大區(qū)域依然存在。在試圖找到連通分支(即具有相似顏色或強(qiáng)度的像素點(diǎn)的大塊的互相分離的區(qū)域)時(shí)通常使用膨脹操作。故程序中采用先膨脹后腐蝕的方法可以有效的去除被檢測(cè)到物體的邊緣噪點(diǎn)及其他噪聲影響[8]。3.5查找輪廓和繪制輪廓Canny邊緣檢測(cè)法是最常用到的進(jìn)行邊緣檢測(cè)的方法,其最重要的特點(diǎn)是試圖將獨(dú)立的候選像素拼裝成輪廓[9]。輪廓的形成是對(duì)這些像素運(yùn)用滯后性閾值,本實(shí)驗(yàn)所采用的上下限閾值比為3∶1。Canny邊緣檢測(cè)算法是高斯函數(shù)的一階導(dǎo)數(shù),是對(duì)信噪比與定位精度之乘積的最優(yōu)化逼近算子[7]。Canny算法(見圖5)首先用二維高斯函數(shù)的一階導(dǎo)數(shù),對(duì)圖像進(jìn)行平滑,設(shè)二維高斯函數(shù)為:[G(x,y)=12πσ2exp-x2+y22σ2](6)其梯度矢量為:[?G=?G/?x?G/?y](7)通過上式進(jìn)行平滑,抑制圖像噪聲。其中σ為平滑參數(shù),σ較小時(shí),邊緣定位精度高,但圖像平滑作用較弱,抑制噪聲的能力差;σ較大時(shí)則相反。梯度計(jì)算完成平滑后接下來進(jìn)行“非極大值抑制”細(xì)化梯度幅值矩陣,尋找圖像中的可能邊緣點(diǎn);最后進(jìn)行“雙門限檢測(cè)”則是通過雙閾值遞歸尋找圖像邊緣點(diǎn),實(shí)現(xiàn)邊緣提取[10]。實(shí)現(xiàn)Canny檢測(cè)的OpenCV函數(shù)是cvCanny(src,dst,50,150,3),該函數(shù)需要輸入一幅灰度圖,輸出也是一幅灰度圖。進(jìn)行完邊緣檢測(cè)緊接著把圖像輸出給查找輪廓函數(shù)即“cvFindContours()”,從二值圖像中檢索輪廓,并返回檢測(cè)到的輪廓的個(gè)數(shù)。利用“cvDrawContours()”函數(shù)在屏幕上繪制檢測(cè)到的輪廓。繪制的屏幕圖像可以選擇源圖像。4實(shí)驗(yàn)結(jié)果及分析根據(jù)上述算法思想和實(shí)現(xiàn)過程,在WindowsXP系統(tǒng)中使用VC++6.0和OpenCV1.0來實(shí)現(xiàn)目標(biāo)物體的顏色檢測(cè)及輪廓檢測(cè)實(shí)驗(yàn)。本文采用的是普通的CCD攝像頭,若采用分辨率更高的攝像頭其執(zhí)行后的效果會(huì)更好。圖6為從攝像頭直接讀取的視頻截圖,未經(jīng)OpenCV的函數(shù)處理。圖7為對(duì)一藍(lán)色目標(biāo)物體進(jìn)行顏色拾取,圖8為所需的色度、飽和度和亮度的閾值。通過調(diào)節(jié)所需的閾值可以有效的拾取目標(biāo)的顏色。目標(biāo)物體與背景的顏色較為相近,用實(shí)驗(yàn)中的算法可以有效的區(qū)分目標(biāo)體與背景。圖9為在拾取顏色的前提下進(jìn)行輪廓的拾取,可以看出輪廓能夠很精確地識(shí)別出,由于是先拾取顏色所以可以將其他顏色的物體區(qū)別開。根據(jù)顏色進(jìn)行輪廓提取可以很好的避免與目標(biāo)物體輪廓相近的物體的影響。圖10~圖12為在同一視頻流中對(duì)另外的紅色物體進(jìn)行拾取,可以看到目標(biāo)物體中的紅色斑點(diǎn)可以很好的拾取出來。最后在顏色拾取的基礎(chǔ)上輪廓也很好的拾取了。背景中的桌面發(fā)黃色,在色度中黃色的閾值范圍緊挨著紅色的閾值范圍,但通過實(shí)驗(yàn)效果可以看出,紅色和黃色完全可以區(qū)分且根本沒有影響。以上兩組截圖為來自同一攝像頭的視頻流輸入,從實(shí)驗(yàn)結(jié)果截圖可以看出該程序較好的拾取了目標(biāo)物體的顏色及輪廓,對(duì)顏色的獲取結(jié)果令人滿意,基本可以去除周圍其他相近顏色的干擾。5結(jié)論采用OpenCV開發(fā)的目標(biāo)物體顏色及輪廓識(shí)別程序可以得到比較理想的實(shí)驗(yàn)效果。采用此設(shè)計(jì)的算法復(fù)雜度并不高,易于實(shí)現(xiàn),加上OpenCV庫(kù)設(shè)計(jì)高效率性,可以快捷地實(shí)現(xiàn)圖像的處理。實(shí)驗(yàn)結(jié)果表明,本文設(shè)計(jì)的目標(biāo)物體顏色及輪廓同時(shí)精確識(shí)別的程序具有較高的可行性。這種先通過顏色閾值滑動(dòng)條調(diào)整確定出目標(biāo)物體,再在此基礎(chǔ)上對(duì)目標(biāo)物體進(jìn)行輪廓提取的方法比單一的目標(biāo)顏色提取或輪廓提取更實(shí)用更便捷,為目標(biāo)跟蹤及其他視覺方面的研究奠定了基礎(chǔ)。參考文獻(xiàn)[1]徐德,譚民,李原.機(jī)器人視覺測(cè)量與控制[M].2版.北京:國(guó)防工業(yè)出版社,2011.[2]R西格沃特,IR諾巴克什,D斯卡拉穆扎.自主移動(dòng)機(jī)器人導(dǎo)論[M].李人厚,宋青松,譯.2版.西安:西安交通大學(xué)出版社,2013.[3]BRADSKIGary,KAEHLERAdrian.學(xué)習(xí)OpenCV(中文版)[M].于仕琪,劉瑞禎,譯.北京:清華大學(xué)出版社
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 會(huì)議服務(wù)合同協(xié)議書的履行期限
- 苯板采購(gòu)合同的履行威脅
- 螺旋式機(jī)器購(gòu)買協(xié)議
- 房屋買賣合同的違約金計(jì)算及支付方式
- 電腦交易協(xié)議示范
- 招標(biāo)方案設(shè)計(jì)背景介紹
- 目標(biāo)責(zé)任書撰寫技巧
- 裝卸信譽(yù)保證
- 網(wǎng)絡(luò)打印機(jī)采購(gòu)協(xié)議
- 致愛妻忠誠(chéng)的保證書
- 滄州市基層診所基本公共衛(wèi)生服務(wù)醫(yī)療機(jī)構(gòu)衛(wèi)生院社區(qū)衛(wèi)生服務(wù)中心村衛(wèi)生室地址信息
- 2022年法考主觀題考試真題收集
- 銀行安全保衛(wèi)人員試題庫(kù)【含答案】
- 企業(yè)安全生產(chǎn)法律法規(guī)培訓(xùn)記錄參考模板范本
- 聚合單元事故案例 匯編
- SJG 102-2021 城市軌道交通工程信息模型分類和編碼標(biāo)準(zhǔn)-高清現(xiàn)行
- 十年十大考古發(fā)現(xiàn)系列之4:南漢二陵:雄霸嶺南數(shù)十年的“大漢”
- 淺談數(shù)據(jù)完整性
- (完整版)重慶中學(xué)教材使用版本
- 整車機(jī)艙布置基本知識(shí)
- 包裝裝潢承印五項(xiàng)制度登記表
評(píng)論
0/150
提交評(píng)論