




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、空間封閉點(diǎn)云的八象限三角剖分算法第l4卷第3期2009年6月哈爾濱理工大學(xué)journalofharbinuniversityofscienceandtechnologyvo1.14no.3jun.2009空間封閉點(diǎn)云的八象限三角剖分算法關(guān)明山,周波,韓娜,王洋,陳新河(黑龍江科技學(xué)院計(jì)算機(jī)與信息工程學(xué)院,黑龍江哈爾濱150027)摘要:提出了一種針對空間封閉點(diǎn)云的三角剖分算法.該算法首先根據(jù)空間封閉點(diǎn)云的分布特征,將其劃分到三維坐標(biāo)的八個象限中,使每部分點(diǎn)云的包角均小于180.;然后適當(dāng)旋轉(zhuǎn)各部分點(diǎn)云,使其對應(yīng)投影平面面積最大化,再運(yùn)用平面三角剖分方法對其進(jìn)行三角剖分,從而得到各部分點(diǎn)云的剖分
2、結(jié)果;最后將已處理的各部分用三角面片對其邊界進(jìn)行縫合,進(jìn)而形成空間封閉點(diǎn)云的立體三角化.實(shí)驗(yàn)結(jié)果表明,該方法剖分速度快,形成的三角網(wǎng)格質(zhì)量高,能夠較好地再現(xiàn)原三維物體的表面特征.關(guān)鍵詞:封閉點(diǎn)云;散亂點(diǎn)集;平面三角剖分;立體三角剖分中圖分類號:tp391文獻(xiàn)標(biāo)志碼:a文章編號:10072683(2009)03002005eightquadrantstriangulationalgorithmaboutspaceclosedpoint-cloudguanmingshan,zhoubo,hanna,wang,chenxinhe(departmentofcomputerandinformatione
3、ngineering,heilongjianginstituteofscienceandtechnology,harbin150027,china)abstract:thispaperputsforwardatriangulationalgorithmusedforspaceclosedpoint-cloud.atfirstthisal-gorithmaccordingdistributingcharactersofspace3dunorganizedpointsets,dividsspaceclosedpointcloudintoeightquadrantsandpointcloudembr
4、acedcentralangleofeachpartislessthan180degrees.thenthedividedpointcloudsarerevolvedproperlyinordertomaximizeprojectionarea,andtriangulatedbyplanetriangulationalgorithmgettingtheresultoftriangulation.intheendthetriangulatedparts'boundaryaresewnupusingtrianglermingthefinaltridimensionaltriangulari
5、zationofspaceclosedpointcloud.theresultprovesthatthisalgorithmprocessestriangulationrapidly,formshighqualitytrianglegridandreproducesinitial3dobject'sexternalcharacteristic.keywords:closedpointcloud;unorganizedpointset;planetriangulation;tridimensionaltriangularizationl引言空間散亂點(diǎn)的三角剖分是計(jì)算機(jī)幾何領(lǐng)域中的重要課題
6、之一,它廣泛應(yīng)用于計(jì)算機(jī)輔助設(shè)計(jì)(cad),醫(yī)學(xué)成像,逆向工程及計(jì)算機(jī)視覺等領(lǐng)域,也是當(dāng)前計(jì)算機(jī)在圖形圖像方向研究的一個熱點(diǎn)和收稿日期:20080912基金項(xiàng)目:黑龍江省教育廳科學(xué)研究項(xiàng)目(11511354)作者簡介:關(guān)明山(1974),男,講師;周波(1963),男,教授.難點(diǎn).對于空間散亂點(diǎn)的三角剖分,國內(nèi)外相關(guān)專家,學(xué)者經(jīng)過多年研究,積累了大量成功的經(jīng)驗(yàn),其中絕大多數(shù)是基于delaunay三角化的剖分算法.文14為國外關(guān)于三角剖分比較有代表性的算法,國內(nèi)對空間曲面重構(gòu)的研究也取得了很大進(jìn)展5.總的看來,空問散亂點(diǎn)的三角剖分方法可劃分為直接剖分法和平面投影法兩大類.直接剖分法基本思想是第3
7、期關(guān)明山,等:空間封閉點(diǎn)云的八象限三角剖分算法21直接由三維點(diǎn)構(gòu)造三角面片,最終連接成空間曲面;平面投影法基本思想是將空間三維點(diǎn)云投影到某平面上,然后對投影點(diǎn)集做平面三角剖分.上述關(guān)于空間散亂點(diǎn)的三角剖分方法很多,優(yōu)化準(zhǔn)則也有數(shù)種,但無論是直接剖分法還是平面投影法,都只針對空間曲面片的點(diǎn)云做三角剖分,對于空問自封閉散亂點(diǎn)云的三角剖分尚在探索之中,而醫(yī)學(xué)成像,逆向工程等實(shí)際問題恰恰需要對三維物體進(jìn)行整個表面的重建.為此,本文提出一種基于分治思想的八象限空間立體三角剖分算法,有效解決了空間閉合曲面的三角剖分問題.2基本概念本文所涉及到的一些基本概念如下:1)平面曲線包角:平面曲線擬合圓上對應(yīng)該曲線
8、的那段圓弧所對應(yīng)的圓心角即為平面曲線包角.當(dāng)平面曲線是閉合的時候,該平面曲線的包角為360.2)點(diǎn)云的包角:對于攝像機(jī)或者ccd獲取的一片點(diǎn)云數(shù)據(jù),通過點(diǎn)云擬合球體的球心及點(diǎn)云幾何中心的平面與點(diǎn)云交線所對應(yīng)的包角中最大的角即為點(diǎn)云的包角.一般攝像機(jī),ccd一次獲取的一片點(diǎn)云包角都小于180.3)點(diǎn)云朝向:對于攝像機(jī)或者ccd獲取的一片點(diǎn)云數(shù)據(jù),其外邊緣線(只有一條且封閉)上的所有點(diǎn)擬合成一個平面的法向方向就為點(diǎn)云的朝向.4)圓準(zhǔn)則:嚴(yán)格凸的四邊形中的3個點(diǎn)確定一個圓,如果第4個頂點(diǎn)落在圓內(nèi),則將第四個頂點(diǎn)與其相對的頂點(diǎn)相連,否則將另兩個相對頂點(diǎn)相連,從而得到兩個優(yōu)化的三角形.如圖1所示.日3算
9、法實(shí)現(xiàn)圖1圓準(zhǔn)則示意圖3.1基本數(shù)據(jù)結(jié)構(gòu)1)點(diǎn)云數(shù)組(ca).ca用來臨時存儲點(diǎn)云數(shù)據(jù),每個元素能夠存儲一個空間點(diǎn)的三維信息.2)投影表(pn).pn代表pnxrangeyrange二維數(shù)組,每個元素為一鏈表指針,該鏈表用來臨時存儲一個網(wǎng)格內(nèi)投影進(jìn)來的所有點(diǎn)信息.xrange,yrange表示平面投影沿,y方向的網(wǎng)格個數(shù).3)待連接點(diǎn)鏈表(tlp).tlp用來臨時存儲平面網(wǎng)格中待連接點(diǎn)的三維信息及一個bool類型的域,初始化為false,表示此網(wǎng)格中無待連接點(diǎn).4)三角形鏈表(tl).tl用來存儲三角剖分的結(jié)果,每個節(jié)點(diǎn)包含一個剖分三角形的三個頂點(diǎn)信息以及該三角形的法矢量信息.5)起止位置表(
10、be).be代表bexrange2二維數(shù)組,用來存儲投影網(wǎng)格中每一行待連接點(diǎn)的起止位置,初始化為一1.t6)邊界循環(huán)鏈表(bl).bl用來存儲每片點(diǎn)云邊界點(diǎn)(按逆時針順序加人)的信息.7)內(nèi)邊界表(tib)和外邊界表(tob).用來臨時存儲縫合曲面的內(nèi),外邊界點(diǎn)的鏈表.3.2算法的實(shí)現(xiàn)過程1)讀人點(diǎn)云并檢測點(diǎn)云空間大小:讀入點(diǎn)云數(shù)據(jù)并保存到ca中.循環(huán)查看ca,計(jì)算點(diǎn)云包圍盒的length,width,height值.據(jù)此再結(jié)合程序的要求,確定在,y,z方向上所要劃分網(wǎng)格的數(shù)目,就可以算出每個投影平面上網(wǎng)格的長和寬,即將投影面上的網(wǎng)格劃分好,等待空間點(diǎn)的投影.2)分割點(diǎn)云:首先依據(jù)下式,即.=
11、p.x/n=0.y=p.y/ni=0.z=p.z/ni=o求出整個點(diǎn)云集的重心.p(,y,).其中p是點(diǎn)云中的點(diǎn),凡為點(diǎn)云中點(diǎn)的個數(shù).如圖2所示,過重心p(,y,z),沿,y,三個坐標(biāo)軸方向做三個相互垂直的平面y,l,一z和z,這三個互相垂直的平面將整個點(diǎn)云分割在8個區(qū)域中,將這8個區(qū)域中的點(diǎn)云數(shù)據(jù)分別存人ca1一ca8八個數(shù)組中,這八個數(shù)組元素的數(shù)據(jù)結(jié)構(gòu)和ca完全一樣.圖2點(diǎn)云分割圖22哈爾濱理工大學(xué)第l4卷3)旋轉(zhuǎn)投影及平面剖分:點(diǎn)云經(jīng)過分割,形成八個朝向各異,包角都小于180.的部分點(diǎn)云,可以用平面網(wǎng)格法對每部分進(jìn)行三角化.為優(yōu)化程序,也防止同一部分點(diǎn)云不同位置的點(diǎn)在投影時發(fā)生重疊,在投
12、影前對每塊部分點(diǎn)云都進(jìn)行適當(dāng)?shù)男D(zhuǎn),使其點(diǎn)云朝向正對某個平面,以保證各塊部分點(diǎn)云三角化的曲面片法向矢量的一致性,以及投影面積最大化.對于旋轉(zhuǎn)后的部分點(diǎn)云中的每一點(diǎn),利用其旋轉(zhuǎn)坐標(biāo)的值和平面上網(wǎng)格的長,寬,即可計(jì)算出該點(diǎn)投影的網(wǎng)格位置,進(jìn)而將點(diǎn)加入該網(wǎng)格.將這八個象限的部分點(diǎn)云投影分別記錄在pn1至pn8中.由于這時投影進(jìn)同一個單元網(wǎng)格中的點(diǎn)可能不止一個,為了能夠連接出最優(yōu)的三角面片,取網(wǎng)格最中間的點(diǎn)做為平面網(wǎng)格剖分的待連接點(diǎn).將選取的八塊部分點(diǎn)云的待連接點(diǎn)分別存進(jìn)數(shù)組tlp1一tlp8中.此時,空間曲面的三角剖分問題就轉(zhuǎn)化為平面三角剖分問題.最后對記錄待連接點(diǎn)的數(shù)組進(jìn)行遍歷,分別找到每個待連接
13、點(diǎn)的下鄰接點(diǎn)進(jìn)行三角形的連接,并用圓的準(zhǔn)則進(jìn)行優(yōu)化,計(jì)算出三角形的單位法向量,再將三角形的三個頂點(diǎn)和單位法向量記錄進(jìn)tl中.關(guān)于平面三角剖分的具體實(shí)現(xiàn)過程見文.4)尋找部分點(diǎn)云邊界:如圖3所示,點(diǎn)云已經(jīng)投影進(jìn)了平面網(wǎng)格中.首先遍歷tlp,記錄下各行中第一個和最后一個待連接點(diǎn)的位置,將這些位置信息存儲到數(shù)組be中.找到各行待連接點(diǎn)的起止位置后,就開始沿逆時針方向加入部分點(diǎn)云的邊界點(diǎn),八塊部分點(diǎn)云的邊界分別加入到bl1bl8八個邊界點(diǎn)數(shù)組中.下面以第一象限點(diǎn)云邊界搜索過程為例表述其具體步驟.87一6一4氣,321o123456,了8母1011l213140圖3部分點(diǎn)云邊界的尋找首先掃描be1數(shù)組,
14、找到第一行有非負(fù)值的行號,記做top,找到最后一行有非負(fù)值的行號記做bottom.加入零行待連接點(diǎn):取出位置從be1top0到be!top1中的待連接點(diǎn),并按從左到右順序依次加入邊界數(shù)組bl1中;加入右側(cè)邊界點(diǎn):加入右側(cè)邊界時是依次從第top行加-n第bottom行減一分別加入的,如圖3右側(cè)的箭頭所示,具體加入過程偽代碼如下:fbr(i=top+1;i<bottom;i+)t1=be1i1一be1i一11;t2=be1i1一be1i+11;if(t11andt21)/情況1如圖中的行七,則將be1i1位置的待連接點(diǎn)加人bl1中;elseif(t1>1)/情況2如圖中
15、的行一,行二則將當(dāng)前行從be1i一11+1到be1i1的待連接點(diǎn)從左到右順序加入bl1中;elseif(t2>1)/情況3如圖中的行三則將當(dāng)前行從be1i+11+1到be1i1的待連接點(diǎn)逆序加入bl1中;else出錯處理;lj加入最后行待連接點(diǎn):從be1bottom0到be1bottom1位置讀取最后行的待連接點(diǎn),然后逆序加入到邊界數(shù)組bl1中;加入左邊界點(diǎn):加左邊界與加右邊界相似,只不過是從bottom一1行到top+1行依次加入的,而且加入是從各行的起待連接點(diǎn)一側(cè)加入,如圖3左側(cè)的箭頭所示,具體加人偽代碼如下:for(i=bottom一1;i>top;i一一)t
16、1:be1i0一be1i+10;t2=be1i0一be1i一10;if(tl一1andt2一1)/情況1如圖中的行七,則將be1i0位置的待連接點(diǎn)加入bl1中;elseif(t1<一1)/情況2如圖中的行四,則將當(dāng)前行從be1i兒0到be1i+10一1的待連接點(diǎn)逆序加人bl1中;elseif(t2<一1)/情況3如圖中的行二,則將當(dāng)前行從be1i0到be1i一10一1的待連接點(diǎn)順序加入bl1中;else出錯處理;找邊界中的轉(zhuǎn)折點(diǎn):由圖4可見,每塊點(diǎn)云的邊界需要和三塊部分點(diǎn)云的邊界進(jìn)行縫合,而一塊點(diǎn)云的邊界只有一條,所以這條邊界應(yīng)分為三部分,分別對應(yīng)與它相鄰的三塊點(diǎn)云
17、的邊界.如圖4中的點(diǎn)1,點(diǎn)2和點(diǎn)3就為點(diǎn)云邊界中的轉(zhuǎn)折點(diǎn),這3個點(diǎn)將一個閉合的邊界分為三段邊界,分別與其第3期關(guān)明山,等:空間封閉點(diǎn)云的八象限三角剖分算法23相鄰的三塊點(diǎn)云邊界進(jìn)行縫合三角化.只要求取邊界中離兩個坐標(biāo)平面距離之和最小的點(diǎn)就為邊界中的轉(zhuǎn)折點(diǎn).例如只要在邊界中尋找到離平面y和平面yz距離之和最小的點(diǎn),即min(z+xz)就可以找到轉(zhuǎn)折點(diǎn)1.同樣,找到點(diǎn)2和點(diǎn)3的位置并分別將點(diǎn)1,點(diǎn)2,點(diǎn)3在邊界中的位置記錄到bl的頭節(jié)點(diǎn)中.圖4尋找邊界中的轉(zhuǎn)折點(diǎn)5)邊界縫合:在邊界縫合時,首先找到要縫合的內(nèi),外邊界,如圖5所示.對于點(diǎn)云1的邊界即為要縫合的內(nèi)邊界,因?yàn)樵诩尤氩糠贮c(diǎn)云邊界點(diǎn)時就是按照
18、逆時針加人,所以部分點(diǎn)云1的邊界已經(jīng)有序.對于縫合的外邊界就需要從部分點(diǎn)云2,3和4的邊界中截取相應(yīng)部分并連接起來而形成.由于在前邊已經(jīng)將各塊部分點(diǎn)云邊界的轉(zhuǎn)折點(diǎn)找到并存儲起來,故只要找到相應(yīng)的轉(zhuǎn)折點(diǎn)分別截取再連接就可以了.本例依次在點(diǎn)云2,4,3的邊界中取出相應(yīng)邊界段上的點(diǎn),然后將這些部分邊界段進(jìn)行連接.由圖5可以看到,這樣加進(jìn)來的外邊界是按順時針方向排列的,為了和內(nèi)邊界進(jìn)行正確的縫合連接,就必須將外邊界的點(diǎn)序進(jìn)行反序,使內(nèi),外邊界點(diǎn)序一致.最后將找到的內(nèi),外邊界分別存儲到兩個以點(diǎn)對象為元素的動態(tài)數(shù)組tib和tob中,準(zhǔn)備進(jìn)行邊界縫合.,'_.1''蠹縫合邊界過程如圖
19、6所示,偽代碼如下:讀取tib起始點(diǎn)作為nowptl;nextptr圖6縫合內(nèi),外邊界示意圖讀取tob中與nowptl距離最近點(diǎn)作為nowptr;讀取內(nèi)邊界數(shù)組起始點(diǎn)的鄰下邊界點(diǎn)nextptl;讀取外邊界數(shù)組起始點(diǎn)的鄰下邊界點(diǎn)nextptr;while(runl<numlandrunr<numr)/runl,runr分別為左右讀數(shù)組元素的計(jì)數(shù)器,numl,numr為左右邊界數(shù)組中元素個數(shù)$/計(jì)算圖6中的1,2;if(/1>l2)/此處實(shí)際是依據(jù)圓準(zhǔn)則進(jìn)行的優(yōu)化處理將以nextptl,nowptl,nowptr為頂點(diǎn)的三角形及其法向量存入三角形鏈表tl中
20、;nowptlc=nextptl;從內(nèi)邊界數(shù)組讀取下一點(diǎn)做為nextptl;runl+:else將以nextptr,nowptl,nowptr為頂點(diǎn)的三角形及其法向量存入三角形鏈表tl中;nowptrnextptr;從外邊界數(shù)組讀取下一點(diǎn)做為nextptr;runr+;/endwhileif(runli>numl)將以nextptr,nowptl,nowptr為頂點(diǎn)的三角形及其法向量存人三角形鏈表,i'l中;if(runrnumr)將以nextptl,nowptl,nowptr為頂點(diǎn)的三角形及其法向量存人三角形鏈表tl中;4實(shí)驗(yàn)結(jié)果及分析本程序利用一個完整的鼠標(biāo)空間點(diǎn)云進(jìn)
21、行三角化檢驗(yàn),點(diǎn)云原來包含128826個點(diǎn),包含該點(diǎn)云的n>左邊界點(diǎn)哈爾濱理工大學(xué)第l4卷最小盒子的長,寬,高分別為126.513,66.4591和40.7198,該點(diǎn)云重心p(,y,z)的坐標(biāo)為(一6.23912,一273.537,一223.420),y方向上的投影網(wǎng)格個數(shù)都為8o個,網(wǎng)格的長寬分別為1.5814125和0.83073875,分割后的八塊部分點(diǎn)云經(jīng)過投影選點(diǎn)后總共剩下17583個點(diǎn),第一到第八象限的部分點(diǎn)云其邊界上的點(diǎn)數(shù)分別為125,131,128,126,117,119,119和120,最后剖分的三角面片數(shù)總共為20378.圖7為整個鼠標(biāo)空間點(diǎn)云三角化的最終結(jié)
22、果.(a)點(diǎn)視圖(b)三角連接視圖(c)實(shí)體渲染視圖圖7整個鼠標(biāo)空間點(diǎn)云三角化的結(jié)果以上實(shí)驗(yàn)結(jié)果同直接剖分法比較,大大減少了參與三角剖分的點(diǎn)的數(shù)量(參與直接剖分的點(diǎn)數(shù)為128826個;實(shí)際參與三角剖分點(diǎn)數(shù)為17583個),提高了程序執(zhí)行的速度;同普通的平面投影法比較,平面網(wǎng)格投影法對投影點(diǎn)進(jìn)行了有效篩選,使剖分的三角形質(zhì)量更高.5結(jié)語1)本算法采用分治思想,將空間散亂點(diǎn)集劃分成八部分,再分別對各部分點(diǎn)集進(jìn)行旋轉(zhuǎn)投影及平面網(wǎng)格三角剖分,最后找到各部分點(diǎn)云的邊界進(jìn)行三角縫合,從而使整個空間點(diǎn)云得到三角化,有效解決了空間閉合點(diǎn)云的三角剖分問題.2)平面網(wǎng)格投影的三角剖分方法可實(shí)現(xiàn)對空間曲面上點(diǎn)云的有效篩選,降低了無效的三角剖分計(jì)算,優(yōu)化了生成的三角面片,從而大大提高了程序執(zhí)行的效率及三角剖分質(zhì)量.實(shí)驗(yàn)結(jié)果表明,八象限空間立體三角剖分算法是一個有效率的,成功的三角剖分算法.參考文獻(xiàn):1amentan,bernm,kamvysselism.anewvoronoibasedsurfacereconstructionalgorithmc/proceedingsoftheacmsiggraphconferenceoncomputergraphics,orlando,fl,newyork,usa,1998:415421.2atrenem,spagnuoo
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 煤炭制品企業(yè)市場競爭力提升策略與考核試卷
- 游樂設(shè)施施工法律法規(guī)知識考核試卷
- 電氣靜電及雷電安全防護(hù)技術(shù)考核試卷
- 稀土金屬冶煉工藝考核試卷
- 玻璃防眩光涂層開發(fā)考核試卷
- 礦山電氣系統(tǒng)設(shè)計(jì)與優(yōu)化考核試卷
- 畜牧機(jī)械質(zhì)量管理與可靠性考核試卷
- 海底古海洋學(xué)研究中心考核試卷
- 海上旅游目的地營銷策略考核試卷
- 遼寧省葫蘆島市高中名校2024-2025學(xué)年高三第10次統(tǒng)練數(shù)學(xué)試題含解析
- 人教版(2025新版)七年級下冊數(shù)學(xué)第七章 相交線與平行線 單元測試卷(含答案)
- 12J12無障礙設(shè)施圖集
- 【八年級下冊地理中圖北京版】期中真題必刷卷B-【期中真題必刷卷】(北京專用)(解析版)
- 《鐵路技術(shù)管理規(guī)程》(普速鐵路部分)
- 白細(xì)胞疾病及其檢驗(yàn)(血液學(xué)檢驗(yàn)課件)
- 案例3 哪吒-全球首個“??找惑w”跨域航行器平臺
- T-CTSS 3-2024 茶藝職業(yè)技能競賽技術(shù)規(guī)程
- 車隊(duì)運(yùn)營中的司機(jī)管理策略研究
- 新生兒臍部出血的護(hù)理
- 實(shí)驗(yàn)室的智能化設(shè)計(jì)與建設(shè)
- 《中國海洋大學(xué)》課件
評論
0/150
提交評論