Co-registration of more than two images

Hi, all,

This this may a better question for #algorithms, but since I am new to ITK/SimpleITK, I will ask it here.

Suppose I have three images—X, Y, and Z—that I want to register into the same space. I do not have a template or standard space to which I wish I register them, nor is there any reason to prefer the space of any single image (e.g., there is no reason to register X and Y to Z’s space, Y and Z to X’s space, etc.). Is there a standard way to co-register images (e.g., assume affine transformations) to the same space? For instance, are there any registration functions with cost functions that take into account the distance between the registered images in addition to the total distortion applied, which will allow me to pass 3+ images through them?

Happy to clarify any details if necessary. Many thanks!

Hello @avigotsky,

Generally speaking, in the registration nomenclature you are asking about “groupwise registration”.
An older reference Groupwise Registration with Sharp Mean (2010) and a newer one X-Metric: An N-Dimensional Information-Theoretic Framework for Groupwise Registration and Deep Combined Computing (2022). A related approach, template building The optimal template effect in hippocampus studies of diseased populations (2010).

You can role your own, something along the lines of sharp mean can be implemented in ITK/SimpleITK.

SimpleElastix supports groupwise registration and was recently integrated into SimpleITK, but it requires that you build SimpleITK from source and set the SimpleITK_USE_ELASTIX flag to on.
The code for X-metric is available online.


This is extraordinarily helpful. Sometimes, just learning the correct nomenclature makes all the difference. Thank you!

1 Like