当前位置:网站首页>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>, 在三维空间实现平面裁剪。
边栏推荐
- 树莓派入门(3)树莓派GPIO学习
- Qiskit 学习笔记1
- Zhongang Mining: Strong downstream demand for fluorite
- 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
- 常用工具系列 - 常用正则表达式
- 基于Qiskit——《量子计算编程实战》读书笔记(四)
- Interface documentation evolution illustration, some ancient interface documentation tools, you may not have used it
- 【格式转换】将JPEG图片批量处理为jpg格式
- GtkD开发之路
- WSTP初体验
猜你喜欢
An article to master the entire JVM, JVM ultra-detailed analysis!!!
pytorch框架学习(6)训练一个简单的自己的CNN (三)细节篇
动手写prometheus的exporter-02-Counter(计数器)
Arduino框架下合宙ESP32C3 +1.8“tft 网络时钟
【静态代理】
训练集Loss收敛,但是测试集Loss震荡的厉害?
Kubernetes:(十六)Ingress的概念和原理
EasyGBS connects to mysql database and prompts "can't connect to mysql server", how to solve it?
pytorch框架学习(4)torchvision模块&训练一个简单的自己的CNN (一)
基于BP神经网络的多因素房屋价格预测matlab仿真
随机推荐
pytorch框架学习(9)torchvision.transform
Tkinter 入门之旅
基本比例尺标准分幅编号流程
Read the excerpt notes made by dozens of lightweight target detection papers for literacy
通过一个案例轻松入门OAuth协议
Error when installing oracle rac 11g and executing root.sh
Depth of carding: prevent model fitting method
图纸怎么折?(A0,A1,A2,A3の图纸如何折成A4大小)
FPGA engineer interview questions collection 31~40
The sword refers to Offer 033. Variation array
MongoDB 基础了解(一)
每周推荐短视频:探索AI的应用边界
如何在报表控件FastReport.NET中连接XLSX 文件作为数据源?
Introduction to curl command
EasyGBS connects to mysql database and prompts "can't connect to mysql server", how to solve it?
深度学习中数据到底要不要归一化?实测数据来说明!
【Static proxy】
Guys, the test in the idea uses FlinkCDC SQL to read Mysql data and write it into Kafka. The code creates
R语言:修改chart.Correlation()函数绘制相关性图——完美出图
基于Qiskit——《量子计算编程实战》读书笔记(四)