基于單目視覺的目標(biāo)位姿確定方法研究及仿真_第1頁
基于單目視覺的目標(biāo)位姿確定方法研究及仿真_第2頁
基于單目視覺的目標(biāo)位姿確定方法研究及仿真_第3頁
基于單目視覺的目標(biāo)位姿確定方法研究及仿真_第4頁
基于單目視覺的目標(biāo)位姿確定方法研究及仿真_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、基于單目視覺的目標(biāo)位姿確定方法研究及仿真任務(wù)處理報告宇航學(xué)院北京航空航天大學(xué)2011年8月目錄1主子星位姿確定方案12子星拍攝主星的位姿確定23主星拍攝子星的位姿確定44數(shù)字圖像處理54.1、大圓圓心解算54.1.1原始圖像讀入54.1.2圖像的灰度化64.1.3灰度圖均衡化64.1.4雙峰法進行圖像閾值分割74.1.5圖像噪聲濾除84.1.6聯(lián)通組元素提取84.1.7圓形檢測與圓心提取94.2、小圓圓心解算114.2.1區(qū)域生長分割114.2.2小圓圖像處理124.3、圖像處理結(jié)果及誤差分析154.3.3圓心像素坐標(biāo)154.3.2坐標(biāo)誤差155實驗攝像頭的光學(xué)參數(shù)166星載攝像頭的光學(xué)參數(shù)1

2、67位姿確定算法177.1、相似迭代算法177.2、Tsai兩步法208存在的問題及建議218.1、目標(biāo)信息的增強218.2、關(guān)于實驗228.3、坐標(biāo)系的標(biāo)定239參考文獻(xiàn)2310附錄 matlab源程序2310.1、數(shù)字圖像處理主程序2310.2、hough變換子函數(shù)程序2910.3、區(qū)域生長分割子函數(shù)程序3110.4、相似迭代算法函數(shù)及測試程序321主子星位姿確定方案主星頂面和子星地面各裝有一個CCD攝像頭,擬采用主星頂面的攝像頭對子星拍照獲取圖片。通過數(shù)字圖像處理,獲得標(biāo)定子星的特征點的圖像坐標(biāo),特征點所在的子星坐標(biāo)系在整星裝配完成時可以十分精確地進行標(biāo)定,相應(yīng)特征點的三維坐標(biāo)即為已知量

3、。將特征點的圖像二維坐標(biāo)和子星三維坐標(biāo)結(jié)合相應(yīng)的位姿解算算法即可解算出子星坐標(biāo)系相對于攝像機坐標(biāo)系的位移矢量和姿態(tài)變換矩陣。攝像機坐標(biāo)系及主星本體坐標(biāo)系在整星裝配完成時進行精確標(biāo)定。攝像機坐標(biāo)系與主星本體坐標(biāo)系間的位移矢量和姿態(tài)變換矩陣已知。選取合適的歐拉旋轉(zhuǎn)順序,可以則可由姿態(tài)變換矩陣反解出姿態(tài)角(歐拉角)。至此,子星相對于主星的位置和姿態(tài)完全確定。在子星底板上,有三個圓是較為顯著的結(jié)構(gòu)信息。一個是底板本身的大圓盤,另外兩個是底板上的圓孔。通過圖像處理獲得者三個圓的輪廓(在圖片上應(yīng)為橢圓),進而解算圓心,以圓心作為特征點進行物體位姿確定。而在子星本體坐標(biāo)系中,三個圓的圓心坐標(biāo)已知,其誤差可以

