我对CV模型的理解1

来源:互联网 发布:安知玉如意txt久久 编辑:程序博客网 时间:2024/05/19 23:17

首先,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);    %能量函数公式














原创粉丝点击