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

    %   Matlad code implementing Chan-Vese model in the paper 'Active Contours Without Edges'
%   This method works well for bimodal images, for example the image 'three.bmp'
%   created on 04/26/2004
%   author: Chunming Li
%   email: li_chunming@hotmail.com
%   Copyright (c) 2004-2006 by Chunming Li

clear;

Img=imread('three.bmp');     % example that CV model works well
%Img=imread('vessel.bmp');    % example that CV model does NOT work well
%Img=imread('twoCells.bmp');  % example that CV model does NOT work well
U=Img(:,:,1);

% get the size
[nrow,ncol] =size(U);

ic=nrow/2;
jc=ncol/2;
r=20;
phi_0 = sdf2circle(nrow,ncol,ic,jc,r);


delta_t = 0.1;
lambda_1=1;
lambda_2=1;
nu=0;
h = 1;
epsilon=1;
mu = 0.01*255*255;

I=double(U);
% iteration should begin from here
phi=phi_0;
figure;
imagesc(uint8(I));colormap(gray)
hold on;
plotLevelSet(phi,0,'r');

numIter = 1;
for k=1:50,
    phi=EVOLUTION_CV(I, phi, mu, nu, lambda_1, lambda_2, delta_t, epsilon, numIter);   % update level set function
    if mod(k,10)==0
        pause(.5);
        imagesc(uint8(I));colormap(gray)
        hold on;
        plotLevelSet(phi,0,'r');
    end    
end;