[Insight-users] Question regarding the implementation of GradientNDAnisotropicDiffusionFunction

Quan Chen quanchen at gmail.com
Fri Feb 4 18:40:06 EST 2005


I wanted to modify the current GradientAnisotropicDiffusion with
methods by M. Black 1998 IEEE Image Processing paper "Robust
Anisotropic Diffusion".  So I read the itk function
GradientNDAnisotropicDiffusionFunction.  Inside the ComputeUpdate
function, there is the following lines:
      Cx = exp(( vnl_math_sqr( dx_forward ) + accum)  / m_K );
      Cxd= exp(( vnl_math_sqr( dx_backward) + accum_d)/ m_K );

If I remember correctly, the Perona paper don't have the term "accum".
 In Constructor function, when calculate xa_slice and xd_slice (which
used to calculate accum), the comments said:
      // For taking derivatives in the i direction that are offset one
      // pixel in the j direction.

Does that means it use 8 connectivity instead of 4 connectivity in 2D?
What is the term accum reflects?

The m_K is set as -2*AvgMagSquared*conductance^2.  Why -2, and the use
of average magnitude squared, which paper does it base? Perona use
"90% value of integral of gradient magnitude histogram", which is 90%
percentile value.  Black use median value (50% percentile) multiply a
factor.  I believe those are better approach than the method ITK is
using since those method won't be easilier biased by large outlier.


More information about the Insight-users mailing list