版里搜了下,呵呵,发现level set method应该是从图像识别领域借过来的。基本思想: 令(n+1)维函数 t = phi(x(t)) 等于0,即水平集。

基本问题:

1 初始化

定义 level set 函数 phi(x) 为符号距离函数,界面线上距离为0。一般为隐函数。

1.1  符号判定, 界面闭合线内/外

1.1.1 2D留数算法: 将边界C离散成n段,c_1, c_2, .. c_n 为结点, oc_i 表示某点o 指向c_i的向量

sum ( atan(( oc_i x oc_(i+1)) / (oc_i . oc_(i+1))), i = 1: n)

if sum == 0  --->  点o 在边界C外

if  sum == 2 * pi ---> 点o在边界C内

1.1.2  交点判定算法:  给定已知符号的点P0, 待定符号的点Px 与 P0 之间连线穿过边界C,

如果穿过次数是偶数表示Px与P0符号相同;

如果是奇数,则符号相反。

实现:

将边界C离散成n段,初始定义所有网格点(2D面)符号为正(C外),当离散的边界线段,与某条垂向网格线相交,则将该网格线上,在边界线段上侧的点全部变负号。

1.2 距离计算

1.2.1 边界C可由参数方程表示,先搜索距离边界线最近的网格点,计算距离;

1.2.2  边界C分段连续,直接计算各个端点到网格点的距离

2 演化方程

2.1 边界线随时间的变化,采用PDE描述 phi(x(t), t) = 0

d phi(x)/ dt + grad_phi (a. n + b.t) = 0

其中n是法向单位向量,t是切向单位向量。a是法向速度,b是切向速度。n影响边界线拓扑。

<- - n = grad_ phi / norm( grad_phi)

-->  d phi(x)/ dt  = a norm(grad_phi) = 0

2.2 演化方程的数值解

演化方程具有 Hamilton-Jacobi形式, d phi /dt + H(grad_phi) = 0 。 这类方程不存在经典解,只有弱解。解C0连续但不保证C1连续,即使初值C1连续。守恒型双曲PDE也有类似的解性质。比如超声速压缩流动,给定连续的初状态值,仍然可能演化出不连续的间断激波。所以演化方程的高阶精度数值解可借鉴守恒型双曲方程的ENO, WENO等解方案。LSM演化方程实际上是就是一个包含源项的守恒型双曲方程。

常用一阶精度的演化方程常采用迎风格式,Godunov格式, Lax_Friedrich格式等。

2.2.1 2D Godunov格式

norm(grad_phi) ~= ( max(-D_{+x},D_{-x}, 0) ^2 + max(-D_{+y}, D_{-y}, 0)^2 ) ^.5;

D_{+x}  forward差分,   D_{-x} backward差分。同理 D_{+y}, D_{-y}。 物理意义上要求保证信息必须从已知传向未知,所以对于每个当前要求的phi, 必须选择传播正方向上的差分格式。

一个简单的判断:当地(local) phi_x (i,j) 大于还是小于0. 如果 大于0,表示phi(i,j)沿x轴正方向传播,显然先要经过phi(i-1, j),故应该选用  D_{-x}差分。而且此时还满足

abs( D_{-x}) > abs(D_{+x}), 所以才有统一的上式样子。同理,如果local phi_x(i,j) 小于0, 则表示 phi(i,j )沿x轴负方向传播,即先经过 phi(i+1, j), 故采用  D_{+x}。同理y方向。

MATALB CODE here

2.2.2  ENO格式

参见 力学所李新亮老师CFD讲义, 激波平滑。

2.2 法向速度延扩

从边界线到全水平集面,任意垂直边界线的直线上速度恒定 --》 所以水平集面上任意一点的速度,可由两条垂直边界线的直线l1, l2唯一确定

2.3 边界设定

布置ghost point, 速度边界Ok, 位移边界可能出问题 -- > 重初始化(重新选择一个level set funtion)

假定周期边界  --》 保证单元边界符号连续

3  窄带level set method

只跟新距离边界线一定范围的网格点,远场点保持不变。节省计算/存储。

预告:下篇介绍 reinitialization in level set method

