法線空間采樣
NormalSpaceSampling即:法線空間采樣,它在法向量空間內(nèi)均勻隨機(jī)抽樣,使所選點(diǎn)之間的法線分布盡可能大,結(jié)果表現(xiàn)為地物特征變化大的地方剩余點(diǎn)較多,變化小的地方剩余點(diǎn)稀少,可有效保持地物特征。實(shí)現(xiàn)方法如下:
1、首先計(jì)算每個(gè)點(diǎn)的K領(lǐng)域,然后計(jì)算點(diǎn)到領(lǐng)域點(diǎn)的法線夾角值,以此來近似達(dá)到曲率的效果并提高計(jì)算效率,因?yàn)榍试酱蟮牡胤?,夾角值越大。
2、設(shè)置一個(gè)角度閾值,當(dāng)點(diǎn)的領(lǐng)域夾角值大于閾值時(shí)被認(rèn)為是特征明顯的區(qū)域,其余區(qū)域?yàn)椴幻黠@區(qū)域。
3、對(duì)明顯和不明顯區(qū)域進(jìn)行均勻采樣,采樣數(shù)分別為U_(1-V)和U_V,U是目標(biāo)采樣數(shù),V是均勻采樣性。
// 創(chuàng)建基于鄰域的法向估計(jì)類對(duì)象
// // 基于omp并行加速,需配置開啟OpenMP
// pcl::NormalEstimationOMP< pcl::PointXYZ, pcl::Normal > ne;
// ne.setNumberOfThreads(10);
pcl::NormalEstimation< pcl::PointXYZ, pcl::Normal > ne;
// 創(chuàng)建一個(gè)空的kdtree對(duì)象,并把它傳遞給法線估計(jì)對(duì)象,
// 用于創(chuàng)建基于輸入點(diǎn)云數(shù)據(jù)的鄰域搜索kdtree
pcl::search::KdTree< pcl::PointXYZ >::Ptr
tree(new pcl::search::KdTree< pcl::PointXYZ >());
// 傳入待估計(jì)法線的點(diǎn)云數(shù)據(jù),智能指針
ne.setInputCloud(cloud_src);
// 傳入kdtree對(duì)象,智能指針
ne.setSearchMethod(tree);
// 設(shè)置鄰域搜索半徑
ne.setRadiusSearch(0.1f); // 設(shè)置半徑時(shí),要考慮到點(diǎn)云空間間距
// // 也可以設(shè)置最近鄰點(diǎn)個(gè)數(shù)
// ne.setKSearch(25);
// 設(shè)置視點(diǎn)源點(diǎn),用于調(diào)整點(diǎn)云法向(指向視點(diǎn)),默認(rèn)(0,0,0)
ne.setViewPoint(0,0,0);
// 計(jì)算法線數(shù)據(jù)
ne.compute(*cloud_normals);
// 通過concatenateFields函數(shù)將point和normal組合起來形成PointNormal點(diǎn)云數(shù)據(jù)
pcl::PointCloud< pcl::PointNormal >::Ptr
cloud_with_normal(new pcl::PointCloud< pcl::PointNormal >());
pcl::PointCloud< pcl::PointNormal >::Ptr
cloud_with_normal_sampled(new pcl::PointCloud< pcl::PointNormal >());
pcl::concatenateFields(*cloud_src, *cloud_normals, *cloud_with_normal);
// 創(chuàng)建法向空間采樣(模板)類對(duì)象
pcl::NormalSpaceSampling< pcl::PointNormal, pcl::Normal > nss;
// 設(shè)置xyz三個(gè)法向空間的分類組數(shù),此處設(shè)置為一致,根據(jù)具體場(chǎng)景可以調(diào)整
const int kBinNum = 8;
nss.setBins(kBinNum, kBinNum, kBinNum);
// 如果傳入的是有序點(diǎn)云,此處可以嘗試設(shè)置為true
nss.setKeepOrganized(false);
// 設(shè)置隨機(jī)種子,這樣可以保證同樣的輸入可以得到同樣的結(jié)果,便于debug分析
nss.setSeed(200); // random seed
// 傳入待采樣的點(diǎn)云數(shù)據(jù)
nss.setInputCloud(cloud_with_normal);
// 傳入用于采樣分析的法線數(shù)據(jù),需與傳入點(diǎn)云數(shù)據(jù)一一對(duì)應(yīng)
nss.setNormals(cloud_normals);
// 設(shè)置采樣總數(shù),即目標(biāo)點(diǎn)云的總數(shù)據(jù)量
const float kSampleRatio = 0.1f;
nss.setSample(cloud_with_normal- >size()*kSampleRatio);
// 執(zhí)行采樣并帶出采樣結(jié)果
nss.filter(*cloud_with_normal_sampled);
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。
舉報(bào)投訴
-
plc
+關(guān)注
關(guān)注
5052文章
14823瀏覽量
488738 -
數(shù)據(jù)
+關(guān)注
關(guān)注
8文章
7349瀏覽量
95055 -
采樣
+關(guān)注
關(guān)注
1文章
129瀏覽量
26532
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
熱點(diǎn)推薦
關(guān)于232的NCL,PCL的疑問
有沒有大神接觸過這種232通訊的儀表,上面有NCL RXD,NCL TXD;PCL RXD,PCL TXD。這種能用DB9的芯片去采集數(shù)據(jù)嗎?我用DB9的RXD去接它的 NCL TXD,數(shù)據(jù)偶爾會(huì)有一位的偏移,請(qǐng)問該怎么正確的采集它的數(shù)據(jù),拜謝
發(fā)表于 11-07 16:15
PCL點(diǎn)云庫介紹及項(xiàng)目配置方式
關(guān)于PCL點(diǎn)云庫,大家百度的時(shí)候可以找到很多相關(guān)的介紹,反正一堆專業(yè)性概念,相關(guān)的技術(shù)層面以及一些強(qiáng)大的應(yīng)用敘述云云,不過關(guān)于這些小編實(shí)在不感冒,能先把這個(gè)工具好好用起來再說吧。關(guān)于PCL相關(guān)的論壇
發(fā)表于 07-02 07:44
阿爾法線圈是什么
在無線充電領(lǐng)域,我們平常可以看到各種不同尺寸、不同材質(zhì)、不同形狀的線圈被廣泛應(yīng)用于發(fā)射端與接收端產(chǎn)品上,alpha線圈,俗稱阿爾法線圈,因?yàn)樗膬蓚€(gè)引出線均在線圈外側(cè),形似α而得名。阿爾法線圈是單線
發(fā)表于 09-15 06:43
PCL6143運(yùn)動(dòng)控制器原理及應(yīng)用
PCL6143運(yùn)動(dòng)控制器的原理及應(yīng)用 可以用于設(shè)計(jì)開發(fā)相應(yīng)的芯片電路。介紹了PCL6143 的功能結(jié)構(gòu)、主要寄存器以及指令系統(tǒng)。設(shè)計(jì)了一款基于PC104總線的四軸運(yùn)動(dòng)控制卡, 介紹了如
發(fā)表于 09-26 08:14
PCL6143運(yùn)動(dòng)控制器的原理及應(yīng)用
介紹了PCL6143的功能結(jié)構(gòu)、主要寄存器以及指令系統(tǒng)。設(shè)計(jì)了一款基于PC104總線的四軸運(yùn)動(dòng)控制卡,介紹了如何編寫運(yùn)動(dòng)控制卡的功能函數(shù)庫。
發(fā)表于 12-13 17:16
?106次下載
PCL電梯控制系統(tǒng)
電子設(shè)計(jì)研發(fā)部分的研發(fā)人員常用資料,PCL電梯控制系統(tǒng),感興趣的可以瞧一瞧。
發(fā)表于 11-03 14:53
?68次下載
中法海洋衛(wèi)星成功發(fā)射 首次實(shí)現(xiàn)海風(fēng)和海浪同步觀測(cè)
北京時(shí)間10月29日8時(shí)43分,中國在酒泉衛(wèi)星發(fā)射中心用長征二號(hào)丙運(yùn)載火箭,成功發(fā)射中法合作研制的首顆衛(wèi)星中法海洋衛(wèi)星。 中國國家航天局、自然資源部介紹說,中法海洋衛(wèi)星由兩國歷時(shí)13年
使用MATLAB編程實(shí)現(xiàn)里查森迭代法線性方程組求解的資料和程序免費(fèi)下載
本文檔的主要內(nèi)容詳細(xì)介紹的是使用MATLAB編程實(shí)現(xiàn)里查森迭代法線性方程組求解的資料和程序免費(fèi)下載。
發(fā)表于 08-09 16:56
?0次下載
空間曲線基于內(nèi)在幾何量的均勻采樣方法
為解決均勻參數(shù)采樣在許多情況下得到質(zhì)量不高的采樣點(diǎn),進(jìn)而生成不理想的B樣條擬合曲線,提出空間曲線基于內(nèi)在幾何量的均勻采樣方法,以獲得給定總數(shù)且具有代表性的
發(fā)表于 04-22 11:34
?4次下載
在Ubuntu上編譯安裝pcl教程
編譯安裝PCL(Point Cloud Library)是在Ubuntu上使用自定義選項(xiàng)進(jìn)行安裝的一種方式。
PCL中基礎(chǔ)下采樣介紹
顧名思義,隨機(jī)下采樣就似乎在原始點(diǎn)云中隨機(jī)采樣一定點(diǎn)數(shù)的點(diǎn)。這種方法最終得到的點(diǎn)云數(shù)量也是固定的。 pcl::PointCloud ::Ptr cloud_sub( new pcl
PCL中最遠(yuǎn)點(diǎn)采樣是什么
最遠(yuǎn)點(diǎn)采樣(Farthest Point Sampling) 這里我們來單獨(dú)看一下調(diào)用代碼,這里可以看到PCL中支持直接調(diào)用farthest_sampling這個(gè)函數(shù)可以實(shí)現(xiàn)最遠(yuǎn)點(diǎn)采樣。 最遠(yuǎn)點(diǎn)
PCL泊松盤采樣具體流程
點(diǎn)之間最近的距離r,以及采樣點(diǎn)所在空間的維度n,比如2維平面 2、在空間里生成足夠多的網(wǎng)格,保證不接觸的兩個(gè)網(wǎng)格之間的點(diǎn)的距離大于r,并且網(wǎng)格數(shù)量足夠多保證每個(gè)網(wǎng)格至多只需裝一個(gè)采樣點(diǎn)
PCL中非均勻體素采樣介紹
非均勻體素采樣 SamplingSurfaceNormal,將輸入空間劃分為網(wǎng)格,直到每個(gè)網(wǎng)格中最多包含N個(gè)點(diǎn),并在每個(gè)網(wǎng)格中隨機(jī)采樣點(diǎn)。 使用每個(gè)網(wǎng)格的N個(gè)點(diǎn)計(jì)算法線。 在網(wǎng)格內(nèi)
PCL中法線空間采樣介紹
評(píng)論