4、通過加工精度進行控制。故以三個圓的圓心作為目標(biāo)特征點。目前查閱的文獻(xiàn)均沒有研究過三點定位問題,且由于重力梯度桿上子星具有整周旋轉(zhuǎn)性,可知共面三點不足以進行位姿確定。2子星拍攝主星的位姿確定從子星的攝像頭拍主星進行位姿確定不可行。1、如下圖,由于梯度桿的柔性,子星攝像頭會隨子星平臺而俯仰。重力梯度桿較長,故輕微的俯仰就易使主星平臺脫離子星攝像頭的視野。2、在圖像處理上,主星平臺的四邊形提取因重力梯度桿的影響而十分困難。下圖為實驗用圖。因為實際拍攝照片時,不能到樣星進行拍攝。對此圖進行圖像處理以期獲得主星頂面四邊形,但多次試驗后效果仍然不好:主星頂面可用的特征點只有四邊形的四個角點,現(xiàn)在四邊形不能

5、很好地被提取,則角點不能獲得,或者只能以較大誤差地獲得。綜上所述,從子星攝像頭拍攝圖片進行位姿確定的方案不可行。鑒于子星拍攝主星時有可能失去目標(biāo),所以只能采用主星拍攝子星獲得圖像信息。3主星拍攝子星的位姿確定主星安裝的攝像頭拍攝子星時,大片的重力梯度桿進入攝像視野。重力梯度桿將帶入極大的干擾:其一,重力梯度桿上鉸接頭的圖像特征太明顯,圖像灰度處理后幾乎不能將其分割,這就使得圖像解算特征點時誤差較大。且這一影響隨重力梯度桿的伸長、子星圖像變小而愈加顯著。如下兩圖 其二,重力梯度桿的鉸接頭擋住子星底板的小孔,使得拍攝的圖像失去待處理的特征點。如下圖4數(shù)字圖像處理數(shù)字圖像處理(DigitalImag

6、eProcessing)是通過計算機對圖像進行去除噪聲、增強、復(fù)原、分割、提取特征等處理的方法和技術(shù)。4.1、大圓圓心解算噪聲濾除和取聯(lián)通元素圓輪廓及圓心檢測 閾值分割有效部分灰度變換和均衡化導(dǎo)入原始圖像本實驗圖像處理流程圖: 4.1.1原始圖像讀入clear ;clc;close all;%Step1 獲取圖像 裝入待處理彩色圖像并顯示原始圖像Scolor = imread(sat01.jpg);%imread函數(shù)讀取圖像文件Figure;imshow(Scolor),title(原始圖像);4.1.2圖像的灰度化一幅完整的圖像,是由紅色綠色藍(lán)色三個通道組成的。紅色、綠色、藍(lán)色三個通道的縮覽

7、圖都是以灰度顯示的。用不同的灰度色階來表示“ 紅,綠,藍(lán)”在圖像中的比重。通道中的純白,代表了該色光在此處為最高亮度,亮度級別是255?;叶确秶?255。彩色圖像包含著大量的顏色信息,不但在存儲上開銷很大,而且在處理上也會降低系統(tǒng)的執(zhí)行速度,因此在對圖像進行識別等處理中經(jīng)常將彩色圖像轉(zhuǎn)變?yōu)榛叶葓D像,以加快處理速度。由彩色轉(zhuǎn)換為灰度的過程叫做灰度化處理?;叶忍幚砗螅瑘D像變得更加清晰、細(xì)膩、容易識別。%將彩色圖像轉(zhuǎn)換為灰度圖并顯示Sgray = rgb2gray(Scolor);%rgb2gray轉(zhuǎn)換成灰度圖figure,imshow(Sgray);title(原始灰度圖像);4.1.3灰度圖均衡

8、化灰度圖均衡化即把原本分布不均的灰度直方圖在整個灰度級別內(nèi)均勻分布。對大多數(shù)的圖像,均衡化可以增加圖像對比效果。Sgray=histeq(Sgray);figure,imshow(Sgray);title(均衡化灰度圖像);4.1.4雙峰法進行圖像閾值分割圖像的閾值分割關(guān)鍵在于閾值的選取,這一步不能完全自動化,必須針對具體圖像進行反復(fù)試驗,找出較為合適的閾。th1=25;%獲得最佳閾值,這個值要在試驗中反復(fù)試驗TH1=im2bw(J2,th1/255);TH1=TH1;figureimshow(TH1);title(閾值分割圖25);4.1.5圖像噪聲濾除圖像在采集、傳輸?shù)冗^程中,不可避免會存

