双边滤波原文“The Bilateral Filter for Point Clouds",作者为 Julie DigneCarlo Franchis。由于双边滤波原理简单,其实现过程并不复杂,因此本文不对其原理进行详细说明和解释,有兴趣的小伙伴可以直接下载论文进行详细阅读。本文旨在分析双边滤波的适应范围及其不足之处。

下面直接给出论文中单点更新的方法:

通过单点更新公式可知,更新点为原始点在法线方向上的移动。作者在此处进行了说明,通过半径搜索得到的邻域点集进行法线估计,法线无需进行定向,其原因在于邻域点与原始点构成的向量,在与法线进行点乘时已经包含了原始点需要移动的正确方向(感兴趣的同学,可以在纸上简单的画一下,就会明白)。

现在考虑两个权重项,距离权重、法线方向投影模长权重,在整个算法的伪代码中作者给出了权重的计算方法:

通过公式可知,作者使用两个高斯分布,其中距离越近权重越大,反之,距离越远权重越小。关于法线方向投影模长权重亦是如此。权重的作用在于用来保证局部点云即能平滑又不失其特征,故而使距离远,法线方向上投影模长大的点权重变小。

在本人“点云法线计算”一文中对法线的计算进行了说明,由该文可知,法线的估算采用的是平面方程。故而对双边滤波而言其平滑模型为平面模型,因此使用该方法进行平滑时,无论怎么调节参数其本质都不会改变。因此在使用该方法进行平滑时,对于边、角、特征锐利之处都会被袜平,对于要求平滑前后变化较小且特征保持良好的需求而言,双边滤波因此失去了适用性。其实对于局部点云为非平面,采用平面估计法线已经失去了局部的特征。

为此有学者采用距离权重的方式修改点云法线计算过程中的协方差,来提高法线估计的准确性。当然采用该方法会有一些改进,但是仍旧改变不了其本质因此上述现象仍旧会存在。采用加权协方差计算出的整体模型法线过渡不均匀,会使整体模型平滑效果变差。

在本人实践经验中,目前只有国外的GeoMagic的平滑效果最佳、细节保持最好。有兴趣的小伙伴可以查看其专利,专利中给出了其平滑的策略和方法,采用法线协方差分解后特征值度量的分类方法进行平滑,其中采用平面方程,二次曲面方程,圆锥曲线方程进行拟合。这里需要指出的是,分类后类与类的接缝处会出现台阶,如何对其进行处理是一个相当棘手的问题,显然GeoMagic的处理方法很到位。同样需要说明的是本人按二次曲面拟合方法进行了局部区域点云平滑实验,不管是计算速度上还是效果上都不如GeoMagic,当然比双边滤波要好很多,所以猜测专利给出的是一种方法其实际使用方法并不是专利中的,又或只是部分,也有可能是本人实现错误。

后续将会介绍其它点云平滑的方法。

如果有不正确的地方,欢迎大家斧正。期待大家留言交流,共同进步!

