源码

#include <iostream>
#include <pcl/point_types.h>
#include <pcl/filters/radius_outlier_removal.h>
#include <pcl/filters/conditional_removal.h>
#include <pcl/visualization/pcl_visualizer.h>int main (int argc, char** argv)
{if (argc != 2){std::cerr << "please specify command line arg '-r' or '-c'" << std::endl;exit(0);}pcl::PointCloud<pcl::PointXYZ>::Ptr cloud (new pcl::PointCloud<pcl::PointXYZ>);pcl::PointCloud<pcl::PointXYZ>::Ptr cloud_filtered (new pcl::PointCloud<pcl::PointXYZ>);// 填入点云数据cloud->width  = 100000;cloud->height = 1;cloud->points.resize (cloud->width * cloud->height);for (size_t i = 0; i < cloud->points.size (); ++i){cloud->points[i].x = 1024 * rand () / (RAND_MAX + 1.0f);cloud->points[i].y = 1024 * rand () / (RAND_MAX + 1.0f);cloud->points[i].z = 1024 * rand () / (RAND_MAX + 1.0f);}if (strcmp(argv[1], "-r") == 0){pcl::RadiusOutlierRemoval<pcl::PointXYZ> outrem;// 创建滤波器outrem.setInputCloud(cloud);//搜索半径设为8,在此半径内点必须要有至少1个邻居时,此点才会被保留outrem.setRadiusSearch(8);outrem.setMinNeighborsInRadius (2);// 应用滤波器outrem.filter (*cloud_filtered);}else if (strcmp(argv[1], "-c") == 0){// 创建环境pcl::ConditionAnd<pcl::PointXYZ>::Ptr range_cond (newpcl::ConditionAnd<pcl::PointXYZ> ());//为条件定义对象添加比较算子: 使用大于0.0和小于0.8这两个条件用于建立滤波器。range_cond->addComparison (pcl::FieldComparison<pcl::PointXYZ>::ConstPtr (newpcl::FieldComparison<pcl::PointXYZ> ("z", pcl::ComparisonOps::GT, 0.0)));range_cond->addComparison (pcl::FieldComparison<pcl::PointXYZ>::ConstPtr (newpcl::FieldComparison<pcl::PointXYZ> ("z", pcl::ComparisonOps::LT, 0.8)));//添加在z字段上小于0.8的比较算子// 创建滤波器pcl::ConditionalRemoval<pcl::PointXYZ> condrem (range_cond);condrem.setInputCloud (cloud);condrem.setKeepOrganized(true);// 应用滤波器condrem.filter (*cloud_filtered);}else{std::cerr << "please specify command line arg '-r' or '-c'" << std::endl;exit(0);}//visualizerpcl::visualization::PCLVisualizer::Ptr viewer(new pcl::visualization::PCLVisualizer);viewer->initCameraParameters();int v1(0);viewer->createViewPort(0, 0, 0.5, 1, v1);viewer->setBackgroundColor(0, 0, 0, v1);pcl::visualization::PointCloudColorHandlerCustom<pcl::PointXYZ> single_color1(cloud, 255, 255, 255);viewer->addPointCloud(cloud, single_color1, "cloud_in", v1);int v2(0);viewer->createViewPort(0.5, 0, 1, 1, v2);viewer->setBackgroundColor(0, 0, 0, v2);pcl::visualization::PointCloudColorHandlerCustom<pcl::PointXYZ> single_color2(cloud_filtered, 255, 255, 55);viewer->addPointCloud(cloud_filtered, single_color2, "cloud_out", v2);viewer->addCoordinateSystem();viewer->spin();//std::cerr << "Cloud before filtering: " << std::endl;//for (size_t i = 0; i < cloud->points.size (); ++i)//  std::cerr << "    " << cloud->points[i].x << " "//                      << cloud->points[i].y << " "//                      << cloud->points[i].z << std::endl;显示滤波后的点云//std::cerr << "Cloud after filtering: " << std::endl;//for (size_t i = 0; i < cloud_filtered->points.size (); ++i)//  std::cerr << "    " << cloud_filtered->points[i].x << " "//                      << cloud_filtered->points[i].y << " "//                      << cloud_filtered->points[i].z << std::endl;return (0);
}

  • 解释
    GT 就是 GREATER THAN大于 
    GE 就是 GREATER THAN OR EQUAL 大于等于
    LT 就是 LESS THAN小于
    LE 就是 LESS THAN OR EQUAL 小于等于
    EQ 就是 EQUAL等于
    NE就是 NOT EQUAL不等于
  namespace ComparisonOps{/** \brief The kind of comparison operations that are possible within a * comparison object*/typedef enum{GT, GE, LT, LE, EQ} CompareOp;}

