レベルセットの実装について質問があります。
記事「距離正規化レベルセットの進化とその画像セグメンテーションへの応用」ChunmingLi、Chenyang Xuには、拡散方程式があります。
(申し訳ありませんが、画像を投稿することは許可されていません:()
(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);
この関数の最後の行がわかりません。
ありがとう