RM新时代网站-首页

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

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

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

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

麥辣雞腿堡 ? 來(lái)源:古月居 ? 作者:敢敢のwings ? 2023-11-21 17:03 ? 次閱讀

基礎(chǔ)下采樣

1.1 點(diǎn)云隨機(jī)下采樣

點(diǎn)云下采樣是對(duì)點(diǎn)云以一定的采樣規(guī)則重新進(jìn)行采樣,目的是在保證點(diǎn)云整體幾何特征不變的情況下,降低點(diǎn)云的密度,進(jìn)而可以降低相關(guān)處理的數(shù)據(jù)量和算法復(fù)雜度。

隨機(jī)下采樣顧名思義,隨機(jī)下采樣就似乎在原始點(diǎn)云中隨機(jī)采樣一定點(diǎn)數(shù)的點(diǎn)。這種方法最終得到的點(diǎn)云數(shù)量也是固定的。

pcl::PointCloud< PointT >::Ptr cloud_sub(new pcl::PointCloud< PointT >);    //隨機(jī)下采樣點(diǎn)云
    pcl::RandomSample< PointT > rs;    //創(chuàng)建濾波器對(duì)象
    rs.setInputCloud(cloud);                //設(shè)置待濾波點(diǎn)云
    rs.setSample(20000);                    //設(shè)置下采樣點(diǎn)云的點(diǎn)數(shù)
    //rs.setSeed(1);                        //設(shè)置隨機(jī)函數(shù)種子點(diǎn)
    rs.filter(*cloud_sub);                    //執(zhí)行下采樣濾波,保存濾波結(jié)果于cloud_sub

1.2 體素下采樣

體素下采樣的原理如圖1所示,首先將點(diǎn)云空間進(jìn)行網(wǎng)格化,也稱體素化,即圖1(b),網(wǎng)格化后的每一個(gè)格子稱為體素,在這些劃分為一個(gè)個(gè)極小的格子中包含一些點(diǎn),然后對(duì)這些點(diǎn)取平均或加權(quán)平均得到一個(gè)點(diǎn),以此來(lái)替代原來(lái)網(wǎng)格中所有的點(diǎn),即圖1(c)中藍(lán)色的點(diǎn)。顯然,網(wǎng)格選取越大則采樣之后的點(diǎn)云越少,處理速度變快,但會(huì)對(duì)原先點(diǎn)云過(guò)度模糊,網(wǎng)格選取越小,則作用相反。

圖片

pcl::VoxelGrid< pcl::PointXYZ > sor;    //創(chuàng)建體素網(wǎng)格采樣處理對(duì)象
 sor.setInputCloud(cloud);             //設(shè)置輸入點(diǎn)云
 sor.setLeafSize(0.01f, 0.01f, 0.01f); //設(shè)置體素大小,單位:m
 sor.filter(*cloud_filtered);          //進(jìn)行下采樣

1.3 均勻采樣

均勻采樣的原理類似于體素化網(wǎng)格采樣方法,同樣是將點(diǎn)云空間進(jìn)行劃分,不過(guò)是以半徑=r的球體,在當(dāng)前球體所有點(diǎn)中選擇距離球體中心最近的點(diǎn)替代所有點(diǎn),注意,此時(shí)點(diǎn)的位置是不發(fā)生移動(dòng)的。

球體半徑選取越大則采樣之后的點(diǎn)云越少,處理速度變快,但會(huì)對(duì)原先點(diǎn)云過(guò)度模糊,網(wǎng)格選取越小,則作用相反。

pcl::UniformSampling< pcl::PointXYZ > form;   // 創(chuàng)建均勻采樣對(duì)象
form.setInputCloud(cloud);                  //設(shè)置輸入點(diǎn)云
form.setRadiusSearch(0.02f);                //設(shè)置半徑大小,單位:m
form.filter(*after_cloud);                  //執(zhí)行濾波處理

1.4 增采樣

增采樣的特點(diǎn)是可極大的增加點(diǎn)云數(shù)據(jù),但由于內(nèi)插點(diǎn)的不確定性會(huì)導(dǎo)致最后輸出的結(jié)果不一定準(zhǔn)確。

//創(chuàng)建增采樣對(duì)象
pcl::MovingLeastSquares< pcl::PointXYZ,pcl::PointXYZ > filter;    
filter.setInputCloud(cloud);                     //設(shè)置輸入點(diǎn)云
pcl::search::KdTree< pcl::PointXYZ >::Ptr kdtree;  //定義搜索方法
filter.setSearchMethod(kdtree);                  //設(shè)置搜索方法
filter.setSearchRadius(0.03);    //設(shè)置搜索鄰域的半徑為3cm  
//Upsampling 采樣的方法還有 DISTINCT_CLOUD, RANDOM_UNIFORM_DENSITY
filter.setUpsamplingMethod(pcl::MovingLeastSquares< pcl::PointXYZ, pcl::PointXYZ >::SAMPLE_LOCAL_PLANE);     //對(duì)點(diǎn)云進(jìn)行上采樣
filter.setUpsamplingRadius(0.03);    //設(shè)置采樣半徑大小,3cm
filter.setUpsamplingStepSize(0.02);  //設(shè)置采樣步長(zhǎng)大小,2cm
filter.process(*after_cloud);      //執(zhí)行采樣操作

