水平集实施

时间:2012-01-03 14:42:28

标签: matlab image-processing image-segmentation

我对级别设置实现有疑问。

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

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

(14)第4页,来自pdf

对于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);

我不明白这个功能的最后一行。

由于

0 个答案:

没有答案