0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

PCL中法線空間采樣介紹

麥辣雞腿堡 ? 來源:古月居 ? 作者:敢敢のwings ? 2023-11-21 17:28 ? 次閱讀

法線空間采樣

NormalSpaceSampling即:法線空間采樣,它在法向量空間內(nèi)均勻隨機(jī)抽樣,使所選點之間的法線分布盡可能大,結(jié)果表現(xiàn)為地物特征變化大的地方剩余點較多,變化小的地方剩余點稀少,可有效保持地物特征。實現(xiàn)方法如下:

1、首先計算每個點的K領(lǐng)域,然后計算點到領(lǐng)域點的法線夾角值,以此來近似達(dá)到曲率的效果并提高計算效率,因為曲率越大的地方,夾角值越大。

2、設(shè)置一個角度閾值,當(dāng)點的領(lǐng)域夾角值大于閾值時被認(rèn)為是特征明顯的區(qū)域,其余區(qū)域為不明顯區(qū)域。

3、對明顯和不明顯區(qū)域進(jìn)行均勻采樣,采樣數(shù)分別為U_(1-V)和U_V,U是目標(biāo)采樣數(shù),V是均勻采樣性。

// 創(chuàng)建基于鄰域的法向估計類對象
 // // 基于omp并行加速,需配置開啟OpenMP
 // pcl::NormalEstimationOMP< pcl::PointXYZ, pcl::Normal > ne; 
 // ne.setNumberOfThreads(10);
 pcl::NormalEstimation< pcl::PointXYZ, pcl::Normal > ne;
 // 創(chuàng)建一個空的kdtree對象,并把它傳遞給法線估計對象,
 // 用于創(chuàng)建基于輸入點云數(shù)據(jù)的鄰域搜索kdtree
 pcl::search::KdTree< pcl::PointXYZ >::Ptr 
             tree(new pcl::search::KdTree< pcl::PointXYZ >());
 // 傳入待估計法線的點云數(shù)據(jù),智能指針
 ne.setInputCloud(cloud_src);
 // 傳入kdtree對象,智能指針
 ne.setSearchMethod(tree);
 // 設(shè)置鄰域搜索半徑
 ne.setRadiusSearch(0.1f);    // 設(shè)置半徑時,要考慮到點云空間間距
 // // 也可以設(shè)置最近鄰點個數(shù)
 // ne.setKSearch(25);
 // 設(shè)置視點源點,用于調(diào)整點云法向(指向視點),默認(rèn)(0,0,0)
 ne.setViewPoint(0,0,0);
 // 計算法線數(shù)據(jù)
 ne.compute(*cloud_normals);


 // 通過concatenateFields函數(shù)將point和normal組合起來形成PointNormal點云數(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)建法向空間采樣(模板)類對象
 pcl::NormalSpaceSampling< pcl::PointNormal, pcl::Normal > nss;
 // 設(shè)置xyz三個法向空間的分類組數(shù),此處設(shè)置為一致,根據(jù)具體場景可以調(diào)整
 const int kBinNum = 8;
 nss.setBins(kBinNum, kBinNum, kBinNum);
 // 如果傳入的是有序點云,此處可以嘗試設(shè)置為true
 nss.setKeepOrganized(false);
 // 設(shè)置隨機(jī)種子,這樣可以保證同樣的輸入可以得到同樣的結(jié)果,便于debug分析
 nss.setSeed(200);   // random seed
 // 傳入待采樣的點云數(shù)據(jù)
 nss.setInputCloud(cloud_with_normal);
 // 傳入用于采樣分析的法線數(shù)據(jù),需與傳入點云數(shù)據(jù)一一對應(yīng)
 nss.setNormals(cloud_normals);
 // 設(shè)置采樣總數(shù),即目標(biāo)點云的總數(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)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • plc
    plc
    +關(guān)注

    關(guān)注

    5004

    文章

    13047

    瀏覽量

    460862
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    6756

    瀏覽量

    88614
  • 采樣
    +關(guān)注

    關(guān)注

    1

    文章

    119

    瀏覽量

    25501
