前言

因为实验需要用到拉普拉斯形变,但找了好久找到一个非常适合入门的资料。再此记录下我的学习过程,也算搬运翻译过来。

Introduction / Basic Laplacian Mesh Representation

首先本文的代码中的拉普拉斯形变是作用在三角网格组成的3D model上的。一个三维模型是由很多个三角网格组成,每个三角网格有三个顶点。

拉普拉斯网格通过跟踪微分顶点信息而不是绝对信息来存储三角形网格的几何信息。当在网格上执行某些变换(尤其是变形)时,它可以有效地保存顶点间的关系。它还允许以非常自然的方式在整个表面上进行平滑的插值。

所以拉普拉斯形变,最重要的就是保存了顶点间的关系。当我们移动一个点后,其他的顶点为了维持一个能量函数不变,从而跟着移动。

Laplacian 的主要思想是:

N(i)表示i的邻居,\(w_{ij}\)就是各种权(重需要计算)。注意后面那个分式的的分母就是所有权重之和。如果i的相邻顶点的权重全部是1,那么:

这里的d_i表示i的邻居个数。这种权重全为1的情况也叫做umberalla weighting。加入有5个邻接顶点,每个都是1/5。这是什么,这就是这5个顶点组成的几何体的中心。

另外一种比较常见的权重是余切权重:

参考这幅图,选择的权重与角的余切值有关。点i和j相连的边所对的两个角的余切值组成权重:

这样的给邻接点赋值权重,能更好的保存它的几何信息。

构造delta坐标系

然后构造delta坐标系,也就是记录每个点i与所有点关系的一个权重矩阵:

  • 如果j是i的邻居,那么让矩阵[i,j]处的值等于\(-w_{ij}\),这里的\(w_{ij}\)就是我们上面说的那些不同的权重算法,任选一种。这里选余切重。
  • 如果j不是i的邻居且j不是i,那么令矩阵[i,j]处的值为0。
  • 如果j==i,那么令矩阵[i,j]处的值为1。

简言之,邻接点赋值为\(w_{ij}\),i点处赋值为1,其他非邻接赋值为0。

待更新

Mesh Reconstruction

待更新

Mesh Deformation

待更新

2D Parameterization

待更新

Membrane Surface

待更新

Surface Function Interpolation

待更新

Discrete Mean Curvature Approximation

待更新

Spectral Eigenanalysis

待更新

代码实现(python)

待更新

实验效果

待更新

