主动轮廓模型-水平集方法

来源:互联网 发布:mac桌面图标删不掉 编辑:程序博客网 时间:2024/04/27 22:48

     本文希望通过用一种通俗形象的方式去理解水平集方法,说法可能并不严谨,由于水平有限,仅仅是个人对水平集方法的理解,如有错误,望指出!所谓的水平集方法,在2维图像分割中通俗的说法就是:用3维空间内的平面的曲面演化去实现2维平面中曲线的演化。曲线演化可参考:http://blog.csdn.net/zouxy09/article/details/8712287其中还讲了参数主动轮廓模型snake模型。本文讲述水平集方法属于几何主动轮廓模型。

    水平集方法是如何达到分割图像的目的的呢?

       如上图所示,初始曲线通过迭代不断的向边缘靠近,最终将图像分割出来。在参数主动轮廓模型中,曲线的演化是通过最小化能量函数来实现最终分割的,而水平集方法则是将曲线嵌入到一个3维的曲面中的0水平集中,通过演化3维空间中的曲面,再从演化后的曲面中获取0水平集,这个0水平集就是演化后的曲线。

      那么,这个曲面应该如何构建?换一种说法就是对于曲线C如何构建对应的水平集φ。假设二维平面上的曲线由 y = f ( x)表示,该关系也可用隐函数 y − f ( x) = 0来描述,此时若设:

φ ( x , y ) = y − f ( x)        式(1)

则 φ ( x , y) = 0就是曲线的隐式表达式。如图:

 

对于φ ( x , y)的构建,一般采用符号距离函数,即

式(2)

其中d[(x,y),C]是点(x,y)到曲线C的欧几里得距离。这样,就可以获得一个包含所需曲线的曲面的,剩下的就是如何演化这个曲面了。曲面的演化是水平集方法的关键,大致可分为两种类型,一种是基于图像边缘梯度信息的,一种是基于区域特征的。两种方式其实只是对曲面演化的速度方程的构建方式不同。即方程:

式(3)

中V(k)的构建。

水平集方法的基本流程:

1,初始化水平集函数φ ( x , y);

2,根据式(3)的演化方程演化曲线;

3,迭代一定的次数,提取0水平集,看是否已经收敛,如不收敛回到第一步。


 

1 1