IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 点云处理之点云滤波去噪 -> 正文阅读

[嵌入式]点云处理之点云滤波去噪

目录

点云滤波简介

什么是点云滤波?

为什么要点云滤波?

常用滤波器

直通滤波器

体素滤波器(下采样)

均匀采样滤波器(下采样)

统计滤波器(去噪)

条件滤波

半径滤波(去噪)

投影滤波

模型滤波

高斯滤波(去噪、平滑)

双边滤波(平滑)

总结


点云滤波简介

什么是点云滤波?

点云滤波作为常见的点云处理算法,一般是点云处理的第一步,对后续处理有很重要作用。滤波

有很多方面也有很多种功能,比如去除噪声点、离群点、点云平滑以及空洞、数据压缩等

为什么要点云滤波?

原始点云数据往往包含大量散列点、孤立点,在获取点云数据时 ,由于设备精度,操作者经验环

境因素带来的影响,以及电磁波的衍射性,被测物体表面性质变化和数据拼接配准操作过程的影

响,点云数据中讲不可避免的出现一些噪声,而且采样的分辨率也不同。

在点云处理流程中滤波处理作为预处理的第一步,对后续的影响比较大,只有在滤波预处理中将 噪声点,离群点,孔洞,数据压缩等按照后续处理定制,才能够更好的进行配准,特征提取,曲 面重建,可视化等后续应用处理。其类似于信号处理中的滤波。

PCL中点云滤波方案

PCL中总结了几种需要进行点云滤波处理的情况,这几种情况分别如下:

  1. ? 点云数据密度不规则需要平滑。
  2. ? 因为遮挡等问题造成离群点需要去除。
  3. ? 大量数据需要进行下采样(Downsample)?
  4. ? 噪声数据需要去除。

对应的方法如下:

  1. 按具体给定的规则限制过滤去除点。
  2. 通过常用滤波算法修改点的部分属性。
  3. 对数据进行下采样。
    ?

常用滤波器

直通滤波器

直通滤波器就是根据点云的属性在点的属性上设置范围,对点进行滤波,保留范围内的或保留范围外的。

  1. 指定一个维度以及该维度下的值域
  2. 遍历点云中的每个点,判断该点在指定维度上的取值是否在值域内,删除取值不在值域内的点
  3. 遍历结束,留下的点即构成滤波后的点云。

体素滤波器(下采样)

体素滤波器可以达到向下采样同时不破坏点云本身几何结构的功能,但是会移动点的位置。 此外体素滤波器可以去除一定程度的噪音点及离群点。主要功能是用来进行降采样
它的原理是根据输入的点云,首先计算一个能够刚好包裹住该点云的立方体,然后根据设定的分辨率,将该大立方体分割成不同的小立方体。对于每一个小立方体内的点,计算他们的质心,并用该质心的坐标来近似该立方体内的若干点。

ApproximateVoxelGrid的不同在于这种方法是利用每一个小立方体的中心来近似该立方体内的若干点。相比于 VoxelGrid,计算速度稍快,但也损失了原始点云局部形态的精细度

均匀采样滤波器(下采样)

均匀采样滤波基本上等同于体素滤波器,但是其不改变点的位置。下采样后,其点云分布基本均匀,但是其点云的准确度要好于体素滤波,因为没有移动点的位置
均匀采样算法:

均匀采样通过构建指定半径的球体对点云进行下采样滤波,将每一个球内距离球体中心最近的点作为下采样之后的点输出。

体素滤波是建立立方体,均匀采样是建立一个球。

统计滤波器(去噪)

统计滤波器主要用于去除明显离群点。 离群点特征在空间中分布稀疏。定义某处点云小于某个密度,既点云无效。计算每个点到其最近的k个点平均距离。则点云中所有点的距离应构成高斯分布。根据给定均值与方差,可剔除方差之外的点。

条件滤波

条件滤波器通过设定滤波条件进行滤波,删除不符合用户指定的一个或者多个条件。直通滤波器是一种较简单的条件滤波器。

半径滤波(去噪)

半径滤波器以某点为中心画一个圆计算落在该圆中点的数量,当数量大于给定值时,则保留该 点,数量小于给定值则剔除该点。
主要还是用于去除离群点在一定程度上可以用来筛选边缘点

投影滤波

将点投影到一个参数化模型上,这个参数化模型可以是平面、圆球、圆柱、锥形等进行投影滤波。 把三维点云投影到二维图像上,然后用图像处理的方法进行处理。

模型滤波

根据点到模型的距离,设置距离阈值过滤非模型点, 基于模型的点分割操作,将模型外的点从点云中剔除。

高斯滤波(去噪、平滑)

GaussianKernel是基于高斯核的卷积滤波实现,高斯过滤器相当于一个具有平滑性能的低通滤波器, 通过该类处理后的点云,相对比较平滑。

双边滤波(平滑)

双边滤波是一种非线性滤波器,它可以达到保持边缘、降噪平滑的效果。一定程度上拟补了高斯滤波的缺点。 双边滤波对高斯噪声效果比较好。

PCL中filters模块

  • pcl::PassThrought<pcl::PointXYZ> pass; 直通滤波器
  • pcl::VoxelGrid< pcl::PointXYZ > vox;体素滤波器
  • pcl::StatisticalOutlierRemoval<pcl::PointXYZ> sor;统计滤波器
  • pcl::RadiusOutlierRemoval<pcl::PointXYZ> rador;半径滤波器
  • pcl::UniformSamplinq<pcl::PointXYz> unisam;均匀采样
  • pcl::ConditionalRemoval<pcl::PointXYZ> condr;条件滤波器
  • pcl::ProjectInliers<pcl::PointXYZ> proj;投影滤波器
  • pcl::ModelOutlierRemoval<pcl::PointXYZ> modr;模型滤波器
  • pcl::BilateralFilter<pcl::PointXYZ> bf:双边滤波
  • pcl::filters::GaussianKernal<PointInT,PointOutT>高斯滤
  • pcl::ExtractIndices<pcl::PointxYz> extr;索引提取
  • 空间裁剪滤波
    • pcl::Clipper3D<pcl::PointXYZ>
    • pcl::BoxCliper3D<pcl::PointXYZ>
    • pcl::CropBox<pcl::PointXYZ>
    • pcl::CropHull<pcl::PointXYZ>

?

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-09-11 18:59:12  更:2021-09-11 19:00:55 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/20 4:17:29-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码