Laplacian Mesh Editing 拉普拉斯形变(待回学校更新)
前言
因为实验需要用到拉普拉斯形变,但找了好久找到一个非常适合入门的资料。再此记录下我的学习过程,也算搬运翻译过来。
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 拉普拉斯形变(待回学校更新)的更多相关文章
- 第6讲 | 交换机与VLAN:办公室太复杂,我要回学校
第6讲 | 交换机与VLAN:办公室太复杂,我要回学校 拓扑结构是怎么形成的? 一个交换机肯定不够用,需要多台交换机,交换机之间连接起来,就形成一个稍微复杂的拓扑结构. 如何解决常见的环路问题? 包转 ...
- Android之线程回掉更新ui
一:工作线程中的回掉更新UI public class MainActivity extends AppCompatActivity { private int i; private Callback ...
- Laplacian matrix 从拉普拉斯矩阵到谱聚类
谱聚类步骤 第一步:数据准备,生成图的邻接矩阵: 第二步:归一化普拉斯矩阵: 第三步:生成最小的k个特征值和对应的特征向量: 第四步:将特征向量kmeans聚类(少量的特征向量):
- 网络协议 4 - 交换机与 VLAN:办公室太复杂,我要回学校
上一次,我们通过宿舍联网打魔兽的需求,认识了如何通过物理层和链路层组建一个宿舍局域网.今天,让我们切换到稍微复杂点的场景,办公室. 在这个场景里,就不像在宿舍那样,搞几根网线,拉一拉, ...
- 机器学习进阶-图像梯度计算-scharr算子与laplacian算子(拉普拉斯) 1.cv2.Scharr(使用scharr算子进行计算) 2.cv2.laplician(使用拉普拉斯算子进行计算)
1. cv2.Scharr(src,ddepth, dx, dy), 使用Scharr算子进行计算 参数说明:src表示输入的图片,ddepth表示图片的深度,通常使用-1, 这里使用cv2.CV_6 ...
- 拉普拉斯矩阵(Laplacian Matrix) 及半正定性证明
摘自 https://blog.csdn.net/beiyangdashu/article/details/49300479 和 https://en.wikipedia.org/wiki/Lapla ...
- opencv —— Laplacian 拉普拉斯算子、二阶导数用于边缘检测
Laplacian 算子简介 求多元函数的二阶导数的映射又称为 Laplacian 算子: 计算拉普拉斯变换:Laplacian 函数 void Laplacian(InputArray src, ...
- 三维网格形变算法(Gradient-Based Deformation)
将三角网格上的顶点坐标(x,y,z)看作3个独立的标量场,那么网格上每个三角片都存在3个独立的梯度场.该梯度场是网格的微分属性,相当于网格的特征,在形变过程中随控制点集的移动而变化.那么当用户拖拽网格 ...
- 三维网格形变算法(Laplacian-Based Deformation)
网格上顶点的Laplace坐标(均匀权重)定义为:,其中di为顶点vi的1环邻域顶点数. 网格Laplace坐标可以用矩阵形式表示:△=LV,其中,那么根据网格的Laplace坐标通过求解稀疏线性方程 ...
随机推荐
- MySQLroot密码的恢复方法
MySQLroot密码的恢复方法 有可能你的系统没有 safe_MySQLd 程序(比如我现在用的 ubuntu操作系统, apt-get安装的MySQL) , 下面方法可以恢复 1.停止MySQLd ...
- MQTT 入门介绍
一.简述 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的"轻量级& ...
- 4_2 刽子手游戏(UVa489)<自顶向下逐步求精法>
Hangman Judge是一个猜英文单字的小游戏(在电子字典中常会看到),游戏规则如下:1.答案单字写在纸上(每个字元一张纸),并且被盖起来,玩家每次猜一个英文字元(letter).2.如果这个英文 ...
- Linux学习:进入与退出系统
进入Linux系统:必须要输入用户的账号,在系统安装过程中可以创建以下两种帐号: 1.root--超级用户帐号(系统管理员),使用这个帐号可以在系统中做任何事情. 2.普通用户--这个帐号供普通用户使 ...
- hadoop StandAlone环境搭建
1.准备一台服务器 192.168.100.100 2.提前安装jdk 3.hadoop运行服务 NameNode 192.168.100.100 SecondaryNameNo ...
- 如何查看本机的oracle数据库的IP地址 和 数据库名
1,如果是本机的oracle数据库,ip就为127.0.0.1,数据库名看tnsname.ora文件 LISTENER_ORCL = (ADDRESS = (PROTOCOL = TCP)(HOST ...
- quartz定时任务cron表达式讲解及翻译成现实语言的插件的使用详解
cron表达式讲解 参见该网址: https://www.cnblogs.com/GarfieldTom/p/3746290.html cron表达式只有专业技术人员才看得懂,普通人不知道表达式是什么 ...
- 【原】rsync使用
在使用jenkins当跳板机的场景下,有使用git pull 代码到jenkins机器后,需要将代码复制到另一台机器上,常用的复制命令有scp和rsync:现就使用到了rsync进行详解: rsync ...
- linux 管道相关命令(待学)
1.1 cut cut:以某种方式按照文件的行进行分割 参数列表: -b 按字节选取 忽略多字节字符边界,除非也指定了 -n 标志 -c 按字符选取 -d 自定义分隔符,默认为制表符. -f 与-d一 ...
- IIS 配置迁移
使用管理员身份运行cmd 应用程序池: # 导出所有应用程序池 %windir%\system32\inetsrv\appcmd list apppool /config /xml > c:\a ...