点云平滑之双边滤波适用性分析相关推荐

  1. matlab双边滤波处理点云,常见点云滤波算法

    姓名:张志文 学号:19021210649 [嵌牛观察] 目前点云处理的算法十分的多,不同的滤波算法有着不同的应用方向 [嵌牛鼻子] 点云:滤波 [嵌牛提问] 常见的点云滤波算法有哪些? [嵌牛正文] ...

  2. 基于法线的点云双边滤波

    pcl是根据强度值进行双边滤波,这里用法线计算. 双边滤波具有一定的保留边缘特征的功能,本质上是一种平滑算法(滤波前后点云数量不变),算法原理: 具体参考<The Bilateral Filte ...

  3. 点云去噪-双边滤波-matlab实现-2021-7-26-

    2021-7-21的时候博主已经写过部分点云去噪的介绍及部分滤波matlab写法,在新开的博客中补充博主在写双边滤波时的想法,21号的贴子链接: 2021-7-21-点云去噪(中值.高斯.均值.SOR ...

  4. OpenCV(十一)图像滤波(平滑处理)(平均、中值、高斯、双边滤波)

    目录 一.基础理论 1.图像噪声 1-1.椒盐噪声 1-2.高斯噪声 2.滤波 3.线性滤波 1.概述 2.线性滤波原理: 二.均值滤波(cv::blur())(简单滤波) 1.原理 2.API 三. ...

  5. Open3D法线双边滤波, 利用法向信息提高点云滤波效果

    Open3D法线双边滤波, 利用法向信息提高点云滤波效果 Open3D是一个面向3D数据处理的开源库,其中内置了许多点云滤波算法,包括基于法线的双边滤波.法线双边滤波是一种基于点云法向信息的滤波算法, ...

  6. c++ openvc4.5.5 学习笔记(五)图像平滑滤波几种基本方法(平均滤波blur、高斯平滑滤波GaussianBlur、中值滤波medianBlur、双边滤波bilateralFilter )

    平滑,也称为模糊,是一种简单而经常使用的图像处理操作. 要执行平滑操作,我们将对我们的图像应用过滤器.最常见的滤波器类型是线性的,其中输出像素的值(i.e. g(i,j)),被确定为输入像素值的加权和 ...

  7. 非线性邻域滤波(NNFs)在MR-FBP图像重建算法中的应用(基于astra-toolbox开发, 实现双边滤波,非局部均值滤波(NLM)的惩戒项的改进,并进行MAE,MAR分析)

    本科荒废了两年,大三终于开始好好学习了,,,,但是跟无头苍蝇,只知道上课,大四即将找工作,心理慌得一批,由于自己太辣鸡,,,只能找到3,4000的,,,终于还是决定步入研究生大抗,,,上了后发现他娘的 ...

  8. Open3D 点云双边滤波

    文章目录 一.简介 二.实现代码 三.实现效果 参考资料 一.简介 在二维图像领域中,双边滤波算法是通过考虑中心像素点到邻域像素点的距离(一边)以及像素亮度差值所确定的权重(另一边)来修正当前采样中心 ...

  9. opencv-12-高斯滤波-双边滤波(附C++代码实现)

    开始之前 这几天由于自己的原因没有写, 一个是因为自己懒了, 一个是感觉这里遇到点问题不想往下写了, 我们先努力结束这个章节吧, 之前介绍了比较常用而且比较好理解的均值和中值滤波, 但是呢,在例程Sm ...

最新文章

  1. 史上最强神经网络绘制神器来啦!一系列暗黑操作!
  2. Java中对接钉钉API获取数据流程
  3. JavaScript eval() 函数的用法
  4. 剑指Offer - 九度1367 - 二叉搜索树的后序遍历序列
  5. JPA 2 | EntityManagers,事务及其周围的一切
  6. java怎么引入html文件路径_如何在public_html中读取文件但在域外?使用相对路径...
  7. 人人都能看懂的 LSTM
  8. matlab bwdist
  9. mysql iostat_iostat命令详解_MySQL
  10. 让天之痕窗口化运行!
  11. 社交媒体运营_在社交媒体上确定投诉相关帖子
  12. 微信PC端电脑端多开 CMD打开多个微信
  13. C语言 输出1000年~2000年之间的闰年
  14. 零知识证明(zero-knowledge proof)
  15. 搭建高可用oVirt(hosted engine)
  16. 使用pydot 画CNN网络结构图
  17. 基于PHP下的大学生校园交流论坛的设计与实现毕业设计源码101634
  18. Tekton task入门上
  19. 【君思智慧园区】产业园区运营服务的创新模式
  20. 解决WebService部署时出现的“未能创建类型...”错误

热门文章

  1. Worksoft Certify学习之路
  2. TPM 2.0规范系列解读——Part 1体系结构第(三)读:可信平台的基本特征
  3. 互联网结合产业,并不是为了继续建筑互联网与实体产业之间的高墙
  4. 代理IP的主要用途和使用注意事项
  5. Pandas包(一):Pandas入门与对象的创建查看
  6. 运筹学与博弈论的关系
  7. 电影 控方证人 + 勇敢者游戏
  8. nginx 实现根据访问端跳转指定页面
  9. 内存池简单实现(一)
  10. 工程流体力学笔记暂记24 (不可压缩粘性流体的运动微分方程**N-S方程**)