Laplacian Mesh Processing 三维网格拉普拉斯处理

        MeshEditing是一个重要的数字几何处理技术,重要是利用拉普拉斯定理等数学原理对离散化网格上的一些参数进行规范化和平滑化,广义上Mesh Editing包括网格平滑(Mesh Smooth),网格编辑(Mesh Editing),  涂层迁移(Coating Transfer),网格移植(Mesh Transplanting)、细节混合(Detail Mixing)等等。 

                                                                                        涂层迁移

                                                                                          细节混合 

                                                                                           网格编辑

                                                                                          网格移植

       Mesh Editing中重要的特征是要保持局部的细节,尤其Local Laplace Coordinates的不变性,最简单的Laplace 网格处理的原理如下: 

       网格的laplace坐标是定义为特定顶点的坐标减去其first-ring临近顶点坐标的加权和,这种坐标的好处是定义了一种逐顶点的局部形貌度量,类似于图像里面的各种梯度(比如Laplace、Sobel梯度等等)。    

      vi,vj代表顶点坐标,L(vi)代表第i个顶点上的拉普拉斯梯度, 一个普通单联通的三维网格里面,如果有超过一个顶点被固定,其他点就可以在维持自身的Laplace坐标的基础上求解出来新的位置,比如这些固定的顶点称为Handle(固定锚点集合),

      V’代表新求出来的顶点下的惩罚函数,等式右侧ui为特定锚点的空间位置,deltai为我们期望第i个点拉普拉斯值,具体该值为何取决于我们是在做移植任务还是平滑任务,如果是做平滑任务,那么deltai就应该为[0,0,0],求解方法就是对上述式子进行一次求解,其中固定锚定点集合的范围是m,共有n个顶点,这就是一种最为基础的拉普拉斯网格编辑的方法。

       但是,实际上上面讨论的拉普拉斯坐标都是全局坐标系下的,所以不具备旋转不变性,就是当点云整体存在旋转时候,拉普拉斯坐标值会发生改变,因此如果模型如果有旋转,强制让网格顶点的拉普拉斯坐标维持不变是不合理的,在存在较大旋转情况下,这种方法处理完成后网格存在扭曲切变的情况。      

        所以上式子增加了旋转项,通过旋转初始拉普拉斯坐标来拟合最终的Laplace坐标。其中旋转项是通过下面式子求解出来的: 

          求解上面的式子是采用一个点和他的临近点组成的点集来做一次SVD,求解出来一个最佳的带scale系数的RT。 这种方法主要用来做匹配点云的旋转平移求解。 

整个上面的方法都是基于下面的链接总结出来的

https://www.mathworks.com/matlabcentral/fileexchange/61599-laplacian_surface_editing_3d

https://github.com/luost26/laplacian-surface-editing

https://github.com/Progmdong/LaplacianEditing

参考文献的 

​​​​https://igl.ethz.ch/projects/Laplacian-mesh-processing/Laplacian-mesh-editing/

猜你喜欢

转载自blog.csdn.net/chenguowen21/article/details/100416948