9、在一些噪聲。利用形態(tài)學(xué)的開運算和閉運算組合,可以濾除這些噪聲。開運算可以切斷細(xì)長的搭線,消除圖像邊緣的毛刺和孤立點,具有平滑圖像邊界的作用,而閉運算同樣具有平滑邊界的作用,且能連接小的間斷和填充小的空洞和裂縫Error! Reference source not found.。濾噪處理也不能完全自動化,噪聲濾除算子的設(shè)置也必須根據(jù)具體的圖像進行選擇,直到濾噪結(jié)果滿意。B=strel(diamond,5);%試驗表明算子設(shè)為5時濾噪結(jié)果勉強可以J1=imopen(TH1,B);J2=imclose(J1,B);figureimshow(J2);title(閾值分割圖濾噪結(jié)果,同時為聯(lián)通組提取準(zhǔn)備

10、);4.1.6聯(lián)通組元素提取由于重力梯度桿交接點面積較大,已經(jīng)不能再進行圖像濾噪,期望通過聯(lián)通結(jié)構(gòu)元素的方法,將信息進一步準(zhǔn)確化。LL=strel(square,3);y,x=getpts;x=uint16(x);y=uint16(y);Iold=zeros(size(J2);Iold(x,y)=1;while(1) Inew=imdilate(Iold,LL)&J2; if(Inew=Iold) break; end; Iold=Inew;end;figureimshow(Inew);title(聯(lián)通組元素提取圖像);4.1.7圓形檢測與圓心提取hough變換Hough變換是一

11、種基于圖像全局分割結(jié)果的邊緣連接技術(shù),它抗干擾能力強,能檢測出任意形狀的曲線,即使線上有許多的斷裂,因此在圖像分析的預(yù)處理中獲得廣泛應(yīng)用。Hough變換的基本原理在于,利用點與線的對偶性,將圖像空間的線條變?yōu)閰?shù)空間的聚集點,從而檢測給定圖像是否存在給定性質(zhì)的曲線。Hough變換的基本策略是:由圖像空間中的邊緣數(shù)據(jù)點去計算參數(shù)空間中的參數(shù)點的可能軌跡,并在一個累加器中給計算出的參考點計數(shù),最后選出峰值。圓的方程為:,通過Hough變換,將圖像空間對應(yīng)到參數(shù)空間。圓形檢測用hough變換檢測圓及其圓心的像素坐標(biāo)。程序中圓的檢測半徑范圍需要人為給定:通過上面的處理將圓提取出來后,直接

12、用matlab圖像工具粗略量取圓半徑像素值,然后給出檢測范圍,以減少壞點的數(shù)目甚至檢測錯誤。BW=bwperim(Inew,4);step_r = 1;step_angle = 0.1;minr = 308;%檢測圓的最小半徑maxr = 314;%檢測圓的最大半徑thresh = 0.7;hough_space,hough_circle,para = hough_circle(BW,step_r,step_angle,minr,maxr,thresh);figureimshow(hough_circle),title(HOUGH變換檢測結(jié)果) 原始檢測結(jié)果圖 檢測結(jié)果放大圖圓心

