Problem with registration

Dear ITK Team,

Q.1) We are doing registration and visualize using gui.RegistrationPointDataAquisition(), it is showing the fixed and moving images. When we click on any point in the images it shows that point correctly on other image. However, when we click a second point on the same slice, it shows that point on a new slice in other image. Why the points are not visible on the same slice after registration?

Q.2) If I run the same registration two or three times every time there is little change in the registration in spite of providing the same seed value. Why is this change taking place in every registration?

Q.3) After registration followed by resampling using final transformation of the moving image, it shows slice mismatch in resampled image when we clicked on any random point.

We will highly appreciate your help.

Thank you so much.

Best regards,
Sunita

Hello @Sunita_Patel,

Q1 and Q2: The RegistrationPointDataAquisition class works in two modes depending on the way it is created. The parameter of interest is known_transformation. When not provided, the default, it is assumed to be the identity. This is used prior to registration. After registration, setting the known_transformation to the result of the registration will map corresponding points in the two images to each other (as close as the registration allows). This mapping is between the original images, not between the fixed image and the resampled moving image. The GUI eliminates the need for resampling. Please look at how this component is used in the notebooks.

Q3: Please see the documentation.

1 Like

When we used affine interpolator in registration the resampled image is coming in the center. However, when we used any other interpolator such as linear, bspline, cosinewindowedsinc, the resampled image is shifted either bottom right or left?

Could you please help us to fix the problem.

Thank you so much.

Best regards,
Sunita

Hello @Sunita_Patel,

There is no “affine interpolator”, please see the list of interpolators, so not sure exactly what it is you are doing and what exactly is the problem.

Possibly provide a minimal working code example illustrating your problem, or maybe images illustrating the issue. Based on the information you provided, the difference between what you expect and what you get is not clear.

1 Like