曲线演化
一条曲线上的每个点根据不同的速度和方向运动最终演变成另外一条曲线 。
曲线演化理论的应用 -- -- 通过要分割的图像确定曲线演化的速度和方向
以图像分割为例子,曲线演化的过程就是实现图像分割的过程,假如我们要对一张图像进行分割,首先在图像上绘制一条曲线,然后我们的目标是将原始曲线的演化成可以包住分割目标的曲线。演化的两个关键点就是曲线上每个点的速度和方向。我们希望达到的效果是当这条曲线基本包住目标区域的时候曲线上的点停止运动。要达到这样的效果,曲线上距离目标位置远的点就需要加速运动,近的点运动的相对慢一些,因为图像的边缘点特征是灰度值的梯度比其他区域更大一些,所以当前点的运动速度的大小应该与该点对应梯度的大小成反比。
Level Set水平集 --曲线演化的实现方法
核心思想:研究问题转变成更高一维空间函数(水平集函数)的零水平集。
当我们要追踪某一曲线(曲面)的演化过程,实际上就等价于追踪更高一维曲面的演化过程。
举例来说:
一维曲线上的两个点X1和X2表示: X1 = -1, X2 = 1
转变成一种集合表示形式,也即转变成更高一维度的零水平集(level set),也就是在二维坐标空间中X1, X2可以表示成函数时对应的x的取值集合{-1, 1},这里的y 就是level 的取值。
而对于初始的二维曲线(两个参数方程表示一条二维平面曲线),把他转变成三维的level set
就会是一个曲面(二元函数)上,某个level下的(一般选择的是level=0,也就是 f(x,y)=0),所有点的(x,y)坐标的集合(图中红色的为曲线,这些点的z坐标均为零):
将图像和曲线看作两个图层,假设曲线是二维的,那么按照水平集方法的思想,可以看成是f(x,y)=0(level = 0)的三维立体,初始曲线level = 0,通过不断对蓝色平面进行上下连续移动,level始终满足等于0()。
移动的过程图可以类比地形等高线,最终回到level = 0的状态,就是最终的目标曲线。
改变曲线形状的速度方向是法线方向的,而切线方向的速度是不改变曲线的形状的