受图像双边滤波算法的启发,[Fleishman et al. 2003]和[Jones et al. 2003]分别提出了利用双边滤波算法对噪声网格进行光顺去噪的算法,两篇文章都被收录于当年的SIGGRAPH,至今引用超500余次。虽然从今天看两篇文章的去噪效果还不算非常好,但是其中的思想是值得学习的。图像双边滤波算法可以参考 http://blog.csdn.net/abcjennifer/article/details/7616663 ,图像双边滤波器由空间域核与值域核组成,在图像的特征区域,自身像素值与周围像素值差别较大,这时起主导的值域核决定周围像素值的权重系数大幅降低,因此双边滤波能够在去噪的同时保持细节特征。
[Fleishman et al. 2003]提出的网格去噪算法为一种迭代方法:首先定义每个顶点u的计算域,空间域定义为顶点u到计算域内其他顶点p的距离,值域定义为计算域内其他顶点p到顶点u切平面的带符号距离,然后利用双边滤波方法计算顶点u在法向上的移动距离,更新完网格所有顶点位置后即完成一次迭代。具体公式如下:
其中空间域核W c (x) = e -x2/2 σ c2 ,值域核W s (x) = e -x2/2 σ s2 ,N(u)为满足||u - p i || < ρ = 2σ c 的顶点集{p i },I(p)为顶点p到顶点u切平面的带符号距离,最后计算得到的I(u)即为顶点u需要在其法向上移动的距离。
效果:
[Jones et al. 2003] 提出的网格去噪算法不需要迭代,具体公式如下:
其中f和g分别为空间域核以及值域核,核函数都为高斯函数,a q 为三角片的q的面积,c q 为三角片的q的中心,S为满足||c q - p|| < 2σ f 的三角片集,最后直接计算得到新顶点的位置p’。
那么如何得到∏ q (p),∏ q (p)为顶点p在三角片q切平面上的投影点,但该投影点并不是在原始网格上计算。文章提出忽略双边滤波公式中的值域核函数g,并令∏ q (p) = c q ,即利用高斯滤波得到一个虚拟网格,而∏ q (p)即为顶点p到虚拟网格中三角片q切平面上的投影点。
效果:
欢迎大家一起探讨计算机图形学算法问题,邮箱:shushen@126.com
本文为原创,转载请注明出处: http://www.cnblogs.com/shushen 。
参考文献:
[1] Shachar Fleishman, Iddo Drori, and Daniel Cohen-Or. 2003. Bilateral mesh denoising. In ACM SIGGRAPH 2003 Papers (SIGGRAPH '03). ACM, New York, NY, USA, 950-953.
[2] Thouis R. Jones, Frédo Durand, and Mathieu Desbrun. 2003. Non-iterative, feature-preserving mesh smoothing. In ACM SIGGRAPH 2003 Papers (SIGGRAPH '03). ACM, New York, NY, USA, 943-949.