1

我有一个关于水平集实施的问题。

在“距离正则化水平集演化及其在图像分割中的应用”一文中,李春明、徐晨阳可以找到一个扩散方程:

(对不起,但我不允许发布图片:()

(14) pdf 第 4 页

对于 dp(s) = 1-1/s,实现是 [MATLAB]:

distRegTerm = 4*del2(phi)-curvature;

在哪里:

[phi_x,phi_y]=gradient(phi); 
s=sqrt(phi_x.^2 + phi_y.^2);
smallNumber=1e-10;  
Nx=phi_x./(s+smallNumber);
Ny=phi_y./(s+smallNumber);
curvature=div(Nx,Ny);

没关系,因为对于那个 dp,方程是 (15)

我不明白为什么(10)

在哪里:

p(s) 是 (16)

代码是:

distRegTerm=distReg_p2(phi);

在哪里:

function f = distReg_p2(phi)
[phi_x,phi_y]=gradient(phi);
s=sqrt(phi_x.^2 + phi_y.^2);
a=(s>=0) & (s<=1);
b=(s>1);
ps=a.*sin(2*pi*s)/(2*pi)+b.*(s-1);
dps=((ps~=0).*ps+(ps==0))./((s~=0).*s+(s==0));
f = div(dps.*phi_x - phi_x, dps.*phi_y - phi_y) + 4*del2(phi);

我不明白这个函数的最后一行。

谢谢

4

0 回答 0