StatisticalOutlierRemoval 过滤器去除异常值
统计滤波原理:

对每一点的邻域进行统计分析,基于点到所有邻近点的距离分布特征,过滤掉一些不满足要求的离群点。该算法对整个输入进行两次迭代:在第一次迭代中,它将计算每个点到最近k个近邻点的平均距离,得到的结果符合高斯分布。接下来,计算所有这些距离的平均值 μ 和标准差 σ 以确定距离阈值 thresh_d ,且 thresh_d = μ + k·σ。 k为标准差乘数。在下一次迭代中,如果这些点的平均邻域距离分别低于或高于该阈值,则这些点将被分类为内点或离群点。
代码

#include <iostream>
#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>
#include <pcl/filters/statistical_outlier_removal.h>int main (int argc, char** argv)
{pcl::PointCloud<pcl::PointXYZ>::Ptr cloud (new pcl::PointCloud<pcl::PointXYZ>);pcl::PointCloud<pcl::PointXYZ>::Ptr cloud_filtered (new pcl::PointCloud<pcl::PointXYZ>);// 填入点云数据pcl::PCDReader reader;// 把路径改为自己存放文件的路径reader.read<pcl::PointXYZ> ("table_scene_lms400.pcd", *cloud);std::cerr << "Cloud before filtering: " << std::endl;std::cerr << *cloud << std::endl;  //打印点云数据的基本信息// 创建滤波器对象pcl::StatisticalOutlierRemoval<pcl::PointXYZ> sor;sor.setInputCloud (cloud);//每个点要分析的邻居数设置为50,标准差乘数为1。这意味着所有距离查询点的平均距离大于1个标准差的点都将被标记为离群值并删除。sor.setMeanK (50);sor.setStddevMulThresh (1.0);// 输出被计算并存储在 cloud_filtered 中sor.filter (*cloud_filtered);std::cerr << "Cloud after filtering: " << std::endl;std::cerr << *cloud_filtered << std::endl;//保存结果到文件pcl::PCDWriter writer;writer.write<pcl::PointXYZ> ("table_scene_lms400_inliers.pcd", *cloud_filtered, false);sor.setNegative (true);sor.filter (*cloud_filtered);writer.write<pcl::PointXYZ> ("table_scene_lms400_outliers.pcd", *cloud_filtered, false);return (0);
}

运行结果:

处理之前:

处理之后

去掉的异常点

通过结果可看出,去除异常值的效果比较理想,只是在桌子边缘部分的点云密度偏低的情况下,可能会删除部分稀疏的正常点云数据。
ps:
纯c++实现
https://blog.csdn.net/taifyang/article/details/117606055

StatisticalOutlierRemoval 过滤器去除异常值相关推荐

  1. 数据处理——拉伊达法则去除异常值(Python实现)

    数据处理--拉伊达法则去除异常值(Python实现) 背景: 题目出自2020年中国研究生数学建模竞赛B题 代码及附件 上传时间:2020.12.24 1 数据采集 原始数据采集来自于中石化高桥石化实 ...

  2. 怎样用excel剔除异常数据_excel如何去除异常值?(excel表格数据异常丢失)

    急!!!java用poi导出excel文件,打开导出的文件时报错"文件错误,数据可能丢失" 我遇到过这个问题后调查发现两个原因: 1.你的excel模版本身有问题,可以尝试新建一个 ...

  3. R使用Z分数和四分位数区间法去除异常值(outlier)

    R使用Z分数和四分位数区间法去除异常值(outlier) 目录 R使用正太分布法和分位数法去除异常值(outlier) 四分位数范围(箱图ÿ

  4. r语言三倍标准差法去除异常值,再计算平均值标准差

    博主自己没能找到好的函数去除异常值,于是自己写好了一个简单实用的包.可以通过三倍标准差法删去每一行的异常值,然后计算出平均值标准差. 函数总共四个参数: file=  要计算的文件路径,在工作目录可以 ...

  5. 【Vue】vue先转化文章内容再去除标签 vue filters过滤器去除标签 js提取文字内容

    问题描述 渲染页面的时候,往往会遇到富文本编辑器里面的文章.文章内容有排版.字体样式,等等. 但是我们要提取其中前三行作为展示内容,里面又有标签内容.如下图 原因分析: 如果我们要让页面自己识别其中的 ...

  6. python中去除异常值_在Python中获取异常值

    如果我有那个代码: try: some_method() except Exception, e: 如何获得此Exception值(字符串 代表我的意思)? 使用str try: some_metho ...

  7. 基于python批量统计表格中的某一列去除异常值后的平均值

    当我们需要对多个表格表格中的某一列进行统计时,且该列数据存在异常极端值,可通过百分位数的方法将极端值筛选掉,在本次案例将小于5%的分位数和大于95%分位数的数值去掉,统计的5%~95%内的数据的平均值 ...

  8. 如何去除NDVI异常值

    大家好,今天和大家分享一下去除NDVI异常值. 我们都知道,NDVI是属于-1到1之间的,如果你所提取的数据偏大或者偏小,原因有很多,如 主要包括为进行辐射定标,为进行大气校正,导致数据误差较大. 如 ...

  9. 拉依达准则去除异常数据

    1.Concept 拉依达准侧(Pau'ta Criteron)是先假设一组数据中只含有随机误差,首先按照一定准侧计算标准偏差,按照一定概率确定一定区间,认为不在这个区间的为异常值. 使用数据类型:数 ...

最新文章

  1. Retrofit2.0+ .Net MVC4(WebApi) 上传多张图片
  2. 针对不同的Cookie做页面缓存
  3. 代码中设置excel自定义格式为[红色]的处理方法
  4. 十三、开多线程,咱们一起来斗图
  5. Java 程序优化:字符串操作、基本运算方法等优化策略
  6. 上海j计算机一级分值,计算机一级考试内容及分值
  7. 推荐系统中的矩阵分解演变方式
  8. linux pam模块 cron,Linux-PAM 1.1.2 中文文档 - 6.32. pam_tally-登录计数器(统计)模块 | Docs4dev...
  9. mysql fpmmm_zabbix配fpmmm(mpm)数据传送不了问题解决
  10. 采油工计算机试题库,数字化采油工试题库.doc
  11. JMH性能测试,试试你代码的性能如何
  12. python2与python3在windows下共存
  13. OpenCV之IplImage详解
  14. 【物联网开发基础】plc简介
  15. 前端 Vue 浏览器调试工具 Vue.js devtools 安装
  16. C/C++中文帮助手册
  17. Coding沙龙之vbs脚本
  18. Pytorch系列(四):猫狗大战1-训练和测试自己的数据集
  19. 天津地铁行业建设现状与运营状况分析报告2022版
  20. C语言常见复试面试问题

热门文章

  1. android 播放器 sma,SMA测评app
  2. 能上Q不能上网解决方案
  3. Android Instant Apps
  4. 做人要低调,绝对经典的低调
  5. MemoryStream 的一些用法
  6. orientdb 学习
  7. LabWindows界面的程序控制
  8. 浅浅瞅瞅RSA-PSS 算法
  9. 【爬虫基础】Python爬虫
  10. php微信当面付,微信当面付(c#源码)