13、解算通過HOUGH變換檢測到的圓心,會因邊界檢測的毛刺引入壞點,通過下面的程序進行迭代將壞點剔除,增減圓心坐標(biāo)的可靠度。cir=mean(para);ww,yy=size(para);for cc=1:10 for www=1:2 for yyy=1:yy if abs(para(www,yyy)-cir(1,www)(12-cc) para(www,yyy)=cir(1,www); else end end end cir=mean(para);end%圓心像素坐標(biāo),默認(rèn)以角點為像素坐標(biāo)的坐標(biāo)原點x1=cir(1,2);y1=cir(1,1);%以圖像中心為坐標(biāo)原點的圖像坐標(biāo),圖片2272

14、X 1704像素y2=1704-y1;%將y反轉(zhuǎn)x=x1-2272/2y=y2-1704/2結(jié)果x = 105.3, Y =-169.04.2、小圓圓心解算4.2.1區(qū)域生長分割重力梯度桿嚴(yán)重遮擋后,小圓信息的獲取方法有別于大圓信息的獲取。重力梯度桿將小圓分割后,不能再對小圓執(zhí)行閾值分割,這里采用區(qū)域生長分割方法獲取小圓。區(qū)域生長方法是根據(jù)同一物體區(qū)域內(nèi)象素的相似性質(zhì)來聚集象素點的方法,從初始區(qū)域(如小鄰域或甚至于每個象素)開始,將相鄰的具有同樣性質(zhì)的象素或其它區(qū)域歸并到目前的區(qū)域中從而逐步增長區(qū)域,直至沒有可以歸并的點或其它小區(qū)域為止。區(qū)域生長的基本思想是將具有相似性質(zhì)的像素集合起來構(gòu)成區(qū)域

15、。具體先對每個需要分割的區(qū)域找一個種子像素作為生長起點,然后將種子像素和周圍鄰域中與種子像素有相同或相似性質(zhì)的像素(根據(jù)某種事先確定的生長或相似準(zhǔn)則來判定)合并到種子像素所在的區(qū)域中。將這些新像素當(dāng)作新的種子繼續(xù)上面的過程,直到?jīng)]有滿足條件的像素可被包括進來。這樣一個區(qū)域就生長成了。4.2.2小圓圖像處理在區(qū)域生長Sgray=double(Sgray);y1,x1=getpts;x1=round(x1);y1=round(y1);seed=x1,y1;th_mean=8;%實驗中必須對此值進行反復(fù)調(diào)整Yout=regiongrow(Sgray,seed,th_mean);figure;imsh

16、ow(Yout);濾噪處理B=strel(diamond,2);J1=imopen(Yout,B);J2=imclose(J1,B);figureimshow(J2);title(閾值分割圖濾噪結(jié)果,同時為聯(lián)通組提取準(zhǔn)備);左側(cè)小圓聯(lián)通組元素提?。簣A形檢測:已經(jīng)無法提取到圓形,實際上檢測的是一段圓弧。圓形檢測圖 圓形檢測圖放大圖通過圓弧檢測圖可見,獲取的點大多數(shù)都在圓弧上。一些不再圓弧上的點,在經(jīng)過圓心獲取程序迭代處理后,大多數(shù)將被踢除,仍然能保證圓心坐標(biāo)較高的精度。左側(cè)小圓圓心提取結(jié)果:x =39.2y =-383.5右側(cè)小圓處理結(jié)果:從處理圖像可知提取到的點多數(shù)也處于圓弧上。右側(cè)小圓圓心提

17、取結(jié)果:x = 123.2y = -336.64.3、圖像處理結(jié)果及誤差分析4.3.3圓心像素坐標(biāo)坐標(biāo)提取結(jié)果如下表所示:大圓左邊小圓右邊小圓像素坐標(biāo)x105.339.2123.2像素坐標(biāo)y-169.0-383.5-336.6用像素坐標(biāo)乘以像素尺寸,即可獲得特征點在物理空間的圖像坐標(biāo)。圖像坐標(biāo)系:yX4.3.2坐標(biāo)誤差與在圖像上直接用matlab工具測量的圓心坐標(biāo)像比較,程序提取的圓心坐標(biāo)可能會有10個像素誤差。這是一個可接受的誤差。攝像頭按攝像元件的CCD靶面的大小有如下幾類: (1)1 in靶面尺寸為寬12.7mmX高9.6mm,對角線16mm(2)2/3in靶面尺寸為寬8.8mmX高6.

