InsightSoftwareConsortium / itk-dreg

A framework for distributed large-scale image registration
http://itk-dreg.readthedocs.io/
Apache License 2.0
5 stars 2 forks source link

Investigate approaches for successive ITKElastix deformable registration stages #21

Open tbirdso opened 9 months ago

tbirdso commented 9 months ago

Current Behavior

ITKElastix accepts a generic ExternalInitialTransform to provide a generic itk.Transform as the initial forward transform to use. However, ITKElastix fails to run registration when ExternalInitialTransform cannot be translated to a known Elastix type to provide for advanced computation of derivatives, Jacobians, etc.

ITKElastix may also accept an initial Elastix transform object composed of Elastix registration results. It is not immediately obvious how to generate a valid Elastix transform from a reduced ITK transform result from a previous itk-dreg registration stage.

Steps to Investigate

  1. Understand how to map itk.Transforms to ITKElastix transform parameter objects
  2. Determine whether ITKElastix transform parameter objects are serializable (see https://github.com/InsightSoftwareConsortium/itk-dreg/issues/16)
  3. Determine how we can convert the transform result of a ReduceResultsMethod to an Elastix transform parameter object and whether limitations exist, such as the type of reduced results that can be converted, etc
  4. Update the itk_dreg.elastix registration interface to accept an input Elastix transform parameter object
  5. Create an example demonstrating multiple stages of deformable registration over successively higher image resolutions with ITKElastix
tbirdso commented 9 months ago

See how we are returning sidecar elastix information from subimage registration here: https://github.com/InsightSoftwareConsortium/itk-dreg/blob/main/src/itk_dreg/elastix/register.py#L30