www.gusucode.com > 界面看成高一维空间中某一函数ψ源码程序 > levelsetcode/evolution_cv.m

    function phi = EVOLUTION_CV(I, phi0, mu, nu, lambda_1, lambda_2, delta_t, epsilon, numIter);
%   evolution_withoutedge(I, phi0, mu, nu, lambda_1, lambda_2, delta_t, delta_h, epsilon, numIter);
%   input: 
%       I: input image
%       phi0: level set function to be updated
%       mu: weight for length term
%       nu: weight for area term, default value 0
%       lambda_1:  weight for c1 fitting term
%       lambda_2:  weight for c2 fitting term
%       delta_t: time step
%       epsilon: parameter for computing smooth Heaviside and dirac function
%       numIter: number of iterations
%   output: 
%       phi: updated level set function
%  
%   created on 04/26/2004
%   author: Chunming Li
%   email: li_chunming@hotmail.com
%   Copyright (c) 2004-2006 by Chunming Li


I=BoundMirrorExpand(I);
phi=BoundMirrorExpand(phi0);

for k=1:numIter
    phi=BoundMirrorEnsure(phi);
    delta_h=Delta(phi,epsilon);
    Curv = curvature(phi);
    [C1,C2]=binaryfit(phi,I,epsilon);
    % updating the phi function
    phi=phi+delta_t*delta_h.*(mu*Curv-nu-lambda_1*(I-C1).^2+lambda_2*(I-C2).^2);    
end
phi=BoundMirrorShrink(phi);