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坐标通过求解稀疏线性方程 ...
随机推荐
- JVM 初始
我们刚学习java的时候,从来没有想过new一个对象后,需要我们手动去管理过他的内存空间释放,因为我们知道java有GC垃圾回收器这哥们的存在,他会帮我们处理好一切,这就好比我是皇帝,我想在哪建个行宫 ...
- java 责任链模式的三种实现
责任链模式 责任链模式的定义:使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系, 将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理他为止.这里就不再过多的介绍什么 ...
- SQL 查询每组的第一条记录
CREATE TABLE [dbo].[test1]( [program_id] [int] NULL, [person_id] [int] NULL ) ON [PRIMARY] /*查询每组分组中 ...
- Spring Boot 缓存应用 Ehcache 入门教程
Ehcache 小巧轻便.具备持久化机制,不用担心JVM和服务器重启的数据丢失.经典案例就是著名的Hibernate的默认缓存策略就是用Ehcache,Liferay的缓存也是依赖Ehcache. 本 ...
- python安装MySQLclient
直接使用pip命令安装mysqlclient : pip3 install mysqlclient 如果windows安装不了MySQL-python mysqlclient 参考以下解决方案: 这个 ...
- 转发-[原创]ASR1K 在Rommon导入IOS-XE启动
在相对较老的设备平台可以通过在rommon下使用以下命令导入IOS. rommon 1 > IP_ADDRESS=192.168.1.2rommon 2 > IP_SUBNET_MASK= ...
- 「AT4741 [ABC132D] Blue and Red Balls」
题目大意 给出一个长度为 \(N\) 的01串,其中有 \(K\) 个 \(1\),其他都是 \(0\),需要求出当着 \(K\) 个 \(1\) 分成 \(1\) 到 \(K\) 段每一个的方案数. ...
- Centos610无桌面安装Docker-安装
1.必备环境 设定docker源yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.rep ...
- 同一台服务器lnmpa环境下配置ip或域名访问不同站点
1.配置域名访问 (1)添加虚拟主机 (2)nginx配置 cd /usr/local/nginx/conf/vhost vim zkadmin.zouke.com.conf (3)apache配置 ...
- python多线程下载ts文件
# -*- coding: utf-8 -*- """ Created on Wed Aug 22 15:56:19 2018 @author: Administrato ...