An ITK Implementation of the Symmetric Log-Domain Diffeomorphic Demons Algorithm

Dru, Florence,Fillard, Pierre,Vercauteren, Tom1*
1.Mauna Kea Technologies
Abstract
An ITK Implementation of the Symmetric Log-Domain Diffeomorphic Demons Algorithm

Abstract

This article provides an implementation of the symmetric log-domain diffeomorphic image registration algorithm, or symmetric demons algorithm for short. It generalizes Thirion's demons and the diffeomorphic demons algorithm. The main practical advantages of the symmetric demons with respect to the other demons variants is that is provides the inverse of the spatial transformation at no additional computational cost and ensures that the registration of image A to image B provides the inverse of the registration from image B to image A. The algorithm works completely in the log-domain, i.e. it uses a stationary velocity field to encode the spatial transformation as its exponential. Within the Insight Toolkit (ITK), the classical demons algorithm is implemented as part of the finite difference solver framework. Our code reuses and extends this generic framework. The source code is composed of a set of reusable ITK filters and classes together with their unit tests. We also provide a small example program that allows the user to compare the different variants of the demons algorithm. This paper gives an overview of the algorithm, an overview of its implementation and a small user guide to ease the use of the registration executable.

Keywords

Inverse consistencyDemonsDeformationImage RegistrationRegistrationDiffeomorphism
Manuscript
Source Code and Data

Source Code and Data

LogDomainDemonsRegistration-0.0.5-SourceApplicationsDemonsRegistration.cxx43.8 KBCMakeLists.txt513 BInverseDeformationField.cxx6.2 KBImageCompare.cxx8.1 KBLogDomainDemonsRegistration.cxx47 KBCMakeLists.txt5.4 KBCodeCMakeLists.txtitkDisplacementFieldCompositionFilter.h3.4 KBitkDisplacementFieldCompositionFilter.txx2.7 KBitkDisplacementToVelocityFieldLogFilter.h3.9 KBitkDisplacementToVelocityFieldLogFilter.txx3.6 KBitkExponentialDeformationFieldImageFilter2.h7 KBitkExponentialDeformationFieldImageFilter2.txx5.5 KBitkLogDomainDeformableRegistrationFilter.txx14.3 KBitkLogDomainDeformableRegistrationFilter.h12.6 KBitkLogDomainDemonsRegistrationFilter.h7 KBitkLogDomainDemonsRegistrationFilter.txx8.1 KBitkMultiResolutionLogDomainDeformableRegistration.h11.5 KBitkMultiResolutionLogDomainDeformableRegistration.txx18.6 KBitkNCCRegistrationFunction2.h6.8 KBitkNCCRegistrationFunction2.txx7.2 KBitkOppositeImageFilter.h3.2 KBitkSymmetricLogDomainDemonsRegistrationFilter.h9 KBitkSymmetricLogDomainDemonsRegistrationFilter.txx21.3 KBitkTransformToVelocityFieldSource.h7.7 KBitkTransformToVelocityFieldSource.txx11.9 KBitkVelocityFieldBCHCompositionFilter.h5.3 KBitkVelocityFieldBCHCompositionFilter.txx5 KBitkVelocityFieldExponentialComposedWithDisplacementFieldFilter.h3.7 KBitkVelocityFieldExponentialComposedWithDisplacementFieldFilter.txx3 KBitkVelocityFieldLieBracketFilter.txx5.8 KBitkVelocityFieldLieBracketFilter.h6.3 KBvnl_sd_matrix_tools.txx12.5 KBvnl_sd_matrix_tools.h2.5 KBDocumentsSymLogDemons-MICCAI08-Vercauteren.pdf416.4 KBSymLogDemons-IJ-2009-05-05-DruAndVercauteren.pdf399.1 KBIJMacros.txt3.4 KBFindMatlab.cmake3.9 KBREADME.txt1.5 KBSDCMakeMacros.cmake7.4 KBTestingCMakeLists.txt3.5 KBitkDisplacementFieldCompositionFilterTest.cxx5.1 KBitkDisplacementToVelocityFieldLogFilterTest.cxx4.1 KBitkExponentialDeformationFieldImageFilterTest2.cxx8 KBitkLogDomainDeformableRegistrationFilterTest.cxx853 BitkLogDomainDemonsRegistrationFilterTest.cxx9.2 KBitkLogDomainDemonsRegistrationFilterTest2.cxx8.6 KBitkOppositeImageFilterTest.cxx4 KBitkSymmetricLogDomainDemonsRegistrationFilterTest2.cxx8.8 KBitkSymmetricLogDomainDemonsRegistrationFilterTest.cxx9.2 KBitkTransformToVelocityFieldSourceTest.cxx5.9 KBitkVelocityFieldBCHCompositionFilterTest.cxx10.2 KBitkVelocityFieldLieBracketFilterTest.cxx15.6 KBvnl_sd_matrix_tools_test.cxx4 KBTestingDataRatLungSlice1.raw16 KBRatLungSlice1.mhd216 BRatLungSlice1s.mhd223 BRatLungSlice2.mhd216 BRatLungSlice2.raw16 KBRatLungSlice2s-RegLD.mha56.5 KBRatLungSlice2s-RegSLD.mha56 KBRatLungSlice2s.mhd223 Bsd_kwstyle.kws.xml1.1 KBsd_kwstyle.txt60 B

Select a file to preview