【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

基于统计方法的滤波其实是比较好理解的。也就是说,在一个局部范围内,选择距离最近的几十个点,要求他们的平均值必须小于一个数值。这样,无形之中就把那些离散点给去除了。从原理上说,这个算法比较直观。但是它最大的问题就是计算时间太长。我一开始运行后,都以为程序不对了,结果是pc运行时间太长导致的。原来的代码地址在这,https://pcl.readthedocs.io/projects/tutorials/en/master/statistical_outlier.html#statistical-outlier-removal

1、准备statistical_removal.cpp文件

#include <iostream>
#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>
#include <pcl/filters/statistical_outlier_removal.h>int
main ()
{pcl::PointCloud<pcl::PointXYZ>::Ptr cloud (new pcl::PointCloud<pcl::PointXYZ>);pcl::PointCloud<pcl::PointXYZ>::Ptr cloud_filtered (new pcl::PointCloud<pcl::PointXYZ>);// Fill in the cloud datapcl::PCDReader reader;// Replace the path below with the path where you saved your filereader.read<pcl::PointXYZ> ("table_scene_lms400.pcd", *cloud);std::cerr << "Cloud before filtering: " << std::endl;std::cerr << *cloud << std::endl;// Create the filtering objectpcl::StatisticalOutlierRemoval<pcl::PointXYZ> sor;sor.setInputCloud (cloud);sor.setMeanK (50);sor.setStddevMulThresh (1.0);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);
}

2、准备CMakeLists.txt文件

 cmake_minimum_required(VERSION 3.5 FATAL_ERROR)project(statistical_removal)find_package(PCL 1.2 REQUIRED)include_directories(${PCL_INCLUDE_DIRS})link_directories(${PCL_LIBRARY_DIRS})add_definitions(${PCL_DEFINITIONS})add_executable (statistical_removal statistical_removal.cpp)
target_link_libraries (statistical_removal ${PCL_LIBRARIES})

3、编译生成sln文件,准备编译

用cmake生成sln工程,直接编译即可

4、补充完缺失的dll,直接运行statistical_removal.exe文件

3d激光雷达开发(基于统计滤波)相关推荐

  1. 3d激光雷达开发(voxel滤波)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 有一种滤波方法,被称之为基于体素网格的下采样滤波.虽然名字听上去有点拗口,其实功能并不复杂.它的 ...

  2. 3d激光雷达开发(基于参数模型的滤波)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 基于参数模型滤波,更准确的说,是依赖于某一个参数方程的滤波.比如说,ax+by+cz+d=0,这 ...

  3. 3d激光雷达开发(入门)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 大约在2017年的时候,学习百度的apollo系统的时候,就知道3d激光雷达了.3d激光雷达和普 ...

  4. 3d激光雷达开发(pcl安装和使用)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 之前讨论过,目前3d激光雷达这块,算法部分用的最多的就是pcl库.网上很多教程都是讲pcl在li ...

  5. 3d激光雷达开发(从halcon看点云pcl库)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 做点云开发的,很少有不知道pcl库的,这一点就有点像做数字图像处理的,很少有不知道opencv的 ...

  6. 3d激光雷达开发(法向量预测)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 法向量在3d点云当中扮演很重要的一个角色.一个三维数据点的特征,不仅和它自己有关,还和它周围的点 ...

  7. 3d激光雷达开发(多雷达标定)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 有过camera开发经验的朋友都知道,camera有两种标定.一种是内参标定,主要是标定切向畸变 ...

  8. 3d激光雷达开发(平面映射)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 3d点云当中,一个经常用到的方法就是先找到一个平面,然后将点映射到平面上面.这个里面用到的数据结 ...

  9. 3d激光雷达开发(圆柱分割)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 和平面分割一样,pcl也支持圆柱分割.使用的方法和平面分割也差不多,都是基于ransac的基本原 ...

最新文章

  1. 面向Agent的系统架构
  2. PS色调均化滤镜的快捷实现(C#源代码)。
  3. 008_Restfull请求风格
  4. Golang 匿名结构体及测试代码编写技巧
  5. java中子类和父类的初始化和函数调用关系
  6. 充分利用移动支付系统的10种方法
  7. SL项目开发自定义控件封装之新建自定义控件类库
  8. 自定义字符串查找函数c语言,(C语言自定义函数,/*编写函数实现在字符串pStr中查找子串pSub int subString( char* pStr, char* pSub);...
  9. Java中proc是什么意思,在java里头读取/proc/net/dev
  10. element手机验证格式_vue封装 element-ui form表单验证 正则匹配手机号 自定义校验表格内容...
  11. java bitset_Java BitSet or()方法与示例
  12. 船舶和计算机结合论文格式,近海船舶监控系统中航迹关联算法的计算机研究与实现...
  13. memcache_engine + memcachedb = 高性能分布式内存数据库
  14. script标签async和defer的区别及作用
  15. 外包软件开发时要避免的五个陷阱
  16. 单片机之矩阵键盘(花样编程)
  17. 大学物理计算机仿真实验报告,大学物理实验实验报告模板.doc
  18. maven 插件 aven-assembly--plugin的使用
  19. 『团队协作的五大障碍』读书所得
  20. 关于多个ul标签并列时下对齐的问题

热门文章

  1. ActiveMQ配置详解之如何配置自动重新连接
  2. sql取得某日期内的数据
  3. TYVJ P1073 加分二叉树 Label:区间dp
  4. Android开发学习总结(三)——appcompat_v7项目说明
  5. “我来管管看”系列:采购误差缘何而来?
  6. 女方妈妈和男方爸爸这样告诉即将结婚的儿女,写的真好,希望每个人都可以认真的把它看完...
  7. 线性代数与矩阵论 习题 1.2.1
  8. 微软操作系统总裁:Win8应用商店是发展必然
  9. asp.net mvc View视图目录修改
  10. VMware虚拟机中不识别移动硬盘