基于面片夾角的去重疊的三角網(wǎng)格曲面恢復后處理方法
【專利摘要】本發(fā)明公開了一種面向三維散亂點云,基于三維Delaunay四面體剖分和三角網(wǎng)格曲面重構(gòu)方法及其理論基礎的去除重疊面片的后處理方法。該理論是基于三角網(wǎng)格重構(gòu)算法Crust算法理論的進一步優(yōu)化處理。本發(fā)明基于檢測邊關聯(lián)三角面片個數(shù)以及計算各個重疊面片間夾角,去除掉在由點云恢復的物體表面里重疊的三角面片。本發(fā)明著重改善以往三角網(wǎng)格模型在細節(jié)處三角形面片重疊問題,從而提高了恢復的模型質(zhì)量,使恢復的曲面更接近于模型本身,達到更高的工業(yè)要求。
【專利說明】基于面片夾角的去重疊的三角網(wǎng)格曲面恢復后處理方法
【技術領域】
[0001] 本發(fā)明涉及三維散亂點云三角網(wǎng)格曲面重構(gòu)技術,屬于計算機圖形學【技術領域】。
【背景技術】
[0002] 近幾年來,曲面重構(gòu)技術在計算可視化的,計算機圖形學,逆向工程,醫(yī)學成像,地 理信息系統(tǒng),考古文物保存,游戲影視,虛擬現(xiàn)實等很多領域有重要的應用。隨著計算機圖 形學的發(fā)展,許多領域都出現(xiàn)了對"實體數(shù)字化"技術的強烈需求,越來越多的企業(yè)、研究機 構(gòu)甚至個人迫切地需要得到實體的高精度數(shù)字化模型,而通過對三維散亂點云的三角網(wǎng)格 重建是曲面重建的一種重要方式。
[0003] 隨著激光測距掃描等三維數(shù)據(jù)采樣技術和硬件設備的日益完善,以往難以滿足取 樣密度的散亂數(shù)據(jù)點集的障礙現(xiàn)在不再是曲面重建的瓶頸。三維測量設備主要是三維光學 掃描儀采用非接觸的測量方法,能夠在短時間內(nèi)得到大量的數(shù)據(jù)點,利用點云數(shù)據(jù)即可以 重構(gòu)出任意曲面。一方面,大量的點云可以反映更精細復雜的曲面特征,但另一方面,對曲 面構(gòu)造的效率和效果提出了更高的要求。
[0004] 現(xiàn)階段許多研究者提出了多種散亂點云曲面恢復的方法,但快速恢復的曲面在數(shù) 字模型質(zhì)量不夠精確,精度高的數(shù)字模型在曲面恢復速度和效率上又不理想,如何快速而 且精確的把點云數(shù)據(jù)轉(zhuǎn)變化為實體模型是逆向工程中需要解決的重要問題。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明的目的在于:提出一個基于面片夾角的去重疊的三角網(wǎng)格曲面恢復后處 理算法,該方法基于三角網(wǎng)格重構(gòu)算法Crust算法理論,結(jié)合三維Delaunay四面體剖分和 Voronoi圖,著重改善以往三角網(wǎng)格重構(gòu)方法恢復的曲面的質(zhì)量,通過檢測三角網(wǎng)格面片的 重疊面片,計算重疊面片夾角,刪除網(wǎng)格曲面細節(jié)處的重疊面片,使生成的三角網(wǎng)格質(zhì)量良 好。
[0006] 本發(fā)明的步驟如下:
[0007] S1、加載點云數(shù)據(jù),為點的三維坐標值;
[0008] S2、對載入的點云數(shù)據(jù)進行三維Delaunay四面體剖分,所有形成的三角形都為 Delaunay三角形,然后取得四面體之間,四面體與三角形之間的連通性關系;
[0009] S3、計算并取得三角形的交叉因子,選取交叉因子小于-0. 2的三角形作為初始前 沿三角形,從初始前沿三角形按照一定規(guī)則不斷擴展網(wǎng)格曲面,直到輸出整個重構(gòu)三角網(wǎng) 格曲面;
[0010] S4、檢測曲面網(wǎng)格中三角面片中每條邊所關聯(lián)的三角面片個數(shù),大于等于三個面 片的邊定為重疊邊。
[0011] S5、計算重疊邊關聯(lián)的三角面片夾角余弦值,保留余弦值最小的兩個三角面片,把 其余面片置空,完成對重疊面片的刪除。
[0012] 其中,步驟S1中,輸入物體表面的三維散亂點云數(shù)據(jù),數(shù)據(jù)來源于幾個大的公共 數(shù)據(jù)庫,由三維掃描設備掃描實物取得,每個點都是三維坐標X,Y,Z的形式,數(shù)字代表點的 坐標數(shù)值,并且對于每個點進行了編號。
[0013] 步驟S2中,對輸入點云進行Delaunay四面體剖分,最外層的多面體形成物體表面 點云凸殼,每個三角形都是De1aunay三角形,物體表面的三角形就包含在這些De1aunay三 角形中。Delaunay四面體包含四個屬性:點、邊、三角形和四面體,取得之間對應的連通性 關系。
[0014] 步驟S3中,計算每個Delaunay三角形的交叉因子,根據(jù)算法理論和實踐經(jīng)驗,在 本文所實驗選點云模型下選取交叉因子〈_〇. 2的三角形(因為-0. 2可以滿足本文實驗下 的采樣密度,當采樣點密度稀疏時,可調(diào)整交叉值變?。?。這一步可以選出大量的三角形。 交叉因子計算公式:
[0015] (Cross_factor) =cos0
[0016] 滿足交叉因子要求的三角形被稱為已接受三角形,只關聯(lián)一個已接受三角形的邊 稱為前沿邊。建立一個空棧,每條前沿邊依次加進這個空棧,形成前沿邊棧。關聯(lián)前沿邊的 已接受三角形稱為前沿三角形,前沿邊的點稱為前沿點,不屬于已接受三角形的點稱為自 由點,前沿點和自由點的并集稱為候選點集。
[0017] 對前沿邊棧內(nèi)的最前前沿邊,定義一個以搜索點為球心的搜索球,搜索球內(nèi)的候 選點與前沿邊組成的Delaunay三角形都為候選三角形。搜索球的半徑跟局部采樣的密度 有關。本文算法選擇與前沿三角形在同一平面上并且與前沿邊構(gòu)成正三角形的點為搜索球 球心,前沿邊長度為半徑的搜索球。這一步形成的三角片是有重疊的。然后從候選三角形 里選取最近的點構(gòu)成唯一三角形,使之成為新的前沿三角形。檢查新的前沿三角形的各條 邊原來是否是前沿邊,如果原來是前沿邊,則跳出所述前沿邊棧變?yōu)榉乔把剡?;如果原來?是前沿邊,則變?yōu)榍把剡?,且將新的前沿邊入棧。不斷重復,直到前沿邊棧為空停止,形成?整的三角網(wǎng)格曲面。
[0018] 步驟S4中,對于之前步驟擴展的三角網(wǎng)面片,我們已經(jīng)取得了點、邊、面之間的連 通性關系,檢測三角面片中每條邊所關聯(lián)的三角面片個數(shù),一般沒有重疊的面片的公共邊 只關聯(lián)兩個三角面片,所以把大于等于三個面片的邊定為重疊邊便于后續(xù)處理。
[0019] 步驟S5中,計算重疊邊關聯(lián)的三角面片夾角余弦值,通常情況下面片夾角越大的 為曲面特征面片,而夾角過小的面片中會發(fā)生錯誤重疊,平面夾角為0°到180°,在這個 區(qū)間范圍內(nèi)夾角越大,余弦值越小,所以保留余弦值最小的三角面片,把其余面片置空,完 成重疊三角面片的刪除,輸出處理完的物體曲面。具體公式為:
[0020]count(j)〉2,MIN[cos(£ib),cos(be),cos(£ic) ] -cos(£ib),etmap(c) - 0
[0021] 本發(fā)明將現(xiàn)有三角網(wǎng)格曲面恢復技術進行了優(yōu)化,相比之前算法本發(fā)明可以對三 角網(wǎng)格曲面細節(jié)處進一步優(yōu)化,去掉重疊面片,更真實的接近于實體表面,減小三角網(wǎng)格曲 面重構(gòu)誤差,帶到了更高的工業(yè)要求。
【專利附圖】
【附圖說明】
[0022] 以下通過附圖及具體實施例對本發(fā)明進行詳細說明。
[0023] 圖1本發(fā)明流程圖;
[0024] 圖2輸入的頭部點云數(shù)據(jù)在三維空間的排列圖;
[0025] 圖3相鄰兩個Delaunay四面體的外接球球心與公共三角形的一個頂點組成了交 叉角;
[0026] 圖4選擇符合要求的三角形進行擴展,選擇與已當前前沿三角形的當前前沿邊組 成正三角形的點作為搜索點,三角形的邊長為搜索半徑,依次在前沿點中選取進行擴展;
[0027] 圖5物體表面三角面片發(fā)生了重疊,關聯(lián)三個以及三個以上三角形的邊定義為重 置邊;
[0028] 圖6分別計算重疊邊三角面片的夾角余弦值,保留夾角最大的三角面片,置空其 余三角面片;
[0029] 圖7本文算法處理前后頭部細節(jié)圖,眼部左上角顏色深的部分為有重疊面片,經(jīng) 處理后重疊面片被消除;
[0030] 圖8本文算法處理前后腳部細節(jié)圖,圖中顏色深部分為重疊三角面片;
[0031] 圖9本文算法處理前后手部細節(jié)圖,圖中顏色深的部分發(fā)生了重疊,后經(jīng)處理消 除了重疊面片。
【具體實施方式】
[0032] 下面結(jié)合附圖對本發(fā)明作進一步說明。本發(fā)明具體實施步驟:
[0033] S1、加載點云數(shù)據(jù);
[0034] S2、對載入的點云數(shù)據(jù)進行三維Delaunay四面體剖分,所有形成的三角形都為 Delaunay三角形,然后取得四面體之間,四面體與三角形之間的連通性關系;
[0035] S3、計算并取得三角形的交叉因子,選取交叉因子小于-0. 2的三角形作為初始前 沿三角形,從初始前沿三角形按照一定規(guī)則不斷擴展網(wǎng)格曲面,直到輸出整個重構(gòu)三角網(wǎng) 格曲面;
[0036] S4、檢測曲面網(wǎng)格中三角面片中每條邊所關聯(lián)的三角面片個數(shù),大于等于三個面 片的邊定為重疊邊。
[0037]S5、計算重疊邊關聯(lián)的三角面片夾角余弦值,保留余弦值最小的三角面片,把其余 面片置空,完成對重疊面片的刪除。
[0038] 實施例1
[0039] 本發(fā)明的實施例是在以本發(fā)明技術方案為前提下進行實施的,給出了詳細的實施 方式和具體的操作過程,但本發(fā)明的保護范圍不限于下述實施例。本發(fā)明用了大量的公共 共享數(shù)據(jù)庫里的實例點云數(shù)據(jù)來驗證算法的有效性,下面以人頭部點云數(shù)據(jù)為例說明。
[0040] 具體實施步驟為:
[0041] 步驟1 :從點云數(shù)據(jù)庫中選擇頭部點云數(shù)據(jù),初始點運數(shù)據(jù)為.txt格式,為了方便 MATLAB程序處理,我們把.txt轉(zhuǎn)化為.mat格式,部分點云的數(shù)據(jù)格式為表1所示,頭部點 云在三維空間內(nèi)的排列如附圖2所示。
[0042] 表1點云數(shù)據(jù)的儲存格式
【權利要求】
1. 基于面片夾角的去重疊的三角網(wǎng)格曲面恢復后處理方法,其特征在于:其包括以下 步驟: 51、 載入點云數(shù)據(jù),其點的三維坐標值; 52、 對載入的點云數(shù)據(jù)進行三維Delaunay四面體剖分,形成點、邊、三角形和四面體, 所有形成的三角形都為Delaunay三角形,Delaunay三角形包含物體表面的三角形;然后取 得四面體與四面體之間、四面體與三角形之間的連通性關系; 53、 計算三角形的交叉因子,其公式如下: (Cross_factor) = cos 9 9為所示Delaunay四面體外接球球心與公共三角形一個頂點構(gòu)成的角,選取交叉因 子小于-0.2的三角形作為初始前沿三角形,從初始前沿三角形擴展網(wǎng)格曲面至輸出整個 重構(gòu)三角網(wǎng)格曲面; 54、 檢測三角網(wǎng)格曲面中三角面片中每條邊所關聯(lián)的三角面片個數(shù),關聯(lián)三角面片個 數(shù)大于等于3的邊為重疊邊; 55、 計算重疊邊關聯(lián)的三角面片每兩個面片的夾角余弦值,保留余弦值最小的兩個三 角面片,把其余面片置空;完成重疊邊關聯(lián)的三角面片的刪除,輸出處理完的物體曲面。
2. 根據(jù)權利要求1所述的基于面片夾角的去重疊的三角網(wǎng)格曲面恢復后處理算法,其 特征在于:所述步驟S1中的載入點云數(shù)據(jù)為輸入物體表面的三維散亂點云數(shù)據(jù),所述點云 數(shù)據(jù)是通過三維掃描儀得到點的三維坐標值,其以文件的形式存儲,數(shù)字代表點云坐標數(shù) 值。
3. 根據(jù)權利要求1所述的基于面片夾角的去重疊的三角網(wǎng)格曲面恢復后處理算法,其 特征在于:所述步驟S3中三角網(wǎng)格曲面擴展過程如下: 首先計算交叉因子,其計算公式: (Cross_factor) = cos 9 選取交叉因子〈_〇. 2的三角形為已接受三角形,只關聯(lián)一個已接受三角形的邊稱為前 沿邊;建立一個空棧,每條前沿邊依次加進這個空棧,形成前沿邊棧;關聯(lián)前沿邊的已接受 三角形稱為前沿三角形,前沿邊的點稱為前沿點,不屬于已接受三角形的點稱為自由點,前 沿點和自由點的并集稱為候選點集;正在擴展的三角形屬于已接受的前沿三角形,關聯(lián)這 個三角形的正在擴展的邊為當前前沿邊,定義與該前沿三角形在同一平面上并且與前沿邊 構(gòu)成正三角形的點為搜索球球心,前沿邊長度為半徑的搜索球,搜索球內(nèi)的候選點與前沿 邊組成的Delaunay三角形都為候選三角形;然后從候選三角形里選取距離最近的點構(gòu)成 唯一三角形,使之成為新的前沿三角形;檢查新的前沿三角形的各條邊原來是否是前沿邊, 如果原來是前沿邊,則跳出所述前沿邊棧變?yōu)榉乔把剡叄蝗绻瓉聿皇乔把剡?,則變?yōu)榍把?邊,且將新的前沿邊入棧;不斷重復,直到前沿邊棧為空停止。
【文檔編號】G06T15/00GK104392477SQ201410764278
【公開日】2015年3月4日 申請日期:2014年12月11日 優(yōu)先權日:2014年12月11日
【發(fā)明者】張強, 魏小鵬, 姜超, 周東生 申請人:大連大學