肖培
摘要:點(diǎn)云模型區(qū)域分割是其數(shù)字處理的基礎(chǔ)工作。在分析用戶交互式邊界頂點(diǎn)選取方法基礎(chǔ)上,提出一種基于自動(dòng)生成邊界曲線的分割算法。根據(jù)點(diǎn)法式方程求解邊界點(diǎn)的剖切平面,據(jù)此將點(diǎn)云模型分為兩部分。實(shí)驗(yàn)表明,與適當(dāng)?shù)挠脩艚缑媾浜?,算法可有效?shí)現(xiàn)點(diǎn)云模型的特征區(qū)域交互式分割操作,為點(diǎn)云模型參數(shù)化及模型編輯等提供支持。
關(guān)鍵詞:點(diǎn)云;交互式邊界;模型編輯;交互式模型分割
DOIDOI:10.11907/rjdk.172243
中圖分類號(hào):TP312文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):16727800(2017)010006103
0引言
點(diǎn)云模型具有表示三維細(xì)節(jié)能力強(qiáng)、存儲(chǔ)簡(jiǎn)單等特點(diǎn),成為CAD/CG領(lǐng)域常用的三維物體表示模型。如何有效對(duì)點(diǎn)云模型進(jìn)行邊界選取及區(qū)域分割,是點(diǎn)云模型數(shù)字幾何處理的基礎(chǔ)性工作[1]。
為了給用戶提供更加自由的模型編輯手段,使用戶能將更多的個(gè)性化建模意圖滲透到模型編輯與相關(guān)處理中,本文在交互式方法基礎(chǔ)上,選取相應(yīng)的邊界點(diǎn),依據(jù)這些點(diǎn)計(jì)算出一個(gè)剖切平面,將點(diǎn)云模型分成兩部分,實(shí)現(xiàn)了點(diǎn)云模型的交互式分割、局部參數(shù)化等操作[23]。
1分割算法
對(duì)點(diǎn)云模型進(jìn)行分割,要根據(jù)交互式邊界曲線的點(diǎn)計(jì)算其剖切平面。平面計(jì)算方法一般有點(diǎn)法式、截距式、平面一般方程等,而現(xiàn)有的條件是邊界上各點(diǎn)的坐標(biāo),通過(guò)計(jì)算邊界點(diǎn)的冪中心m,將邊界點(diǎn)中的每個(gè)點(diǎn)平移至m,然后乘以其轉(zhuǎn)置(pi-m)T,將每項(xiàng)乘積求和,最后除以邊界點(diǎn)個(gè)數(shù),從而得到點(diǎn)云邊界點(diǎn)的協(xié)方差矩陣A。通過(guò)雅可比方法求解對(duì)稱矩陣的全部特征值與相應(yīng)的特征向量。特征向量中,絕對(duì)值最小的特征值對(duì)應(yīng)的特征向量應(yīng)為此剖切平面的法向[4]。假定此剖切平面通過(guò)點(diǎn)m,如圖1所示,則可通過(guò)點(diǎn)法式得到此剖切平面方程。將點(diǎn)云模型中的非邊界點(diǎn)代入方程,依據(jù)此平面得出正負(fù)值,將點(diǎn)云模型分為兩個(gè)部分。
2模型分割結(jié)果
圖3為根據(jù)幾個(gè)模型選取邊界進(jìn)行計(jì)算并分割的結(jié)果。實(shí)驗(yàn)表明,此方法可在交互選取的點(diǎn)云邊界上很好地對(duì)點(diǎn)云模型進(jìn)行分割,為點(diǎn)云的局部區(qū)域參數(shù)化提供支持。
實(shí)驗(yàn)采用GLUT庫(kù)作為實(shí)驗(yàn)主程序的窗口系統(tǒng),由其建立模型顯示窗口與鼠標(biāo)及鍵盤操作之間的聯(lián)系,通過(guò)操作鍵盤和點(diǎn)擊鼠標(biāo)實(shí)現(xiàn)模型邊界點(diǎn)的選取或刪除。點(diǎn)云模型的顯示與旋轉(zhuǎn)等三維變換操作通過(guò)OpenGL圖形庫(kù)實(shí)現(xiàn)[7]。通過(guò)鼠標(biāo)選取點(diǎn)云模型中的頂點(diǎn)作為邊界頂點(diǎn),通過(guò)OpenGL提供的選擇、拾取等操作實(shí)現(xiàn)[8]。
圖3是本文算法在交互式生成模型邊界曲線的基礎(chǔ)上進(jìn)行點(diǎn)云模型分割的部分結(jié)果。其中,圖3(a)是對(duì)867個(gè)采樣點(diǎn)構(gòu)成的蘋果模型進(jìn)行剖分操作得到的結(jié)果,通過(guò)計(jì)算曲線的剖切平面將蘋果模型剖切為上下兩部分;圖3(b)是運(yùn)用本文算法生成的人頭模型截口曲線;圖3(c)是對(duì)簡(jiǎn)化后的馬點(diǎn)云模型從腰部進(jìn)行剖分的情況,相關(guān)局部模型被作者用于馬模型的球面參數(shù)化;圖3(d)是截取了頭部的老虎模型,可用于點(diǎn)云模型的局部編輯操作。
3結(jié)語(yǔ)
本文提出一種支持交互式操作的點(diǎn)云模型邊界曲線分割算法。根據(jù)交互式邊界曲線的點(diǎn)計(jì)算其剖切平面,將點(diǎn)云模型中的非邊界點(diǎn)代入平面方程,依據(jù)此平面得出的正負(fù)值將點(diǎn)云模型分為兩個(gè)部分,與OpenGL及窗口系統(tǒng)配合實(shí)現(xiàn)該算法,并成功應(yīng)用于點(diǎn)云模型的參數(shù)化、模型編輯等。
參考文獻(xiàn)參考文獻(xiàn):
[1]歐新良,匡小蘭,倪問(wèn)尹.三維散亂點(diǎn)云分割技術(shù)綜述[J].湖南工業(yè)大學(xué)學(xué)報(bào),2010(5):4549.
[2]廖中平,劉科,向雨,等.多閾值提取平面點(diǎn)云邊界點(diǎn)的方法[J].計(jì)算機(jī)應(yīng)用,2016(7):19331937.
[3]孫金虎,周來(lái)水,安魯陵.應(yīng)用最小生成樹實(shí)現(xiàn)點(diǎn)云分割[J].中國(guó)圖象圖形學(xué)報(bào),2012(7):858865.
[4]張強(qiáng),李朝奎,李俊曉,等.一種改進(jìn)的基于法矢方向調(diào)整的平面點(diǎn)云分割方法[J].地理與地理信息科學(xué),2015(1):4548.
[5]葛邵飛,謝曉堯,景鳳宣,等.點(diǎn)云數(shù)據(jù)模型特征點(diǎn)提取算法研究與實(shí)現(xiàn)[J].貴州師范大學(xué)學(xué)報(bào),2013(5):101106.
[6]徐士良,馬爾妮.常用算法程序集(C/C++描述)[M].第5版.北京:清華大學(xué)出版社,2013.
[7]龐明勇,盧章平.鼠標(biāo)跟蹤球技術(shù)的簡(jiǎn)單類實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2004,30(17):182183.
[8]劉慧杰,靳海亮.基于VC++的OpenGL三維圖形開(kāi)發(fā)設(shè)計(jì)[J].計(jì)算機(jī)與數(shù)字工程,2009(7):122124.
責(zé)任編輯(責(zé)任編輯:杜能鋼)endprint