點(diǎn)云網(wǎng)格簡化系統(tǒng)及方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種點(diǎn)云網(wǎng)格處理系統(tǒng)及方法,特別是關(guān)于一種點(diǎn)云網(wǎng)格簡化系統(tǒng)及 方法。
【背景技術(shù)】
[0002] 在點(diǎn)云網(wǎng)格處理中,網(wǎng)格處理的速度是和網(wǎng)格數(shù)量成正比的。為了提高運(yùn)算的速 度,在保證證精度的前提下應(yīng)該盡量降低網(wǎng)格的數(shù)量,因此網(wǎng)格簡化是網(wǎng)格處理中的重要 步驟。在網(wǎng)格的實(shí)際應(yīng)用中,用戶可能只對網(wǎng)格的部分區(qū)域感興趣,并希望該區(qū)域有較高的 精度,而其它區(qū)域只要達(dá)到基本要求即可。網(wǎng)格簡化既要減少網(wǎng)格數(shù)量,又要保證模型形狀 特征。網(wǎng)格簡化的方法有很多種,但對于網(wǎng)格數(shù)目大,物體形狀復(fù)雜等情況,沒有很好的解 決方法。然而,現(xiàn)有的網(wǎng)格簡化算法大多只考慮了模型的幾何、拓?fù)湫畔?,而沒有考慮模型 的封閉性問題。因此,網(wǎng)格簡化效果不佳,簡化不能很好的逼近原始網(wǎng)格。
【發(fā)明內(nèi)容】
[0003] 鑒于以上內(nèi)容,有必要提供一種點(diǎn)云網(wǎng)格簡化系統(tǒng)及方法,能夠利根據(jù)頂點(diǎn)法向 約束原則刪除不滿足約束的網(wǎng)格頂點(diǎn),并采用局部重新三角網(wǎng)格化來達(dá)到網(wǎng)格簡化的效 果。
[0004] 所述法人點(diǎn)云網(wǎng)格簡化系統(tǒng)運(yùn)行于計(jì)算機(jī)裝置中,該系統(tǒng)包括:網(wǎng)格輸入模塊,用 于接收點(diǎn)云三角網(wǎng)格化后的原始網(wǎng)格模型,以及接收根據(jù)網(wǎng)格簡化精度要求輸入的網(wǎng)格簡 化比例;法向面計(jì)算模塊,用于計(jì)算原始網(wǎng)格模型中每一個網(wǎng)格頂點(diǎn)的法向面,以及計(jì)算每 一個網(wǎng)格頂點(diǎn)到其法向面的距離;刪除點(diǎn)判定模塊,用于根據(jù)輸入的簡化比例和每一個網(wǎng) 格頂點(diǎn)到法向面的距離判定出對原始網(wǎng)格模型影響較小的點(diǎn),以及從原始網(wǎng)格模型中將對 原始網(wǎng)格模型影響較小的點(diǎn)和包含該點(diǎn)的網(wǎng)格刪除;局部網(wǎng)格化模塊,用于當(dāng)從原始網(wǎng)格 模型中刪除部份點(diǎn)之后,將原始網(wǎng)格模型中局部沒有網(wǎng)格的點(diǎn)重新進(jìn)行局部三角網(wǎng)格化; 網(wǎng)格處理模塊,用于將局部網(wǎng)格化的網(wǎng)格與原來沒有刪除的網(wǎng)格和點(diǎn)結(jié)合組成一個新網(wǎng)格 模型,以及將該新網(wǎng)格模型進(jìn)行平滑處理得到與原始網(wǎng)格具有幾何特征相似的簡化網(wǎng)格模 型。
[0005] 所述的點(diǎn)云網(wǎng)格簡化方法應(yīng)用于計(jì)算機(jī)裝置中,該方法包括步驟:接收點(diǎn)云三角 網(wǎng)格化后的原始網(wǎng)格模型,并接收根據(jù)網(wǎng)格簡化精度要求輸入的網(wǎng)格簡化比例;計(jì)算原始 網(wǎng)格模型中每一個網(wǎng)格頂點(diǎn)的法向面,并計(jì)算每一個網(wǎng)格頂點(diǎn)到其法向面的距離;根據(jù)輸 入的簡化比例和每一個網(wǎng)格頂點(diǎn)到法向面的距離判定出對原始網(wǎng)格模型影響較小的點(diǎn);從 原始網(wǎng)格模型中將對原始網(wǎng)格模型影響較小的點(diǎn)和包含該點(diǎn)的網(wǎng)格刪除;當(dāng)從原始網(wǎng)格模 型中刪除部份點(diǎn)之后,將原始網(wǎng)格模型中局部沒有網(wǎng)格的點(diǎn)重新進(jìn)行局部三角網(wǎng)格化;將 局部網(wǎng)格化的網(wǎng)格與原來沒有刪除的網(wǎng)格和點(diǎn)結(jié)合組成一個新網(wǎng)格模型,并將新網(wǎng)格模型 進(jìn)行平滑處理得到與原始網(wǎng)格具有幾何特征相似的簡化網(wǎng)格模型。
[0006] 相較于現(xiàn)有技術(shù),本發(fā)明所述的點(diǎn)云網(wǎng)格簡化系統(tǒng)及方法,能夠利用網(wǎng)格頂點(diǎn)法 向面的距離約束來刪除對點(diǎn)云網(wǎng)格影響比較小的點(diǎn)和網(wǎng)格,并采用局部重新三角網(wǎng)格化來 達(dá)到網(wǎng)格簡化的效果。具有點(diǎn)云計(jì)算速度快且占用內(nèi)存少的優(yōu)點(diǎn),可對任何形狀、任何類型 的點(diǎn)云網(wǎng)格進(jìn)行補(bǔ)孔以及對復(fù)雜物件的點(diǎn)云進(jìn)行不失真簡化處理。
【附圖說明】
[0007] 圖1是本發(fā)明點(diǎn)云網(wǎng)格簡化系統(tǒng)較佳實(shí)施例的運(yùn)行環(huán)境示意圖。
[0008] 圖2是本發(fā)明點(diǎn)云網(wǎng)格簡化方法較佳實(shí)施例的流程圖。
[0009] 圖3采是用頂點(diǎn)刪除法來簡化點(diǎn)云網(wǎng)格模型的示意圖。
[0010] 圖4采用Delaunay網(wǎng)格化法進(jìn)行局部網(wǎng)格化的示意圖。
[0011] 圖5是針對原始網(wǎng)格模型進(jìn)行網(wǎng)格簡化處理的示意圖。
[0012] 主要元件符號說明
[0013] 計(jì)算機(jī)裝置 1
[0014] 點(diǎn)云網(wǎng)格簡化系統(tǒng) 10
[0015] 點(diǎn)云網(wǎng)格輸入模塊 101
[0016] 法向面計(jì)算模塊 102
[0017] 刪除點(diǎn)判定模塊 103
[0018] 局部網(wǎng)格化模塊 104
[0019] 網(wǎng)格處理模塊 105
[0020] 輸入設(shè)備 11
[0021] 存儲設(shè)備 12
[0022] 處理器 13
[0023] 掃描設(shè)備 2
[0024] 目標(biāo)物件 3
【具體實(shí)施方式】
[0025] 參閱圖1所示,是本發(fā)明點(diǎn)云網(wǎng)格簡化系統(tǒng)佳實(shí)施例的運(yùn)行環(huán)境示意圖。在本實(shí) 施例中,所述的點(diǎn)云網(wǎng)格簡化系統(tǒng)10安裝并運(yùn)行于計(jì)算機(jī)裝置1中,該計(jì)算機(jī)裝置1還包 括,但不僅限于,輸入設(shè)備11、存儲設(shè)備12及處理器13。該計(jì)算裝置1安裝有操作系統(tǒng) (例如Windows操作系統(tǒng)或Linux操作系統(tǒng))以及各種應(yīng)用系統(tǒng)(例如軟件程序及應(yīng)用程 序等)。所述的計(jì)算機(jī)裝置1可以為一種個人計(jì)算機(jī)(PC)、工作站計(jì)算機(jī)(Workstation computer)、筆記本計(jì)算機(jī)(Notebook)、服務(wù)器(Server)或者其他電子計(jì)算裝置。
[0026] 所述的計(jì)算機(jī)裝置1連接有一種掃描設(shè)備2,該掃描設(shè)備2用于對目標(biāo)物件3 (例 如電子元器件)進(jìn)行掃描(例如激光掃描)來獲取該目標(biāo)物件3的點(diǎn)云。所述的掃描設(shè)備 2可以為一種激光掃描儀、3D光學(xué)掃描儀或其它合適的電子掃描設(shè)備。
[0027] 所述的輸入設(shè)備11用于輸入需要簡化點(diǎn)云網(wǎng)格數(shù)量的簡化比例,例如按照0%至 100%之間的任何一比例來簡化點(diǎn)云的數(shù)量。所述的存儲設(shè)備12包括,但不僅限于,內(nèi)存、 硬盤以及外部存儲設(shè)備等。所述的處理器13包括,但不僅限于,中央處理器(CPU)、微處理 器或其它數(shù)據(jù)處理機(jī)等。
[0028] 在本實(shí)施例中,所述的點(diǎn)云網(wǎng)格簡化系統(tǒng)10包括,但不僅限于,點(diǎn)云網(wǎng)格輸入模 塊101、法向面計(jì)算模塊102、刪除點(diǎn)判定模塊103、局部網(wǎng)格化模塊104及網(wǎng)格處理模塊 105。本發(fā)明所稱的功能模塊是指一種能夠被計(jì)算機(jī)裝置1的處理器13所執(zhí)行并且能夠完 成固定功能的一系列程序指令段,其存儲于計(jì)算機(jī)裝置1的存儲設(shè)備12中。關(guān)于各功能模 塊101-105將在圖2的流程圖中作詳細(xì)描述。
[0029] 參閱圖2所示,是本發(fā)明點(diǎn)云網(wǎng)格簡化方法較佳實(shí)施例的流程圖。在本實(shí)施例中, 該方法應(yīng)用于計(jì)算機(jī)裝置1中,能夠利用網(wǎng)格頂點(diǎn)法向面的距離約束來刪除對點(diǎn)云網(wǎng)格影 響比較小的點(diǎn)和網(wǎng)格,并采用局部重新三角網(wǎng)格化來達(dá)到網(wǎng)格簡化的效果。具有點(diǎn)云計(jì)算 速度快且占用內(nèi)存少的優(yōu)點(diǎn),可對任何形狀、任何類型的點(diǎn)云網(wǎng)格進(jìn)行補(bǔ)孔以及對復(fù)雜物 件的點(diǎn)云進(jìn)行不失真簡化處理。
[0030] 步驟S21,網(wǎng)格輸入模塊101利用掃描設(shè)備2掃描目標(biāo)物件3得到點(diǎn)云,并將所述 點(diǎn)云進(jìn)行三角網(wǎng)格化得到原始網(wǎng)格模型。在本實(shí)施例中,網(wǎng)格輸入模塊101可以接收從輸 入設(shè)備11直接輸入的進(jìn)行點(diǎn)云三角網(wǎng)格化后的網(wǎng)格模型。所述掃描設(shè)備2能夠?qū)δ繕?biāo)物 件3 (例如電子元器件)進(jìn)行掃描來獲取該目標(biāo)物件3的點(diǎn)云。所述的點(diǎn)云三角網(wǎng)格化就是 將點(diǎn)云數(shù)據(jù)進(jìn)行三角形網(wǎng)格化得到三角網(wǎng)格化模型,如圖5A所示的原始網(wǎng)格模型包含許 多三角化的點(diǎn)云網(wǎng)格。現(xiàn)有技術(shù)存在的許多點(diǎn)云三角網(wǎng)格化的方法來得到原始網(wǎng)格模型, 在此不作具體描述。
[0031] 步驟S22,云網(wǎng)格輸入模塊101接收使用者根據(jù)網(wǎng)格簡化的精度要求從輸入設(shè)備 11輸入的需要簡化點(diǎn)云網(wǎng)格數(shù)量的簡化比例。在本實(shí)施例中,使用者根據(jù)需要可以按照 0%至100%之間的任何一比例來簡化點(diǎn)云網(wǎng)格的數(shù)量,例如10%或50%等。如圖5B所示 的簡化網(wǎng)格模型的簡化比例為50%,而圖5C所示的簡化網(wǎng)格模型的簡化比例為10%。
[0032] 步驟S23,法向面計(jì)算模塊102計(jì)算原始網(wǎng)格模型中每一個網(wǎng)格頂點(diǎn)的法向面,并 計(jì)算每一個網(wǎng)格頂點(diǎn)到其法向面的距離。在本實(shí)例中,計(jì)算網(wǎng)格頂點(diǎn)的法向面按照如下算 法:假設(shè)原始網(wǎng)格模型中共享頂點(diǎn)v〇的三角形有k個,例如,分別為□ v0vlv2, □ v0v2v3… □ vOvk-lvk, □ vOvkvl,這些k個三角形的面積分別為Sl,S2,…,Sk,其法向量分別為nl, n2,···,'那么定義每一個網(wǎng)格頂點(diǎn)的法向面的法向量如下:
[0033]
搭每一個網(wǎng)格頂點(diǎn)的法向量單位化:
,定義每一個三角形
的中心點(diǎn)為__即 v0,
[0034] 其中,頂總vU的汰|n」囬m是經(jīng)過中心點(diǎn)?)法向?yàn)棣堑钠矫?,?dāng)法向面計(jì) 算模塊102計(jì)算出頂點(diǎn)νΟ的法向面之后,就可以計(jì)算出頂點(diǎn)νΟ到法向面的距離 iftytance=〇〇-v〇r"。當(dāng)所有網(wǎng)格頂點(diǎn)到其法向面的距離被計(jì)算出來后,其中,網(wǎng)格頂點(diǎn) 到其法向面的距離越大,說明這個網(wǎng)格頂點(diǎn)對整個網(wǎng)格模型的幾何特征影響越大。
[0035] 步驟S24,刪除點(diǎn)判定模塊103根據(jù)輸入的簡化比例和每一個網(wǎng)格頂點(diǎn)到法向面 的距離判定出對原始網(wǎng)格模型影響較小的點(diǎn),并從原始網(wǎng)格模型中將該點(diǎn)和包含該點(diǎn)的網(wǎng) 格刪除。一般地,點(diǎn)云網(wǎng)格簡化實(shí)質(zhì)就是減少網(wǎng)格模型的點(diǎn)和面