三维网格去噪算法(L0 Minimization)
[He et al. 2013]文章提出了一种基于L0范数最小化的三角网格去噪算法。该思想最初是由[Xu et al. 2011]提出并应用于图像平滑,假设c为图像像素的颜色向量,▽c为颜色向量的梯度,设置目标函数为:minc |c – c*|2 + |▽c|0,其中|▽c|0为▽c的L0范数,c*为原始图像的颜色向量。通过引入辅助变量δ,优化函数变为:minc,δ |c – c*|2 + β|▽c – δ|2 + λ|δ|0,其中λ用于控制最终图像的平滑程度。优化过程分两步:第一步固定c优化δ,即minδ β|▽c – δ|2 + λ|δ|0;第二步固定δ优化c,即minc |c – c*|2 + β|▽c – δ|2。然后循环迭代这两步,每次迭代中β乘以2,使得最终▽c ≈ δ。
当将L0范数最小化的思想应用于三角网格去噪时,网格顶点坐标p可以代替c,但是还需要设置一个离散微分算子来代替▽c,其满足网格平坦区域值为0,其中一个选择就是离散Laplacian算子。文章提出了一种应用于网格边的微分算子D(e),其表达式为:

但是当有角度接近0时,微分算子的权重会变成inf,因此文章又提出了一种优化后的微分算子表达式:


微分算子D(e)中的符号说明
对于非均匀噪声网格,文章在优化过程中加入了正则化项R(e) = (p1 – p2 + p3 – p4)2,于是优化目标变为:minp,δ |p – p*|2 + α|R(p)|2 + β|D(p) – δ|2 + λ|δ|0,其中p*为初始网格顶点坐标,D(p)代表与p相关的表达式,其第i项对应第i条边的微分算子,R(p)的第i项对应第i条边的正则项。同样优化过程分两步:第一步固定p优化δ,即minδ β|D(p) – δ|2 + λ|δ|0,当
,δi = 0,否则δi = Di;第二步固定δ优化p,即minp |p – p*|2 + α|R(p)|2 + β|D(p) – δ|2,相当于求解稀疏矩阵方程组。然后循环迭代上述两个步骤直到达到预定条件。

效果:


