我对CV模型的理解1

首先,CV模型是基于区域的水平集,没有涉及到边缘(简单通俗的说是没有边缘监测函数g)。理论部分参考的博士论文。


因此,将其最小化,便可以得到目标物体的边界。





某文章所说,为了保证水平集数值解法的稳定性,水平集函数在演化过程中需要周期性地初始化为符号距离函数。

符号距离函数,也很好理解,也就是自己根据原图像大小,初始化的一个矩阵。通常取圆,半径自己设定。

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

我对其代码的理解。

首先读入图片,phi=sdf2circle(nrow,ncol,ic,jc,r);   //初始化为符号距离函数。

   phi=evolution_CVPDE(I,phi,mu,nu,lambda_1,lambda_2,delta_t,epsilon);  //水平集函数公式的演化。

    phi=phi0;%对水平集函数处理。
    phi=NeumannBoundCond(phi);%纽曼边界,处理边界。
    delta_h=Delta(phi,epsilon);%狄拉克函数。  对水平集函数进行处理。
    K = curvature(phi); %计算曲率,也是对水平集函数的处理。
    [C1,C2]=binaryfit(phi,I,epsilon);

C1、C2的计算需要用到海氏函数。海氏函数对于初始化水平集轮廓的外部为1(接近,也可为接近0),内部为0(接近,也可为接近1)。

分别计算内部和外部的平均灰度值。

进行第一次演化。得到的水平集函数进入第二次演化。

再是对水平集函数的处理。

因为水平集函数与图像U有对应的位置,在计算C1、C2的时候也海氏函数有很好的特性。

其终止条件是以迭代次数的终止而终止(也有可能在迭代次数之前能量达到最小化之后就不再演化了)。

    % updating the phi function
    phi=phi+delta_t*delta_h.*(mu*K-nu-lambda_1*(I-C1).^2+lambda_2*(I-C2).^2);    %能量函数公式














  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值