====================================== Pseudocode for ANTs/itkV4 Registration ====================================== Definitions --------------------------------- f fixed image m moving image M similarity metric A Affine transform --- set to identity, pulls moving to fixed by m(A(x)) D Demons deformation field transform --- set to identity, pulls m to fixed by m(D(A(x))). x physical position in domain Metric Derivative Computation --------------------------------- The partial derivative with respect to metric, in general: .. math:: \frac{ \partial M( f(x),m(t(x)))}{\partial x}=\frac{\partial M}{\partial m}\frac{\partial m}{ \partial t}\frac{ \partial t }{ \partial x} The following portion is metric independent: .. math:: \frac{\partial m}{ \partial t}\frac{ \partial t }{ \partial x} It may be implemented in either the metric base class or in each transformation class. Demons Registration Pseudocode ---------------------------------- for all resolutions ; do smooth f, m by sigma related to resolution pass smoothed images to metrics resample deformation to current resolution for N iterations or until convergence 1. call M (e.g. MeanSquaresImageToImageMetric) with f, m, (D compose A ) as input 2. smooth gradient from 1. ( e.g. through a call to a RegularizationMetric or Regularization Filter ? ) 3. update (A+D) ( through call to the transformation classes? ) 4. smooth output of 3 as in step 2. done done Does the DemonsTransformation class take care of resampling the images properly for the metric and algorithm? SyN would do something different .... metric would not know about how this is done.