0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

PCL中非均匀体素采样介绍

麦辣鸡腿堡 来源:古月居 作者:敢敢のwings 2023-11-21 17:50 次阅读

非均匀体素采样

SamplingSurfaceNormal,将输入空间划分为网格,直到每个网格中最多包含N个点,并在每个网格中随机采样点。 使用每个网格的N个点计算法线。 在网格内采样的所有点都分配有相同的法线。

PointCloud < PointNormal >::Ptr incloud (new PointCloud < PointNormal > ());
PointCloud < PointNormal > outcloud;


//Creating a point cloud on the XY plane
for (float i = 0.0f; i < 5.0f; i += 0.1f)
{
  for (float j = 0.0f; j < 5.0f; j += 0.1f)
  {
    PointNormal pt;
    pt.x = i;
    pt.y = j;
    pt.z = 1;
    incloud- >points.push_back (pt);
  }
}
incloud- >width = 1;
incloud- >height = uint32_t (incloud- >points.size ());


pcl::SamplingSurfaceNormal < pcl::PointNormal > ssn_filter;
ssn_filter.setInputCloud (incloud);
ssn_filter.setRatio (0.3f);
ssn_filter.filter (outcloud);


// All the sampled points should have normals along the direction of Z axis
for (unsigned int i = 0; i < outcloud.points.size (); i++)
{
  EXPECT_NEAR (outcloud.points[i].normal[0], 0, 1e-3);
  EXPECT_NEAR (outcloud.points[i].normal[1], 0, 1e-3);
  EXPECT_NEAR (outcloud.points[i].normal[2], 1, 1e-3);
}

6. 半径滤波器采样

对整个输入迭代一次,对于每个点进行半径R邻域搜索,如果邻域点的个数低于某一阈值,则该点将被视为噪声点并被移除。

流程:读入点云→创建半径滤波器对象→设置离群点阈值→执行下采样→保存采样结果

pcl::PointCloud< pcl::PointXYZ >::Ptr pcl_cloud_ptr(pcl_cloud);


boost::shared_ptr< pcl::PointCloud< pcl::PointXYZ >> pcl_vg_cloud(new pcl::PointCloud< pcl::PointXYZ >());
pcl::PointCloud< pcl::PointXYZ >::Ptr pcl_vg_cloud_ptr(pcl_vg_cloud);


boost::shared_ptr< pcl::PointCloud< pcl::PointXYZ >> pcl_ror_cloud(new pcl::PointCloud< pcl::PointXYZ >());
pcl::PointCloud< pcl::PointXYZ >::Ptr pcl_ror_cloud_ptr(pcl_ror_cloud);


//Use VoxelGrid to make points sparse
pcl::VoxelGrid< pcl::PointXYZ > sor;
sor.setInputCloud (pcl_cloud_ptr);
sor.setLeafSize (0.08, 0.1, 0.1); 
sor.filter (*pcl_vg_cloud_ptr);


//Use RadiusOutlierRemoval to remove the point whitch is far away to others
pcl::RadiusOutlierRemoval< pcl::PointXYZ > outrem;
outrem.setInputCloud(pcl_vg_cloud_ptr);
outrem.setRadiusSearch(0.5);
outrem.setMinNeighborsInRadius (3);
outrem.filter (*pcl_ror_cloud_ptr); 


//transfrom and publish
sensor_msgs::PointCloud2Ptr msg_pointcloud(new sensor_msgs::PointCloud2);
pcl::toROSMsg(*pcl_ror_cloud, *msg_pointcloud);
msg_pointcloud- >header.frame_id = optical_frame_id_[RS_STREAM_DEPTH];;  
msg_pointcloud- >header.stamp = ros::Time::now();
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • plc
    plc
    +关注

    关注

    4975

    文章

    12254

    浏览量

    454912
  • 采样
    +关注

    关注

    1

    文章

    109

    浏览量

    25371
