點云采樣方法及系統(tǒng)的制作方法
【技術領域】
[0001] 本發(fā)明涉及點云處理技術領域,尤其涉及一種點云采樣方法及系統(tǒng)。
【背景技術】
[0002] 點云精簡是點云處理的關鍵步驟,H維掃描時,一個產(chǎn)品的完整點云通過多幅點 云合幷而成,往往數(shù)據(jù)量很大,因此,對點云進行精簡顯得格為重要。如果對合幷完的點云 進行合適的精簡,能有效的提高處理效率。隨機采樣在對數(shù)據(jù)精度要求不是非常高的情況 下,由于算法復雜度較低,能很好的提高運算效率。
【發(fā)明內容】
[0003] 鑒于W上內容,有必要提供一種點云采樣方法及系統(tǒng),能夠降低計算復雜度,提高 運算效率。
[0004] -種點云采樣方法,應用于計算裝置中,該方法包括:獲取步驟,接收點云網(wǎng)格化 文件,并從該點云網(wǎng)格化文件中獲取點云的信息;計算步驟,根據(jù)所獲取的點云的信息計算 點云的包圍盒,把所述包圍盒切分為多個立方體,并從所切分的多個立方體中選取有效立 方體;分配步驟,給每個有效立方體中的每個點隨機分配一個參考值;采樣步驟一,根據(jù)每 個有效立方體中的所有點的參考值分別對每個有效立方體進行采樣獲取每個有效立方體 的初始采樣點,將每個有效立方體的初始采樣點合并成所述點云的初始采樣點;采樣步驟 二,根據(jù)所述點云中點的總數(shù)及預設采樣比例對所述點云的初始采樣點進行處理W完成對 所述點云的采樣。
[0005] -種點云采樣系統(tǒng),應用于計算裝置中,該系統(tǒng)包括:獲取模塊,用于接收點云網(wǎng) 格化文件,并從該點云網(wǎng)格化文件中獲取點云的信息;計算模塊,用于根據(jù)所獲取的點云的 信息計算點云的包圍盒,把所述包圍盒切分為多個立方體,并從所切分的多個立方體中選 取有效立方體;分配模塊,用于給每個有效立方體中的每個點隨機分配一個參考值;采樣 模塊,用于根據(jù)每個有效立方體中的所有點的參考值分別對每個有效立方體進行采樣獲取 每個有效立方體的初始采樣點,將每個有效立方體的初始采樣點合并成所述點云的初始采 樣點;所述采樣模塊,還用于根據(jù)所述點云中點的總數(shù)及預設采樣比例對所述點云的初始 采樣點進行處理W完成對所述點云的采樣。
[0006] 相較于現(xiàn)有技術,所述點云采樣方法及系統(tǒng)將點云劃分為多個立方體,然后對每 個立方體隨機采樣,對每個立方體隨機采樣后的數(shù)據(jù)合并處理為所述點云的采樣數(shù)據(jù),該 方法計算復雜度較低,能很好的提高運算效率。
【附圖說明】
[0007] 圖1是本發(fā)明點云采樣系統(tǒng)較佳實施例的運行環(huán)境示意圖。
[0008] 圖2是本發(fā)明點云采樣系統(tǒng)較佳實施例的功能模塊圖。
[0009] 圖3是本發(fā)明點云采樣方法較佳實施例的流程圖。
[0010] 主要元件符號說明
[0011]
[0012]
[0013] 如下【具體實施方式】將結合上述附圖進一步說明本發(fā)明。
【具體實施方式】
[0014] 參閱圖1所示,是本發(fā)明點云采樣系統(tǒng)較佳實施例的運行環(huán)境示意圖。所述點云 采樣系統(tǒng)10運行于計算裝置1中。該計算裝置1還包括通過數(shù)據(jù)總線相連的存儲設備11 及一個或者多個處理設備12等。所述計算裝置1可W是電腦、服務器等。
[0015] 所述的點云采樣系統(tǒng)10包括一個或多個由程序代碼組成的功能模塊(詳見圖2), 各功能模塊存儲于所述存儲設備11中,并由所述處理設備12所執(zhí)行,W實現(xiàn)如下功能:將 點云劃分為多個立方體,然后對每個立方體隨機采樣,對每個立方體隨機采樣后的數(shù)據(jù)合 并處理為所述點云的采樣數(shù)據(jù),從而降低計算復雜度,提高運算效率。
[0016] 所述存儲設備11用于存儲所述點云采樣系統(tǒng)10中各個程序段的程序代碼。該存 儲設備11可W為智能媒體卡(smart media card)、安全數(shù)字卡(secure digital card)、 快閃存儲器卡(flash card)等儲存設備。
[0017] 參閱圖2所示,在本實施例中,所述點云采樣系統(tǒng)10的功能模塊包括:獲取模塊 100、計算模塊101、分配模塊102及采樣模塊103。W下將結合圖3說明各模塊的具體功能。
[0018] 參閱圖3所示,是本發(fā)明點云采樣方法較佳實施例的流程圖。根據(jù)不同的需求,該 流程圖中步驟的順序可W改變,某些步驟可W省略。
[0019] 步驟S10,獲取模塊100接收用戶上傳到計算裝置1中的點云網(wǎng)格化文件,并從該 點云網(wǎng)格化文件中獲取點云的信息。
[0020] 在本實施例中,所述點云的信息包括由網(wǎng)格后的點云所組成的多個H角形,每個 H角形的單位法向量、H個頂點及H個頂點的H維坐標。
[0021] 步驟S11,計算模塊101根據(jù)所獲取的點云的信息計算點云的包圍盒,并把所述包 圍盒切分為多個立方體,并從所切分的多個立方體中選取有效立方體。
[0022] 在本實施例中,計算模塊101先分別計算出點云在X,Y和Z軸上的最大坐標和最 小坐標,上述點云在X,Y和Z軸上的的最小坐標分別為PtlMin[X],PtlMin[y],PtlMin[Z] 及最大坐標分別為ptlMax[x],ptlMax[y],ptlMax[z]。則Ax = ptlMax[x]-ptlMin[x], A y = ptlMax [y]-ptlMin [y],A Z = ptlMax [Z]-ptlMin [Z]。然后計算模塊 101 W A X、A y 和Az作為邊求出所述點云的包圍盒。
[0023] 計算模塊101把所述包圍盒細分為多個立方體,并選取有效立方體的具體過程 為:
[0024] 根據(jù)預設邊長值LL的取值范圍在預設最大值與預設最小值之間。把所述包圍盒 切分成多個立方體。郝么,X、Y、Z軸上的立方體的個數(shù)分別為:
[0028] 在本實施例中,計算模塊101計算所述包圍盒中所有點之間的距離,再將所計算 出的所有距離求和除W點的個數(shù)即可得到平均間距,該平均間距作為預設最大值。計算模 塊101計算出Ax、Ay和Az間的最小值,并把Ax、Ay和Az間的最小值作為預設最小 值。
[0029] 建立一個鏈表數(shù)組list [M][閑[W],將所述多個立方體的信息存儲于鏈表數(shù)組。在 本實施例中,所述鏈表數(shù)組存儲著每個立方體的編號及立方體中所有點的編號,送樣就可 W將立方體中的點與立方體關聯(lián)起來。
[0030] 根據(jù)每個所述立方體中是否包含至少一個點來判斷每個所述立方體是否為有效 立方體,在本實施例中,當一個所述立方體中包含至少一個點時,則該立方體為有效立方 體;當所述立方體中沒有包含一個點時,則該立方體不為有效立方體。依次判斷所切分后的 每個立方體是否為有效立方體。
[0031] 將所有有效立方體及每個有效立方體所包含的點的信息存儲于有效立方體鏈表 中。所述有效立方體鏈表數(shù)組存儲著每個有效立方體的編號及有效立方體中所有點的編 號,送樣就可W將有效立方體中的點與有效立方體關聯(lián)起來。
[0032] 步驟S12,分配模塊102給每個有效立方體中的每個點隨機分配一個參考值。
[0033] 在本實施例中,每個有效立方體中的每個點都對應一個參考值、一個狀態(tài)值。分配 模塊102隨機產(chǎn)生隨機數(shù)給每個有效立方體中的每個點隨機分配一個參考值。每個點的所 述狀態(tài)值用于標識該點是否被選取。所述狀態(tài)值可W用數(shù)值標識,也可W是文字標識等,在 本實施例中,該狀態(tài)標識用數(shù)值標識時,對一個點而言,當該點被選為采樣點時