PCL库中去除噪点

PCL库中去除噪点的方法如下4种:使用统计滤波器(StatisticalOutlierRemoval)去除噪点、使用半径滤波器(RadiusOutlierRemoval)去除噪点、使用直通滤波器(PassThrough)去除超出指定范围的点、条件滤波器(ConditionalRemoval)去除噪点。

一、统计滤波器(StatisticalOutlierRemoval)

        该滤波器会计算每个点周围一定半径内点的平均距离和标准差,然后根据一个阈值判断该点是否为噪点,从而将其移除。

pcl::StatisticalOutlierRemoval<pcl::PointXYZ> sor;
sor.setInputCloud(cloud);   // 设置输入点云
sor.setMeanK(50);           // 设置平均值估计所需的点数
sor.setStddevMulThresh(1.0); // 设置标准差乘数阈值
sor.filter(*cloud_filtered); // 执行滤波操作

二、半径滤波器(RadiusOutlierRemoval)

        该滤波器会计算每个点周围一定半径内点的密度,并将密度低于一个阈值的点移除。

pcl::RadiusOutlierRemoval<pcl::PointXYZ> ror;
ror.setInputCloud(cloud);     // 设置输入点云
ror.setRadiusSearch(0.8);     // 设置搜索半径
ror.setMinNeighborsInRadius(2); // 设置半径内最小邻居点数
ror.filter(*cloud_filtered);  // 执行滤波操作

三、直通滤波器(PassThrough)

        该滤波器会将某个轴上不在指定范围内的点移除。(相当于在某个轴上裁剪)

// 创建直通滤波器对象
pcl::PassThrough<pcl::PointXYZ> pass;
pass.setInputCloud(cloud);
pass.setFilterFieldName("z");  // 设置过滤轴为Z轴
pass.setFilterLimits(0.0, 1.0);  // 设置过滤范围为[0.0, 1.0]
pass.filter(*clound_result);  // 进行滤波

四、 条件滤波器(ConditionalRemoval)

      主要作用是移除不符合特定条件的点,从而提取出符合条件的点云子集。应用场景有:

  • 移除离群点:通过设置特定的条件,可以移除点云中的离群点,提取出更具有代表性的点云子集。

  • 提取特定区域的点:例如,可以根据点的坐标信息,筛选出位于某一区域内的点云子集。

  • 提取具有特定属性的点:例如,可以根据点的颜色、法向量、曲率等属性信息,筛选出具有特定属性的点云子集。

  • 从复杂的点云场景中提取特定物体或场景:例如,在机器人视觉中,可以使用ConditionalRemoval滤波器提取出特定的物体或场景,进行目标检测、识别等任务。

//创建条件
pcl::ConditionAnd<pcl::PointXYZRGB>::Ptr condition_add(new pcl::ConditionAnd<pcl::PointXYZRGB >());
condition_add->addComparison(pcl::FieldComparison<pcl::PointXYZRGB>::ConstPtr
(new pcl::FieldComparison<pcl::PointXYZRGB>("z", pcl::ComparisonOps::GT, 1000)));
//EQ、NE、GT、LT、GE、LE//lt:表示小于<。即less than //Gt:表示大于于<。
// 创建ConditionalRemoval对象
pcl::ConditionalRemoval<pcl::PointXYZRGB> conditional_removal;
conditional_removal.setCondition(condition_add);// 设置条件对象
conditional_removal.setInputCloud(cloud);
conditional_removal.setKeepOrganized(false);//如果设置为true,则保留点云中被滤掉的点,否则删除
conditional_removal.filter(*clound_result);
//设置setKeepOrganized为false时,被过滤的点会被删除而不是设置为NaN。

总结:这些滤波器的具体参数需要根据应用场景和数据特点进行调整。

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值