[Insight-users] Upsample bspline grid in deformableregistration6

Reinhard Hameeteman reinhard.afstuderen at gmail.com
Tue Mar 6 12:09:47 EST 2007


After reading this thread
http://public.kitware.com/pipermail/insight-users/2004-July/009646.html
and   deformableregistration6.cxx I am still a bit confused about the
use of the parameter image in the BSplineDeformableTransform.

The comments (and thus the software guide) says
  //
  //  Now we need to initialize the BSpline coefficients of the higher
resolution
  //  transform. This is done by first computing the actual deformation field
  //  at the higher resolution from the lower resolution BSpline coefficients.
  //  Then a BSpline decomposition is done to obtain the BSpline coefficient of
  //  the higher resolution transform.
  //

My question is the following: If I look at the code I don't see the
calculation of the actual deformation field. Instead the coefficients
of the lower resolution are simply upsampled:

    upsampler->SetInput( transformLow->GetCoefficientImage()[k] );

I don't see how this would produce a deformation field, since the
coefficients are the BSpline coefficients and not the vector
components (right?).
>From this upsampled image the BSpline coefficients are then computed:

    decomposition->SetInput( upsampler->GetOutput() );

This is something I can't really follow. When the upsampled
coefficient image would turn into a vector component image this is
understandable. It doesn't seem to make sense to decompose a
coefficient image I guess.

So, to my understanding there are two way to upsample the transform:
1. the transformLow can be used to create a real defromation field,
like is done in DeformableRegistration4.cxx, use a resampler to get
the displacement at the new node points and use a decomposition to get
the BSpline coefficients.
2. Simply upsample the coefficient image and set the parameters of the
transformHigh with these values. This seems the most reasonable one
since it doesn't have to be an exact resampling, but there is no
decomposition this way.

The way I see it now, the current example mixes these 2 approaches in
a not very meaningful way.

Please correct me if I'm wrong!

Thanks for a great toolkit and any support is appreciated,

Reinhard


More information about the Insight-users mailing list