1.5 滑動(dòng)最小二乘法采樣

滑動(dòng)最小二乘法采樣的原理是將點(diǎn)云進(jìn)行了滑動(dòng)最小二乘法的映射,使得輸出的點(diǎn)云更加平滑。

pcl::PointCloud< pcl::PointNormal >::Ptr smoothedCloud(new pcl::PointCloud< pcl::PointNormal >);   //定義法線
pcl::MovingLeastSquares< pcl::PointXYZ, pcl::PointNormal > filter;
pcl::search::KdTree< pcl::PointXYZ >::Ptr kdtree;  //定義搜索方法
filter.setInputCloud(cloud);    //設(shè)置輸入點(diǎn)云
filter.setUpsamplingMethod();  //增加密度較小區(qū)域的密度對(duì)于holes的填補(bǔ)卻無(wú)能為力,具體方法要結(jié)合參數(shù)使用
filter.setSearchRadius(10);// 用于擬合的K近鄰半徑。在這個(gè)半徑里進(jìn)行表面映射和曲面擬合。半徑越小擬合后曲面的失真度越小,反之有可能出現(xiàn)過(guò)擬合的現(xiàn)象。
filter.setPolynomialFit(true);  //對(duì)于法線的估計(jì)是有多項(xiàng)式還是僅僅依靠切線。true為加多項(xiàng)式;false不加,速度較快
filter.setPolynomialFit(3);      // 擬合曲線的階數(shù)
filter.setComputeNormals(true);  // 是否存儲(chǔ)點(diǎn)云的法向量,true 為存儲(chǔ),false 不存儲(chǔ)
filter.setSearchMethod(kdtree); //設(shè)置搜索方法
filter.process(*smoothedCloud); //處理點(diǎn)云并輸出
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 濾波器
    +關(guān)注

    關(guān)注

    161

    文章

    7795

    瀏覽量

    177992
  • plc
    plc
    +關(guān)注

    關(guān)注

    5010

    文章

    13271

    瀏覽量

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

    關(guān)注

    1

    文章

    121

    瀏覽量

    25554
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    GSM900 PCL指什么?

    GSM900 PCL指什么?
    發(fā)表于 05-11 09:32

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

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

    PCL點(diǎn)云庫(kù)介紹及項(xiàng)目配置方式

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

    如何去配置PCL

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

    PCL應(yīng)用示例

    作為PCL系列的一個(gè)簡(jiǎn)單的應(yīng)用示例,該圖是與通常的1軸工作臺(tái)的機(jī)械系統(tǒng)連接的示例。按照從CPU接收的各動(dòng)作數(shù)據(jù)中指定的方向運(yùn)轉(zhuǎn)電機(jī),定位在工作臺(tái)的行程內(nèi)。原點(diǎn)調(diào)整時(shí),減速(SD)傳感器設(shè)為ON后減速
    發(fā)表于 11-04 16:18

    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ù)庫(kù)。
    發(fā)表于 12-13 17:16 ?106次下載
    <b class='flag-5'>PCL</b>6143運(yùn)動(dòng)控制器的原理及應(yīng)用

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

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

    Lane Tech HS PCL自動(dòng)燈開源

    電子發(fā)燒友網(wǎng)站提供《Lane Tech HS PCL自動(dòng)燈開源.zip》資料免費(fèi)下載
    發(fā)表于 02-08 15:28 ?1次下載
    Lane Tech HS <b class='flag-5'>PCL</b>自動(dòng)燈開源

    Lane Tech PCL房間通知器開源分享

    電子發(fā)燒友網(wǎng)站提供《Lane Tech PCL房間通知器開源分享.zip》資料免費(fèi)下載
    發(fā)表于 06-26 14:37 ?0次下載
    Lane Tech <b class='flag-5'>PCL</b>房間通知器開源分享

    在Ubuntu上編譯安裝pcl教程

    編譯安裝PCL(Point Cloud Library)是在Ubuntu上使用自定義選項(xiàng)進(jìn)行安裝的一種方式。
    的頭像 發(fā)表于 10-26 09:36 ?1269次閱讀

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

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

    PCL中法線空間采樣介紹

    法線空間采樣 NormalSpaceSampling即:法線空間采樣,它在法向量空間內(nèi)均勻隨機(jī)抽樣,使所選點(diǎn)之間的法線分布盡可能大,結(jié)果表現(xiàn)為地物特征變化大的地方剩余點(diǎn)較多,變化小的地方剩余點(diǎn)稀少
    的頭像 發(fā)表于 11-21 17:28 ?858次閱讀

    PCL泊松盤采樣具體流程

    泊松盤采樣 泊松盤采樣(possion disk sampling)的特點(diǎn)是任何兩個(gè)點(diǎn)的距離都不會(huì)隔得太近。 比如下圖,左邊是隨機(jī)生成的點(diǎn),右邊是泊松盤采樣生成的點(diǎn)。 具體流程如下: 1、設(shè)定好兩個(gè)
    的頭像 發(fā)表于 11-21 17:42 ?1276次閱讀
    <b class='flag-5'>PCL</b>泊松盤<b class='flag-5'>采樣</b>具體流程

    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)采樣
    的頭像 發(fā)表于 11-21 17:50 ?801次閱讀
    RM新时代网站-首页