Hi Daniel,
The registration is working much better now -- thank you! I have a follow-up question pertaining to fixing the shifting and scaling parameters in 3dAllineate. (I am using least squares with trilinear interpolation.)
If I run the function with no command-line restrictions, my understanding is that it uses the default settings: -maxshf = (32% of the image size) and -maxscl 1.2. With these values (scenario #1) it comes up with x_shfit = 0.1055, y_shift = 0.0993 and scaling = 1.0196. These values are very reasonable because I expect < 0.5 mm shift in any direction and no more than +/- 2-3% scaling.
If I set -maxshf 1 (scenario #2), these values change to x_shift = 0.7847, y_shift = 0.0993, and scaling = 1.0550.
If I set -maxscl 1.05 (scenario #3), these values change to x_shift = -0.2235, y_shift = 0.0879, and scaling = 1.0043.
Finally, if I set both -maxshf 1 and -maxscl 1.05 (scenario #4), these values change to x_shift = 0.6816, y_shift = 0.1003, and scaling = 1.0499.
I expect some differences between these four scenarios, but I don't understand why, as an example, in scenario #1 vs. #2, the scaling parameter increases by 180% from 0.0196 up to 1.0550 when I set -maxshf 1. The algorithm came up with x_shift = 0.1055 with the default settings so I would have expected further restriction of the maximum shift to have minimal effect (if any) on the scaling. For my data, accuracy is infinitely more important than speed, so is there a (possibly hidden) setting in 3dAllineate to tell it to perform a much more extensive (nearly exhaustive) search through the (reasonably bounded) parameter space?
Thanks for your time.
-Rob