当前位置:网站首页>PCL点云滤波
PCL点云滤波
2022-08-10 05:30:00 【LIAN_U】
PCL中点云滤波模块包括:双边滤波,高斯滤波,条件滤波,直通滤波,基于随机采样一致性滤波等。
用VoexelGrid滤波器对点云进行下采样,使用StationcalOutlierRemoval滤波器移除离群点,使用参数化模型投影点云,从点云中提取索引,使用ConditionalRemoval或RadiusOutlierRemoval移除离群点(这些应用实例在PCL教程第八章,P184页开始)
PCL中需要进行滤波的情况:
- 点云数据密度不规则需要平滑
- 因为遮挡问题造成离群点需要去除
- 大量数据需要进行下采样
- 噪声数据需要去除
对应的方法:
一· 按具体给定的规则限制过滤去除点
二· 通过常用滤波算法修改点的部分属性
三· 对数据进行下采样
双边滤波:
通过取邻近采样点的加权平均来修正当前采样点的位置,从而达到滤波效果。同时也会有选择剔除部分与当前采样点差异太大的相邻采样点,从而达到保持原特征的目的。
class pcl::ApproximateVoxelGrid< PointT>, 根据给定的点云形成三位体素栅格。
class pcl::BilateralFilter< PointT>, 双边滤波算法在点云上的实现,利用的并非XYZ字段,而是利用强度数据字段进行双边滤波算法的实现。
class pcl::ConditionalRemoval< PointT>, 过滤满足一定条件的点云数据。
- class pcl::filters::Convolution< PointIn, PointOut>, 实现卷积滤波 的功能。通过设定不同的卷积核对点云进行卷积滤波处理。
- class pcl::filters::GaussianKernal< PointInT, PointOutT>, 基于高斯核的卷积滤波 实现,高斯滤波相当于一个具有平滑性能的低通滤波器。
- class pcl::filters: GaussianKernelRGB< PointInT, PointOutT>, 附加RGB通道基于高斯核的卷积滤波实现,在滤波处理时不仅考虑空间XYZ信息,而且考虑RGB可见光信息。
class pcl::FilterIndices< PointT>, 剔除符合一定限定的点集的基类。
- class pcl::CropBox< PointT>和 class pcl::CropBox< sensor_msgs::PointCloud2>, 过滤掉在用户给定立方体内的点云数据。
- class pcl::CropHull< PointT>, 过滤在给定三维封闭曲面或二维封闭多边形内部或外部的点云数据,封闭曲面或多边形由类ConvexHull或ConcaveHull处理产生。
- class pcl::ExtractIndices< PointT> 和class pcl::ExtractIndices< sensor_msgs::PointCloud2>, 从一个点云中提取索引。
- class pcl::NormalSpaceSampling< PointT, NormalT>, 计算输入点云的每个点的法线,通过对法线方向的采样来对点云进行重采样。
class pcl::PassThrough< PointT>,实现对用户给定点云的某个字段的限定下,对点云进行简单的基本过滤。
class pcl::ProjectInliers< PointT>, 使用一个模型和一组的内点的索引,将内点投影到模型形成新的一个独立点云。
class pcl::RadiusOutlierRemoval< PointT>, 实现删除离群点的简单的滤波功能,如果一个点在给定搜索半径范围内邻近点数量小于给定阈值K,则判定为离群点并删除。
class pcl::RandomSample< PointT>, 实现对点云的均匀概率随机抽样。
class pcl::StatisticalOutlierRemoval< PointT>, 通过对查询点与邻域点集之间的距离统计判断来过滤离群点。
class pcl::VoxelGrid< PointT>, 根据给定的点云构造一个三维体素栅格并进行下采样达到滤波的效果。
class pcl::BoxClipper< PointT>, 实现用一个以原点为中心,XYZ各个方向尺寸为2,经过用户指定仿射变换的立方体进行空间裁剪,通过设置一个仿射变换矩阵先对立方体进行变换处理,之后输出仿射变换后落在该立方体内的点集。
仿射变换:又称仿射映射,是指在几何中,对一个向量空间进行一次线性变换并接上一个平移,变换为另一个向量空间。
class pcl::PlaneClipper3D< PointT>, 在三维空间实现平面裁剪。
边栏推荐
- Hezhou ESP32C3 +1.8"tft network clock under Arduino framework
- CSDN Markdown 之我见代码块 | CSDN编辑器测评
- Shield Alt hotkey in vscode
- Stacks and Queues | Valid parentheses, delete all adjacent elements in a string, reverse Polish expression evaluation, maximum sliding window, top K high frequency elements | leecode brush questions
- pytorch框架学习(7) tensorboard使用
- Why are negative numbers in binary represented in two's complement form - binary addition and subtraction
- How to get the last day of a month
- k-近邻实现手写数字识别
- 基于Qiskit——《量子计算编程实战》读书笔记(六)
- 【YOLOv5训练错误】权重文件出错?
猜你喜欢
随机推荐
Stacks and Queues | Valid parentheses, delete all adjacent elements in a string, reverse Polish expression evaluation, maximum sliding window, top K high frequency elements | leecode brush questions
GtkD开发之路
ThreadPoolExecutor thread pool principle
Jenkins 如何玩转接口自动化测试?
基于Qiskit——《量子计算编程实战》读书笔记(四)
Nexus_Warehouse Type
k-近邻实现手写数字识别
`id` bigint(20) unsigned NOT NULL COMMENT 'Database primary key',
FPGA engineer interview questions collection 41~50
深度学习中数据到底要不要归一化?实测数据来说明!
FPGA工程师面试试题集锦41~50
pytorch框架学习(5)torchvision模块&训练一个简单的自己的CNN (二)
Shield Alt hotkey in vscode
Hezhou ESP32C3 +1.8"tft network clock under Arduino framework
Abstract problem methodology
【Pei Shu Theorem】CF1055C Lucky Days
OneFlow源码解析:算子指令在虚拟机中的执行
What are the common commands of mysql
基本比例尺标准分幅编号流程
Pony语言学习(六):Struct, Type Alias, Type Expressions









