转载:https://www.cnblogs.com/shushen/p/5864042.html

  下面介绍一种基于Poisson方程的三角网格补洞方法。该算法首先需要根据孔洞边界生成一个初始化补洞网格,然后通过法向估算和Poisson方程来修正补洞网格中三角面片的几何形状,使其能够适应并与周围的原始网格融合。算法的主要步骤如下:

  1-检测孔洞边界并初始化补洞网格

  2-调整补洞网格

    2.1-计算补洞网格中顶点的期望法向

    2.2-基于期望法向旋转补洞网格中的三角面片

    2.3-基于Poisson方程调整补洞网格顶点位置

  下面分别介绍算法中每一步的具体过程:

1:检测孔洞边界并初始化补洞网格

  检测孔洞边界和初始化补洞网格方法与以前介绍的方法相同。由于初始化补洞网格无法与原始孔洞周围的网格有效融合,因此需要调整补洞网格的顶点位置使得补洞网格与原始网格之间光滑过渡。

2.1计算补洞网格中顶点的期望法向

  由于已知原始网格孔洞边界的法向,将其作为补洞网格边界的法向,构建Laplace方程求解补洞网格内部顶点的法向分布。

  • Laplace算子:

  假设f表示在每个顶点上的标量,那么网格域上在顶点xi处的Laplace算子定义如下(不考虑面积影响):

其中N1(xi)表示顶点xi的1环邻域点,αij和βij为边eij对应的2个对角。

2.2:基于期望法向旋转补洞网格中的三角面片

  计算得到补洞网格中顶点的期望法向之后,可以进一步求得三角面片的期望法向,三角面片的期望法向是其三个顶点期望法向的平均值,然后补洞网格中所有的三角面片根据期望法向进行旋转。旋转参数计算方法如下:假设ni、ni’和ci为三角面片fi的原始法向、期望法向和重心位置,ni与ni’的叉乘方向a为三角面片fi的旋转轴方向,ni与ni’之间的夹角φ为三角面片fi的旋转角度,那么三角面片fi将以ci为旋转中心,绕旋转轴a旋转角度φ到新的位置。

2.3:基于Poisson方程调整补洞网格顶点位置

  旋转补洞网格的三角面片会撕裂补洞网格,因此我们利用Poisson方程将其重构成连续的网格曲面。在建立Poisson方程时我们需要先计算撕裂网格的梯度场,将其作为Poisson方程的引导场,从而进行网格顶点位置的调整。

其中f为待求的调整后网格顶点位置,w为撕裂网格的梯度场。

  • 梯度算子:

  假设f表示在每个顶点上的标量,那么网格域上标量场f在任意三角面片T内的梯度算子定义如下:

其中基函数梯度▽Φi的表达式是,⊥表示将向量逆时针旋转90度,AT表示三角片T的面积。

  • 散度算子:

  假设w表示在每个三角片上的向量,那么网格域上向量场w在顶点xi处的散度算子定义如下:

其中T1(xi)表示顶点xi的1环邻域三角片,AT表示三角片T的面积。

效果:

本文为原创,转载请注明出处:http://www.cnblogs.com/shushen

相关:

三维网格形变算法(Gradient-Based Deformation):http://www.cnblogs.com/shushen/p/4932089.html

三维网格补洞算法(Radial Basis Function):http://www.cnblogs.com/shushen/p/5759679.html

参考文献:

[1] Wei Zhao, Shuming Gao, and Hongwei Lin. 2007. A robust hole-filling algorithm for triangular mesh. Vis. Comput. 23, 12 (November 2007), 987-997.