Laplacian Mesh Editing 拉普拉斯形变(待回学校更新)的更多相关文章

  1. 第6讲 | 交换机与VLAN:办公室太复杂,我要回学校

    第6讲 | 交换机与VLAN:办公室太复杂,我要回学校 拓扑结构是怎么形成的? 一个交换机肯定不够用,需要多台交换机,交换机之间连接起来,就形成一个稍微复杂的拓扑结构. 如何解决常见的环路问题? 包转 ...

  2. Android之线程回掉更新ui

    一:工作线程中的回掉更新UI public class MainActivity extends AppCompatActivity { private int i; private Callback ...

  3. Laplacian matrix 从拉普拉斯矩阵到谱聚类

    谱聚类步骤 第一步:数据准备,生成图的邻接矩阵: 第二步:归一化普拉斯矩阵: 第三步:生成最小的k个特征值和对应的特征向量: 第四步:将特征向量kmeans聚类(少量的特征向量):

  4. 网络协议 4 - 交换机与 VLAN:办公室太复杂,我要回学校

        上一次,我们通过宿舍联网打魔兽的需求,认识了如何通过物理层和链路层组建一个宿舍局域网.今天,让我们切换到稍微复杂点的场景,办公室.     在这个场景里,就不像在宿舍那样,搞几根网线,拉一拉, ...

  5. 机器学习进阶-图像梯度计算-scharr算子与laplacian算子(拉普拉斯) 1.cv2.Scharr(使用scharr算子进行计算) 2.cv2.laplician(使用拉普拉斯算子进行计算)

    1. cv2.Scharr(src,ddepth, dx, dy), 使用Scharr算子进行计算 参数说明:src表示输入的图片,ddepth表示图片的深度,通常使用-1, 这里使用cv2.CV_6 ...

  6. 拉普拉斯矩阵(Laplacian Matrix) 及半正定性证明

    摘自 https://blog.csdn.net/beiyangdashu/article/details/49300479 和 https://en.wikipedia.org/wiki/Lapla ...

  7. opencv —— Laplacian 拉普拉斯算子、二阶导数用于边缘检测

    Laplacian 算子简介 求多元函数的二阶导数的映射又称为 Laplacian 算子:   计算拉普拉斯变换:Laplacian 函数 void Laplacian(InputArray src, ...

  8. 三维网格形变算法(Gradient-Based Deformation)

    将三角网格上的顶点坐标(x,y,z)看作3个独立的标量场,那么网格上每个三角片都存在3个独立的梯度场.该梯度场是网格的微分属性,相当于网格的特征,在形变过程中随控制点集的移动而变化.那么当用户拖拽网格 ...

  9. 三维网格形变算法(Laplacian-Based Deformation)

    网格上顶点的Laplace坐标(均匀权重)定义为:,其中di为顶点vi的1环邻域顶点数. 网格Laplace坐标可以用矩阵形式表示:△=LV,其中,那么根据网格的Laplace坐标通过求解稀疏线性方程 ...

随机推荐

  1. KK音标

    目录 KK音标 参考 音标发音 音标口诀 五个规则 KK音标

  2. 关于umask的计算方式(简单任性)

    1.对于文件夹[d]来说  用755-umask 3.对与文件[f]来说,在2的基础上减掉x属性就完事儿(有x的,减掉1,没有的,就什么也不管) 再来个手绘版本的举例

  3. 中山纪中Day1--普及

    早上一起,扑面是瓢泼的大雨.跨过千山万水,来到纪中门前,毅然以一种大无畏的英雄气概跨进了考场. 面对四道神题.然后,我成功过五关斩六将,A掉了2道题!!! 收获:优先队列(大.小根堆) T1:APPL ...

  4. POJ-3821-Dining (拆点网络流)

    这题为什么不能用 左边放食物,中间放牛,后面放水? 原因很简单,假设一头牛喜欢两个食物AB和两种水AB. 此时可以从一个食物A,走到牛A,再走到水A. 但是还可以有另一条路,从另一个食物B,走到该牛A ...

  5. 吴裕雄--天生自然TensorFlow2教程:梯度下降简介

    import tensorflow as tf w = tf.constant(1.) x = tf.constant(2.) y = x * w with tf.GradientTape() as ...

  6. 吴裕雄 python 神经网络——TensorFlow训练神经网络:不使用隐藏层

    import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data INPUT_NODE = 784 ...

  7. day 12 zuoye

    复习 # 函数 -- 2天 # 函数的定义和调用 # def 函数名(形参): #函数体 #return 返回值 #调用 函数名(实参) # 站在形参的角度上 : 位置参数,*args,默认参数(陷阱 ...

  8. 树莓派4B踩坑指南 - (10)安装坚果云(更新:暂不支持)

    191209更新: 根据坚果云用户支持(helpdesk@nutstore.net)的官方回复,客户端不支持arm,所以本篇后续内容可以不用看了.. 原文如下: "您好,客户端似乎不支持ar ...

  9. 使用Shiro实现认证和授权(基于SpringBoot)

    Apache Shiro是一个功能强大且易于使用的Java安全框架,它为开发人员提供了一种直观,全面的身份验证,授权,加密和会话管理解决方案.下面是在SpringBoot中使用Shiro进行认证和授权 ...

  10. Mac OS删除文件夹和文件的命令

    https://www.jianshu.com/p/0376bf0514e3 2017.08.18 17:27* 字数 219 阅读 16709评论 0喜欢 0 rmdir删除空目录,不过一旦目录非空 ...