Resampling a displacement-field transformed image


Hi guys,
I am using a DisplacementField transformation and resample the image with the ResampleImageFilter. Everything is working great! Now I am wondering how the resample method is working? Does it invoke the InverseDisplacementFieldImageFilter to compute the inverse transformation to make use of the backward mapping method or is there another method used?

Would really appreciate a short feedback! Thanks a lot!

(Dženan Zukić) #2

Welcome to the community Nino!

In ITK, transforms directly provide mapping from moving image to the fixed image, so no inversion is necessary to apply a DisplacementField. And it is done this way precisely so no inversion is necessary for the resampling of the source image to the target image grid.

1 Like
(Andras Lasso) #3

Note that you still need to invert the resampling transform to transform points, lines, surface meshes, etc. It would be great if ITK had dynamic inverse computation as VTK has (VTK can compute inverse transforms at arbitrary points - without computing a full inverse field - using an iterative scheme and smooth boundary constraint; as described here).


Hi Andras, thanks for the link. If I find some time I would be happy to contribute that to the ITK community :slight_smile:

1 Like

Thanks a lot for the fast reply Dzenan.! I truly forgot that a transform in a resampling operation defines the transform from the output space to the input space .

1 Like
(Andras Lasso) #6

Note that it is already implemented in VTK, so you just need to port it to the ITK transforms framework.