www.pudn.com > gvf1111.rar > GVF.m


function [u,v] = GVF(f, mu, ITER) 
%GVF Compute gradient vector flow. 
%   [u,v] = GVF(f, mu, ITER) computes the 
%   GVF of an edge map f.  mu is the GVF regularization coefficient 
%   and ITER is the number of iterations that will be computed.   
 
%   Chenyang Xu and Jerry L. Prince 6/17/97 
%   Copyright (c) 1996-97 by Chenyang Xu and Jerry L. Prince 
%   Image Analysis and Communications Lab, Johns Hopkins University 
 
[fx,fy] = gradient(f); % Calculate the gradient of the edge map 
u = fx; v = fy; % Initialize GVF to the gradient 
SqrMagf = fx.*fx + fy.*fy; % Squared magnitude of the gradient field 
 
% Iteratively solve for the GVF u,v 
for i=1:ITER, 
  u = u + mu*4*del2(u) - SqrMagf.*(u-fx); 
  v = v + mu*4*del2(v) - SqrMagf.*(v-fy); 
  fprintf(1, '%3d', i); 
  if (rem(i,20) == 0) 
     fprintf(1, '\n'); 
  end  
end 
fprintf(1, '\n');