點(diǎn)云噪聲點(diǎn)去除系統(tǒng)及方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種點(diǎn)云處理系統(tǒng)及方法,尤其涉及一種去除點(diǎn)云中噪聲點(diǎn)的系統(tǒng)及 方法。
【背景技術(shù)】
[0002] 三維掃描設(shè)備掃描待量測(cè)物體生成點(diǎn)云時(shí),由于掃描設(shè)備本身的原因或者其他外 界因素的干擾,生成的點(diǎn)云中會(huì)存在噪聲點(diǎn)。現(xiàn)有的點(diǎn)云處理系統(tǒng)中,去除噪聲點(diǎn)主要通過 手動(dòng)去除的方法,點(diǎn)云處理系統(tǒng)自帶的去除功能無法完全去除噪聲點(diǎn),而且可能會(huì)出現(xiàn)錯(cuò) 誤地去除點(diǎn)云中需要的點(diǎn),造成點(diǎn)云出現(xiàn)漏洞。
【發(fā)明內(nèi)容】
[0003] 鑒于以上內(nèi)容,有必要提供一種點(diǎn)云噪聲點(diǎn)去除方法及系統(tǒng),能夠根據(jù)不同的要 求,智能地去除點(diǎn)云中的噪聲點(diǎn)。
[0004] 一種點(diǎn)云噪聲點(diǎn)去除方法,應(yīng)用于計(jì)算設(shè)備中,該方法包括:導(dǎo)入一個(gè)點(diǎn)云,并接 收用戶輸入的參數(shù);將所述點(diǎn)云三角網(wǎng)格化,得到三角網(wǎng)格化點(diǎn)云,并在該三角網(wǎng)格化點(diǎn)云 中,根據(jù)點(diǎn)云中點(diǎn)與點(diǎn)之間的距離以及上述用戶輸入的參數(shù)將所述點(diǎn)云進(jìn)行分類,分成多 個(gè)子圖;對(duì)于每一個(gè)子圖,計(jì)算該子圖中的各點(diǎn)與相鄰子圖中各點(diǎn)之間距離,并根據(jù)該點(diǎn)與 點(diǎn)的距離計(jì)算相鄰子圖之間的距離;根據(jù)每個(gè)子圖中點(diǎn)的數(shù)量及/或相鄰子圖之間的距離 進(jìn)行噪聲點(diǎn)判斷,并去除所述噪聲點(diǎn);及輸出噪聲點(diǎn)去除后的點(diǎn)云。
[0005] -種點(diǎn)云噪聲點(diǎn)去除系統(tǒng),運(yùn)行于計(jì)算設(shè)備中,該系統(tǒng)包括:數(shù)據(jù)接收模塊,用于 導(dǎo)入一個(gè)點(diǎn)云,并接收用戶輸入的參數(shù);點(diǎn)云處理模塊,用于將所述點(diǎn)云三角網(wǎng)格化,得到 三角網(wǎng)格化點(diǎn)云,并在該三角網(wǎng)格化點(diǎn)云中,根據(jù)點(diǎn)云中點(diǎn)與點(diǎn)之間的距離以及上述用戶 輸入的參數(shù)將所述點(diǎn)云進(jìn)行分類,分成多個(gè)子圖;計(jì)算模塊,用于對(duì)于每一個(gè)子圖,計(jì)算該 子圖中的各點(diǎn)與相鄰子圖中各點(diǎn)之間距離,并根據(jù)該點(diǎn)與點(diǎn)的距離計(jì)算相鄰子圖之間的距 離;噪聲點(diǎn)去除模塊,用于根據(jù)每個(gè)子圖中點(diǎn)的數(shù)量及/或相鄰子圖之間的距離進(jìn)行噪聲 點(diǎn)判斷,并去除所述噪聲點(diǎn);及輸出模塊,用于輸出噪聲點(diǎn)去除后的點(diǎn)云。
[0006] 相較于現(xiàn)有技術(shù),本發(fā)明所述的點(diǎn)云噪聲點(diǎn)去除系統(tǒng)及方法根據(jù)點(diǎn)云中噪聲點(diǎn)去 除效果的需要,如需要去除所有的噪聲點(diǎn)或者只需要去除一些離散的噪聲點(diǎn),智能地執(zhí)行 噪聲點(diǎn)的去除操作。
【附圖說明】
[0007] 圖1是本發(fā)明點(diǎn)云噪聲點(diǎn)去除系統(tǒng)較佳實(shí)施例的硬件架構(gòu)示意圖。
[0008] 圖2是圖1中點(diǎn)云噪聲點(diǎn)去除系統(tǒng)較佳實(shí)施例的功能模塊圖。
[0009] 圖3是本發(fā)明點(diǎn)云噪聲點(diǎn)去除方法較佳實(shí)施例的流程圖。
[0010] 圖4是本發(fā)明點(diǎn)云噪聲點(diǎn)去除方法中其中一個(gè)步驟的詳細(xì)流程圖。
[0011] 主要元件符號(hào)說明
[0012]
[0013]
[0014] 如下【具體實(shí)施方式】將結(jié)合上述附圖進(jìn)一步說明本發(fā)明。
【具體實(shí)施方式】
[0015] 參閱圖1所示,是本發(fā)明點(diǎn)云噪聲點(diǎn)去除系統(tǒng)較佳實(shí)施例的硬件架構(gòu)示意圖。所 述的點(diǎn)云噪聲點(diǎn)去除系統(tǒng)10運(yùn)行于計(jì)算設(shè)備1上。所述計(jì)算設(shè)備1可以是計(jì)算機(jī)等具有 數(shù)據(jù)處理功能的電子設(shè)備。所述的計(jì)算設(shè)備1還包括存儲(chǔ)設(shè)備11、處理器12,及顯示設(shè)備 13。
[0016] 所述的點(diǎn)云噪聲點(diǎn)去除系統(tǒng)10包括多個(gè)由程序段所組成的功能模塊(詳見圖2), 用于根據(jù)點(diǎn)云中噪聲點(diǎn)去除效果的需要,如需要去除所有的噪聲點(diǎn)或者只需要去除一些離 散的噪聲點(diǎn),智能地執(zhí)行噪聲點(diǎn)的去除操作。
[0017] 所述存儲(chǔ)設(shè)備11用于存儲(chǔ)所述點(diǎn)云噪聲點(diǎn)去除系統(tǒng)10中各個(gè)程序段的程序代 碼。該存儲(chǔ)設(shè)備11可以為智能媒體卡(smartmediacard)、安全數(shù)字卡(securedigital card)、快閃存儲(chǔ)器卡(flashcard)等儲(chǔ)存設(shè)備。該存儲(chǔ)設(shè)備11還可以存儲(chǔ)點(diǎn)云噪聲點(diǎn)去 除系統(tǒng)10所需的各種數(shù)據(jù),裁切底板的坐標(biāo)數(shù)據(jù)、待裁切物體輪廓的坐標(biāo)數(shù)據(jù)等。
[0018] 所述處理器12用于執(zhí)行所述點(diǎn)云噪聲點(diǎn)去除系統(tǒng)10中各個(gè)程序段的程序代碼, 以實(shí)現(xiàn)點(diǎn)云噪聲點(diǎn)去除系統(tǒng)10的中各功能模塊的功能(詳見圖3中描述)。
[0019] 所述的顯示設(shè)備13用于顯示計(jì)算設(shè)備1的可視化數(shù)據(jù),例如,去除噪聲點(diǎn)之前及 之后的點(diǎn)云。
[0020] 如圖2所示,是本發(fā)明點(diǎn)云噪聲點(diǎn)去除系統(tǒng)較佳實(shí)施例的功能模塊圖。所述的點(diǎn) 云噪聲點(diǎn)去除系統(tǒng)10包括數(shù)據(jù)接收模塊100、點(diǎn)云處理模塊101,計(jì)算模塊102,噪聲點(diǎn)去除 模塊103及輸出模塊104。
[0021] 如上所述,以上各模塊均以程序代碼或指令的形式存儲(chǔ)在計(jì)算設(shè)備1的存儲(chǔ)設(shè)備 11中或固化于該計(jì)算設(shè)備1的操作系統(tǒng)中,并由該計(jì)算設(shè)備1的處理器12所執(zhí)行。以下結(jié) 合圖3及圖4對(duì)點(diǎn)云噪聲點(diǎn)去除系統(tǒng)10中的各功能模塊進(jìn)行詳細(xì)說明。
[0022] 參閱圖3所示,是本發(fā)明點(diǎn)云噪聲點(diǎn)去除方法較佳實(shí)施例的流程圖。
[0023] 步驟S1,數(shù)據(jù)接收模塊100導(dǎo)入一個(gè)點(diǎn)云,并接收用戶輸入的參數(shù)。所述數(shù)據(jù)接收 模塊1〇〇可以從計(jì)算設(shè)備1的存儲(chǔ)設(shè)備11中導(dǎo)入所述點(diǎn)云,也可以從其他外接的存儲(chǔ)設(shè)備 或者點(diǎn)云掃描裝置中導(dǎo)入所述點(diǎn)云所述用戶輸入的參數(shù)包括,但不限于,預(yù)設(shè)的點(diǎn)間距以 及點(diǎn)個(gè)數(shù)。
[0024] 步驟S2,點(diǎn)云處理模塊101將所述點(diǎn)云三角網(wǎng)格化,得到三角網(wǎng)格化點(diǎn)云,并在該 三角網(wǎng)格化點(diǎn)云中,根據(jù)點(diǎn)云中點(diǎn)與點(diǎn)之間的距離以及上述用戶輸入的參數(shù)將所述點(diǎn)云進(jìn) 行分類,分成多個(gè)子圖。
[0025] 在本較佳實(shí)施例中,所述的點(diǎn)云處理模塊101采用點(diǎn)云網(wǎng)格化后得到的三角形外 接圓內(nèi)沒有點(diǎn)與曲面局部曲率一致的原則,并通過包圍盒切割點(diǎn)云快速找臨近點(diǎn)的方法, 對(duì)點(diǎn)云進(jìn)行三角網(wǎng)格化。具體而言,所述點(diǎn)云中的任意三個(gè)點(diǎn)進(jìn)行連線組成三角形,所組成 的三角形需同時(shí)滿足兩個(gè)條件:條件一、該三角形的外接圓內(nèi)不能包含其它點(diǎn);條件二、該 三角形的向量與臨近三角形的向量的夾角不能超過預(yù)設(shè)的曲率閥值(例如,90度)。組成三 角形的方式如下:取點(diǎn)云中任意一點(diǎn)為基準(zhǔn),找與該基準(zhǔn)點(diǎn)距離最近的第二點(diǎn),將第一點(diǎn)與 第二點(diǎn)連成線,找連線臨近的第三點(diǎn),該三點(diǎn)連成的三角形外接圓中不包含點(diǎn)云中的其它 點(diǎn)(即除了組成三角形的三點(diǎn)之外的其它點(diǎn))。當(dāng)確定該三角形后,計(jì)算該三角形的向量與 所有該三角形相鄰的三角形的向量的夾角,若所計(jì)算的夾角中有一個(gè)夾角大于預(yù)設(shè)的曲率 閥值(例如,90度),則該三角形不合格,舍棄該三角形,然后重新尋找該連線臨近的第三點(diǎn), 以此為邏輯,直到找到合適的第三點(diǎn)所組成的三角形。
[0026] 將所述點(diǎn)云進(jìn)行分類,分成多個(gè)子圖的詳細(xì)流程將在下述的圖4中詳細(xì)介紹。
[0027] 步驟S3,對(duì)于每一個(gè)子圖,計(jì)算模塊102計(jì)算該子圖中的各點(diǎn)與相鄰子圖中各點(diǎn) 之間距離,并根據(jù)該點(diǎn)與點(diǎn)的距離計(jì)算相鄰子圖之間的距離。本發(fā)明較佳實(shí)施例中,與某一 子圖相鄰的子圖是指包括與該子圖存在網(wǎng)格化連線的子圖。例如,子圖A中包括所述點(diǎn)云 中的一個(gè)點(diǎn)a,在點(diǎn)云網(wǎng)格化之后,該點(diǎn)a與點(diǎn)云中的點(diǎn)b、點(diǎn)c、及點(diǎn)d分別連接組成了三角 形的邊,而點(diǎn)b屬于子圖B,點(diǎn)c屬于子圖C,及點(diǎn)d屬于子圖D,則子圖A相鄰的子圖包括子 圖B、子圖C及子圖D。本發(fā)明較佳實(shí)施例中,所述相鄰子圖之間的距離為該兩個(gè)子圖之間 的點(diǎn)的最短距離。例如,計(jì)算得到的子圖A中的各點(diǎn)與其相鄰子圖B中的各點(diǎn)的距離中的 最短距離為lcm,則相鄰子圖A與B之間的距離為lcm。
[0028] 步驟S4,噪聲點(diǎn)去除模塊103根據(jù)每個(gè)子圖中點(diǎn)的數(shù)量及/或相鄰子圖之間的距 離進(jìn)行噪聲點(diǎn)判斷,并去除所述噪聲點(diǎn)。本發(fā)明較佳實(shí)施例中,噪聲點(diǎn)去除模塊103根據(jù)預(yù) 設(shè)的點(diǎn)云中噪聲點(diǎn)去除效果執(zhí)行噪聲點(diǎn)的去除操作。當(dāng)需要去除點(diǎn)云中的所有噪聲點(diǎn)時(shí), 噪聲點(diǎn)去除模塊103只需判斷每個(gè)子圖中點(diǎn)的數(shù)量是否超過預(yù)設(shè)的點(diǎn)個(gè)數(shù),當(dāng)某一個(gè)子圖 中點(diǎn)的數(shù)量沒有超過該預(yù)設(shè)的點(diǎn)個(gè)數(shù)時(shí),認(rèn)為該子圖中的所有點(diǎn)為噪聲點(diǎn),并刪除該子圖 中的所有點(diǎn)。如果只需要去除一些離散的噪聲點(diǎn),則噪聲點(diǎn)去除模塊103不但判斷每個(gè)子 圖中點(diǎn)的數(shù)量是否超過預(yù)設(shè)的點(diǎn)個(gè)數(shù),還進(jìn)一步判斷少于所述預(yù)設(shè)的點(diǎn)個(gè)數(shù)的子圖與其