TWI406189B - 點雲三角網格面構建方法 - Google Patents
點雲三角網格面構建方法 Download PDFInfo
- Publication number
- TWI406189B TWI406189B TW95143804A TW95143804A TWI406189B TW I406189 B TWI406189 B TW I406189B TW 95143804 A TW95143804 A TW 95143804A TW 95143804 A TW95143804 A TW 95143804A TW I406189 B TWI406189 B TW I406189B
- Authority
- TW
- Taiwan
- Prior art keywords
- point
- triangle
- point cloud
- points
- mesh surface
- Prior art date
Links
Landscapes
- Image Generation (AREA)
Description
本發明涉及一種點雲三角網格面構建方法。
近年來,隨著電腦硬體性能的提高及價格的降低,其在掃描系統(請參考圖1)中被大量的引入。做法一般是使用點雲獲取裝置獲取物體的點雲(即由多個三維離散點組成的點的集合),而後將點雲資料登錄電腦,執行相應軟體對點雲資料進行各種處理,比如電腦輔助驗證(Computer Aided Verification,CAV)、逆向工程(Reverse Engineering,RE)、有限元網格自動生成、電腦圖形處理及模式識別(如人臉的識別)等。
構建點雲網格面是上述各種處理所需要使用的重要技術之一,也是上述各種處理所需要解決的一個關鍵問題。點雲網格一般有三角形、四邊形及多邊形等多種形狀,其中又以三角形最逼近實際的物體。
現有的構建點雲三角網格面的技術中,以Delaunay演算法最為著名。所述Delaunay演算法的特點是:所構建的三角網格面中的三角形都儘量接近等邊三角形。雖然使用Delaunay演算法所獲得的三角網格比較規則,但需要大量的計算,因而速度緩慢。
鑒於以上情況,需要一種點雲三角網格面構建方法,能夠快速方便地對雜亂的點雲進行三角網格面構建,從而得到一組沒有重疊,且沒有破面的三維三角形網格面。
鑒於以上內容,有必要提供一種點雲三角網格面構建方法,其可快速方便地完成點雲三角網格面的構建。
一種點雲三角網格面構建方法,該方法包括以下步驟:(a)輸入獲取的點雲資料及網格面公差;(b)根據點雲資料中點的三維座標計算得到上述點雲的包圍盒,而後對該包圍盒進行分組,並將點雲資料中每個點的標識填入到相應的分組;(c)獲取點雲中尚未與其他點組成三角形的點,並作為三角形的第一點;(d)得到第一點空間四週的分組,並從該分組中獲取距第一點最近的點作為三角形的第二點;(e)得到第一點和第二點的中點,並得到該中點空間四週的分組,判斷所述分組中的點,及構建符合條件的三角形;及(f)對於點雲中的每一點迴圈步驟c到步驟e,直至構建出所有符合條件的三角形,及輸出點雲三角網格面
利用本發明,可以快速方便地完成點雲三角網格面的構建,從而得到一組沒有重疊,且沒有破面的三維三角形網格面,極大地提高了速度,並減少了誤差的產生。
圖1是掃描系統的組成圖。
圖2是本發明點雲三角網格面構建方法較佳實施例的作業流程圖。
圖3是圖2中步驟S302將點雲放入分組的具體流程圖。
圖4是圖2中步驟S304得到三角形的第二點的具體流程圖。
圖5是圖2中步驟S305構建三角形的具體流程圖。
圖6是圖5中步驟S606進行外接球判斷並構建三角形的詳細流程圖。
圖7是現有三角形pt1pt2p與待判斷點pt3’和第一點pt1第二點pt2組成的三角形pt1pt2pt3’的示意圖。
圖8是所述pt3’pt1 pt2的外接球內只有一個點p1的示意圖。
圖9是連接p1 pt3’和p1 pt1形成四邊形p1pt1pt2pt3’的示意圖。
圖10是連接所述四邊形p1pt1pt2pt3’的點p1pt2形成對角線的示意圖。
本具體實施例以單塊點雲的三角網格面構建為例進行說明。
參閱圖2所示,是本發明點雲三角網格面構建方法較佳實施例的作業流程圖。
步驟S301,輸入點雲獲取裝置所獲取的點雲資料;而後輸入用戶自定義的網格面公差(用fTo表示)。其中,所述點雲資料包括點的三維座標、點的標識及點雲總數(用nCount1表示),所述網格面公差為組成點雲三角網格面的三角形的最大邊長。
步驟S302,根據上述輸入的點雲資料中點的三維座標,計算得到所述點雲的包圍盒;並對該包圍盒進行分組。而後根據點的三維座標,將點雲資料中每個點的標識填入到上述相應的分組(具體步驟將在圖3中詳細描述)。
步驟S303,判斷所述點雲中的任一點是否可以作為三角形的第一點:若該點尚未與點雲中的其他點組成三角形,則獲取該點,並作為三角形的第一點pt1;否則,繼續判斷所述點雲中的下一點。
步驟S304,根據第一點pt1所在的分組,求取該pt1空間四週的分組;獲取所述分組內所有不是pt1的點;分別計算得到上述獲取的點與pt1的距離;根據上述得到的距離,獲取距pt1最近的點並作為三角形的第二點pt2(具
體步驟將在圖4中詳細描述)。
步驟S305,計算得到第一點pt1與第二點pt2的中點s3;根據該s3所在的分組,求取該s3空間四週的分組;按照一定的順序排列所述分組中的點;隨後依序進行擬合圓判斷、鈍角判斷及外接球判斷;最後構建符合條件的三角形(具體步驟將在圖5中詳細描述)。
步驟S306,重複步驟S303到步驟S305:迴圈判斷點雲中的每一點,直至構建出所有符合條件的三角形。最後輸出由完成構建的三角形所組成的點雲三角網格面。
參閱圖3所示,是圖2中步驟S302將點雲放入分組的具體流程圖。
步驟S401,因輸入的點雲資料為多個離散點的三維座標,故可以透過比較該點雲資料中所有點的三維座標的方式,求得該點雲中的最小區域點ptMin的三維座標(ptMin[0],ptMin[1],ptMin[2])及最大區域點ptMax的三維座標(ptMax[0],ptMax[1],ptMax[2]),進而可以得到由(ptMin[0],ptMin[1],ptMin[2])、(ptMin[0],ptMin[1],ptMax1[2])、(ptMin[0],ptMax[1],ptMin1[2])、(ptMin[0],ptMax[1],ptMax[2])、(ptMax[0],ptMax[1],ptMax[2])、(ptMax[0],ptMax[1],ptMin[2])、(ptMax[0],ptMin[1],ptMax[2])、(ptMax[0],ptMin[1],ptMin[2])組成的所述點雲的包圍盒。
步驟S402,對所述點雲的包圍盒進行分組,並得到分組後每個單元小正方體的邊長fBox。具體而言,利用該網格面公差fTo及點雲總數nCount1,計算得到分組後每個單元小正方體的邊長fBox=
利用該正方體的邊長fBox,分別計算該點雲的包圍盒在X軸、Y軸、Z軸方向的分組數目nGX=(ptMax[0]-ptMin[0])/fBox,nGY=(ptMax[1]-ptMin[1])/fBox,nGZ=(ptMax[2]-ptMin[2])/fBox,進而求得組間距:fStepX=(ptMax[0]-ptMin[0])/nGX,fStepY=(ptMax[1]-ptMinB[1])/nGY,fStepZ=(ptMax[2]-ptMinB[2])/nGZ。
步驟S403,根據點雲資料中點的三維座標,將點雲資料中每個點的標識填入到上述相應的分組。例如,根據點pt1的三維座標(pt1[0]、pt1[1]、pt1[2]),可以確定其在X軸、Y軸、Z軸方向的分組nX、nY、nZ,從而確定其位於點雲區域的第(nX、nY、nZ)分組內,並將其標識填入該分組,其中nX=(pt1[0]-ptMin[0])/fStepX,nY=(pt1[1]-ptMin[1])/fStepY,nZ=(pt1[2]-ptMin[2])/fStepZ。
以下以一個三角形的構建為例進行說明。
參閱圖4所示,是圖2中步驟S304獲取三角形的第二點的具體流程圖。
步驟S501,根據第一點pt1所在的分組(nX、nY、nZ),迴圈求取該pt1空間四週iBoxIndex個步長的分組:即該第(nX、nY、nZ)組的X方向前面第iBoxIndex組:nFX,X方向後面第iBoxIndex組:nPX,Y方向前面第iBoxIndex組:nFY,Y方向後面第iBoxIndex組:nPY,Z方向前面第iBoxIndex組:nFZ,Z方向後面第iBoxIndex組:nPZ。其中,iBoxIndex從1迴圈至fTo/fBox;nFX的計算過程如下:若nX<0,則nFX=0,否則nFX=nX-iBoxIndex,nFY,nFZ求取方法與nFX相同;nPX的計算過程如下:若nX<nGX,則nPX=nX+iBoxIndex,否則nPX=nGX-1,nPY,nPZ的求取方法與nPX相同。
步驟S503,判斷所述分組內的點是否可以作為三角形的第二點:若所述分
組內的點不是第一點pt1,則獲取該點。
步驟S504,分別計算得到上述獲取的點與第一點pt1的距離。例如,如果獲取的點為pt2’(pt2’[0]、pt2’[1]、pt2’[2]),做下列計算:fX=pt2’[0]-pt1[0]、fY=pt2’[1]-pt1[1]、fZ=pt2’[2]-pt1[2],最後計算得到該pt2’點與所述第一點pt1的距離:fdis1=fX*fX+fY*fY+fZ*fZ。
步驟S505,根據上述得到的距離,獲取距pt1最近的點並作為三角形的第二點pt2。
參閱圖5所示,是圖2中步驟S305構建三角形的具體流程圖。
步驟S601,計算得到第一點pt1與第二點pt2的中點s3。
步驟S602,根據該s3所在的分組,迴圈求取該s3空間四週iBoxIndex個步長的分組(可參考步驟S501)。
步驟S603,按照一定的順序排列所述分組中的點。具體而言,以所述分組中的點為起始點,分別做一條經過pt1的射線、一條經過pt2的射線,進而得到兩條射線的夾角,並按照該夾角的降冪排列所述分組中的點。換句話說,假設上述分組中的點為pt3’,即按照角pt1pt3’pt2的大小對pt3’排序。
步驟S604,依序進行擬合圓判斷。具體而言,先應用數學法則如最小二乘法,將所述分組中的點按照上述排序依次與第一點pt1和第二點pt2擬合成面,再應用數學法則如最小二乘法,將上述三點擬合成圓。隨後判斷該圓的直徑是否大於網格面公差fTo:若該圓的直徑大於fTo,則說明該點不符合條件,依序判斷下一點;否則,進入步驟S605。
步驟S605,依序進行鈍角判斷。以點pt3’為待判斷點進行說明,首先判斷三角形pt1pt2pt3’的邊pt1pt2、pt2pt3’、pt1pt3’是否已與點雲中的其他點組成三角形。若邊pt1pt2、邊pt2pt3’、邊pt1pt3’均尚未與點雲中的其他點組成三角形,則進入步驟S606;否則,接著判斷上述已和點雲中的其他點組成的三角形與點pt1、pt2、pt3’組成的三角形之間的夾角是否為鈍角。例如,現假設邊pt1pt2已經和點雲中的點p組成了三角形(請參考圖7),那麼就需要判斷三角形pt1pt2p與三角形pt1pt2pt3’之間的夾角是否為鈍角。若上述已和點雲中的其他點組成的三角形與點pt1、pt2、pt3’組成的三角形的夾角均為鈍角,則進入步驟S606;否則,說明該點不符合條件,依序判斷下一點。
步驟S606,依序進行外接球判斷並構建三角形。仍以點pt3’為待判斷點進行說明,在上述擬合圓的基礎上,擬合一個經過第一點pt1、第二點pt2和pt3’的外接球:其中,該球為子午球(該擬合圓經過該外接球的直徑),該球的球心即為該圓的圓心,該球的半徑即為該圓的半徑Cr。然後對該外接球進行判斷,以確定該點pt3’是否符合條件(具體步驟將在圖6中詳細描述)。
參閱圖6所示,是圖5中步驟S606進行外接球判斷並構建三角形的詳細流程圖(以點pt3’為待判斷點進行說明)。
步驟S706,根據上述球心所在的分組,迴圈求取該球心空間四週iBoxIndex個步長的分組,其中,iBoxIndex從1迴圈至Cr*1.5/fBox(可參考步驟S501);分別計算得到上述分組中的點與球心的距離fdis1(可參考步驟S504);根據球的半徑Cr及點與球心的距離fdis1,判斷上述外接球內是否有點。
若fdis1>Cr,則說明該外接球內沒有點,進入步驟S707:獲取該pt3’,
並作為三角形的第三點pt3,然後構建符合條件的三角形pt1pt2pt3。
否則,說明該外接球內有點,進入步驟S708:判斷該外接球內是否只有一個點。若該外接球內有不止一個點,則說明該pt3’不符合條件,對點pt3’的判斷結束,依序對排序中的下一點進行外接球判斷。
若該外接球內只有一個點(用p1表示,請參考圖8),則進入步驟S709,連接p1pt3’和p1pt1形成四邊形p1pt1pt2pt3’(請參考圖9),而後連接p1pt2形成對角線,即把所述四邊形分成兩個三角形:三角形p1pt2pt3’和三角形p1pt2pt1(請參考圖10)。
步驟S710,判斷上述三角形p1pt2pt3’和三角形p1pt2pt1是否符合條件。具體而言,先分別擬合上述三角形p1pt2pt3’和三角形p1pt2pt1的外接球,再分別對所述兩個三角形進行外接球判斷(請參考步驟S606);而後對上述兩個三角形進行鈍角判斷(請參考步驟S605)。
在步驟S710中,若三角形p1pt2pt3’和三角形p1pt2pt1均符合條件,則進入步驟S711,構建上述符合條件的兩個三角形;否則,說明該pt3’不符合條件,對點pt3’的判斷結束,依序對排序中的下一點進行外接球判斷。
本發明所提供的點雲三角網格面構建方法,採用了優化演算法,極大地減少了計算量。因此對於批量點雲的網格化,可直接調用上述步驟全自動進行,使用方便,速度極為快捷。
以上所述僅為本發明之較佳實施例而已,且已達廣泛之使用功效,凡其他未脫離本發明所揭示之精神下所完成之均等變化或修飾,均應包含在下述之申請專利範圍內。
Claims (9)
- 一種點雲三角網格面構建方法,該方法包括如下步驟:a.在電腦中輸入藉由點雲獲取裝置獲取的點雲資料及網格面公差;b.根據點雲資料中點的三維座標計算得到所述點雲的包圍盒,而後對該包圍盒進行分組並將點雲資料中每個點的標識填入到相應的分組;c.獲取點雲中尚未與其他點組成三角形的任一點,作為三角形的第一點;d.求取第一點空間四週的分組,並從該分組中獲取距第一點最近的點作為三角形的第二點;e.得到第一點和第二點的中點,並求取該中點空間四週的分組,從所述分組中的點中找到第三點,並根據所述第一點,第二點及第三點構建三角形,其中,從所述分組中的點中找到第三點包括步驟:將所述分組中的點排序;將所述分組中的點依序與第一點及第二點擬合成圓,並利用該圓判斷所述分組中的點是否符合條件一;將符合條件一的點依序與第一點及第二點組成三角形,並進行鈍角判斷以確定所述符合條件一的點是否符合條件二;將符合條件二的點依序與第一點及第二點擬合外接球並進行外接球判斷,以找到所述第三點;及f.對於點雲中的每一點迴圈步驟c到步驟e,直至構建出所有三角形,及輸出點雲三角網格面。
- 如申請專利範圍第1項所述之點雲三角網格面構建方法,其中,所述點雲資料包括點的三維座標、點的標識及點雲總數。
- 如申請專利範圍第2項所述之點雲三角網格面構建方法,其中,所述步驟計算得到所述點雲的包圍盒,對該包圍盒進行分組並將點雲資料中每個點的標識填入到相應的分組,包括如下步驟:根據點雲中點的三維座標,得到點雲的包圍盒;根據點雲總數及網格面公差,對所述點雲的包圍盒進行分組;根據點雲資料中點的三維座標,將點雲資料中每個點的標識填入到相應的分組。
- 如申請專利範圍第1項所述之點雲三角網格面構建方法,其中,所述步驟獲取三角形的第二點包括如下步驟:根據三角形的第一點,求取第一點空間四週的分組;獲取所述分組內所有不是第一點的點;得到上述點與所述第一點的距離;及獲取距所述第一點最近的點作為三角形的第二點。
- 如申請專利範圍第1項所述之點雲三角網格面構建方法,其中,所述條件一指:所述圓的直徑大於網格面公差。
- 如申請專利範圍第1項所述之點雲三角網格面構建方法,其中,所述條件二指:上述三角形的邊均尚未與點雲中的其他點組成三角形,或上述三角形的邊與點雲中的其他點組成的三角形和上述三角形之間的夾角為鈍角。
- 如申請專利範圍第1項所述之點雲三角網格面構建方法,其中,所述步驟進行外接球判斷,包括如下步驟:判斷所述外接球內是否有點;若所述外接球內有點,則判斷該外接球內是否只有一點;若該外接球內只有一點,則得到兩個三角形;判斷上述兩個三角形是否通過所述外接球判斷和符合條件二; 若上述兩個三角形通過外接球判斷和符合條件二,則構建符合條件的兩個三角形。
- 如申請專利範圍第7項所述之點雲三角網格面構建方法,該方法還包括步驟若所述外接球內沒有點,則獲取該點作為第三點,並構建符合條件的三角形。
- 如申請專利範圍第7項所述之點雲三角網格面構建方法,該方法還包括步驟若所述外接球內有不止一點,則對該點的判斷結束,將所述符合條件二的點中的下一點與第一點及第二點擬合外接球並進行外接球判斷;若上述兩個三角形沒有通過外接球判斷或者不符合條件二,則對該點的判斷結束,將所述符合條件二的點中的下一點與第一點及第二點擬合外接球並進行外接球判斷。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW95143804A TWI406189B (zh) | 2006-11-27 | 2006-11-27 | 點雲三角網格面構建方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW95143804A TWI406189B (zh) | 2006-11-27 | 2006-11-27 | 點雲三角網格面構建方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200823803A TW200823803A (en) | 2008-06-01 |
TWI406189B true TWI406189B (zh) | 2013-08-21 |
Family
ID=44771317
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW95143804A TWI406189B (zh) | 2006-11-27 | 2006-11-27 | 點雲三角網格面構建方法 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI406189B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI450216B (zh) * | 2008-08-08 | 2014-08-21 | Hon Hai Prec Ind Co Ltd | 邊界元素提取方法及其電腦系統 |
TWI416360B (zh) * | 2008-09-19 | 2013-11-21 | Hon Hai Prec Ind Co Ltd | 特徵元素擬合方法及其電腦系統 |
TWI426406B (zh) * | 2009-05-15 | 2014-02-11 | Hon Hai Prec Ind Co Ltd | 三維色階比對動態分析方法 |
TWI463435B (zh) * | 2010-02-01 | 2014-12-01 | Hon Hai Prec Ind Co Ltd | 點雲三角網格面構建系統及方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6392647B1 (en) * | 1996-10-16 | 2002-05-21 | Viewpoint Corporation | System and method for computer modeling of 3D objects or surfaces by mesh constructions having optimal quality characteristics and dynamic resolution capabilities |
US6545676B1 (en) * | 1999-05-24 | 2003-04-08 | Parametric Technology Corporation | Method and system for creating a tessellated approximation of an outer envelope of a complex model |
US20030067461A1 (en) * | 2001-09-24 | 2003-04-10 | Fletcher G. Yates | Methods, apparatus and computer program products that reconstruct surfaces from data point sets |
TW200538954A (en) * | 2004-05-28 | 2005-12-01 | Hon Hai Prec Ind Co Ltd | System and method for dealing with point-cloud in three-dimension |
-
2006
- 2006-11-27 TW TW95143804A patent/TWI406189B/zh not_active IP Right Cessation
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6392647B1 (en) * | 1996-10-16 | 2002-05-21 | Viewpoint Corporation | System and method for computer modeling of 3D objects or surfaces by mesh constructions having optimal quality characteristics and dynamic resolution capabilities |
US6545676B1 (en) * | 1999-05-24 | 2003-04-08 | Parametric Technology Corporation | Method and system for creating a tessellated approximation of an outer envelope of a complex model |
US20030067461A1 (en) * | 2001-09-24 | 2003-04-10 | Fletcher G. Yates | Methods, apparatus and computer program products that reconstruct surfaces from data point sets |
TW200538954A (en) * | 2004-05-28 | 2005-12-01 | Hon Hai Prec Ind Co Ltd | System and method for dealing with point-cloud in three-dimension |
Also Published As
Publication number | Publication date |
---|---|
TW200823803A (en) | 2008-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101192307B (zh) | 点云三角网格面构建方法 | |
CN106934826B (zh) | 一种岩质边坡结构精细化建模及块体识别方法 | |
CN106646645B (zh) | 一种重力正演加速方法 | |
US8768661B2 (en) | Method for creating finite element model of rubber composite | |
CN104346830A (zh) | 在三维场景中设计连接第一点到第二点的路径 | |
Samuel et al. | Evaluation of sphericity error from form data using computational geometric techniques | |
CN110335357B (zh) | 一种约束曲面多分辨率控制预处理方法 | |
TWI406189B (zh) | 點雲三角網格面構建方法 | |
TWI475511B (zh) | 曲面網格化系統及方法 | |
CN104240290A (zh) | 一种基于包围球模型的三维电缆相交检测方法 | |
CN110188395B (zh) | 一种基于线面体的维度增加式计算流体网格生成方法 | |
CN114861500A (zh) | 基于三维点云自动生成隧道结构有限元模型的方法及系统 | |
CN108563915B (zh) | 车辆数字化仿真测试模型构建系统及方法、计算机程序 | |
JP4639292B2 (ja) | 3次元メッシュ生成方法 | |
US20200387647A1 (en) | Quador: quadric-of-revolution beams for lattices | |
CN110967778B (zh) | 一种动态坐标系多面体剖分重力布格校正方法 | |
CN110796735B (zh) | Nurbs曲面有限元板壳网格划分方法及计算机实现系统 | |
CN116956619A (zh) | 一种轻量级环境下的土木工程模型虚拟装配方法 | |
CN103853914B (zh) | 一种快速预估水下圆形角反射体散射声场的方法 | |
CN105387826A (zh) | 用于对尺寸偏差和工艺能力进行定量的方法和装置 | |
Hou et al. | Computing the global visibility map using slice geometry for setup planning | |
CN115202483A (zh) | 一种全球三维地图系统抖动消除方法 | |
US6897864B2 (en) | Method and program for coordinate decision procedure of voxel model, and recording medium thereof | |
US20170371982A1 (en) | Global optimization of networks of locally fitted objects | |
Shen et al. | An adaptive triangulation optimization algorithm based on empty circumcircle |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |