I’m using the Plugins/Registration/Descriptor-based registration (2D/3D) to match 2 images. After running the plugin I get a transformation result in the log screen with:
[3,3](AffineTransform[[1.00006214871402, -0.00767959566528, 44.758543863305086], [0.007348764855077, 1.000522805737912, -10.47798079925235]]) 0.3267746111922529
Now I want to apply the transform - affine in this case - to another set of images, so I’m using the Plugins/Transform/TransformJ/TransformJ Affine plugin to transform my image. However, this workflow never gets me the same registration as the resulting stack from the registration plugin. It always seems like there is a translation component missing.
When definining the matrix for the TransformJ I use the following mapping from the original result
1.00006214871402, -0.00767959566528, 0.0, 44.758543863305086 0.007348764855077, 1.000522805737912, 0.0, -10.47798079925235 0.0, 0.0, 1.0, 0.0 0.0, 0.0, 0.0, 1.0
I believe the issue is some coordinate mismatch between the two methods. For example, the registration plugin pads the images, so the coordinate origin matters. I tried in various iterations to separate the translation element and played around with “adjust bounds to fit result” option in the TransformJ to no avail.
Has anybody gone through a similar issue and found a solution?