本文为原创,转载请注明出处:http://www.cnblogs.com/shushen。
参考文献:
[1] Lei He and Scott Schaefer, "Mesh denoising via L0 minimization," ACM Trans. Graph. 32, 4, Article 64 (July 2013), 8 pages, 2013.
[2] Li Xu, Cewu Lu, Yi Xu, and Jiaya Jia, "Image smoothing via L0 gradient minimization," In Proceedings of the 2011 SIGGRAPH Asia Conference (SA '11). ACM, New York, NY, USA, , Article 174 , 12 pages, 2011.
三维网格去噪算法(L0 Minimization)的更多相关文章
- 三维网格去噪算法(two-step framework)
基于两步法的网格去噪算法顾名思义包含两个步骤:首先对网格表面的法向进行滤波,得到调整后的网格法向信息,然后根据调整后的法向更新顶点坐标位置,下面介绍三篇该类型的文章. [Sun et al. 2007 ...
- 三维网格去噪算法(bilateral filter)
受图像双边滤波算法的启发,[Fleishman et al. 2003]和[Jones et al. 2003]分别提出了利用双边滤波算法对噪声网格进行光顺去噪的算法,两篇文章都被收录于当年的SIGG ...
- Vertex-Based Diffusion for 3-D Mesh Denoising(三维网格去噪中基于顶点的扩散算法)
Abstract—We present a vertex-based diffusion for 3-D mesh denoising by solving a nonlinear discrete ...
- Atitit.java图片图像处理attilax总结 BufferedImage extends java.awt.Image获取图像像素点image.getRGB(i, lineIndex); 图片剪辑/AtiPlatf_cms/src/com/attilax/img/imgx.javacutImage图片处理titit 判断判断一张图片是否包含另一张小图片 atitit 图片去噪算法的原理与
Atitit.java图片图像处理attilax总结 BufferedImage extends java.awt.Image 获取图像像素点 image.getRGB(i, lineIndex); ...
- 三维网格形变算法(Linear rotation-invariant coordinates和As-Rigid-As-Possible)
在三维网格形变算法中,个人比较喜欢下面两个算法,算法的效果都比较不错, 不同的是文章[Lipman et al. 2005]算法对控制点平移不太敏感.下面分别介绍这两个算法: 文章[Lipman et ...
- 三维网格分割算法(Random Walks)
首先以一维随机游走(1D Random Walks)为例来介绍下随机游走(Random Walks)算法,如下图所示,从某点出发,随机向左右移动,向左和向右的概率相同,都为1/2,并且到达0点或N点则 ...
- 基于谱聚类的三维网格分割算法(Spectral Clustering)
谱聚类(Spectral Clustering)是一种广泛使用的数据聚类算法,[Liu et al. 2004]基于谱聚类算法首次提出了一种三维网格分割方法.该方法首先构建一个相似矩阵用于记录网格上相 ...
- 基于随机游走的三维网格分割算法(Random Walks)
首先以一维随机游走(1D Random Walks)为例来介绍下随机游走(Random Walks)算法,如下图所示,从某点出发,随机向左右移动,向左和向右的概率相同,都为1/2,并且到达0点或N点则 ...
- 【算法随记六】一段Matlab版本的Total Variation(TV)去噪算法的C语言翻译。
最近看到一篇文章讲IMAGE DECOMPOSITION,里面提到了将图像分为Texture layer和Structure layer,测试了很多方法,对于那些具有非常强烈纹理的图像,总觉得用TV去 ...
随机推荐
- Ajax关于readyState(状态值)和status(状态码)的研究
var getXmlHttpRequest = function () { try{ //主流浏览器提供了XMLHttpRequest对象 return new XMLHttpRequest(); } ...
- AH00098 pid file overwritten
错误日志: 由于定义了: <IfModule mpm_winnt_module> ThreadsPerChild 450 MaxConnectionsPerChild 4000 Accep ...
- JScript中的条件注释详解(转载自网络)
JScript中的条件注释详解-转载 这篇文章主要介绍了JScript中的条件注释详解,本文讲解了@cc_on.@if.@set.@_win32.@_win16.@_mac等条件注释语句及可用于条件编 ...
- jQuery原型方法each使用和源码分析
jQuery.each方法是jQuery的核心工具方法之一,通用例遍方法,可用于例遍对象和数组.不同于例遍 jQuery 对象的 $().each() 方法,此方法可用于例遍任何对象.通常需要两个参数 ...
- ae工具是一种特殊的命令
itool继承icommand,所以itool工具的调用类似于icommand,而icommand的调用主要是oncreate和onclick方法,oncreate需要传入事件执行的的对象,oncli ...
- Shapely中的几何图形操作
Geometric Objects object.area Returns the area (float) of the object. object.bounds Returns a (minx, ...
- 分配给 主机的 Evaluation Mode 许可证已过期。建议升级许可证。
参考文献 http://247its.wordpress.com/2012/04/02/new-build-esxi-5-complaints-licence-has-expired/ http:// ...
- android studio 使用SVN 锁定文件,防止别人修改(基于Android studio 1.4 )
首先假设开发 A , 和 开发 B , 在使用 SVN 进行项目管理.那么A如何才能 某个锁定文件,防止B修改. 1.第一步,给这个文件加锁 完成这一步,则这个文件就别锁定了. 2.第二步,假如 ...
- Ubuntu 安装Samba服务器
1.安装 sudo apt-get update sudo apt-get install samba (如果出现库依赖问题可用命令sudo apt-get install samba libwbcl ...
- Android 采用HttpClient提交数据到服务器
在前几篇文章中<Android 采用get方式提交数据到服务器><Android 采用post方式提交数据到服务器>介绍了android的两种提交数据到服务器的方法 本文继续介 ...