Difference between SimpleElastix and ITKElastix

Hello,

I am writing a script to register (non-rigid) several thousands of images. I noticed that SimpleElastix is integrated and ITK, but the original repository was archived. I also noticed that there is a different option: ITKElastix, which is based on SimpleElastix. I am wondering if there are fundamental differences between them that I should consider before deciding which to use.

Thanks in advance :slight_smile: !

Hello @l.mejivar,

Yes, this is a bit confusing. There are two options in the ITK eco-system:

  1. ITK+Elastix, a.k.a. ITKElastix.
  2. SimpleITK+SimpleElastix, simplified interfaces to the underlying ITK and Elastix (requires compiling SimpleITK locally, details here).

Which one to choose depends on the level of control you need. With option one, you have more control of all the settings than option two. This may or may not be a good thing, more control often comes with more complexity.

2 Likes

Thank you for the clarification @zivy!

There may be more control, but there is not necessarily more complexity. Indeed, it is worth noting that itk-elastix has quite a simple interface. Registration is:

pip install itk-elastix
import itk

fixed = itk.imread('fixed.nrrd')
moving = itk.imread('moving.nrrd')

registered, transform = itk.elastix_registration_method(fixed, moving)