自学内容网 自学内容网

【IPOL阅读】点云双边滤波

简介

IPOL,即Image Processing On Line,理论上是一个期刊,但影响因子很低,只是个SCIE,按理说没什么参考价值。但是,这个网站的所有文章,都附带了源代码和演示窗口,所以对初学者来说非常友好,可以说是相见恨晚的一个网站。

这篇2017年的文章,复现了用于点云的双边滤波算法,并提供了源代码,十分良心。

  • Digne J, De Franchis C. The bilateral filter for point clouds[J]. Image Processing On Line, 2017, 7: 278-287.
  • doi:10.5201/ipol
  • 源码

点云滤波

假设曲面 M \mathcal M M中每个点的法向量为 n ⃗ v \vec n_v n v,那么滤波的目的,是让当前点的位置沿着法向量的方向发生变化

v + δ v ⋅ n ⃗ v v+\delta v\cdot\vec n_v\\ v+δvn v

其中 δ v \delta v δv表示如下

δ v = ∑ p ∈ N ( v ) w d ( ∥ p − v ∥ ) w n ( ∣ ⟨ n ⃗ v , p − v ⟩ ∣ ) ⟨ n ⃗ v , p − v ⟩ ∑ p ∈ N ( v ) w d ( ∥ p − v ∥ ) w n ( ∣ ⟨ n ⃗ v , p − v ⟩ ∣ ) \delta v=\frac{\sum_{p\in N(v)}w_d(\Vert p-v\Vert)w_n(|\langle \vec n_v, p-v\rangle |)\langle \vec n_v, p-v\rangle}{\sum_{p\in N(v)}w_d(\Vert p-v\Vert)w_n(|\langle \vec n_v, p-v\rangle |)} δv=pN(v)wd(pv)wn(n v,pv)pN(v)wd(pv)wn(n v,pv)n v,pv

w d , w n w_d, w_n wd,wn是两个离散函数,在后文中被定义为高斯函数。 ⟨ , ⟩ \langle,\rangle ,表示内积, p , v p,v p,v作为三维点,在计算时当作向量处理。 N ( v ) N(v) N(v)是点 v v v的邻域。这些内容与2003年Fleishman等人发表在TOG上的文章相比,并无差别。

为了加速点云的双边滤波过程,本文通过使用八叉树,将数据划分为多个单元格,将不同单元格分配给不同的线程,从而实现了并行计算。

处理结果

IPOL提供了演示demo,除了输入点云之外,有三个参数需要调节,分别是邻域半径(neighborhood radius),法邻域半径(normal neighborhood radius)和迭代次数(Number of filter iterations),其处理结果如下
在这里插入图片描述


原文地址:https://blog.csdn.net/m0_37816922/article/details/142360970

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!