18、6mm,對角線11mm(3)1/2in靶面尺寸為寬6.4mmX高4.8mm,對角線8mm(4)1/3in靶面尺寸為寬4.8mmX高3.6mm,對角線6mm(5)1/4in靶面尺寸為寬3.2mmX高2.4mm,對角線4mm可見10個像素誤差對于百萬像素級得攝像頭,其在攝像圖像坐標(biāo)系上的誤差在0.01mm這個數(shù)量級。誤差可以接受。5實驗攝像頭的光學(xué)參數(shù)實驗拍照使用攝像機為富士S5500攝像機。實驗用焦距5.7mm;實驗用分辨率22721704;攝像頭面陣CCD光敏面光學(xué)格式為1/2.7inch,像素尺寸未知。6星載攝像頭的光學(xué)參數(shù)星載攝像頭的光學(xué)參數(shù):此攝像頭面陣CCD光敏面光學(xué)格式為1/3.8i

19、nch,像素尺寸為2.2微米。如上圖所示,像素。視場角:焦距:,極限視距:最大在此距離以上,測量對象將進入攝像機視場。即200cm的重力梯度桿將有130cm長的部分進入攝像視野出現(xiàn)在拍攝的圖像上。7位姿確定算法7.1、相似迭代算法相似迭代算法Error! Reference source not found.要求選取的特征點不共面,特征點數(shù)不得小于4。這是初期考慮采用的算法,后期圖像處理發(fā)現(xiàn)子星到目前為止不能提供非共面特征點。但若果以后能在子星上找到非共面得特征點,則此算法有一定的優(yōu)點。1、相似迭代算法的優(yōu)點在子星梯度桿位移超過半米以上時,相似迭代算法精度很高,穩(wěn)定性很好,計算處理時間也較快。

20、下圖為一組相似迭代算法的測試結(jié)果:結(jié)果顯示位移和姿態(tài)誤差均能穩(wěn)定在零左右,精度較高,穩(wěn)定性較好。盡初始段坐標(biāo)值相差不大時由較大誤差。將圖初始段放大如下:測試模型為下圖所示的非共面6點布局模型。測試6個點在目標(biāo)所處三維坐標(biāo)系中的坐標(biāo)設(shè)置為。測試位移向量,其中和設(shè)為常值5,的范圍為52000。圖像坐標(biāo)按給定的歐拉姿態(tài)角以及321歐拉旋轉(zhuǎn)順序下相應(yīng)的坐標(biāo)變換矩陣結(jié)合位移向量來產(chǎn)生。測試焦距。整個解算耗時10.438秒,共進行1996次解算,即平均每解算一組數(shù)據(jù)耗時5.2ms,計算速度不慢。2、相似迭代算法的不足上面的測試中,將位移值的和設(shè)置為目標(biāo)三維坐標(biāo)的最大值的0.5倍以下時,程序?qū)⒉荒茌敵鼋Y(jié)果。

21、可能原因是迭代結(jié)果發(fā)散以至于產(chǎn)生死循環(huán)。比三維坐標(biāo)值小時,也不能輸出結(jié)果。7.2、Tsai兩步法Tsai兩步法標(biāo)定算法可以處理特征點共面的目標(biāo)位姿確定問題,該方法標(biāo)定攝像頭內(nèi)部參數(shù)的同時也解算位移向量和坐標(biāo)變換矩陣。但此方法要求特征點要在7個或7個以上。本實驗?zāi)繕?biāo)物不能滿足此要求。Tsai兩步主要在視覺定位技術(shù)中用于標(biāo)定攝像機的內(nèi)部參數(shù),如攝像頭的畸變值、采樣頻率的變化等。由于圖像處理的精度限制,本任務(wù)將可以不對攝像頭進行標(biāo)定,即認(rèn)為攝像頭畸變,焦距為標(biāo)稱焦距等。8存在的問題及建議8.1、目標(biāo)信息的增強一方面重力梯度桿對圖像質(zhì)量的影響極大,但這不可避免,另一方面三個特征點不足以進行位姿解算。為

