本發(fā)明涉及點(diǎn)云處理領(lǐng)域,具體而言,涉及一種點(diǎn)云孔洞修補(bǔ)方法、裝置、電子設(shè)備及存儲(chǔ)介質(zhì)。
背景技術(shù):
1、隨著計(jì)算機(jī)圖形學(xué)和三維建模技術(shù)的發(fā)展,網(wǎng)格補(bǔ)洞成為了一項(xiàng)重要的技術(shù)。在現(xiàn)有技術(shù)中,網(wǎng)格補(bǔ)洞通常通過求解隱式函數(shù)或使用徑向基函數(shù)等方法直接在網(wǎng)格表面上進(jìn)行補(bǔ)洞,以創(chuàng)建一個(gè)平滑且連續(xù)的表面來填補(bǔ)缺失區(qū)域。這類方法的應(yīng)用十分廣泛,比如在逆向工程、醫(yī)學(xué)成像和虛擬現(xiàn)實(shí)等領(lǐng)域。例如,開源cgal(computational?geometryalgorithms?library)庫就采用了這些方法來實(shí)現(xiàn)點(diǎn)云補(bǔ)洞,其具體步驟包括孔洞識(shí)別、孔洞三角化、生成網(wǎng)格補(bǔ)丁以及網(wǎng)格精細(xì)化與整形處理。
2、孔洞識(shí)別是通過尋找邊界頂點(diǎn)來自動(dòng)識(shí)別,這一過程對(duì)于后續(xù)的補(bǔ)洞操作至關(guān)重要。隨后,一旦確定了孔洞的位置,下一步便是對(duì)其進(jìn)行三角化處理,即找到由該邊界定義的三維多邊形的三角剖分,這通常是在不引入任何新頂點(diǎn)的情況下完成的。接著,生成網(wǎng)格補(bǔ)丁的過程則是通過最小化所有可能的三角形補(bǔ)片評(píng)估的質(zhì)量函數(shù)q,以此來選擇最優(yōu)的網(wǎng)格補(bǔ)丁。該質(zhì)量函數(shù)首先關(guān)注于最小化面片三角形之間的最差二面角,然后再著眼于最小化面片的總表面積,作為最終的策略。此外,cgal庫通過將搜索空間縮小到孔洞邊界頂點(diǎn)的3d?delaunay三角剖分的面,從所有可能的補(bǔ)丁中尋找最佳補(bǔ)丁,從而顯著提高了算法的性能。
3、盡管如此,現(xiàn)有的基于三角網(wǎng)格的修復(fù)方法在面對(duì)一般的規(guī)則物體(如機(jī)械零件、動(dòng)物點(diǎn)云模型)時(shí),表現(xiàn)出較好的修復(fù)效果;但對(duì)于不規(guī)則的大型點(diǎn)云模型或孔洞區(qū)域較大的網(wǎng)格模型,修復(fù)效果則不盡如人意。特別是在處理孔洞直徑大于3厘米的情況時(shí),一次性的網(wǎng)格補(bǔ)洞方法難以達(dá)到理想的效果,可能需要多次補(bǔ)洞濾波才能實(shí)現(xiàn)完整的修復(fù)。同時(shí),補(bǔ)洞閾值的設(shè)定也是一個(gè)關(guān)鍵因素,過高的閾值可能導(dǎo)致模型結(jié)構(gòu)的變化,例如沿著焊縫上下各有一個(gè)直徑大于5厘米的孔洞時(shí),如果閾值設(shè)置得過高,可能會(huì)導(dǎo)致兩個(gè)孔洞相連。另外,對(duì)于點(diǎn)云數(shù)據(jù)量較大的情況,現(xiàn)有的補(bǔ)洞算法可能會(huì)變得非常耗時(shí)。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明的目的在于提供一種點(diǎn)云孔洞修補(bǔ)方法、裝置、電子設(shè)備及存儲(chǔ)介質(zhì),能夠提高點(diǎn)云補(bǔ)洞的效果和效率。
2、為了實(shí)現(xiàn)上述目的,本申請實(shí)施例采用的技術(shù)方案如下:
3、第一方面,本申請實(shí)施例提供了一種點(diǎn)云孔洞修補(bǔ)方法,所述方法包括:
4、確定待檢測工件的點(diǎn)云;
5、基于所述待檢測工件的點(diǎn)云,生成工件點(diǎn)云網(wǎng)格;
6、確定所述工件點(diǎn)云網(wǎng)格中的孔洞;
7、確定第一預(yù)設(shè)最大孔洞邊數(shù);
8、針對(duì)各孔洞,將所述孔洞的直徑與預(yù)設(shè)的最大孔直徑進(jìn)行比較;
9、在所述孔洞的直徑大于所述預(yù)設(shè)的最大孔洞直徑時(shí),基于所述第一預(yù)設(shè)最大孔洞邊數(shù)、所述預(yù)設(shè)的最大孔洞直徑以及cgal庫補(bǔ)洞方式對(duì)所述孔洞進(jìn)行修補(bǔ);
10、在所述孔洞的直徑小于或者等于所述預(yù)設(shè)的最大孔洞直徑時(shí),基于第一預(yù)設(shè)最大孔洞邊數(shù)、預(yù)設(shè)的最大孔洞直徑以及最小二乘法對(duì)所述孔洞進(jìn)行修補(bǔ)。
11、在可選的實(shí)施方式中,所述方法還包括:
12、確定基于cgal庫補(bǔ)洞方式修補(bǔ)后的各孔洞;
13、針對(duì)各修補(bǔ)后的孔洞,確定各所述修補(bǔ)后的孔洞的孔洞面積;
14、在所述孔洞面積均小于或者等于預(yù)設(shè)孔洞面積時(shí),完成所述工件點(diǎn)云網(wǎng)格的孔洞修補(bǔ)。
15、在可選的實(shí)施方式中,所述方法還包括:
16、確定基于cgal庫補(bǔ)洞方式修補(bǔ)后的各孔洞;
17、針對(duì)各修補(bǔ)后的孔洞,確定各所述修補(bǔ)后的孔洞的孔洞面積;
18、在所述孔洞面積大于預(yù)設(shè)孔洞面積時(shí),對(duì)所述第一預(yù)設(shè)最大孔洞邊數(shù)進(jìn)行調(diào)整;
19、將所述調(diào)整后的第一預(yù)設(shè)最大孔洞邊數(shù)作為新的第一預(yù)設(shè)最大孔洞邊數(shù);
20、返回執(zhí)行所述基于所述第一預(yù)設(shè)最大孔洞邊數(shù)、所述預(yù)設(shè)的最大孔洞直徑以及cgal庫補(bǔ)洞方式對(duì)所述孔洞進(jìn)行修補(bǔ)的步驟。
21、在可選的實(shí)施方式中,所述在所述孔洞面積大于預(yù)設(shè)孔洞面積時(shí),對(duì)所述最大孔洞邊數(shù)進(jìn)行調(diào)整的步驟,包括:
22、獲取最大孔洞邊數(shù)列表,其中,所述孔洞邊數(shù)列表包含按照從小到大排序的各預(yù)設(shè)最大孔洞邊數(shù);
23、在所述孔洞面積大于預(yù)設(shè)孔洞面積時(shí),則從所述最大孔洞邊數(shù)列表中獲取排序在所述第一預(yù)設(shè)的最大孔洞邊數(shù)之后的第二預(yù)設(shè)最大孔洞邊數(shù),作為調(diào)整后的最大孔洞邊數(shù)。
24、在可選的實(shí)施方式中,所述方法還包括:
25、確定孔洞修補(bǔ)后的目標(biāo)點(diǎn)云網(wǎng)格;
26、基于點(diǎn)云采樣對(duì)所述目標(biāo)點(diǎn)云網(wǎng)格進(jìn)行恢復(fù),得到孔洞修補(bǔ)后的目標(biāo)點(diǎn)云。
27、在可選的實(shí)施方式中,所述方法還包括:
28、確定所述工件點(diǎn)云網(wǎng)格的密度;
29、基于所述密度確定預(yù)設(shè)孔洞面積。
30、在可選的實(shí)施方式中,所述確定所述工件點(diǎn)云網(wǎng)格中的孔洞的步驟,包括:
31、確定工件點(diǎn)云網(wǎng)格中的所有半邊;
32、從所有半邊中確定邊界半邊;
33、基于各邊界半邊,確定所述工件點(diǎn)云網(wǎng)格中的孔洞。
34、第二方面,本申請實(shí)施例提供了一種點(diǎn)云孔洞修補(bǔ)裝置,所述裝置包括:
35、確定模塊,用于確定待檢測工件的點(diǎn)云;
36、點(diǎn)云網(wǎng)格生成模塊,用于基于所述待檢測工件的點(diǎn)云,生成工件點(diǎn)云網(wǎng)格;
37、所述確定模塊還用于:確定所述工件點(diǎn)云網(wǎng)格中的孔洞;確定第一預(yù)設(shè)最大孔洞邊數(shù);
38、比較模塊,用于針對(duì)各孔洞,將所述孔洞的直徑與預(yù)設(shè)的最大孔直徑進(jìn)行比較;
39、修補(bǔ)模塊,用于在所述孔洞的直徑大于所述預(yù)設(shè)的最大孔洞直徑時(shí),基于所述第一預(yù)設(shè)最大孔洞邊數(shù)、所述預(yù)設(shè)的最大孔洞直徑以及cgal庫補(bǔ)洞方式對(duì)所述孔洞進(jìn)行修補(bǔ);在所述孔洞的直徑小于或者等于所述預(yù)設(shè)的最大孔洞直徑時(shí),基于第一預(yù)設(shè)最大孔洞邊數(shù)、預(yù)設(shè)的最大孔洞直徑以及最小二乘法對(duì)所述孔洞進(jìn)行修補(bǔ)。
40、第三方面,本申請實(shí)施例提供了一種電子設(shè)備,包括存儲(chǔ)器和處理器,所述存儲(chǔ)器存儲(chǔ)有計(jì)算機(jī)程序,所述處理器執(zhí)行所述計(jì)算機(jī)程序時(shí)實(shí)現(xiàn)所述點(diǎn)云孔洞修補(bǔ)方法的步驟。
41、第四方面,本申請實(shí)施例提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,該計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)所述點(diǎn)云孔洞修補(bǔ)方法的步驟。
42、本申請具有以下有益效果:
43、本申請通過確定待檢測工件的點(diǎn)云,基于待檢測工件的點(diǎn)云,生成工件點(diǎn)云網(wǎng)格,確定工件點(diǎn)云網(wǎng)格中的孔洞,確定第一預(yù)設(shè)最大孔洞邊數(shù),針對(duì)各孔洞,將孔洞的直徑與預(yù)設(shè)的最大孔直徑進(jìn)行比較,在孔洞的直徑大于預(yù)設(shè)的最大孔洞直徑時(shí),基于第一預(yù)設(shè)最大孔洞邊數(shù)、預(yù)設(shè)的最大孔洞直徑以及cgal庫補(bǔ)洞方式對(duì)孔洞進(jìn)行修補(bǔ),在孔洞的直徑小于或者等于預(yù)設(shè)的最大孔洞直徑時(shí),基于第一預(yù)設(shè)最大孔洞邊數(shù)、預(yù)設(shè)的最大孔洞直徑以及最小二乘法對(duì)孔洞進(jìn)行修補(bǔ),可以提高點(diǎn)云孔洞的修補(bǔ)效率和效果。
1.一種點(diǎn)云孔洞修補(bǔ)方法,其特征在于,所述方法包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括:
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括:
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述在所述孔洞面積大于預(yù)設(shè)孔洞面積時(shí),對(duì)所述最大孔洞邊數(shù)進(jìn)行調(diào)整的步驟,包括:
5.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述方法還包括:
6.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述方法還包括:
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述確定所述工件點(diǎn)云網(wǎng)格中的孔洞的步驟,包括:
8.一種點(diǎn)云孔洞修補(bǔ)裝置,其特征在于,所述裝置包括:
9.一種電子設(shè)備,其特征在于,包括存儲(chǔ)器和處理器,所述存儲(chǔ)器存儲(chǔ)有計(jì)算機(jī)程序,所述處理器執(zhí)行所述計(jì)算機(jī)程序時(shí)實(shí)現(xiàn)權(quán)利要求1-7任一項(xiàng)所述方法的步驟。
10.一種存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,其特征在于,該計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)權(quán)利要求1-7中任一項(xiàng)所述方法的步驟。