三维网格补洞算法(Poisson Method)(转载)的更多相关文章

  1. 三维网格补洞算法(Poisson Method)

    下面介绍一种基于Poisson方程的三角网格补洞方法.该算法首先需要根据孔洞边界生成一个初始化补洞网格,然后通过法向估算和Poisson方程来修正补洞网格中三角面片的几何形状,使其能够适应并与周围的原 ...

  2. 三维网格补洞算法(Radial Basis Function)

    在逆向工程中,由于设备或模型的原因,我们获取得到的三维模型数据往往并不完整,从而使得生成的网格模型存在孔洞,这对后续的模型分析会造成影响.下面介绍一种基于径向基函数(RBF:Radial Basis ...

  3. 行为识别笔记:improved dense trajectories算法(iDT算法)(转载)

    iDT算法是行为识别领域中非常经典的一种算法,在深度学习应用于该领域前也是效果最好的算法.由INRIA的IEAR实验室于2013年发表于ICCV.目前基于深度学习的行为识别算法效果已经超过了iDT算法 ...

  4. Java排序算法总结(转载)

    排序算法 平均时间复杂度 冒泡排序 O(n2) 选择排序 O(n2) 插入排序 O(n2) 希尔排序 O(n1.5) 快速排序 O(N*logN) 归并排序 O(N*logN) 堆排序 O(N*log ...

  5. 【机器学习详解】SMO算法剖析(转载)

    [机器学习详解]SMO算法剖析 转载请注明出处:http://blog.csdn.net/luoshixian099/article/details/51227754 CSDN−勿在浮沙筑高台 本文力 ...

  6. js javascirpt 数学库、 算法库 (转载)

    提示:国外官网,谷歌浏览器右键可以翻译成中文. 1.math.js 官网:https://mathjs.org/index.html 其它简介:https://www.jianshu.com/p/4f ...

  7. 全网最!详!细!tarjan算法讲解。——转载自没有后路的路

    全网最!详!细!tarjan算法讲解.   全网最详细tarjan算法讲解,我不敢说别的.反正其他tarjan算法讲解,我看了半天才看懂.我写的这个,读完一遍,发现原来tarjan这么简单! tarj ...

  8. 基恩士的浓淡补正算法(Shading Correction Filter)的模拟实现。

    知道这个算法应该有很久了,主要当时在意2个事情,一个是这个名字的翻译是在是搞笑,第二是这个算法的效果.不过一直以来都十分好奇这个算法是怎么实现的.因为之前一直无法实际的用基恩士的软件平台用不同的图片去 ...

  9. HS光流算法详解<转载>

    HS 光流法详解 前言 本文较为详细地介绍了一种经典的光流法 - HS 光流法. 光流法简介 当人的眼睛与被观察物体发生相对运动时,物体的影像在视网膜平面上形成一系列连续变化的图像,这一系列变化的图像 ...

随机推荐

  1. Z从壹开始前后端分离【 .NET Core2.0/3.0 +Vue2.0 】框架之三 || Swagger的使用 3.1

    本文梯子 本文3.0版本文章 常见问题 1.Bug调试 2.经常有小伙伴遇到这个错误 3.路由重载 一.为什么使用Swagger 二.配置Swagger服务 1.引用Nuget包 2.配置服务 3.启 ...

  2. python凯撒加密

    在密码学中,恺撒密码是一种最简单且最广为人知的加密技术.它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文.例,当偏移量是3的时候,所有的字母A将 ...

  3. python web框架Flask——后台登录

    项目搭建 创建一个项目之后,需要在手动创建几个包(含有__init__.py文件的目录)和文件 1.在主目录下创建配置文件:config.py 2.在主目录下创建扩展文件:exts.py 3.在主目录 ...

  4. grep命令提示"binary file matches **.log"解决方法

    仔细想想,这个问题遇到很多次了,之前一直以为很复杂,一搜索发现解决这么简单,记录一下做备忘. grep test XXX.log Binary file app.log matches 此时使用-a参 ...

  5. Wireshark小技巧:将IP显示为域名

    "  本文介绍如何使Wireshark报文窗口的Source栏及Destination内的IP直接显示为域名,提升报文分析效率." 之前内容发现部分不够严谨的地方,所以删除重发. ...

  6. Android JS打开原生应用

    设置App通过网页JS,唤醒打开本地应用. 在AndroidManifest 中,在应用启动页配置下,添加android:exported="true",设置category 添加 ...

  7. 2、mongoDB的基本操作

    数据写入和查询: show dbs (查看有哪些数据库) use imooc (使用数据库) db.dropDatabase() 删除数据库 备注:在use的时候如果use一个不存在的表,在mongo ...

  8. CodeForces - 1251E2 (思维+贪心)

    题意 https://vjudge.net/problem/CodeForces-1251E2 一共有 n 个选民,你可以付出 pi​ 的代价让第 i 个选民为你投票,或者,在为你投票的人数达到 mi ...

  9. Tomcat相关目录及配置文件

    目录结构 [root@localhost tomcat]# tree -L 1.├── bin├── BUILDING.txt├── conf├── CONTRIBUTING.md├── lib├── ...

  10. mysql命令大全一

    mysql -u root -p;create database qa;show databases;use qa; create table results(id int not null auto ...