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