收藏 人收藏

    评论

    相关推荐

    labview能否对非均匀采样数据进行处理

    labview能不能恢复非均匀采样数据的波形,进而对其进行频谱测量、FFT?
    发表于 01-15 13:31

    如何实现非均匀采样

    用NI数据采集卡,如何用LabVIEW进行非均匀采样,并且对所得到的数据进行运算~请高手指点
    发表于 04-16 20:26

    请问PSpice仿真瞬态分析Transient如何设置输出的Excel文件的采样时刻为均匀采样时刻?

    every: 1u s,但是导出的Excel文件发现采样时刻之间的间隔并不是严格的1us,请问怎么才能设置输出文件的时间点是均匀的?设置界面:采样时间点数据画的图:
    发表于 03-03 12:58

    PCL点云库介绍及项目配置方式

    关于PCL点云库,大家百度的时候可以找到很多相关的介绍,反正一堆专业性概念,相关的技术层面以及一些强大的应用叙述云云,不过关于这些小编实在不感冒,能先把这个工具好好用起来再说吧。关于PCL相关的论坛
    发表于 07-02 07:44

    超材料 光启技术

    超材料 光启技术,浪花是如何形成的?如果把浪花拆解开来,它只剩下一个个水分子。如果再把这些水分子聚集起来,在潮汐力的作用下,浪花才能“涌现”出来。涌现,也是智慧诞生的方式。由简单的元素和简单的联接,构成一...
    发表于 07-12 07:28

    如何去配置PCL

    PCL是什么?怎样去编写并调试PCL程序?
    发表于 10-09 08:19

    PCL6143运动控制器原理及应用

    PCL6143运动控制器的原理及应用 可以用于设计开发相应的芯片电路。介绍PCL6143 的功能结构、主要寄存器以及指令系统。设计了一款基于PC104总线的四轴运动控制卡, 介绍了如
    发表于 09-26 08:14

    均匀采样的频谱研究

    均匀采样的一个很大的优点就是它具有抗频率混叠的性能[ ],首先从均匀采样讨论由采样而引起的频谱混叠现象,在
    发表于 03-13 16:18 18次下载
    非<b class='flag-5'>均匀</b><b class='flag-5'>采样</b>的频谱研究

    一种新的非均匀采样信号的离散傅里叶变换方法

    针对伪随机(PN)码调制的多普勒激光雷达中固有的对外差信号不能等间隔采样的问题,提出一种新的非均匀采样信号的离散傅里叶变换(DFT)方法。首先,给出距离速度同步测量多普勒激光雷达系统模型,指出对外
    发表于 12-23 11:40 0次下载
    一种新的非<b class='flag-5'>均匀</b><b class='flag-5'>采样</b>信号的离散傅里叶变换方法

    空间曲线基于内在几何量的均匀采样方法

    为解决均匀参数采样在许多情况下得到质量不高的采样点,进而生成不理想的B样条拟合曲线,提出空间曲线基于内在几何量的均匀采样方法,以获得给定总数
    发表于 04-22 11:34 4次下载
    空间曲线基于内在几何量的<b class='flag-5'>均匀</b><b class='flag-5'>采样</b>方法

    一种空间曲线基于内在几何量的均匀采样方法

    为解决均匀参数采样在许多情况下得到质量不高的采样点,进而生成不理想的B样条拟合曲线,提出空间曲线基于内在几何量的均匀采样方法,以获得给定总数
    发表于 04-29 14:11 7次下载
    一种空间曲线基于内在几何量的<b class='flag-5'>均匀</b><b class='flag-5'>采样</b>方法

    PCL中基础下采样介绍

    顾名思义,随机下采样就似乎在原始点云中随机采样一定点数的点。这种方法最终得到的点云数量也是固定的。 pcl::PointCloud ::Ptr cloud_sub( new pcl
    的头像 发表于 11-21 17:03 438次阅读
    <b class='flag-5'>PCL</b>中基础下<b class='flag-5'>采样</b><b class='flag-5'>介绍</b>

    PCL中最远点采样是什么

    最远点采样(Farthest Point Sampling) 这里我们来单独看一下调用代码,这里可以看到PCL中支持直接调用farthest_sampling这个函数可以实现最远点采样。 最远点
    的头像 发表于 11-21 17:18 326次阅读

    PCL中法线空间采样介绍

    法线空间采样 NormalSpaceSampling即:法线空间采样,它在法向量空间内均匀随机抽样,使所选点之间的法线分布尽可能大,结果表现为地物特征变化大的地方剩余点较多,变化小的地方剩余点稀少
    的头像 发表于 11-21 17:28 332次阅读

    PCL泊松盘采样具体流程

    泊松盘采样 泊松盘采样(possion disk sampling)的特点是任何两个点的距离都不会隔得太近。 比如下图,左边是随机生成的点,右边是泊松盘采样生成的点。 具体流程如下: 1、设定好两个
    的头像 发表于 11-21 17:42 444次阅读
    <b class='flag-5'>PCL</b>泊松盘<b class='flag-5'>采样</b>具体流程