22、使得目標(biāo)信息更豐富,需對子星底板做一定的改變。首先要增加圓孔的數(shù)目,以解決個別孔被遮擋后目標(biāo)信息缺失的問題。目前只有三個圓作為目標(biāo)信息,這本身就不夠;一旦有一個圓被遮擋,那么兩個圓心更不能進行姿態(tài)確定。目前的圓信息示意圖新增加的個別孔上應(yīng)增設(shè)圓柱狀得突起,以產(chǎn)生非共面的特征點;由于重力梯度桿上子星的整周旋轉(zhuǎn)性,特征點在與圖像二維平面平行的目標(biāo)坐標(biāo)平面上的投影應(yīng)具有非軸對稱幾何關(guān)系,否則可能因為子星的旋轉(zhuǎn)而將實際姿態(tài)信息隱藏,解算出現(xiàn)不可預(yù)知的錯誤。增設(shè)的目標(biāo)信息投影示意圖其次要增加目標(biāo)物與背景物之間的對比度。目前的圖片雖然可以進行圓心的提取,但閾值設(shè)置需經(jīng)過多次實驗才能感性地獲取而且結(jié)果有一定

23、誤差。若給圓盤邊沿以及孔的邊沿引入發(fā)光物,如熒光粉,則可以使得圖像處理更嬌容易,精度也更高。但不知熒光粉到了外太空效果如何。8.2、關(guān)于實驗?zāi)壳皼]有條件也沒有必要進行較為精確的拍照處理實驗。首先是整星沒有制造完成之前,坐標(biāo)系的標(biāo)定很隨意。攝像機可以亂動,重力梯度桿的伸縮也不能自動控制。其次是2米長的重力梯度桿還沒有與樣星裝配起來,而且2米桿還有壞的地方。另外攝像背景很難選取。所以目前沒有條件也沒有必要進行坐標(biāo)系標(biāo)定下的精確實驗。目前可以將之分解為兩部分:一為圖像處理,二位位姿解算。圖像處理只需要能較為準(zhǔn)確地捕捉到目標(biāo)特征點即可,而位姿解算算法的精度用編程仿真來測試。那么等整型制造完成或衛(wèi)星上天

24、后,準(zhǔn)確捕捉到得特征點加可行的位姿解算算法,位姿確定就可以進行。8.3、坐標(biāo)系的標(biāo)定由于現(xiàn)在沒有衛(wèi)星實物,所以坐標(biāo)系的標(biāo)定用文字?jǐn)⑹?。主星有本體坐標(biāo)系。根據(jù)實物的幾何尺寸,可以有攝像頭鏡面的位置坐標(biāo),進而由攝像頭的焦距等攝像頭參數(shù)可以標(biāo)定攝像坐標(biāo)并知曉攝像頭相對于主星的位姿關(guān)系。子星坐標(biāo)系建在子星的底板上,此坐標(biāo)系相對于主星頂面(或主星本體坐標(biāo)系)的初始位姿關(guān)系由衛(wèi)星最終制造裝配關(guān)系決定。至此,坐標(biāo)系標(biāo)定完成。9參考文獻(xiàn)1、 劉剛等. MATLAB數(shù)字圖像處理M.北京:機械工業(yè)出版社,2010.2662672、 張勁鋒,孫承啟,蔡偉.基于單目視覺的航天器問相對位姿測量算法J.光學(xué)技術(shù),2010

