本發(fā)明涉及煤堆重構(gòu),尤其涉及一種面向煤場(chǎng)盤(pán)煤三維點(diǎn)云殘缺數(shù)據(jù)的圖像重建方法。
背景技術(shù):
1、火力發(fā)電是我國(guó)電力生產(chǎn)的主要來(lái)源,煤炭作為火力發(fā)電廠中的主要能源,占據(jù)了火力發(fā)電廠成本的絕大部分,對(duì)煤場(chǎng)的管理直接關(guān)乎到火力發(fā)電廠的成本控制與配煤摻燒的能力。煤場(chǎng)的智能化研究表明,提高配煤摻燒能力和簡(jiǎn)化煤堆盤(pán)點(diǎn)過(guò)程可以有效降低成本。目前,火力發(fā)電廠主要采用人工方法進(jìn)行煤場(chǎng)盤(pán)點(diǎn),這種方式雖然簡(jiǎn)單但效率低下,而使用斗輪機(jī)機(jī)載激光掃描的方法雖然精度高,但時(shí)間和成本都很高。
2、基于點(diǎn)云的三維重建技術(shù)目前在逆向工程、數(shù)據(jù)可視化、視覺(jué)以及醫(yī)療技術(shù)等領(lǐng)域應(yīng)用廣泛,該技術(shù)經(jīng)過(guò)長(zhǎng)期發(fā)展已取得顯著成果。根據(jù)點(diǎn)云三維重建方式的不同,可將其分為參數(shù)曲面重建、隱式曲面重建和網(wǎng)格曲面重建。其中參數(shù)曲面重建方法主要包括b樣條曲面重建和nurbs曲面重建。由于參數(shù)曲面重建方法需要對(duì)點(diǎn)云數(shù)據(jù)進(jìn)行參數(shù)化處理,然而散亂的點(diǎn)云數(shù)據(jù)參數(shù)化效果差,因此在重建時(shí)可能導(dǎo)致模型存在孔洞問(wèn)題,故參數(shù)曲面重建方法適用于表面光滑、紋理變化較小的物體重建。隱式曲面重建方法主要有泊松算法和移動(dòng)立方體算法。隱式曲面重建方法能較好地將結(jié)構(gòu)簡(jiǎn)單的物體擬合成光滑的曲面,但對(duì)于外表結(jié)構(gòu)復(fù)雜的物體則難以達(dá)到理想的重建效果,且重建過(guò)程耗時(shí)較長(zhǎng)。網(wǎng)格曲面重建方法在點(diǎn)云三維重建中應(yīng)用最為廣泛,經(jīng)常用于重建具有復(fù)雜結(jié)構(gòu)的物體。貪婪投影三角化算法是網(wǎng)格曲面重建算法的主要代表算法之一。盡管貪婪投影三角化算法能夠很好地重建出具有復(fù)雜拓?fù)浣Y(jié)構(gòu)的物體,但存在耗時(shí)長(zhǎng)且對(duì)大量點(diǎn)云數(shù)據(jù)進(jìn)行重建時(shí)模型會(huì)出現(xiàn)孔洞的問(wèn)題,需要采用點(diǎn)云孔洞修補(bǔ)算法進(jìn)行優(yōu)化。
3、目前,點(diǎn)云孔洞修補(bǔ)算法分為兩類(lèi):一種是針對(duì)三角網(wǎng)格面片模型的孔洞修補(bǔ),通過(guò)對(duì)散亂點(diǎn)云進(jìn)行三角化處理后的三角網(wǎng)格模型進(jìn)行后處理,以完成孔洞數(shù)據(jù)的補(bǔ)測(cè);另一種是基于散亂點(diǎn)云模型進(jìn)行修復(fù),基于徑向基函數(shù)的曲面孔洞修補(bǔ)算法通過(guò)持續(xù)三角化孔洞區(qū)域來(lái)增加孔洞數(shù)據(jù)填充點(diǎn),但這種方法較為復(fù)雜且計(jì)算量較大。
技術(shù)實(shí)現(xiàn)思路
1、針對(duì)上述現(xiàn)有技術(shù)的不足,本發(fā)明基于改進(jìn)的貪婪三角化算法和孔洞修補(bǔ)算法,提出了一種面向煤場(chǎng)盤(pán)煤三維點(diǎn)云殘缺數(shù)據(jù)的圖像重建方法,旨在解決目前電廠盤(pán)煤三維點(diǎn)云殘缺數(shù)據(jù)的圖像重建實(shí)際需求。
2、本發(fā)明提出的一種面向煤場(chǎng)盤(pán)煤三維點(diǎn)云殘缺數(shù)據(jù)的圖像重建方法,該方法包括如下步驟:
3、步驟1:利用激光雷達(dá)采集煤堆的初始三維點(diǎn)云數(shù)據(jù);
4、步驟2:采用點(diǎn)云濾波算法去除初始三維點(diǎn)云數(shù)據(jù)中的噪聲,得到去噪后的三維點(diǎn)云數(shù)據(jù);
5、步驟3:采用自適應(yīng)的點(diǎn)云精簡(jiǎn)算法對(duì)去噪后的三維點(diǎn)云數(shù)據(jù)進(jìn)行點(diǎn)云精簡(jiǎn),得到精簡(jiǎn)后的三維點(diǎn)云數(shù)據(jù);
6、步驟4:采用改進(jìn)的貪婪三角化算法構(gòu)建精簡(jiǎn)后的三維點(diǎn)云數(shù)據(jù)中各點(diǎn)之間的三角網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu);
7、步驟5:采用孔洞識(shí)別算法識(shí)別出三角網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)中所有的孔洞;
8、步驟6:采用最小角網(wǎng)格填充算法在三角網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)中所有識(shí)別出的孔洞處添加補(bǔ)丁曲面;
9、步驟7:利用網(wǎng)格細(xì)分算法將添加的補(bǔ)丁曲面與三角網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)中的原始曲面進(jìn)行細(xì)分處理;
10、步驟8:采用網(wǎng)格平滑算法對(duì)細(xì)分處理后的三角網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)進(jìn)行平滑處理,得到修補(bǔ)重建后的三維點(diǎn)云數(shù)據(jù);
11、所述步驟2進(jìn)一步包括:
12、步驟2.1:采用直通濾波去除初始三維點(diǎn)云數(shù)據(jù)中的無(wú)效點(diǎn)云數(shù)據(jù),得到直通濾波后的三維點(diǎn)云數(shù)據(jù);
13、步驟2.2:采用基于統(tǒng)計(jì)學(xué)原理的統(tǒng)計(jì)濾波法去除直通濾波后的三維點(diǎn)云數(shù)據(jù)中的大尺度噪聲,得到統(tǒng)計(jì)濾波后的三維點(diǎn)云數(shù)據(jù);
14、步驟2.2.1:對(duì)于直通濾波后的三維點(diǎn)云數(shù)據(jù)中的任意點(diǎn)pn,計(jì)算點(diǎn)pn與點(diǎn)pn鄰域內(nèi)k個(gè)近鄰點(diǎn)的k近鄰域平均距離和標(biāo)準(zhǔn)差;其中n為三維點(diǎn)云數(shù)據(jù)中第n個(gè)點(diǎn),且n=1,...,m;m表示三維點(diǎn)云數(shù)據(jù)中點(diǎn)的數(shù)量;
15、步驟2.2.2:利用直通濾波后的三維點(diǎn)云數(shù)據(jù)中每個(gè)點(diǎn)與該點(diǎn)鄰域內(nèi)k個(gè)近鄰點(diǎn)的k近鄰域平均距離和標(biāo)準(zhǔn)差計(jì)算直通濾波后的三維點(diǎn)云數(shù)據(jù)中點(diǎn)與點(diǎn)之間距離的平均值和點(diǎn)與點(diǎn)之間距離的方差;
16、步驟2.2.3:根據(jù)直通濾波后的三維點(diǎn)云數(shù)據(jù)中點(diǎn)與點(diǎn)之間距離的平均值和點(diǎn)與點(diǎn)之間距離的方差計(jì)算距離閾值;
17、步驟2.2.4:分別判斷直通濾波后的三維點(diǎn)云數(shù)據(jù)中每個(gè)點(diǎn)與該點(diǎn)鄰域內(nèi)k個(gè)近鄰點(diǎn)的k近鄰域平均距離μn是否大于距離閾值s,若是則去除該點(diǎn);反之則保留該點(diǎn),得到統(tǒng)計(jì)濾波后的三維點(diǎn)云數(shù)據(jù);
18、步驟2.3:利用移動(dòng)最小二乘法去除統(tǒng)計(jì)濾波后的三維點(diǎn)云數(shù)據(jù)中的小尺度噪聲,得到去噪后的三維點(diǎn)云數(shù)據(jù);
19、步驟2.3.1:構(gòu)建擬合函數(shù);
20、步驟2.3.2:選擇三次樣條函數(shù)作為擬合函數(shù)的基函數(shù);
21、步驟2.3.3:對(duì)固定點(diǎn)u鄰域內(nèi)的近鄰點(diǎn)進(jìn)行最小二乘擬合,通過(guò)計(jì)算固定點(diǎn)的局部曲率和法向量來(lái)對(duì)統(tǒng)計(jì)濾波后的三維點(diǎn)云數(shù)據(jù)進(jìn)行平滑處理,得到去噪后的三維點(diǎn)云數(shù)據(jù);
22、所述步驟3進(jìn)一步包括:
23、步驟3.1:對(duì)于去噪后的三維點(diǎn)云數(shù)據(jù)中任意一個(gè)點(diǎn),將該點(diǎn)作為目標(biāo)點(diǎn),采用kd-tree對(duì)目標(biāo)點(diǎn)進(jìn)行k近鄰搜索,得到目標(biāo)點(diǎn)的k個(gè)近鄰點(diǎn);
24、步驟3.2:采用最小二乘法將目標(biāo)點(diǎn)與目標(biāo)點(diǎn)的k個(gè)近鄰點(diǎn)進(jìn)行曲面擬合,計(jì)算目標(biāo)點(diǎn)的曲率,得到去噪后的三維點(diǎn)云數(shù)據(jù)中所有點(diǎn)的曲率;
25、步驟3.3:設(shè)置曲率閾值,采用改進(jìn)的八叉樹(shù)體素濾波算法對(duì)去噪后的三維點(diǎn)云數(shù)據(jù)中所有曲率大于曲率閾值的點(diǎn)進(jìn)行點(diǎn)云精簡(jiǎn),得到精簡(jiǎn)后的三維點(diǎn)云數(shù)據(jù);
26、所述步驟3.2進(jìn)一步包括:
27、步驟3.2.1:構(gòu)建曲面參數(shù)方程;
28、步驟3.2.2:對(duì)于曲面q上的任意一點(diǎn)(α0,β0),構(gòu)建曲面的第二基本公式,進(jìn)而計(jì)算點(diǎn)(α0,β0)與該點(diǎn)的k個(gè)近鄰點(diǎn)之間的距離;
29、所述曲面的第二基本公式表示為:
30、
31、其中l(wèi)、m和n均為曲面q的第二類(lèi)基本參量;α和β均為變量表示;tαα(α0,β0)為曲面參數(shù)方程對(duì)α的二階偏導(dǎo)數(shù)在點(diǎn)(α0,β0)處的值;tββ(α0,β0)為曲面參數(shù)方程對(duì)β的二階偏導(dǎo)數(shù)在點(diǎn)(α0,β0)處的值;tαβ(α0,β0)為曲面參數(shù)方程對(duì)α和β的二階偏導(dǎo)數(shù)在點(diǎn)(α0,β0)處的值;h為點(diǎn)(α0,β0)的法向量;為點(diǎn)(α0,β0)與該點(diǎn)的k個(gè)近鄰點(diǎn)之間的距離;δα和δβ分別為α和β的增量;o(δα2,δβ2)為無(wú)窮小項(xiàng);
32、步驟3.2.3:計(jì)算曲面的平均曲率;
33、所述曲面的平均曲率表示為:
34、
35、其中h表示曲面的平均曲率;g、e和f均為曲面q的第一類(lèi)基本參量;
36、步驟3.2.4:根據(jù)曲面的平均曲率確定目標(biāo)點(diǎn)的曲率;
37、步驟3.2.5:重復(fù)步驟3.2.1-3.2.4,得到去噪后的三維點(diǎn)云數(shù)據(jù)中所有點(diǎn)的曲率;
38、所述步驟3.3進(jìn)一步包括:
39、步驟3.3.1:設(shè)置曲率閾值,從去噪后的三維點(diǎn)云數(shù)據(jù)中篩選出所有曲率大于曲率閾值的點(diǎn);
40、步驟3.3.2:根據(jù)包含所有篩選出的點(diǎn)的點(diǎn)云空間的最大尺寸構(gòu)建第一個(gè)立方體,該立方體的長(zhǎng)、寬、高分別記為x長(zhǎng)、y寬、z高,體積為v;
41、步驟3.3.3:將第一個(gè)立方體劃分為c個(gè)子立方體,計(jì)算每個(gè)子立方體的重心,并將重心坐標(biāo)記為(x0,y0,z0);其中x0、y0和z0分別為重心的橫坐標(biāo)、縱坐標(biāo)和豎坐標(biāo);
42、步驟3.3.4:分別計(jì)算每個(gè)子立方體中各點(diǎn)與該子立方體中重心的距離,僅保留與重心距離最近的點(diǎn)和與重心距離最遠(yuǎn)的點(diǎn),得到精簡(jiǎn)后的三維點(diǎn)云數(shù)據(jù);
43、所述與重心距離最近的點(diǎn)和與重心距離最遠(yuǎn)的點(diǎn)的坐標(biāo)表示為:
44、
45、其中xmax表示與重心距離最遠(yuǎn)的點(diǎn)的橫坐標(biāo);ymax表示與重心距離最遠(yuǎn)的點(diǎn)的縱坐標(biāo);zmax表示與重心距離最遠(yuǎn)的點(diǎn)的豎坐標(biāo);η表示子立方體內(nèi)的點(diǎn)數(shù)量;γ表示子立方體中的第γ個(gè)點(diǎn);表示每個(gè)點(diǎn)的體積;xγ表示第γ個(gè)點(diǎn)的橫坐標(biāo);lmax表示與重心最遠(yuǎn)的距離;yγ表示第γ個(gè)點(diǎn)的縱坐標(biāo);zγ表示第γ個(gè)點(diǎn)的豎坐標(biāo);xmin表示與重心距離最近的點(diǎn)的橫坐標(biāo);ymin表示與重心距離最近的點(diǎn)的縱坐標(biāo);zmin表示與重心距離最近的點(diǎn)的豎坐標(biāo);lmin表示與重心最近的距離;
46、所述步驟4進(jìn)一步包括:
47、步驟4.1:對(duì)精簡(jiǎn)后的三維點(diǎn)云數(shù)據(jù)進(jìn)行平面投影,得到二維平面上的點(diǎn)集;
48、步驟4.1.1:對(duì)于精簡(jiǎn)后的三維點(diǎn)云數(shù)據(jù)中任意點(diǎn)p,根據(jù)由點(diǎn)p與點(diǎn)p的k個(gè)近鄰點(diǎn)擬合出的曲面在點(diǎn)p處的切平面法向量,構(gòu)建點(diǎn)p的k-近鄰點(diǎn)的切平面方程;
49、步驟4.1.2:對(duì)切平面法向量進(jìn)行單位化運(yùn)算,計(jì)算點(diǎn)p的第i個(gè)近鄰點(diǎn)pi到切平面的距離;
50、步驟4.1.3:基于最小二乘原理,計(jì)算點(diǎn)p的k個(gè)近鄰點(diǎn)到切平面的距離的平方和,當(dāng)該平方和最小時(shí),求解點(diǎn)p的k-近鄰點(diǎn)的切平面方程;
51、步驟4.1.4:根據(jù)求解得到的切平面方程將點(diǎn)p的k個(gè)近鄰點(diǎn)投影到切平面,得到二維平面上的點(diǎn)集;
52、步驟4.2:采用基于傳統(tǒng)逐點(diǎn)插入法的delaunay三角網(wǎng)剖分算法對(duì)二維平面上的點(diǎn)集進(jìn)行三角剖分,得到精簡(jiǎn)后的三維點(diǎn)云數(shù)據(jù)中各點(diǎn)之間的三角網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu);
53、步驟4.2.1:構(gòu)造一個(gè)包含二維平面上的點(diǎn)集中所有點(diǎn)的超級(jí)三角形,確定二維平面上的點(diǎn)集分別在二維坐標(biāo)系坐標(biāo)軸正負(fù)方向上的極值點(diǎn)xmax1,xmin1,ymax1和ymin1,并添加正偏移值offset,且offset>0,構(gòu)建該二維點(diǎn)集的最小包圍盒;其中xmax1為二維平面上的點(diǎn)集在x軸上正方向上的極值點(diǎn);xmin1為二維平面上的點(diǎn)集在x軸上負(fù)方向上的極值點(diǎn);ymax1為二維平面上的點(diǎn)集在y軸上正方向上的極值點(diǎn);ymin1為二維平面上的點(diǎn)集在y軸上負(fù)方向上的極值點(diǎn);
54、步驟4.2.2:遍歷二維平面上的點(diǎn)集中的所有點(diǎn),并依次將每個(gè)點(diǎn)插入一個(gè)初始的三角形格網(wǎng),得到新的三角形格網(wǎng);
55、步驟4.2.3:對(duì)新的三角形格網(wǎng)進(jìn)行局部?jī)?yōu)化,得到優(yōu)化后的三角形格網(wǎng);
56、步驟4.2.4:在優(yōu)化后的三角形格網(wǎng)中刪除超級(jí)三角形的邊和頂點(diǎn),得到精簡(jiǎn)后的三維點(diǎn)云數(shù)據(jù)中各點(diǎn)之間的三角網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu);
57、所述步驟5進(jìn)一步包括:
58、步驟5.1:獲取三角網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)中所有三角形的邊以及每條邊的面鄰居關(guān)系,根據(jù)每條邊的面鄰居關(guān)系將所有獲取的邊分為網(wǎng)格內(nèi)部邊和網(wǎng)格邊界邊;
59、步驟5.2:調(diào)用polygonmesh數(shù)據(jù)結(jié)構(gòu)獲取三角網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的所有三角形中頂點(diǎn)和邊的連接關(guān)系,遍歷所有頂點(diǎn)并篩選出沒(méi)有被任何三角形引用的頂點(diǎn),根據(jù)篩選出的頂點(diǎn)和邊的連接關(guān)系識(shí)別出三角網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的孔洞;
60、所述步驟6進(jìn)一步包括:
61、步驟6.1:獲取孔洞的網(wǎng)格邊界邊以及邊界頂點(diǎn)的坐標(biāo),通過(guò)計(jì)算每條網(wǎng)格邊界邊中兩個(gè)邊界頂點(diǎn)在空間中的歐式距離得到該條網(wǎng)格邊界邊的邊長(zhǎng),并計(jì)算出所有網(wǎng)格邊界邊的邊長(zhǎng)平均值;
62、步驟6.2:對(duì)于每一條網(wǎng)格邊界邊的一個(gè)頂點(diǎn),計(jì)算與該頂點(diǎn)對(duì)應(yīng)的兩個(gè)相鄰邊的鄰邊夾角;
63、步驟6.3:篩選出鄰邊夾角值最小的邊界頂點(diǎn),計(jì)算與該邊界頂點(diǎn)相鄰的兩個(gè)邊界頂點(diǎn)之間的距離d;
64、步驟6.4:根據(jù)距離d在三角網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)中添加三角面片;
65、步驟6.5:更新孔洞的邊界頂點(diǎn)的坐標(biāo),并刪除已完成修補(bǔ)的邊界頂點(diǎn)pi;
66、步驟6.6:判斷是否還有未修補(bǔ)的邊界頂點(diǎn),若是則重復(fù)步驟6.2-6.5;若否則已完成孔洞填補(bǔ);
67、所述步驟7進(jìn)一步包括:
68、步驟7.1:在添加補(bǔ)丁曲面后的三角網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)中增加一個(gè)新的頂點(diǎn)p',并根據(jù)添加補(bǔ)丁曲面后的三角網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)中所有頂點(diǎn)的位置計(jì)算新的頂點(diǎn)p'的位置;
69、步驟7.2:在添加補(bǔ)丁曲面后的三角網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)中添加新的邊點(diǎn);
70、步驟7.3:對(duì)每個(gè)新的頂點(diǎn)p',將點(diǎn)p'分別和與點(diǎn)p'相鄰的所有新的頂點(diǎn)相連得到新的邊;對(duì)于每個(gè)三角形,將該三角形中的3個(gè)新的邊點(diǎn)互相連接形成新的邊;
71、步驟7.4:將每3個(gè)互相連接的新的邊點(diǎn)和新的頂點(diǎn)組成新的三角形,完成三角網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的細(xì)分處理;
72、所述步驟8進(jìn)一步包括:
73、步驟8.1:建立能量函數(shù);
74、所述能量函數(shù)表示為:
75、
76、其中e(f)表示能量函數(shù);(v,w)表示一個(gè)積分區(qū)間;fss表示二階導(dǎo)數(shù);s為自變量;
77、步驟8.2:采用變分微積分求解出令能量函數(shù)最小的功能函數(shù)f;
78、步驟8.2.1:假設(shè)f是能量函數(shù)e(f)的極小值,設(shè)是區(qū)間為(v,w)的任意函數(shù),且在區(qū)間(v,w)中滿(mǎn)足一階可微,同時(shí)滿(mǎn)足
79、步驟8.2.2:假設(shè)存在函數(shù)其中ζ為系數(shù);
80、步驟8.2.3:假設(shè)f(s)是能量函數(shù)e(f)的極小值,當(dāng)ζ=0時(shí),能量函數(shù)取得極小值,且能量函數(shù)的導(dǎo)數(shù)也必為零記為:
81、
82、將公式(33)變形為:
83、
84、其中表示f表示f(s);
85、步驟8.2.4:計(jì)算關(guān)于ζ的導(dǎo)數(shù);
86、所述關(guān)于ζ的導(dǎo)數(shù)表示為:
87、
88、其中表示的二階導(dǎo)數(shù);fss表示f的二階導(dǎo)數(shù);
89、步驟8.2.5:當(dāng)ζ=0時(shí),在關(guān)于ζ的導(dǎo)數(shù)中等式右邊必須滿(mǎn)足等于零的條件,記為:
90、
91、步驟8.2.6:對(duì)公式(36)進(jìn)行分步積分得到:
92、
93、其中fsss表示f(s)的三階導(dǎo)數(shù),表示
94、步驟8.2.7:結(jié)合對(duì)公式(37)進(jìn)行簡(jiǎn)化得到:
95、
96、步驟8.2.8:對(duì)公式(38)進(jìn)行分步積分得到:
97、
98、其中fssss表示f(s)的四階導(dǎo)數(shù);
99、步驟8.2.9:根據(jù)對(duì)公式(39)進(jìn)行簡(jiǎn)化得到:
100、
101、步驟8.2.10:在滿(mǎn)足公式(38)成立、且函數(shù)可微條件下的唯一情況為:
102、fssss=0?(41)
103、步驟8.2.11:根據(jù)公式(41)對(duì)公式(39)進(jìn)行等效,得到:
104、δδf=δ2f=0??????(42)
105、其中δ2為雙拉普拉斯算子;
106、步驟8.2.12:對(duì)于三角網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)中細(xì)化處理后的補(bǔ)丁曲面,通過(guò)調(diào)用libigl庫(kù)中的laplace-beltrami算法求解公式(40),得到平滑處理后的三角網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),完成三維點(diǎn)云數(shù)據(jù)的修補(bǔ)重建。
107、采用上述技術(shù)方案所產(chǎn)生的有益效果在于:
108、(1)由于火電廠場(chǎng)景環(huán)境復(fù)雜,使得通過(guò)激光雷達(dá)獲取到的點(diǎn)云數(shù)據(jù)中往往攜帶大量特征信息,且獲取的點(diǎn)云數(shù)據(jù)中還會(huì)存在許多具有重復(fù)特征和無(wú)特征的點(diǎn),故本發(fā)明方法通過(guò)對(duì)貪婪三角化算法進(jìn)行改進(jìn)提出了一種輕量化貪婪三角化算法,能較好地恢復(fù)點(diǎn)云數(shù)據(jù)的原始輪廓。
109、(2)針對(duì)火電廠激光雷達(dá)測(cè)量目標(biāo)周?chē)鷪?chǎng)景復(fù)雜、測(cè)量數(shù)據(jù)分布不均勻等問(wèn)題,本發(fā)明方法通過(guò)對(duì)獲取到的盤(pán)煤點(diǎn)云殘缺數(shù)據(jù)進(jìn)行預(yù)處理以獲得平滑特征明顯的點(diǎn)云數(shù)據(jù)。
110、(3)針對(duì)目前許多點(diǎn)云精簡(jiǎn)算法存在的計(jì)算量較大和精簡(jiǎn)后模型失真等問(wèn)題,考慮到實(shí)際應(yīng)用中儲(chǔ)煤多堆成規(guī)則的梯形,形狀較為規(guī)整,本發(fā)明方法提出一種改進(jìn)的八叉樹(shù)體素濾波算法,用于對(duì)前期處理后的點(diǎn)云數(shù)據(jù)進(jìn)行精簡(jiǎn),在降低點(diǎn)云數(shù)據(jù)的復(fù)雜性的同時(shí)盡量保持原始數(shù)據(jù)的特征,減少計(jì)算量。
111、(4)針對(duì)在采用貪婪三角化算法進(jìn)行平面區(qū)域三角化的過(guò)程中由于使用區(qū)域生長(zhǎng)算法進(jìn)行三角剖分時(shí)需要多次遍歷所有點(diǎn),而造成的計(jì)算機(jī)性能占用十分嚴(yán)重且計(jì)算時(shí)間較長(zhǎng)的問(wèn)題,本發(fā)明方法提出將三維點(diǎn)云數(shù)據(jù)投影映射到二維平面上,再使用逐點(diǎn)插入法進(jìn)行二維平面的三角剖分,并根據(jù)點(diǎn)云數(shù)據(jù)的深度值將二維平面上的拓?fù)浣Y(jié)構(gòu)映射回三維空間。
112、(5)針對(duì)傳統(tǒng)孔洞修補(bǔ)算法由于不考慮補(bǔ)丁曲面與原始曲面交界處的曲率變化,導(dǎo)致的修補(bǔ)后的曲面與原始曲面曲率相差較大且修補(bǔ)效果較差的問(wèn)題,本發(fā)明方法提出了一種改進(jìn)的孔洞修補(bǔ)算法,首先采用孔洞識(shí)別算法識(shí)別出所有的孔洞并進(jìn)行分類(lèi),其次通過(guò)最小角網(wǎng)格填充算法在所有孔洞處添加補(bǔ)丁曲面,接著利用網(wǎng)格細(xì)分算法將補(bǔ)丁曲面細(xì)分,從而獲得更多可操作的頂點(diǎn);最后通過(guò)網(wǎng)格平滑算法使補(bǔ)丁曲面過(guò)渡更加平滑,解決了交界處曲率變化較大的問(wèn)題。
113、(6)針對(duì)通過(guò)最小角網(wǎng)格填充算法生成的孔洞補(bǔ)丁往往會(huì)產(chǎn)生三角面片形狀狹長(zhǎng)、大小不均,且與原模型曲面輪廓不符,有較明顯的過(guò)度的問(wèn)題,本發(fā)明方法采用雙拉普拉斯算子變形法來(lái)改變孔洞補(bǔ)丁處的網(wǎng)格形狀,使添加的曲面更加平滑并更加接近原模型曲面輪廓。
114、綜上所述,本發(fā)明方法提出了基于煤場(chǎng)殘缺點(diǎn)云數(shù)據(jù)的圖像重建方法和孔洞修補(bǔ)技術(shù),即提出了一種輕量化貪婪三角化曲面重建算法及改進(jìn)的孔洞修補(bǔ)算法,不僅使貪婪三角化算法更加輕量化,能較好地恢復(fù)點(diǎn)云數(shù)據(jù)的原始輪廓,還可以自動(dòng)識(shí)別孔洞邊緣,實(shí)現(xiàn)多個(gè)孔洞的并行修補(bǔ)處理,大大提高了孔洞修補(bǔ)的效率,具有可預(yù)期較大的經(jīng)濟(jì)價(jià)值和社會(huì)價(jià)值。