收藏 人收藏

    評論

    相關(guān)推薦

    關(guān)于232的NCL,PCL的疑問

    有沒有大神接觸過這種232通訊的儀表,上面有NCL RXD,NCL TXD;PCL RXD,PCL TXD。這種能用DB9的芯片去采集數(shù)據(jù)嗎?我用DB9的RXD去接它的 NCL TXD,數(shù)據(jù)偶爾會有一位的偏移,請問該怎么正確的采集它的數(shù)據(jù),拜謝
    發(fā)表于 11-07 16:15

    PCL點云庫介紹及項目配置方式

    關(guān)于PCL點云庫,大家百度的時候可以找到很多相關(guān)的介紹,反正一堆專業(yè)性概念,相關(guān)的技術(shù)層面以及一些強(qiáng)大的應(yīng)用敘述云云,不過關(guān)于這些小編實在不感冒,能先把這個工具好好用起來再說吧。關(guān)于PCL相關(guān)的論壇
    發(fā)表于 07-02 07:44

    EMIF介紹CE空間

    一. EMIF介紹CE空間:dsp的存儲空間分為片內(nèi)和片外兩種,片外空間分成四個部分,分別用于映射不同的片外設(shè)備,即ce空間 。The re
    發(fā)表于 07-28 09:08

    阿爾法線圈是什么

    在無線充電領(lǐng)域,我們平??梢钥吹礁鞣N不同尺寸、不同材質(zhì)、不同形狀的線圈被廣泛應(yīng)用于發(fā)射端與接收端產(chǎn)品上,alpha線圈,俗稱阿爾法線圈,因為它的兩個引出線均在線圈外側(cè),形似α而得名。阿爾法線圈是單線
    發(fā)表于 09-15 06:43

    如何去配置PCL

    PCL是什么?怎樣去編寫并調(diào)試PCL程序?
    發(fā)表于 10-09 08:19

    PCL6143運動控制器原理及應(yīng)用

    PCL6143運動控制器的原理及應(yīng)用 可以用于設(shè)計開發(fā)相應(yīng)的芯片電路。介紹PCL6143 的功能結(jié)構(gòu)、主要寄存器以及指令系統(tǒng)。設(shè)計了一款基于PC104總線的四軸運動控制卡, 介紹了如
    發(fā)表于 09-26 08:14

    PCL6143運動控制器的原理及應(yīng)用

       介紹PCL6143的功能結(jié)構(gòu)、主要寄存器以及指令系統(tǒng)。設(shè)計了一款基于PC104總線的四軸運動控制卡,介紹了如何編寫運動控制卡的功能函數(shù)庫。
    發(fā)表于 12-13 17:16 ?106次下載
    <b class='flag-5'>PCL</b>6143運動控制器的原理及應(yīng)用

    PCL電梯控制系統(tǒng)

    電子設(shè)計研發(fā)部分的研發(fā)人員常用資料,PCL電梯控制系統(tǒng),感興趣的可以瞧一瞧。
    發(fā)表于 11-03 14:53 ?67次下載

    中法海洋衛(wèi)星成功發(fā)射 首次實現(xiàn)海風(fēng)和海浪同步觀測

    北京時間10月29日8時43分,中國在酒泉衛(wèi)星發(fā)射中心用長征二號丙運載火箭,成功發(fā)射中法合作研制的首顆衛(wèi)星中法海洋衛(wèi)星。 中國國家航天局、自然資源部介紹說,中法海洋衛(wèi)星由兩國歷時13年
    的頭像 發(fā)表于 10-29 10:05 ?5220次閱讀

    使用MATLAB編程實現(xiàn)里查森迭代法線性方程組求解的資料和程序免費下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用MATLAB編程實現(xiàn)里查森迭代法線性方程組求解的資料和程序免費下載。
    發(fā)表于 08-09 16:56 ?0次下載
    使用MATLAB編程實現(xiàn)里查森迭代<b class='flag-5'>法線</b>性方程組求解的資料和程序免費下載

    空間曲線基于內(nèi)在幾何量的均勻采樣方法

    為解決均勻參數(shù)采樣在許多情況下得到質(zhì)量不高的采樣點,進(jìn)而生成不理想的B樣條擬合曲線,提出空間曲線基于內(nèi)在幾何量的均勻采樣方法,以獲得給定總數(shù)且具有代表性的
    發(fā)表于 04-22 11:34 ?4次下載
    <b class='flag-5'>空間</b>曲線基于內(nèi)在幾何量的均勻<b class='flag-5'>采樣</b>方法

    PCL中基礎(chǔ)下采樣介紹

    顧名思義,隨機(jī)下采樣就似乎在原始點云中隨機(jī)采樣一定點數(shù)的點。這種方法最終得到的點云數(shù)量也是固定的。 pcl::PointCloud ::Ptr cloud_sub( new pcl
    的頭像 發(fā)表于 11-21 17:03 ?779次閱讀
    <b class='flag-5'>PCL</b>中基礎(chǔ)下<b class='flag-5'>采樣</b><b class='flag-5'>介紹</b>

    PCL中最遠(yuǎn)點采樣是什么

    最遠(yuǎn)點采樣(Farthest Point Sampling) 這里我們來單獨看一下調(diào)用代碼,這里可以看到PCL中支持直接調(diào)用farthest_sampling這個函數(shù)可以實現(xiàn)最遠(yuǎn)點采樣。 最遠(yuǎn)點
    的頭像 發(fā)表于 11-21 17:18 ?650次閱讀

    PCL泊松盤采樣具體流程

    點之間最近的距離r,以及采樣點所在空間的維度n,比如2維平面 2、在空間里生成足夠多的網(wǎng)格,保證不接觸的兩個網(wǎng)格之間的點的距離大于r,并且網(wǎng)格數(shù)量足夠多保證每個網(wǎng)格至多只需裝一個采樣
    的頭像 發(fā)表于 11-21 17:42 ?1067次閱讀
    <b class='flag-5'>PCL</b>泊松盤<b class='flag-5'>采樣</b>具體流程

    PCL中非均勻體素采樣介紹

    非均勻體素采樣 SamplingSurfaceNormal,將輸入空間劃分為網(wǎng)格,直到每個網(wǎng)格中最多包含N個點,并在每個網(wǎng)格中隨機(jī)采樣點。 使用每個網(wǎng)格的N個點計算法線。 在網(wǎng)格內(nèi)
    的頭像 發(fā)表于 11-21 17:50 ?718次閱讀