25、,Vol.36,No.2:18719210附錄 matlab源程序10.1、數(shù)字圖像處理主程序clear ;clc;close all;%Step1 獲取圖像 裝入待處理彩色圖像并顯示原始圖像Scolor = imread(sat01.jpg);%imread函數(shù)讀取圖像文件figureimshow(Scolor),title(原始圖像);%將彩色圖像轉(zhuǎn)換為灰度圖并顯示Sgray = rgb2gray(Scolor);%rgb2gray轉(zhuǎn)換成灰度圖figure,imshow(Sgray);title(原始灰度圖像);Sgray=histeq(Sgray);%直方圖均衡化figure,imsho

26、w(Sgray);title(均衡化灰度圖像);%*%大圓的數(shù)字圖像處理%首次濾噪處理B=strel(diamond,1);J1=imopen(Sgray,B);J2=imclose(J1,B);%圖像分割th1=25;%獲得最佳閾值TH1=im2bw(J2,th1/255);TH1=TH1;figureimshow(TH1);title(閾值分割圖25);%濾噪處理B=strel(diamond,5);J1=imopen(TH1,B);J2=imclose(J1,B);figureimshow(J2);title(閾值分割圖濾噪結(jié)果,同時為聯(lián)通組提取準(zhǔn)備);%聯(lián)通組元素提取LL=strel(

27、square,3);y,x=getpts;x=uint16(x);y=uint16(y);Iold=zeros(size(J2);Iold(x,y)=1;while(1) Inew=imdilate(Iold,LL)&J2; if(Inew=Iold) break; end; Iold=Inew;end;figureimshow(Inew);title(聯(lián)通組元素提取圖像);%圓形檢測BW=bwperim(Inew,4);step_r = 1;step_angle = 0.1;minr = 308;maxr = 314;thresh = 0.7;hough_space,hough_circle

28、,para = hough_circle(BW,step_r,step_angle,minr,maxr,thresh);figureimshow(hough_circle),title(HOUGH變換檢測結(jié)果)%圓心提取cir=mean(para);ww,yy=size(para);for cc=1:10 for www=1:2 for yyy=1:yy if abs(para(www,yyy)-cir(1,www)(12-cc) para(www,yyy)=cir(1,www); else end end end cir=mean(para);end%圓心像素坐標(biāo),默認(rèn)以角點為像素坐標(biāo)的坐標(biāo)

29、原點x1=cir(1,2);y1=cir(1,1);%以圖像中心為坐標(biāo)原點的圖像坐標(biāo),圖片2272 X 1704像素y2=1704-y1;%將y反轉(zhuǎn)center_xy=zeros(3,2);center_xy(1,1)=x1-2272/2;centre_xy(1,2)=y2-1704/2;%*%左邊小圓的處理%區(qū)域生長分割figure,imshow(Sgray);title(均衡化灰度圖像);Sgray=double(Sgray);y1,x1=getpts;x1=round(x1);y1=round(y1);seed=x1,y1;th_mean=8;Yout=regiongrow(Sgray,

30、seed,th_mean);figure;imshow(Yout);title(區(qū)域生長分割獲取圖);%濾噪處理B=strel(diamond,2);J1=imopen(Yout,B);J2=imclose(J1,B);figureimshow(J2);title(閾值分割圖濾噪結(jié)果,同時為聯(lián)通組提取準(zhǔn)備);%聯(lián)通組元素提取LL=strel(square,3);y,x=getpts;x=uint16(x);y=uint16(y);Iold=zeros(size(J2);Iold(x,y)=1;while(1) Inew=imdilate(Iold,LL)&J2; if(Inew=Iold) b

31、reak; end; Iold=Inew;end;%figure%imshow(Inew);title(聯(lián)通組元素提取圖像);%圓形檢測BW=bwperim(Inew,4);step_r = 2;step_angle = 0.1;minr = 56;maxr = 64;thresh = 0.7;hough_space,hough_circle,para = hough_circle(BW,step_r,step_angle,minr,maxr,thresh);figureimshow(hough_circle),title(HOUGH變換檢測結(jié)果)%圓心提取cir=mean(para);ww,

32、yy=size(para);for cc=1:10 for www=1:2 for yyy=1:yy if abs(para(www,yyy)-cir(1,www)(12-cc) para(www,yyy)=cir(1,www); else end end end cir=mean(para);end%圓心像素坐標(biāo),默認(rèn)以角點為像素坐標(biāo)的坐標(biāo)原點x1=cir(1,2);y1=cir(1,1);%以圖像中心為坐標(biāo)原點的圖像坐標(biāo),圖片2272 X 1704像素y2=1704-y1;%將y反轉(zhuǎn)center_xy(2,1)=x1-2272/2;centre_xy(2,2)=y2-1704/2;%*%右

33、邊小圓的處理%區(qū)域生長分割figure,imshow(Sgray);title(均衡化灰度圖像);Sgray=double(Sgray);y1,x1=getpts;x1=round(x1);y1=round(y1);seed=x1,y1;th_mean=8;Yout=regiongrow(Sgray,seed,th_mean);figure;imshow(Yout);title(區(qū)域生長分割獲取圖);%濾噪處理B=strel(diamond,2);J1=imopen(Yout,B);J2=imclose(J1,B);figureimshow(J2);title(閾值分割圖濾噪結(jié)果,同時為聯(lián)通組

34、提取準(zhǔn)備);%聯(lián)通組元素提取LL=strel(square,3);y,x=getpts;x=uint16(x);y=uint16(y);Iold=zeros(size(J2);Iold(x,y)=1;while(1) Inew=imdilate(Iold,LL)&J2; if(Inew=Iold) break; end; Iold=Inew;end;%figure%imshow(Inew);title(聯(lián)通組元素提取圖像);%圓形檢測BW=bwperim(Inew,4);step_r = 2;step_angle = 0.1;minr = 56;maxr = 64;thresh = 0.7;h

35、ough_space,hough_circle,para = hough_circle(BW,step_r,step_angle,minr,maxr,thresh);figureimshow(hough_circle),title(HOUGH變換檢測結(jié)果)%圓心提取cir=mean(para);ww,yy=size(para);for cc=1:10 for www=1:2 for yyy=1:yy if abs(para(www,yyy)-cir(1,www)(12-cc) para(www,yyy)=cir(1,www); else end end end cir=mean(para);e

36、nd%圓心像素坐標(biāo),默認(rèn)以角點為像素坐標(biāo)的坐標(biāo)原點x1=cir(1,2);y1=cir(1,1);%以圖像中心為坐標(biāo)原點的圖像坐標(biāo),圖片2272 X 1704像素y2=1704-y1;%將y反轉(zhuǎn)center_xy(3,1)=x1-2272/2;centre_xy(3,2)=y2-1704/2;centre_xy10.2、hough變換子函數(shù)程序function hough_space,hough_circle,para = hough_circle(BW,step_r,step_angle,r_min,r_max,p) % % input% BW:二值圖像;% step_r:檢測的圓半徑步長%

37、 step_angle:角度步長,單位為弧度% r_min:最小圓半徑% r_max:最大圓半徑% p:以p*hough_space的最大值為閾值,p取0,1之間的數(shù)% % output% hough_space:參數(shù)空間,h(a,b,r)表示圓心在(a,b)半徑為r的圓上的點數(shù)% hough_circl:二值圖像,檢測到的圓% para:檢測到的圓的圓心、半徑 m,n = size(BW);size_r = round(r_max-r_min)/step_r)+1;size_angle = round(2*pi/step_angle); hough_space = zeros(m,n,size_r); rows,cols = find(BW);ecount = size(rows); % Hough變換% 將圖像空間(x,y)對應(yīng)到參數(shù)空間(a,b,r)% a = x-r*cos(angle)% b = y-r*sin(angle)for i=1:ecount for r=1:size_r for k=1:size_angle a = round(rows(i)-(r_min+(r-1)*step_r)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論