[ITK-users] Step in finite differences for computing the gradient - Level set registration

CocoM cgo_2113 at hotmail.com
Sat May 27 07:04:39 EDT 2017


Hi everyone,

I'm working wih the level set algorithm for deformable registration, which
is part of the finite difference solver hierarchy. 

I have a theoretical question about it. Using the
DeformableRegistration5.cxx example, I am interested in the computation of
the moving image's gradient, which is done in the ComputeUpdate function of
the itkLevelSetMotionRegistrationFunction class. The way the computation is
done is with finite differences, using the image's spacing as step or 1 if
we don't wanna use the spacing information. My question is : why?  This
value is usually quite far away from the theoretical optimal value for
forward/backward finite difference (i.e. the root square of the machine
precision, ~10^(-8)). So how can the gradient possibly be well approximated?

I guess there is a good reason, and I tried to compute it with a step of
10^(-8) instead of using the spacing. I compared the evolution of the metric
(SSD), and I got the same kind of values but an unstability of the metric
after some iterations for the algorithm using 10^(-8) as step. Does someone
know why this happens ?

The main difference, I guess, is that in one case we use values of pixel and
in the other case we have to interpolate the values. But I still don't see
why I would get these oscillating values for the SSD.

For information, I'm working with the RatLungSlice1 and RatLungSlice2 images
from ITK and using the BSplineIterpolateImageFunction class for
interpolation.

Thanks a lot,

Marie



--
View this message in context: http://itk-insight-users.2283740.n2.nabble.com/Step-in-finite-differences-for-computing-the-gradient-Level-set-registration-tp7589988.html
Sent from the ITK Insight Users mailing list archive at Nabble.com.


More information about the Insight-users mailing list