PCL学习笔记(20)——remove_outliers相关推荐

  1. Hadoop学习笔记—20.网站日志分析项目案例(一)项目介绍

    Hadoop学习笔记-20.网站日志分析项目案例(一)项目介绍 网站日志分析项目案例(一)项目介绍:当前页面 网站日志分析项目案例(二)数据清洗:http://www.cnblogs.com/edis ...

  2. Ext.Net学习笔记20:Ext.Net FormPanel 复杂用法

    Ext.Net学习笔记20:Ext.Net FormPanel 复杂用法 在上一篇笔记中我们介绍了Ext.Net的简单用法,并创建了一个简单的登录表单.今天我们将看一下如何更好是使用FormPanel ...

  3. 2020-4-20 深度学习笔记20 - 深度生成模型 3 (实值数据上的玻尔兹曼机)

    第二十章 深度生成模型 Deep Generative Models 中文 英文 2020-4-17 深度学习笔记20 - 深度生成模型 1 (玻尔兹曼机,受限玻尔兹曼机RBM) 2020-4-18 ...

  4. 2020-4-22 深度学习笔记20 - 深度生成模型 5 (有向生成网络--sigmoid信念网络/可微生成器网络/变分自编码器VAE/生产对抗网络GAN/生成矩匹配网络)

    第二十章 深度生成模型 Deep Generative Models 中文 英文 2020-4-17 深度学习笔记20 - 深度生成模型 1 (玻尔兹曼机,受限玻尔兹曼机RBM) 2020-4-18 ...

  5. 点云库PCL学习笔记 -- 点云滤波Filtering -- 3. StatisticalOutlierRemoval 统计滤波器

    点云库PCL学习笔记 -- 点云滤波Filtering -- 3.StatisticalOutlierRemoval 统计滤波器 StatisticalOutlierRemoval 统计滤波器相关简介 ...

  6. PCL学习笔记(二):PCL官方教程学习

    PCL学习笔记(二):PCL官方教程学习 PCD文件制作 Features 表面法线提取 Keypoints 提取NARF关键点 KdTree Range Image How to create a ...

  7. 编译原理学习笔记20——符号表

    编译原理学习笔记20--符号表 20.1 符号表的组织与操作 20.2 符号表的内容 20.3 利用符号表分析名字的作用域 20.1 符号表的组织与操作 符号表 符号表的作用与组织 符号表的整理和查找 ...

  8. 小猫爪:S32K3学习笔记20:S32K3之SCST及其应用

    小猫爪:S32K3学习笔记20:S32K3之SCST及其应用 1 前言 2 SCST简介 3 移植 4 应用 4.1 启动测试 4.2 使能FPU相关测试项 4.3 49号测试项中的MPU配置 4.4 ...

  9. Kotlin学习笔记20 阶段复习2

    参考链接 示例来自bilibili Kotlin语言深入解析 张龙老师的视频 lambda表达式 内联函数 Kotlin学习笔记 第三章 函数 高阶函数 lambda表达式 内联函数_积跬步 至千里- ...

  10. PCL学习笔记(35)——3D物体识别

    源码 #include <pcl/io/pcd_io.h> #include <pcl/point_cloud.h> #include <pcl/corresponden ...

最新文章

  1. Linux CentOS6.x ip设置(网卡设置)
  2. Python 内置函数sorted()在高级用法
  3. nc65数据字典 云盘_从搜索引擎到核心交易数据库,详解阿里云神龙如何支撑双11...
  4. mysql 书签查找_my-bookmark
  5. [centos][ntp][administrator] chrony ntp
  6. HDU 3966-Aragorn's Story 树链剖分+树状数组
  7. 列表怎么有限的初始化为零_《零基础学习Android开发》第五课 类与面向对象编程1-1...
  8. linux安装mq报5724,小白提问:linux安装MQ出现的错误
  9. Javascript根据属性从对象数据中删除元素
  10. 生日快乐网站_【总结 】文化自信源自基层贺房氏网站建站十五周年
  11. POPTEST老李谈Debug和Release的区别(c#) 1
  12. 【Python笔记】网络爬虫——介绍
  13. 关于WAMP出现无法启动的一些分析以及解决思路
  14. dirent.h缺失,Microsoft Visual Studio 2019( Professional)解决方案
  15. Java经典小案例(不定时更新)
  16. python3出现TypeError: can only concatenate str (not bytes) to str的错误,大一刚上手python的学习,望大神解决。感激不尽
  17. SVN更新,错误提示版本库的 UUID不匹配
  18. 【折半查找二叉判定树】
  19. 数据迁移:电脑更换硬盘怎么迁移数据?
  20. VuePress自动化部署到GitHub服务器

热门文章

  1. haproxy frontend 和backend
  2. Java开源在线商城系统 ostocy-jshop
  3. 前端实现录音功能插件recorder.js
  4. Lample-Ziv文本压缩(java实现)--学习笔记
  5. frida 挂钩_您必须知道的预提交挂钩
  6. golang的垃圾回收算法之二基本流程代码分析
  7. Flink1.14.4 与 Flinkcdc 2.2.1 遇keng
  8. CSS常用的选择器学习
  9. 《初等数论及其应用》第三章 素数和最大公因子
  10. 卷积神经网络 c语言代码,【CNN】卷积神经网络(示例代码)