1. 传统依赖边界的active contour 算法
传统的levelset方法依赖于图像边界的梯度,需要引入一个单调递减函数edge-detector g ( z ) g(z) g(z)定义levelset方法的迭代速度。
s t : lim z → ∞ g ( z ) = 0 st: \lim\limits_{z\rarr \infty} g(z) = 0 st:z→∞limg(z)=0
例如: g ( ∇ u 0 ( x , y ) ) = 1 1 + ∣ ∇ G σ ∗ u 0 ( x , y ) ∣ p g(\nabla u_0(x, y)) = \frac{1}{1 + |\nabla G_{\sigma}*u_0(x, y)|^p} g(∇u0(x,y))=1+∣∇Gσ∗u0(x,y)∣p1
u 0 ( x , y ) = z u_0(x, y) = z u0(x,y)=z
原图像看作曲面 Σ ( x , y , u 0 ( x , y ) ) = 0 \Sigma(x, y, u_0(x, y)) = 0 Σ(x,y,u0(x,y))=0
level set方法定义了一系列等高线
ϕ ( x , y ) = c i \phi(x, y) = c_i ϕ(x,y)=ci
我们不妨用曲线 C C C: ϕ ( x , y ) = 0 \phi(x, y) = 0 ϕ(x,y)=0作为初始曲线,在根据需要对进行迭代
此时曲线 C t i C_{t_{i}} Cti : ϕ ( t i , x , y ) = 0 \phi(t_i, x, y) = 0 ϕ(ti,x,y)=0在迭代的过程中不断向图像的边界逼近,最后稳定下来即得到边界。
Remark: ϕ ( t , x , y ) \phi(t, x, y) ϕ(t,x,y)其中 ϕ ( 0 , x , y ) = ϕ 0 ( x , y ) \phi(0, x, y) = \phi_0(x, y) ϕ(0,x,y)=ϕ0(x,y),根据定义的 ∂ ϕ ∂ t = V ∣ ∇ ϕ ∣ \frac{\partial\phi}{\partial t} = V |\nabla\phi| ∂t∂ϕ=V∣∇ϕ∣利用迭代法求解PDE
level set方法有以下结论:
单位切向量 T T T, n = − ∇ ϕ ∣ ∇ ϕ ∣ n = -\frac{\nabla\phi}{|\nabla\phi|} n=−∣∇ϕ∣∇ϕ , ϕ ( x , y ) = c \phi(x, y) = c ϕ(x,y)=c确定曲线 C ( x , y ) C(x, y) C(x,y)
- n ⊥ T n \p