level set 模型介绍

转自:https://blog.csdn.net/caoniyadeniniang/article/details/77803913

level set 模型介绍
   水平集方法与上一章节中的snake模型一样,同样是基于能量的图像分割方法,同样是通过求解最小能量泛函,得到目标轮廓的表达式。不同之处个人认为有两点,首先是能量构造方法的不同,其次是轮廓曲线的表达方式不同,水平集方法的轮廓表示借鉴了水平集的概念,将低维度的曲线嵌入了高维度的曲面中。

一。能量函数的构造
   如下图所示,黑色图形为带分割图形,白色园为轮廓曲线C,能量定义如下


其中c1,c2,分别为圆圈内/外像素点的平均值。u0为图像的像素值。整个能量项的意义即为:圆圈外像素减去他们均值的平方和加上圆圈内像素减去他们均值的平方和。对上图所示的情况,分析可知内部能量大于0,外部能量等于0,总能量大于0.分析下图的四种情况,可知只有轮廓与目标重合时的第四种情况,总能量为0最小,其余情况能量均大于0

除了上述的能量项外,还需要加入一些规则化项,如曲线的长度,曲线围成的面积等项。常用的能量方程如下所示


其中u,v 大于等于0,lamda1,lamda2 大于0. 一般规定v=0; lamda1=lamda2=1.一般来说,最小化上述能量方程即可求得轮廓C的方程,水平集方法另辟蹊径,引入了水平集思想来转化求解上述方程。

二 . 水平集思想
   水平集思想及通过高维空间来表示低位的空间。考虑如下的平面曲线。怎么表示这个曲线?怎么表示曲线的内部与外部?

在二维平面上,曲线的方程以及曲线的内外部可以分别表示为

现在考虑将曲线嵌入到三维面中。则此时曲线方程以及曲线的内外部可以分别表示为,

若将圆锥倒过来,则表示曲线内外的z值要变号。
上述推理证明,二维曲线可以用三维曲面表示,则二维曲线的演化也可以用三维曲面的零水平面表示(z=0的面),r如下图所示的二维曲线演化可以用三维曲面演化的零水平面表示

三,水平集方法的推导

首先引入阶跃函数与相应的冲击响应函数

借助于上面所讲的水平集思想,则第一部分中曲线的相关能量可以改写如下,并规定轮廓内部z大于0,外部小于0

因此总的能量可以表示为

对c1,c2求偏导推出

将c1,c2看做常数,则F是关于  的泛函,求解能量泛函得:


 

不断迭代,知道停止,每次迭代过程中,对应于的点所围成的轮廓即为演化中曲线,迭代停止的轮廓即为目标轮廓。
代码可搜CSDN相应资源
--------------------- 
作者:林中漫 
来源:CSDN 
原文:https://blog.csdn.net/caoniyadeniniang/article/details/77803913 
版权声明:本文为博主原创文章,转载请附上博文链接!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值