欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種基于高階拉普拉斯算子的快速網(wǎng)格補(bǔ)洞方法與流程

文檔序號(hào):11520742閱讀:1749來(lái)源:國(guó)知局
一種基于高階拉普拉斯算子的快速網(wǎng)格補(bǔ)洞方法與流程
本發(fā)明涉及3d圖形圖像處理,特別是涉及一種基于高階拉普拉斯算子的快速網(wǎng)格補(bǔ)洞方法。
背景技術(shù)
:3d掃描技術(shù)已廣泛應(yīng)用于各行各業(yè)。比如在3d數(shù)字醫(yī)療中,掃描技術(shù)已用于口腔牙齒外形建模、面部整形、足底矯正、假肢設(shè)計(jì)等等。但是在所有這些應(yīng)用中,掃描得到的原始點(diǎn)云數(shù)據(jù)都或多或少存在噪音以及數(shù)據(jù)缺失問(wèn)題,使得重建出來(lái)的3d網(wǎng)格模型一般會(huì)帶有孔洞。這些孔洞造成的數(shù)據(jù)不完整不僅直接影響到3d可視化質(zhì)量,而且還對(duì)后續(xù)的網(wǎng)格處理和應(yīng)用帶來(lái)極大不便甚至錯(cuò)誤。比如3d打印就要求數(shù)據(jù)的完整性與模型的封閉性,帶孔洞的模型是不能直接進(jìn)行3d打印的。因此三維模型的孔洞填充算法就顯得格外重要?,F(xiàn)有的網(wǎng)格補(bǔ)洞技術(shù)大致可以分為兩種:(1)直接連接孔洞的邊界點(diǎn)形成封閉的曲面,(2)先連接孔洞的邊界點(diǎn)再采用一些幾何約束方法來(lái)移動(dòng)新添加的點(diǎn)使得修復(fù)的孔洞部分看上去更光滑。很顯然第一種方法是不可取的,因?yàn)樾扪a(bǔ)的孔洞看上去不僅不光滑,而且還極可能存在網(wǎng)格自相交等non-manifold問(wèn)題(因而造成后續(xù)處理流程的困難)。這種方法目前還用于一些常用軟件中如meshlab和vtk,但只適用于很小的孔洞修復(fù)。當(dāng)孔洞稍大時(shí),通常采用第二種方法效果要好很多,但其計(jì)算效率很低。技術(shù)實(shí)現(xiàn)要素:有鑒于現(xiàn)有技術(shù)的上述缺陷,本發(fā)明所要解決的技術(shù)問(wèn)題是提供一種效率更高的網(wǎng)格補(bǔ)洞方法。為實(shí)現(xiàn)上述目的,本發(fā)明提供了一種基于高階拉普拉斯算子的快速網(wǎng)格補(bǔ)洞方法,包括以下步驟:步驟1、找到網(wǎng)格模型的洞邊界點(diǎn),添加新的點(diǎn)并生成三角形網(wǎng)格填充所述網(wǎng)格模型的洞口;步驟2、把新增的點(diǎn)放到內(nèi)部點(diǎn)集合n中,把洞口兩層邊界點(diǎn)放到外部點(diǎn)集合k中;給內(nèi)部點(diǎn)集合n的每一個(gè)點(diǎn)一個(gè)序號(hào)id,所述內(nèi)部點(diǎn)集合n各點(diǎn)的序號(hào)為id0、id1、……idn,給外部點(diǎn)集合k的每一個(gè)點(diǎn)一個(gè)序號(hào)id,所述內(nèi)部點(diǎn)集合n各點(diǎn)的序號(hào)為idn+1、idn+2、……idn+k;步驟3、遍歷所有內(nèi)部點(diǎn)集合n和外部點(diǎn)集合k,找到各點(diǎn)的一圈鄰居點(diǎn),把各點(diǎn)和其鄰居圈放到map集合里;步驟4、遍歷步驟3的map集合,構(gòu)建矩陣a:根據(jù)各點(diǎn)的鄰居圈算出權(quán)重wi;再遍歷該鄰居圈內(nèi)的各點(diǎn),算出權(quán)重wij;在矩陣(i,j)位置插入值-wi*wij,在矩陣(i,i)位置插入值步驟5、遍歷所有的外部點(diǎn)集合k,把其坐標(biāo)(x,y,z)分別放入集合bx、by和bz;步驟6、取出矩陣a中的內(nèi)部點(diǎn)矩陣n,取出矩陣a中的外部點(diǎn)矩陣k;根據(jù)nx+ky=0,解出x,x為內(nèi)部點(diǎn)平滑后的坐標(biāo);步驟7、將x更新到內(nèi)部點(diǎn)的坐標(biāo)。較佳的,所述權(quán)重wi和wij按如下方式計(jì)算得到:wij=cotαij+cotβij;正被考慮的網(wǎng)格頂點(diǎn)vi;vi的相鄰區(qū)域;面積為ai,αij和βij是正對(duì)邊vi-vj的兩個(gè)夾角。對(duì)洞口新增的點(diǎn)做平滑處理:對(duì)洞口新增的點(diǎn)做平滑處理的數(shù)學(xué)模型是拉普拉斯算子:進(jìn)一步的,對(duì)洞口新增的點(diǎn)做平滑處理:為了保證更好的光滑性,對(duì)洞口新增的點(diǎn)做平滑處理的數(shù)學(xué)模型是高階拉普拉斯算子:高階拉普拉斯算子是基于低一階的拉普拉斯算子按權(quán)利要求3放肆計(jì)算得到。本發(fā)明的有益效果是:本發(fā)明在保證cgal同樣補(bǔ)洞效果的前提下,提高cgal現(xiàn)有補(bǔ)洞算法至少10倍效率。附圖說(shuō)明圖1是本發(fā)明一具體實(shí)施方式的流程示意圖。圖2是對(duì)洞口填充的點(diǎn)做平滑處理的模型示意圖。圖3是稀疏矩陣構(gòu)建示意圖。具體實(shí)施方式下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步說(shuō)明:如圖1至圖3所示,一種基于高階拉普拉斯算子的快速網(wǎng)格補(bǔ)洞方法,包括以下步驟:步驟1、找到網(wǎng)格模型的洞邊界點(diǎn),添加新的點(diǎn)并生成三角形網(wǎng)格填充所述網(wǎng)格模型的洞口;步驟2、把新增的點(diǎn)放到內(nèi)部點(diǎn)集合n中,把洞口兩層邊界點(diǎn)放到外部點(diǎn)集合k中;給內(nèi)部點(diǎn)集合n的每一個(gè)點(diǎn)一個(gè)序號(hào)id,所述內(nèi)部點(diǎn)集合n各點(diǎn)的序號(hào)為id0、id1、……idn,給外部點(diǎn)集合k的每一個(gè)點(diǎn)一個(gè)序號(hào)id,所述內(nèi)部點(diǎn)集合n各點(diǎn)的序號(hào)為idn+1、idn+2、……idn+k;步驟3、遍歷所有內(nèi)部點(diǎn)集合n和外部點(diǎn)集合k,找到各點(diǎn)的一圈鄰居點(diǎn),把各點(diǎn)和其鄰居圈放到map集合里;步驟4、遍歷步驟3的map集合,構(gòu)建矩陣a:根據(jù)各點(diǎn)的鄰居圈算出權(quán)重wi;再遍歷該鄰居圈內(nèi)的各點(diǎn),算出權(quán)重wij;在矩陣(i,j)位置插入值-wi*wij,在矩陣(i,i)位置插入值步驟5、遍歷所有的外部點(diǎn)集合k,把其坐標(biāo)(x,y,z)分別放入集合bx、by和bz;步驟6、取出矩陣a中的內(nèi)部點(diǎn)矩陣n,取出矩陣a中的外部點(diǎn)矩陣k;根據(jù)nx+ky=0,解出x,x為內(nèi)部點(diǎn)平滑后的坐標(biāo);步驟7、將x更新到內(nèi)部點(diǎn)的坐標(biāo)。所述權(quán)重wi和wij按如下方式計(jì)算得到:ωij=cotαij+cotβij;vi是正被考慮的網(wǎng)格頂點(diǎn)(即需要計(jì)算其新的位置);f(.)是定義在每個(gè)頂點(diǎn)的函數(shù),但這里可以理解為每個(gè)頂點(diǎn)的x、y、z的坐標(biāo)值。vi的相鄰區(qū)域(灰色部分)面積為ai,αij和βij是正對(duì)邊vi-vj的兩個(gè)夾角。本實(shí)施例對(duì)洞口新增的點(diǎn)做平滑處理:對(duì)洞口新增的點(diǎn)做平滑處理的數(shù)學(xué)模型是拉普拉斯算子:其他實(shí)施例中,對(duì)洞口新增的點(diǎn)做平滑處理:對(duì)洞口新增的點(diǎn)做平滑處理的數(shù)學(xué)模型是高階拉普拉斯算子:在cgal中,高階拉普拉斯算子是通過(guò)遞歸(recursive)迭代來(lái)實(shí)現(xiàn)的,這是cgal低效率的主要原因。本發(fā)明采用一種全新的非迭代算法實(shí)現(xiàn)高階拉普拉斯算子的求解,能把求解速度提升到幾十倍。詳細(xì)方法如下:把新填充到洞口的點(diǎn)稱為“內(nèi)部點(diǎn)”表示為點(diǎn)集n,原來(lái)洞口邊界上的點(diǎn)(本發(fā)明以二階拉普拉斯算子為例,故采用兩層邊界點(diǎn))稱為“外部點(diǎn)”表示為點(diǎn)集k。根據(jù)二階拉普拉斯算子,可以構(gòu)成如圖3所示矩陣a:n為內(nèi)部點(diǎn)系數(shù),k為邊界點(diǎn)系數(shù)。而向量b的構(gòu)成是:需要求解的內(nèi)部點(diǎn)變形后的坐標(biāo)x,外部點(diǎn)坐標(biāo)y保持不變(保證原始網(wǎng)格的幾何形態(tài))。按拉普拉斯平滑的原理,我們有nx+ky=0;由此求解出x向量就是內(nèi)部點(diǎn)變形的結(jié)果。現(xiàn)有技術(shù)中,先連接孔洞的邊界點(diǎn)再采用一些幾何約束方法來(lái)移動(dòng)新添加的點(diǎn)一般是基于拉普拉斯算子來(lái)決定新添加點(diǎn)的位置信息,但其計(jì)算效率很低。如下面表1所示,如果要添加203個(gè)新點(diǎn)的話,整個(gè)孔洞修復(fù)時(shí)間在兩秒以上。隨著添加點(diǎn)數(shù)的增多,這個(gè)時(shí)間是一個(gè)不可忽略的代價(jià),尤其對(duì)交互操作的軟件而言。補(bǔ)洞的點(diǎn)數(shù)203個(gè)點(diǎn)174個(gè)點(diǎn)144個(gè)點(diǎn)77個(gè)點(diǎn)補(bǔ)洞的時(shí)間2007.65ms1853.19ms1575.35ms794.79ms表1.cgal(4.81版本)單個(gè)線程補(bǔ)洞效率測(cè)試在計(jì)算機(jī)intercoretmi5-4460tcpu1.90ghzx4,內(nèi)存8gb,ubuntu14.04lts64-bit操作系統(tǒng)上本發(fā)明的速度優(yōu)化結(jié)果如表1,基本都加速了一百倍左右。補(bǔ)洞的點(diǎn)數(shù)203個(gè)點(diǎn)174個(gè)點(diǎn)144個(gè)點(diǎn)77個(gè)點(diǎn)補(bǔ)洞的時(shí)間23.55ms18.83ms14.3ms7.47ms表1.本發(fā)明算法單個(gè)線程補(bǔ)洞效率測(cè)試在計(jì)算機(jī)intercoretmi5-4460tcpu1.90ghzx4,內(nèi)存8gb,ubuntu14.04lts64-bit操作系統(tǒng)上。以上詳細(xì)描述了本發(fā)明的較佳具體實(shí)施例。應(yīng)當(dāng)理解,本領(lǐng)域的普通技術(shù)人員無(wú)需創(chuàng)造性勞動(dòng)就可以根據(jù)本發(fā)明的構(gòu)思作出諸多修改和變化。因此,凡本
技術(shù)領(lǐng)域
中技術(shù)人員依本發(fā)明的構(gòu)思在現(xiàn)有技術(shù)的基礎(chǔ)上通過(guò)邏輯分析、推理或者有限的實(shí)驗(yàn)可以得到的技術(shù)方案,皆應(yīng)在由權(quán)利要求書(shū)所確定的保護(hù)范圍內(nèi)。當(dāng)前第1頁(yè)12
當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
惠州市| 长兴县| 连山| 南阳市| 镇远县| 西乌| 普陀区| 如东县| 博野县| 新和县| 手游| 高淳县| 常熟市| 金溪县| 潜江市| 黄平县| 潜山县| 临城县| 黔江区| 白玉县| 泰州市| 朝阳县| 西城区| 江永县| 乌兰浩特市| 合江县| 德清县| 遂平县| 泽库县| 泾阳县| 塔城市| 郑州市| 汤原县| 阿拉善右旗| 孟连| 桑植县| 西乌珠穆沁旗| 通江县| 青龙| 泾阳县| 镇雄县|