GVF Snake 学习的分析总结

GVF snake shapes and gradient vector flow论文的辅助理解

1.snake

 由论文snake shapes and gradient vector flow上的公式(1)得

snake是动态轮廓提取算法。snake有两个力,外力和内力。内力是初始轮廓自身,而外力是来自图像本身。

 内力有两个控制: a,控制张力。β,控制刚性.(即,所谓的a控制连续性,平滑性。β引导曲线导向边界).

外力有四种情况:

对灰度图像:

Eext(x,y)=-|gradient [I(x,y)]|  (1),即,对灰度图像求梯度。

Eext(x,y)=-|gradient [gaussain*I(x,y)]|    (2),即,对灰度图像先利用高斯平滑去除noise,增强边界,然后求梯度。

注:因为梯度图的向量是由内向外,而外力应该是从外指向边界里面,所以要求负。

 对二值图像(因为二值图像的边界已经很明确,所以可以不必求梯度,直接用原图,或者高斯模糊处理)

Eext(x,y)= [I(x,y)] (3)

Eext(x,y)=gaussain*I(x,y)  (4)

因为初始轮廓的一个点想要取得确定的值,可以用Euler公式求:即论文中的公式(6)

由(6)可以得出,E=Fint+Fext 。 外力Fext为(1),(2),(3),(4)中的一个

如果想要逐步得到确定的点,可以在公式中添加一个时间控制变量。即公式(7)。当x(s,t)稳定,则公式(7)=0,即(7)满足(6)


2.Gradient Vector Flow

GVF是基于snake,符合能量平衡公式 E=Fint+Fext. 而把外力Fext变为向量V.注:只有这点与snake不同

 V(x,y)=[u(x,y), v(x,y)]

u(x,y)=公式(13a)

v(x,y) =公式(13b)


=================================

其他的还需看论文明白~今天先到这嘿嘿


测试了一个opencv的程序,确只拉向左上方,不知道为什么。而且速度较于MATLAB非常的慢


你可能感兴趣的:(opencv)