当前位置:网站首页>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>, 在三维空间实现平面裁剪。
边栏推荐
猜你喜欢
Become a language that hackers have to learn. Do you think it's okay after reading it?
SSM框架整合实例
Pony语言学习(九)——泛型与模式匹配(终章)
Hezhou ESP32C3 +1.8"tft network clock under Arduino framework
CORS跨域资源共享漏洞的原理与挖掘方法
pytorch框架学习(7) tensorboard使用
基于Qiskit——《量子计算编程实战》读书笔记(三)
Advanced Feature Selection Techniques in Linear Models - Based on R
动手写prometheus的exporter-02-Counter(计数器)
【静态代理】
随机推荐
EasyGBS connects to mysql database and prompts "can't connect to mysql server", how to solve it?
论文精读 —— 2021 CVPR《Progressive Temporal Feature Alignment Network for Video Inpainting》
聊聊 API 管理-开源版 到 SaaS 版
YOLOv5 PyQt5(一起制作YOLOv5的GUI界面)
Hezhou ESP32C3 +1.8"tft network clock under Arduino framework
【YOLOv5训练错误】权重文件出错?
Stacks and Queues | Implementing Queues with Stacks | Implementing Stacks with Queues | Basic Theory and Code Principles
看了几十篇轻量化目标检测论文扫盲做的摘抄笔记
You can‘t specify target table ‘kms_report_reportinfo‘ for update in FROM clause
树莓派入门(4)LED闪烁&呼吸灯
pytorch框架学习(3)torch.nn.functional模块和nn.Module模块
Guys, the test in the idea uses FlinkCDC SQL to read Mysql data and write it into Kafka. The code creates
训练集Loss收敛,但是测试集Loss震荡的厉害?
论文精度 —— 2016 CVPR 《Context Encoders: Feature Learning by Inpainting》
ThreadPoolExecutor线程池原理
手把手带你写嵌入式物联网的第一个项目
在yolov5的网络结构中添加注意力机制模块
Flutter development: error The following assertion was thrown resolving an image codec: Solution for Unable to...
Shield Alt hotkey in vscode
Interface debugging also can play this?