本發(fā)明提供一種基于網(wǎng)格關(guān)聯(lián)的四叉樹索引點云排序方法,屬于點云數(shù)據(jù)處理技術(shù)領(lǐng)域。
背景技術(shù):
點云數(shù)據(jù)是光學(xué)測量、逆向工程、地理測繪等學(xué)科的重要組成部分,通常情況具有以下兩個特點:數(shù)據(jù)量大,數(shù)據(jù)點整體幾何無序。這些相對散亂的點云數(shù)據(jù)對逆向工程中的曲面重建和曲面表面特征分析帶來一定的障礙。目前針對散亂三維點數(shù)據(jù)排序的一系列研究主要集中在點云數(shù)據(jù)去噪、點云數(shù)據(jù)簡化、點云參數(shù)化表示、點云數(shù)據(jù)特征提取、截面線點云數(shù)據(jù)排序等方面。其中,文獻(xiàn)“基于三維模型的飛機數(shù)字化快速檢測技術(shù)研究(馮子明.基于三維模型的飛機數(shù)字化快速檢測技術(shù)研究[J].航空制造技術(shù),2011(21).)”介紹了基于三維模型的數(shù)字化檢測技術(shù),通過大量點云數(shù)據(jù)進(jìn)行逆向工程處理,與原始三維數(shù)模進(jìn)行對比分析,實現(xiàn)測量數(shù)據(jù)與理論數(shù)據(jù)的比對與質(zhì)量分析。在逆向建模的過程中,往往需要對數(shù)據(jù)點云進(jìn)行排序處理。文獻(xiàn)“三維重構(gòu)中的雜亂點云排序問題研究(蓋紹彥,達(dá)飛鵬,雷明濤,等.三維重構(gòu)中的雜亂點云排序問題研究[J].計算機與現(xiàn)代化,2003(10):33-35.)”則介紹了截面線散亂點云數(shù)據(jù)的排序方法。截面線點云排序是以截面輪廓形狀為依據(jù)進(jìn)行排序的,該方法對點云數(shù)據(jù)進(jìn)行了平行切割,提取特征曲線并僅針對部分關(guān)鍵特征處點云數(shù)據(jù)進(jìn)行排序。
在特征處的排序方法在逆向工程中應(yīng)用較多,但是在提取重要表面特征時,有時需要對整個曲面情況進(jìn)行分析。例如,在飛機表面某些特殊區(qū)域的表面特征對飛機的氣動性與飛行性能產(chǎn)生較大影響,這些表面特征包括平面度、表面波紋度、面輪廓度等?,F(xiàn)代非接觸式測量方式對上述表面特征測量時,通常采用點云數(shù)據(jù)描述被測曲面。為了分析相關(guān)曲面整體表面情況,只針對于關(guān)鍵特征處的點云排序方法就不再滿足需求。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的是彌補現(xiàn)有技術(shù)的空缺,提供一種基于網(wǎng)格關(guān)聯(lián)的四叉樹索引點云排序方法。
本發(fā)明一種基于網(wǎng)格關(guān)聯(lián)的四叉樹索引點云排序方法,它包括如下步驟:
步驟一、采用最小二乘法對點云數(shù)據(jù)進(jìn)行平面擬合,將三維數(shù)據(jù)點投影至擬合平面,并且將投影平面上點的三維坐標(biāo)向二維轉(zhuǎn)化;
步驟二、求取這些二維點的凸包,并根據(jù)這些凸包點擬合出四條直線;利用這四條直線包絡(luò)整個二維點云區(qū)域;根據(jù)檢索的精度要求,將這四條包絡(luò)邊進(jìn)行等比例劃分,得到相應(yīng)的分割直線和劃分網(wǎng)格;
步驟三、將二維數(shù)據(jù)點進(jìn)行排序初始化,利用四叉樹索引方法將數(shù)據(jù)點與網(wǎng)格進(jìn)行關(guān)聯(lián);根據(jù)關(guān)聯(lián)后的網(wǎng)格來對數(shù)據(jù)點進(jìn)行排序,得出二維點的排序結(jié)果;
步驟四、根據(jù)二維點的排序情況反推出原始三維點的排序結(jié)果。
其中,在步驟一中所述的“進(jìn)行平面擬合”是指采用最小二乘法進(jìn)行平面擬合,利用待排序的數(shù)據(jù)點擬合出投影平面,其擬合步驟如下:設(shè)擬合平面為Sfitting:Ax+By-Cz+D=0(C≠0),
即也可表示為Sfitting:
記則平面方程為:z=a0x+a1y+a2。式中,Sfitting表示擬合平面;A、B、C、D分別表示平面方程中的四個未知參數(shù);a0、a1、a2是經(jīng)轉(zhuǎn)換后的平面方程的三個未知參數(shù)。假設(shè)點云中n個數(shù)據(jù)點為Pi(xi,yi,zi),i=1,2,3...n,要利用這些點擬合計算上述平面方程,則使最小。若使Δ最小,應(yīng)滿足即
根據(jù)上述方程可得:解得a0,a1,a2,即得平面方程z=a0x+a1y+a2。上述式中,Δ表示由最小二乘法所求得的擬合目標(biāo)值;a0、a1、a2是平面方程的三個未知參數(shù);xi、yi、zi(i=1,2,3...n)分別表示點Pi(xi,yi,zi)(i=1,2,3...n)的X、Y、Z軸坐標(biāo)值。所述的“投影至擬合平面”是指將待排序的數(shù)據(jù)點投影至上述步驟中求得的擬合平面上,其投影過程為:設(shè)投影平面的方程為z=a0x+a1y+a2,則待投影點Pi(xi,yi,zi),i=1,2,3...n的投影變換方程為:
式中:分別表示投影變換后的X、Y、Z軸坐標(biāo)值;xi、yi、zi(i=1,2,3...n)分別表示初始的X、Y、Z軸坐標(biāo)值;a0,a1,a2為投影平面方程中所求得的三個系數(shù)。
經(jīng)過上述的坐標(biāo)變換即將待排序點投影至擬合平面。所述的“二維轉(zhuǎn)化”是指將投影至擬合平面上的排序點的位置坐標(biāo)由三維坐標(biāo)轉(zhuǎn)化為二維坐標(biāo)。由投影關(guān)系可知,處于同一平面上的多點再投影至另一平面時,若投影結(jié)果不為一條直線,點之間的相對位置關(guān)系不變。為簡化計算,將投影平面上的數(shù)據(jù)點二維化時可以二次投影至XOY坐標(biāo)軸平面,即公式(1)中的投影變換公式變?yōu)椋?/p>
得到二維變換后的數(shù)據(jù)點P`i(x`i,y`i),i=1,2,3...n;
式中:x`i、y`i(i=1,2,3...n)分別表示投影變換后的X、Y軸坐標(biāo)值;xi、yi(i=1,2,3...n)分別表示初始的X、Y軸坐標(biāo)值;a0,a1,a2為投影平面方程中所求得的三個系數(shù)。
其中,在步驟二中所述的“凸包”是計算幾何(圖形學(xué))中的概念,在一個實數(shù)向量空間V中,對于給定集合X,所有包含X的凸集的交集S被稱為X的凸包。本說明中的二維點凸包就是將最外層的點連接起來構(gòu)成的凸多邊型。其求取的步驟(圖1(a)-圖1(d)所示)為:
(1)確定點云數(shù)據(jù)某一坐標(biāo)的極大值與極小值點。如y坐標(biāo)最大最小的點Pmax、Pmin,則點Pmax、Pmin必定是凸包上的點;
(2)形成初始凸包三角形。過點Pmax、Pmin的直線為LPmaxPmin,在點云中找出距離直線LPmaxP min兩側(cè)最遠(yuǎn)的點P0、P1,構(gòu)成初始凸包三角形ΔP0PmaxPmin和ΔP1PmaxPmin。
(3)繼續(xù)生成凸包三角形。每個三角形新生成的邊為新的尋點邊,繼續(xù)尋找新生成邊的最外側(cè)點。
(4)將所有的凸包點找到,即凸包線外側(cè)不再有數(shù)據(jù)點,凸包點存入點集Gconvex。
在步驟二中所述的“根據(jù)這些凸包點擬合出四條直線”,是指利用上述的凸包點集中的數(shù)據(jù)點根據(jù)最小二乘法擬合出四條直線,其具體步驟(如圖2(a)-圖2(c)所示)為:根據(jù)求取凸包步驟中確定的某一坐標(biāo)的極大值點與極小值點(即Pmax、Pmin)和距離直線LPmaxPmin兩側(cè)最遠(yuǎn)點(即P0、P1)繼續(xù)將凸包集合Gconvex劃分為四個子集。假設(shè)點P0的x軸坐標(biāo)小于點P1的x軸坐標(biāo),則可將凸包集合劃分為如下四個子集,G1{(x,y)|xP0<x<xPmax,yP0<y<yPmax}、G2{(x,y)|xPmax<x<xP1,yP1<y<yPmax}、G3{(x,y)|xPmin<x<xP1,yPmin<y<yP1}、G4{(x,y)|xP0<x<xPmin,yPmin<y<yP0}。
式中,G1、G2、G3、G4分別表示四個凸包子集;
xP0、yP0、xP1、yP1、xPmax、yPmax、xPmin、yPmin分別表示點P0、P1、Pmax、Pmin的X、Y軸坐標(biāo)值。以G1為例,若Pi(xi,yi)∈G1(i=1,2,...,N),設(shè)擬合目標(biāo)直線為y=a+bx,由于采用最小二乘法擬合直線,則應(yīng)使的值最小。分別對上式中a、b求偏導(dǎo)得:解上述方程組得a和b的最佳估計值:
式中:a、b分別表示擬合直線中的兩個未知數(shù);分別表示投影變換后數(shù)據(jù)點的X、Y軸坐標(biāo)值;N為數(shù)據(jù)點的總數(shù)目。
在步驟二中所述的“利用這四條直線包絡(luò)整個二維點云區(qū)域”是指將上述求得的四條擬合直線進(jìn)行平移,使之能夠?qū)⒄麄€排序點云包絡(luò),其步驟為:在求得擬合直線y=a+bx(圖2(c)中虛線)后,找出集合G1中離直線y=a+bx最遠(yuǎn)的點Pfar,將直線y=a+bx平移至點Pfar處,得到二維點云的包絡(luò)線y`=a+bx`,即圖2(c)中實線。所述的“四條包絡(luò)邊進(jìn)行等比例劃分”是指分別將四條包絡(luò)邊按照需要的精度要求進(jìn)行等比劃分,然后將相對的兩條直線上的等分點連接,得到分割直線并形成網(wǎng)格。
其中,在步驟三中所述的“二維數(shù)據(jù)點進(jìn)行排序初始化”是指將每個數(shù)據(jù)點信息中添加其包絡(luò)邊信息。在最初始狀態(tài)下,所有數(shù)據(jù)點的包絡(luò)邊均為步驟二中生成的最外側(cè)包絡(luò)邊,添加數(shù)據(jù)點包絡(luò)邊信息為最外側(cè)包絡(luò)邊,即數(shù)據(jù)點的初始化。所述的“數(shù)據(jù)點與網(wǎng)格進(jìn)行關(guān)聯(lián)”是指將數(shù)據(jù)點包絡(luò)邊信息進(jìn)行更新,使數(shù)據(jù)點最終的包絡(luò)邊為網(wǎng)格邊。假設(shè)初始包絡(luò)邊為u0、v0、ui、vi,則網(wǎng)格關(guān)聯(lián)的步驟如下:
(1)在索引開始時,所有點均處于上述四條擬合直線的包絡(luò)中(圖3(a)-圖3(d)中虛線為包絡(luò)邊),即所有點的初始包絡(luò)邊均為四條擬合直線,記為u0、v0、ui、vi,分別表示u向和v向的包絡(luò)直線。
(2)對包絡(luò)邊更新,分別尋找u向、v向包絡(luò)邊中間的網(wǎng)格直線umiddle、vmiddle。根據(jù)進(jìn)行索引的數(shù)據(jù)點P`在umiddle、vmiddle所處的位置,替換u向、v向包絡(luò)邊,將數(shù)據(jù)點包絡(luò)邊范圍縮小。
(3)直至u向、v向包絡(luò)邊均為相鄰的兩條直線,即檢索完成。被檢索數(shù)據(jù)點處于被包絡(luò)邊劃分的網(wǎng)格中,即將該數(shù)據(jù)點信息與該網(wǎng)格進(jìn)行關(guān)聯(lián)。
(4)關(guān)聯(lián)后的網(wǎng)格根據(jù)排序的需求對網(wǎng)格內(nèi)的數(shù)據(jù)點進(jìn)行排序,然后對網(wǎng)格進(jìn)行排序,完成最終排序。
其中,在步驟四中所述的“根據(jù)二維點的排序情況反推出原始三維點的排序結(jié)果”,該“反推”是指根據(jù)排序后的二維數(shù)據(jù)點順序?qū)⒃既S點進(jìn)行排序;由于二維點排序后點名稱信息沒有改變,根據(jù)這些已經(jīng)排序好數(shù)據(jù)點名稱順序?qū)θS原始數(shù)據(jù)進(jìn)行排序,得到的結(jié)果即三維排序結(jié)果。
通過以上步驟,三維數(shù)據(jù)點經(jīng)二維化后與網(wǎng)格關(guān)聯(lián),根據(jù)關(guān)聯(lián)后的網(wǎng)格及數(shù)據(jù)點進(jìn)行排序,最后通過點名稱反推至三維原始數(shù)據(jù)點達(dá)到對三維數(shù)據(jù)點進(jìn)行幾何排序的效果,解決了點云數(shù)據(jù)中數(shù)據(jù)點整體幾何無序的實際問題,為后續(xù)進(jìn)行數(shù)據(jù)分析提供便利。
本發(fā)明具有的有益效果:
1)對數(shù)據(jù)點云進(jìn)行整體排序,滿足了表面分析中對整體數(shù)據(jù)點按序排列的需求;
2)采用凸包求解包絡(luò)邊,除了能夠?qū)⑺袛?shù)據(jù)點包絡(luò),在一定程度上能反映點云外形,便于后續(xù)網(wǎng)格劃分;
3)使用網(wǎng)格與四叉樹關(guān)聯(lián)的索引方法,既避免了四叉樹產(chǎn)生冗余結(jié)構(gòu),又提高了單純網(wǎng)格的索引速度。
附圖說明
圖1(a)-圖1(d)為依據(jù)本發(fā)明實施方式的凸包求取示意圖,其中,
圖1(a)點云數(shù)據(jù)的極值點。
圖1(b)初始凸包三角形。
圖1(c)尋找凸包點。
圖1(d)凸包求取完成。
圖2(a)-圖2(c)為依據(jù)本發(fā)明實施方式的包絡(luò)邊求取示意圖,其中,
圖2(a)初始凸包三角形四個角點。
圖2(b)凸包子集G1示意圖。
圖2(c)包絡(luò)邊生成。
圖3(a)-圖3(d)為依據(jù)本發(fā)明實施方式的四叉樹網(wǎng)格關(guān)聯(lián)索引方法示意圖,其中,
圖3(a)初始狀態(tài)。
圖3(b)包絡(luò)邊更新。
圖3(c)包絡(luò)邊更新。
圖3(d)網(wǎng)格關(guān)聯(lián)完成。
圖4為實例點云數(shù)據(jù)。
圖5為實例點云包絡(luò)邊。
圖6為實例點云網(wǎng)格20等分情況。
圖7(a)-圖7(d)為不同精度等分情況下的排序效果圖(20、50、100、150等分),其中,
圖7(a)20等分下的排序效果。
圖7(b)50等分下的排序效果。
圖7(c)100等分下的排序效果。
圖7(d)150等分下的排序效果。
圖8本發(fā)明所述方法流程圖。
圖中序號、符號、代號說明如下:
圖1(a)-圖1(d)中,Pmax為數(shù)據(jù)點中Y值最大的點,Pmin為數(shù)據(jù)點中Y值最小的點。Ymax表示為Y值最大,Ymin表示為Y值最小。P0、P1為距離點PmaxPmin連線最遠(yuǎn)的兩個點。P2、P3為新生成的凸包三角形的角點。
圖2(a)-圖2(c)中,Pmax、Pmin、P0、P1與圖1(a)-圖1(d)中含義相同,Pmax、Pmin表示Y值的兩個極值點,P0、P1為距離點PmaxPmin連線最遠(yuǎn)的兩個點。
圖3(a)-圖3(d)中,u0、u1、u2、u3、u4、u5為u向的六條分割線,v0、v1、v2、v3、v4為v向的五條分割線。(一)(二)(三)(四)分別表示一、二、三、四象限。Pi表示待關(guān)聯(lián)的點。
具體實施方式
本發(fā)明總結(jié)出一種利用網(wǎng)格關(guān)聯(lián)的四叉樹索引方法對三維點云排序的方法。這種方法通過最小二乘法擬合投影平面,經(jīng)投影將三維點云數(shù)據(jù)二維化處理。利用點云凸包求出二維點云包絡(luò)邊,并對包絡(luò)區(qū)域網(wǎng)格劃分。最后采用網(wǎng)格關(guān)聯(lián)的四叉樹索引方法完成數(shù)據(jù)點排序。這種方法不僅在最大程度上保留排序準(zhǔn)確度,而且利用四叉樹索引方法能夠?qū)?shù)據(jù)點快速排序,滿足了表面分析中對整體數(shù)據(jù)點按序排列的需求。
本發(fā)明一種基于網(wǎng)格關(guān)聯(lián)的四叉樹索引點云排序方法,如圖8所示,它包括如下步驟:
1)采用最小二乘法對點云數(shù)據(jù)進(jìn)行平面擬合,將三維數(shù)據(jù)點投影至擬合平面,并且將投影平面上點的三維坐標(biāo)向二維轉(zhuǎn)化。
2)求取這些二維點的凸包,并根據(jù)這些凸包點擬合出四條直線。利用這四條直線包絡(luò)整個二維點云區(qū)域。根據(jù)檢索的精度要求,將這四條包絡(luò)邊進(jìn)行等比例劃分,得到相應(yīng)的分割直線和劃分網(wǎng)格。
3)將二維數(shù)據(jù)點進(jìn)行排序初始化,利用四叉樹索引方法將數(shù)據(jù)點與網(wǎng)格進(jìn)行關(guān)聯(lián)。根據(jù)關(guān)聯(lián)后的網(wǎng)格來對數(shù)據(jù)點進(jìn)行排序,得出二維點的排序結(jié)果。
4)根據(jù)二維點的排序情況反推出原始三維點的排序結(jié)果。
其中,在步驟一中所述的“進(jìn)行平面擬合”是指采用最小二乘法進(jìn)行平面擬合,利用待排序的數(shù)據(jù)點擬合出投影平面,其擬合步驟如下:設(shè)擬合平面,即也可表示為Sfitting:
記則平面方程為:z=a0x+a1y+a2。式中,Sfitting表示擬合平面;A、B、C、D分別表示平面方程中的四個未知參數(shù);a0、a1、a2是經(jīng)轉(zhuǎn)換后的平面方程的三個未知參數(shù)。假設(shè)點云中n個數(shù)據(jù)點為Pi(xi,yi,zi),i=1,2,3...n,要利用這些點擬合計算上述平面方程,則使最小。若使Δ最小,應(yīng)滿足即根據(jù)上述方程可得:解得a0,a1,a2,即得平面方程z=a0x+a1y+a2。上述式中,Δ表示由最小二乘法所求得的擬合目標(biāo)值;a0、a1、a2是平面方程的三個未知參數(shù);xi、yi、zi(i=1,2,3...n)分別表示點Pi(xi,yi,zi)(i=1,2,3...n)的X、Y、Z軸坐標(biāo)值。所述的“投影至擬合平面”是指將待排序的數(shù)據(jù)點投影至上述步驟中求得的擬合平面上,其投影過程為:設(shè)投影平面的方程為z=a0x+a1y+a2,則待投影點Pi(xi,yi,zi),i=1,2,3...n的投影變換方程為:
式中:x`i、y`i、z`i(i=1,2,3...n)分別表示投影變換后的X、Y、Z軸坐標(biāo)值;xi、yi、zi(i=1,2,3...n)分別表示初始的X、Y、Z軸坐標(biāo)值;a0,a1,a2為投影平面方程中所求得的三個系數(shù)。
經(jīng)過上述的坐標(biāo)變換即將待排序點投影至擬合平面。所述的“二維轉(zhuǎn)化”是指將投影至擬合平面上的排序點的位置坐標(biāo)由三維坐標(biāo)轉(zhuǎn)化為二維坐標(biāo)。由投影關(guān)系可知,處于同一平面上的多點再投影至另一平面時,若投影結(jié)果不為一條直線,點之間的相對位置關(guān)系不變。為簡化計算,將投影平面上的數(shù)據(jù)點二維化時可以二次投影至XOY坐標(biāo)軸平面,即公式(1)中的投影變換公式變?yōu)椋?/p>
得到二維變換后的數(shù)據(jù)點P`i(x`i,y`i),i=1,2,3...n。
式中:x`i、y`i(i=1,2,3...n)分別表示投影變換后的X、Y軸坐標(biāo)值;xi、yi(i=1,2,3...n)分別表示初始的X、Y軸坐標(biāo)值;a0,a1,a2為投影平面方程中所求得的三個系數(shù)。
其中,在步驟二中所述的“凸包”是計算幾何(圖形學(xué))中的概念,在一個實數(shù)向量空間V中,對于給定集合X,所有包含X的凸集的交集S被稱為X的凸包。本說明中的二維點凸包就是將最外層的點連接起來構(gòu)成的凸多邊型。其求取的步驟(圖1(a)-圖1(d)所示)為:
(1)確定點云數(shù)據(jù)某一坐標(biāo)的極大值與極小值點。如y坐標(biāo)最大最小的點Pmax、Pmin,則點Pmax、Pmin必定是凸包上的點;
(2)形成初始凸包三角形。過點Pmax、Pmin的直線為LPmaxPmin,在點云中找出距離直線LPmaxPmin兩側(cè)最遠(yuǎn)的點P0、P1,構(gòu)成初始凸包三角形ΔP0PmaxPmin和ΔP1PmaxPmin。
(3)繼續(xù)生成凸包三角形。每個三角形新生成的邊為新的尋點邊,繼續(xù)尋找新生成邊的最外側(cè)點。
(4)將所有的凸包點找到,即凸包線外側(cè)不再有數(shù)據(jù)點,凸包點存入點集Gconvex。
所述的“根據(jù)凸包點擬合出四條直線”是指利用上述的凸包點集中的數(shù)據(jù)點根據(jù)最小二乘法擬合出四條直線,其具體步驟(如圖2(a)-圖2(c)所示)為:根據(jù)求取凸包步驟中確定的某一坐標(biāo)的極大值點與極小值點(即Pmax、Pmin)和距離直線LPmaxPmin兩側(cè)最遠(yuǎn)點(即P0、P1)繼續(xù)將凸包集合Gconvex劃分為四個子集。假設(shè)點P0的x軸坐標(biāo)小于點P1的x軸坐標(biāo),則可將凸包集合劃分為如下四個子集,G1{(x,y)|xP0<x<xPmax,yP0<y<yPmax}、G2{(x,y)|xPmax<x<xP1,yP1<y<yPmax}、G3{(x,y)|xPmin<x<xP1,yPmin<y<yP1}、G4{(x,y)|xP0<x<xPmin,yPmin<y<yP0}。
式中,G1、G2、G3、G4分別表示四個凸包子集;
xP0、yP0、xP1、yP1、xPmax、yPmax、xPmin、yPmin分別表示點P0、P1、Pmax、Pmin的X、Y軸坐標(biāo)值。以G1為例,若Pi(xi,yi)∈G1(i=1,2,...,N),設(shè)擬合目標(biāo)直線為y=a+bx,由于采用最小二乘法擬合直線,則應(yīng)使的值最小。分別對上式中a、b求偏導(dǎo)得:解上述方程組得a和b的最佳估計值:
式中:a、b分別表示擬合直線中的兩個未知數(shù);xi、yi(i=1,2,3...n)分別表示投影變換后數(shù)據(jù)點的X、Y軸坐標(biāo)值;N為數(shù)據(jù)點的總數(shù)目。
所述的“利用這四條直線包絡(luò)整個二維點云區(qū)域”是指將上述求得的四條擬合直線進(jìn)行平移,使之能夠?qū)⒄麄€排序點云包絡(luò),其步驟為:在求得擬合直線y=a+bx(圖2(c)中虛線)后,找出集合G1中離直線y=a+bx最遠(yuǎn)的點Pfar,將直線y=a+bx平移至點Pfar處,得到二維點云的包絡(luò)線y`=a+bx`,即圖2(c)中實線。所述的“四條包絡(luò)邊進(jìn)行等比例劃分”是指分別將四條包絡(luò)邊按照需要的精度要求進(jìn)行等比劃分,然后將相對的兩條直線上的等分點連接,得到分割直線并形成網(wǎng)格。
其中,在步驟三中所述的“二維數(shù)據(jù)點進(jìn)行排序初始化”是指將每個數(shù)據(jù)點信息中添加其包絡(luò)邊信息。在最初始狀態(tài)下,所有數(shù)據(jù)點的包絡(luò)邊均為步驟二中生成的最外側(cè)包絡(luò)邊,添加數(shù)據(jù)點包絡(luò)邊信息為最外側(cè)包絡(luò)邊,即數(shù)據(jù)點的初始化。所述的“數(shù)據(jù)點與網(wǎng)格進(jìn)行關(guān)聯(lián)”是指將數(shù)據(jù)點包絡(luò)邊信息進(jìn)行更新,使數(shù)據(jù)點最終的包絡(luò)邊為網(wǎng)格邊。假設(shè)初始包絡(luò)邊為u0、v0、ui、vi,則網(wǎng)格關(guān)聯(lián)的步驟如下:
(1)在索引開始時,所有點均處于上述四條擬合直線的包絡(luò)中(圖3(a)-圖3(d)中虛線為包絡(luò)邊),即所有點的初始包絡(luò)邊均為四條擬合直線,記為u0、v0、ui、vi,分別表示u向和v向的包絡(luò)直線。
(2)對包絡(luò)邊更新,分別尋找u向、v向包絡(luò)邊中間的網(wǎng)格直線umiddle、vmiddle。根據(jù)進(jìn)行索引的數(shù)據(jù)點P`在umiddle、vmiddle所處的位置,替換u向、v向包絡(luò)邊,將數(shù)據(jù)點包絡(luò)邊范圍縮小。
(3)直至u向、v向包絡(luò)邊均為相鄰的兩條直線,即檢索完成。被檢索數(shù)據(jù)點處于被包絡(luò)邊劃分的網(wǎng)格中,即將該數(shù)據(jù)點信息與該網(wǎng)格進(jìn)行關(guān)聯(lián)。
(4)關(guān)聯(lián)后的網(wǎng)格根據(jù)排序的需求對網(wǎng)格內(nèi)的數(shù)據(jù)點進(jìn)行排序,然后對網(wǎng)格進(jìn)行排序,完成最終排序。
其中,在步驟四中所述的“反推”是指根據(jù)排序后的二維數(shù)據(jù)點順序?qū)⒃既S點進(jìn)行排序。由于二維點排序后點名稱信息沒有改變,根據(jù)這些已經(jīng)排序好數(shù)據(jù)點名稱順序?qū)θS原始數(shù)據(jù)進(jìn)行排序,得到的結(jié)果即三維排序結(jié)果。
實施例
1)對點云數(shù)據(jù)分析,可以看出圖3(a)-圖3(d)中點云數(shù)據(jù)相對平整,沒有較大彎折情況,不用對點云數(shù)據(jù)進(jìn)行分割;
2)數(shù)據(jù)點此時包含信息有點名稱、XYZ軸坐標(biāo)信息。對點云數(shù)據(jù)點采用最小二乘法擬合出投影平面,將數(shù)據(jù)點投影至投影平面。然后將數(shù)據(jù)點三維坐標(biāo)轉(zhuǎn)化為二維,此時數(shù)據(jù)點信息為點名稱、XY軸坐標(biāo)信息;
3)求取二維點凸包,并根據(jù)這些凸包點擬合出四條直線。然后將這四條直線平移至相對應(yīng)的最外側(cè)凸包點處,利用這四條平移后的直線包絡(luò)整個二維點云區(qū)域,如圖4。分別對這四條包絡(luò)邊進(jìn)行20等分劃分,得到相應(yīng)的分割直線和劃分網(wǎng)格,如圖5所示。
4)將二維數(shù)據(jù)點進(jìn)行排序初始化,利用四叉樹索引方法將數(shù)據(jù)點與網(wǎng)格進(jìn)行關(guān)聯(lián)。根據(jù)關(guān)聯(lián)后的網(wǎng)格來對數(shù)據(jù)點進(jìn)行排序(排序方向為圖5中橫向方向),得出二維點的排序結(jié)果。圖6是20等分排序效果圖,圖中出于同一排的數(shù)據(jù)點按照次序連接起來。圖7(a)-圖7(d)分別是50、100、150等分排序效果圖。
5)根據(jù)二維點的排序情況反推出原始三維點的排序結(jié)果。
根據(jù)排序效果可以看出,隨著網(wǎng)格劃分越來越精細(xì),數(shù)據(jù)點連線彎折情況越來越小。在100等分時,點連線已經(jīng)沒有較大彎折,可滿足排序需求。