[Insight-developers] An implementation question in ITK
Luis Ibanez
luis.ibanez at kitware.com
Wed Jun 3 22:15:55 EDT 2009
Hi Hua,
1) In the case of the MeanSquaresImageMetric,
the Gradient of the moving image is interpolated using
NearestNeighborhood interpolation.
See lines: 210-217 of
Insight/Code/Algorithms/itkMeanSquaresImageToImageMetric.txx
2) In the case of the SymmetricForcesDemonsRegistration
the gradient of the moving image is computed *after*
mapping the moving image to the coordinate system of
the fixed image.
See lines: 188-220 of
Insight/Code/Algorithms/
itkSymmetricForcesDemonsRegistrationFunction.txx
Note that in this case, this is done "on-demand",
that is, on a pixel-by-pixel basis.
3) In the case of the
itkFastSymmetricForcesDemonsRegistrationFunction
The gradient is also computed by finite differences
*after* mapping the moving image to the coordinate
system of the fixed image, but this time is not done
on-demand, but the entire moving image is warped
first, and the resulting warped image is used for
computing the gradient.
See lines: 196 and 151-157 of
Insight/Code/Algorithms/
itkFastSymmetricForcesDemonsRegistrationFunction.txx
Note that there is a difference between computing the
gradient of the moving image in the coordinate system
of the moving image, and then mapping that back to the
coordinate system of the fixed image, and mapping the
moving image to the coordinate system of the fixed image
and then computing the gradient with respect to the
coordinate system of the fixed image.
Regards,
Luis
---------------------
Hua-mei Chen wrote:
> Sorry. I forgot to change the subject of my previous email. Here I
> re-send it again.
>
> ====================================================================
>
> Dear ITK Users and Developers,
>
> In deformable image registration, it is very common to find the
> image gradient at non-grid positions. For example, to obtain the driving
> force by taking the derivative of SSD similarity measure. I am wondering
> how this procedure is implemented in ITK. I used to construct a
> continuous image based on Bspline model and then find the derivitive at
> non-grid positions. However, I recently found a MATLAB code which
> resamples the image based on the current deformation field and then find
> the gradient at the resampled image. In this way, there is no need to
> find the gradient at non-grid positions. Afterwards, the gradient
> information is used to construct the update of the deformation field and
> the new deformation field is obtained by ADDING the update to the
> original deformation field. Is this a common practice to implement
> deformable image registration algorithms like demons, fluid, and FFD in
> ITK? Any response is appreciated.
>
> Chen
More information about the Insight-developers
mailing list