B-splines with initial transform not giving expected results

101 views
Skip to first unread message

Patrik Brynolfsson

unread,
Feb 8, 2021, 11:22:25 AM2/8/21
to elastix-imageregistration
Hello,

I am doing a deformable registration in two steps: 
  1. Rigid registration
  2. B-splines
I tried doing this with two different approaches: 
  1. Using rigid transform as initial transform of B-splines registration
  2. Using rigid reg. image as moving image in B-splines registration
I expected the results to be equivalent (with some interpolation differences since in the second approach the image is resampled twice) but they are not (see gif). Why are they so different? 

When I do the registration I set (FinalGridSpacingInPhysicalUnits 12), but when I use an initial transform for the B-splines registration, the grid spacing is:
(GridSpacing 12.0058738600 12.0666566017 12.2500518476)

If I use the rigid result as moving image input:
(GridSpacing 12.0000000000 12.0000000000 12.0000000000)

I though this might be the reason for the discrepancy, but if I set GridSpacing to be the same for the second approach I still don't get the same images. Can someone shed a light on what is going on here, and why the different approaches don't give the same result? 

(I know that I should combine the transforms in the opposite order if I update the moving image for each step or if I use initial transforms, but this doesn't explain why the two approaches give different results, right? I assume that Elastix applies the initial transforms in the correct order when finding the B-splines transform) 

All help appreciated!

//Regards Patrik Brynolfsson

reg_discrepancy.gif

M.St...@lumc.nl

unread,
Feb 15, 2021, 10:51:56 AM2/15/21
to elastix-imag...@googlegroups.com

Dear Patrik,


Due to the stochastic nature of the optimizer, and due to the interpolation differences you mentioned, you may indeed get a slightly different result. I would expect however that the difference is not very big, as long as you iterated long enough.


The grid spacing is indeed modified slightly, as defined by the function

GridScheduleComputer< TTransformScalarType, VImageDimension >::ApplyInitialTransform()
to accomodate for changes by the initial transform. See also the code comments there.


HTH, Marius





From: elastix-imag...@googlegroups.com <elastix-imag...@googlegroups.com> on behalf of Patrik Brynolfsson <patrik.br...@gmail.com>
Sent: 08 February 2021 5:22 PM
To: elastix-imageregistration
Subject: [MOGELIJK SPAM ! ******] [elastix-imageregistration] B-splines with initial transform not giving expected results
 
--
You received this message because you are subscribed to the Google Groups "elastix-imageregistration" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elastix-imageregis...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/elastix-imageregistration/569e8d56-2cad-4a31-abf5-dd850470fb19n%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages