I did the registration and want to calculate TRE (target registration error) with SITK. I have the fixed image and the deformed moving image, and the landmarks.

To compute TRE, I need to get the transformation or the displacement vector field. How can I get them in SITK?

Many thanks for your answer. In Quantitative evaluation we can see how TRE is calculated. I actually know about this. As can be seen, we have to have a ‘final transformation’ to calculate TRE and I do not have this.

The point is that I use my own image registration framework, not the ones that are in SITK. So, I only have the deformed image. My question is how I can get the final transformation from the deformed image in SITK.

Generally speaking, the answer is you cannot do this easily (not specific to SimpleITK, just an ill posed problem given your input).

If I understand correctly the input is:

fixed_image

moving_image

deformed_image - moving_image resampled onto the fixed image grid using an unknown final_transformation which you want to estimate.

corresponding point pairs localized in fixed_image and moving_image coordinate systems.

I would recommend that you localize the target points one more time, this time on the deformed_image. Then you have point pairs that are both in the fixed_image coordinate system, those localized in the fixed_image and those localized in the deformed_image. The distance between them is the TRE, no need to know the final_transformation.

The only way to explicitly obtain the final_transformation is to redo the registration. You can either register the fixed_image to the moving_image or the deformed_image to the moving_image and then you have the final_transform. This is more problematic because it introduces errors that are associated with this second registration.