GVF.m
上传用户:zlding2008
上传日期:2013-05-13
资源大小:1914k
文件大小:1k
源码类别:

2D图形编程

开发平台:

Matlab

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