[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