level set method 水平集方法基本问题相关推荐

  1. level set 介绍4(水平集方法)

    2.5 水平集方法 在2.4中的时候,我们已经知道曲线演化主要涉及到两个几何参数,一个是曲线的曲率,一个是曲线的方向矢量,而这两个参数的计算一并不是一件容易的事情,怎么有效的更方便处理曲线的几何参数的 ...

  2. 卷积神经网络结合水平集方法

    水平集方法用于深度卷积网络 水平集简介 CNN结合Level Set 疑惑 水平集简介 水平集(Level Set)方法是用于图像分割非常受欢迎的方法,其通过比目标维度高一维的水平集函数(LSF)的零 ...

  3. 水平集方法的一个基本框架

    水平集方法框架 水平集方法是现代图像处理中很重要的一个方法,为了说清楚这个东西,我们先介绍几个基本的概念. 零水平集 对于一个函数 ϕ(x⃗):Rn→R\phi(\vec x):{\mathbf{R} ...

  4. 水平集方法引入主动轮廓模型算法中的两种方法

    水平集方法引入主动轮廓模型算法中的两种方法 1.传统的基于主动轮廓模型和水平集理论的方法 2.变分水平集方法 在讲解水平集理论在主动轮廓模型中的应用前,我们先用流程图说明一下常见的处理主动轮廓模型的流 ...

  5. 拓扑优化中SIMP方法与水平集方法有何优缺点,水平集法变换到高维,不是更复杂了...

    作者:周平章 链接:https://www.zhihu.com/question/52008623/answer/187927508 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转 ...

  6. 计算机视觉之图像分割——水平集方法_ACWE2001

    一个简单的例子引入能量函数 其实是Mumford-Shah的特例 用水平集函数表示曲线 变分法得到欧拉-拉格朗日公式 迭代法解偏微分方程 算法 问题 这篇博客介绍的是2001年的一篇文章Active ...

  7. 【图像分割】基于GAC水平集方法实现图像分割matlab 源码

    一.简介 1 原理分析\ \ \ \ \ 2 编程过程\ 2.1 准备工作\ \ 2.2 迭代运算\ 二.源代码 ``` %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ...

  8. 水平集(Level Set)的基本方法

    水平集(Level Set)的基本方法 水平集(Level Set)的基本方法-曲线演化的直观解释 映射C(p), p\in [a,b] : R→R^2定义了一个平面的曲线,p是参数,对属于区间[a, ...

  9. 图像分割之水平集(Level Set)分割

    几何活动轮廓模型--水平集分割:Active Contours Without Edges 水平集方法 水平集是跟踪轮廓和表面运动的一种数字化方法,它不直接对轮廓进行操作,而是将轮廓设置成一个高维函数 ...

  10. [图像处理]水平集(Level set)算法实现思路(简化)

    [图像处理]水平集(Level set)算法实现思路(简化) 创建时间:2020年6月22日 修改时间:2021年6月12日 文章目录 [图像处理]水平集(Level set)算法实现思路(简化) 一 ...

最新文章

  1. xgboost lightgbm catboost 多分类 多标签
  2. nmp的php.ini,Just for fun——Docker做个NMP环境
  3. python注释_不建议使用Java注释的正确方法
  4. 三星手机Android9和10的区别,三星开始在Galaxy Note 9上测试Android 10
  5. 手机KG音乐怎么下载竖屏MV
  6. 云栖大会极客智造局亮点抢先看
  7. 实验五——循环结构学习总结
  8. 了解 SharePoint 2010 开发中的关键点
  9. python函数——形参中的:*args和**kwargs
  10. 4.5管道实现机制和模拟构建管道「深入浅出ASP.NET Core系列」
  11. 酷派 CWM Recovery 6.0.1.2 For CoolPad 7728 根据最新源码编译
  12. 火山视窗选择夹内使用右键菜单演示
  13. Spring @RequestMapping 注解原理
  14. 【FinE】期权定价的二叉树方法(1)
  15. cmake出错:Building inplace are not allowed. You should create a separate directory for Building.
  16. QQ公众号微信公众号,左右互搏?
  17. 那些年搞不懂的高深术语——依赖倒置•控制反转•依赖注入•面向接口编程
  18. STM8S003FP6 TIM4配置
  19. 计算机专业买电脑买那种好,windows7好还是windows10好_电脑系统7和10哪个好用
  20. 如何实现自有App上的小程序第三方微信授权登陆?

热门文章

  1. 高版本linux安装gamit,GAMIT10.6安装包下载
  2. react native 8081 端口号被占
  3. 2022年阿里云域名备案流程亲测及注意事项
  4. python 图像处理 书籍_清华大学出版社-图书详情-《深度学习技术图像处理入门》...
  5. 星光嵌入式WM8978音频模块发布
  6. android recycleView嵌套recycleView下拉二级列表显示(带动画)
  7. matlab中角度,利用 matlab 计算各种角度
  8. Fisher精确检验【转载】
  9. 微信小程序radio 标签 使用
  10. 《SEM长尾搜索营销策略解密》一一2.6 不再被忽视的个体差异