[Insight-users] Question about workings of ExponentialDeformationFieldImageFilter

Anja Ende anja.ende at googlemail.com
Wed May 18 06:08:51 EDT 2011


Hello all,

I am trying to understand the inner workings of the
ExponentialDeformationFieldImageFilter that is used in the
diffeomorphic demons registration. I have a few questions as I try to
understand the scaling and squaring method behind it.

- The first question is regarding the automatic calculation of the
number of iterations/squaring steps that is needed. In the default
implementation of the code, it ensures that the initial first order
approximation is diffeomorphic. Here is used the fact that
exp(Phi/2^N) = Phi/2^N. However, shouldn't it be exp(Phi/2^N) =
Identity + Phi/2^N assuming that we are doing the Taylor series
expansion around 0?

- Second thing that I am confused about is the actual calculation of N
from the inequality max(norm(Phi)/2^N) < 0.5*pixelspacing. I tried to
solve this inequality (I must confess I am a bit weak on Maths), but
could not come to the expression that is used in the code which is:

maxnorm2 /= vnl_math_sqr(minpixelspacing);

InputPixelRealValueType numiterfloat = 2.0 + 0.5 *
vcl_log(maxnorm2)/vnl_math::ln2;

- The last question is that when the number of iterations is 0, the
output of the filter is set to the input deformation field. Why is
that? I am a bit confused on this point.

I would be very grateful if someone could help me with these queries.

Many thanks,

Anja


More information about the Insight-users mailing list