【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),其处理结果如下
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

微小冷

请我喝杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值