An ITK Implementation of a Diffusion Tensor Images Resampling Filter

Budin, Francois1*,Bouix, Sylvain,Shenton, Martha,Styner, Martin,Oguz, Ipek
1.UNC
Abstract
An ITK Implementation of a Diffusion Tensor Images Resampling Filter

Abstract

This paper describes the implementation of a resampling filter for Diffusion Tensor Images (DTI) in the Insight ToolKit (ITK). ITK already contains a filter for resampling scalar and vector images as well as several transformation and interpolation classes. However, due to the directional nature of DT images, using the existing classes would result in losing the structural information of the image. We developed a new resampling filter, specific to DTI, that preserves the structure by applying a rotation directly on the tensors while performing the transformation of the image. New transformation and interpolator classes have also been implemented to handle tensors correctly. The new transformation classes are based on algorithms described by D.C. Alexander et al. Finally, three filters have been written to correct symmetric semi-definite matrices that would no longer be positive after the resampling process and project them into the tensors’ space. In addition, a software based on the new classes has been developed and is provided with this article.

Keywords

ITKresamplingDTI
Manuscript
Source Code and Data

Source Code and Data

ResampleDTIInsightJournalCMakeLists.txt3.9 KBDocumentLaTeX2tensorsPhantom2(linear-bs-ws).jpg27.1 KB2tensorsPhantom2-iso(linear-bs-ws).jpg22.5 KBArticleExample.aux6.2 KBArticleExample.bbl2 KBArticleExample.blg895 BArticleExample.brf554 BArticleExample.dvi92.4 KBArticleExample.log34.7 KBArticleExample.out1.3 KBArticleExample.pdf1.2 MBArticleExample.ps136 KBArticleExample.tex27.8 KBArticleExample.toc1.7 KBInsightArticle.cls4.1 KBInsightJournal.bib160.1 KBInsightJournal.ist220 BInsightJournal.sty35.2 KBMakefile719 BOriginalSlice.jpg124 KBProgram.png82.7 KBScreenshot-results-graph3.png79.1 KBalgorithm.sty2.2 KBalgorithmic.sty5.4 KBamssymb.sty14.9 KBdoubleWordCheck.pl410 Bfancyhdr.sty14.4 KBfloatflt.sty10.8 KBfncychap.sty10.1 KBplan2dyz-skew-noppd-attached.jpg157.3 KBplan2dyz-skew-ppd-attached.jpg161.9 KBq.log1.9 KBrotation45-zoomed-bs4-cropped.jpg241.5 KBrotation45-zoomed-bs4.jpg255.9 KBscale-zoomed.jpg251.7 KBtexput.log623 Btimes.sty857 BGenerateCLPDirectoryGenerateCLPCMakeLists.txt2.6 KBGenerateCLP.clp4.4 KBGenerateCLP.cxx47 KBGenerateCLP.h7.5 KBGenerateCLP.xml1.5 KBGenerateCLPConfig.cmake.in395 BGenerateCLPInstallConfig.cmake.in994 BGenerateCLPLauncher.c.in1 KBGenerateGenerateCLPConfig.cmake1.5 KBTestingCLPExample1.cxx94 BCLPExample1.xml4 KBCMakeLists.txt1.1 KBPointExample1.cxx546 BPointExample1.xml1.4 KBSlicer3Example.cxx97 BSlicer3Example.xml4.8 KBUseGenerateCLP.cmake.in3 KBModuleDescriptionParserBatchMakeUtilities.cxx10.1 KBBatchMakeUtilities.h834 BBinaryFileDescriptor.cxx2.8 KBBinaryFileDescriptor.h1.4 KBCMakeCMakeLists.txt208 BTestBFD.cxx111 BCMakeLists.txt4 KBGenerateModuleDescriptionParserConfig.cmake1.1 KBModuleDescription.cxx6.3 KBModuleDescription.h7.4 KBModuleDescriptionParser.cxx53.7 KBModuleDescriptionParser.h995 BModuleDescriptionParserConfig.cmake.in316 BModuleDescriptionParserConfigure.h.in418 BModuleDescriptionParserInstallConfig.cmake.in698 BModuleDescriptionParserWin32Header.h1.3 KBModuleFactory.cxx75.8 KBModuleFactory.h5.6 KBModuleLogo.cxx1.9 KBModuleLogo.h1.3 KBModuleParameter.cxx10.4 KBModuleParameter.h7.6 KBModuleParameterGroup.cxx1.6 KBModuleParameterGroup.h2 KBModuleProcessInformation.cxx1008 BModuleProcessInformation.h1.5 KBTestingCMakeLists.txt1.1 KBModuleFactoryTest.cxx2.4 KBParser1Test.cxx1.4 KBTestDataParserTest1.xml3.4 KBParserTest2.xml3.5 KBUseModuleDescriptionParser.cmake.in127 BtclapAUTHORS107 BCMakeLists.txt701 BCOPYING1.1 KBChangeLogExample.xml2.4 KBGenerateTCLAPConfig.cmake791 BINSTALL7.6 KBMakefile.am44 BNEWS5 KBREADME505 BTCLAPConfig.cmake.in155 BTCLAPInstallConfig.cmake.in459 BUseTCLAP.cmake.in50 Bautotools.sh419 Bconfigac_cxx_have_sstream.m4743 Bac_cxx_have_strstream.m4837 Bac_cxx_namespaces.m4721 Bbb_enable_doxygen.m4571 Bdepcomp11.8 KBinstall-sh5.5 KBmissing8.6 KBmkinstalldirs723 Bstamp-h.in10 Bstamp-h130 Bconfigure.in531 BdocsDoxyfile.in42.2 KBMakefile.am142 BREADME269 Bindex.html3.2 KBmanual.html42.2 KBmanual.xml34.2 KBstyle.css1.7 KBexamplesMakefile.am365 Btest1.cpp1.2 KBtest2.cpp2.2 KBtest3.cpp2.2 KBtest4.cpp1.9 KBtest5.cpp2.7 KBtest6.cpp1.3 KBtest7.cpp3.1 KBtest8.cpp2.1 KBtest9.cpp1.4 KBincludeMakefile.am16 BtclapArg.h15.3 KBArgException.h5 KBArgOld.h15.1 KBCmdLine.h11.3 KBCmdLineInterface.h3.3 KBCmdLineOutput.h1.9 KBConstraint.h1.8 KBDocBookOutput.h7.7 KBHelpVisitor.h1.7 KBIgnoreRestVisitor.h1.3 KBMakefile.am508 BMultiArg.h14 KBMultiArgOld.h14.6 KBMultiSwitchArg.h5.7 KBOptionalUnlabeledTracker.h1.7 KBStdOutput.h8.4 KBSwitchArg.h6.1 KBUnlabeledMultiArg.h10.4 KBUnlabeledValueArg.h12 KBValueArg.h15 KBValueArgOld.h16.3 KBValuesConstraint.h3.1 KBVersionVisitor.h1.7 KBVisitor.h1.2 KBXMLOutput.h6.6 KBXorHandler.h4 KBmscMakefile.am134 BREADME636 BexamplesMakefile.am217 Btest1.vcproj3.4 KBtest2.vcproj3.4 KBtest3.vcproj3.4 KBtest4.vcproj3.4 KBtest5.vcproj3.4 KBtest6.vcproj3.4 KBtest7.vcproj3.4 KBtest8.vcproj3.4 KBtclap-beta.ncb43 KBtclap-beta.sln4.4 KBtclap-beta.suo24 KBtclap-beta.vcproj2.8 KBtestsMakefile.am1.8 KBgenOut.pl282 Bruntests.sh471 Btest1.out37 Btest1.sh135 Btest10.out285 Btest10.sh140 Btest11.out290 Btest11.sh145 Btest12.out318 Btest12.sh148 Btest13.out144 Btest13.sh173 Btest14.out147 Btest14.sh171 Btest15.out362 Btest15.sh171 Btest16.out362 Btest16.sh156 Btest17.out336 Btest17.sh152 Btest18.out61 Btest18.sh139 Btest19.out69 Btest19.sh139 Btest2.out17 Btest2.sh132 Btest20.out129 Btest20.sh167 Btest21.out122 Btest21.sh158 Btest22.out363 Btest22.sh149 Btest23.out366 Btest23.sh141 Btest24.out363 Btest24.sh155 Btest25.out128 Btest25.sh169 Btest26.out322 Btest26.sh151 Btest27.out323 Btest27.sh152 Btest28.out314 Btest28.sh151 Btest29.out315 Btest29.sh169 Btest3.out37 Btest3.sh135 Btest30.out315 Btest30.sh152 Btest31.out365 Btest31.sh154 Btest32.out374 Btest32.sh157 Btest33.out124 Btest33.sh171 Btest34.out34 Btest34.sh137 Btest35.out304 Btest35.sh136 Btest36.out276 Btest36.sh137 Btest37.out60 Btest37.sh149 Btest38.out957 Btest38.sh138 Btest39.out929 Btest39.sh147 Btest4.out209 Btest4.sh124 Btest40.out434 Btest40.sh133 Btest41.out841 Btest41.sh133 Btest42.out862 Btest42.sh133 Btest43.out316 Btest43.sh133 Btest44.out1 KBtest44.sh133 Btest45.out541 Btest45.sh133 Btest46.out2.1 KBtest46.sh133 Btest47.out144 Btest47.sh163 Btest48.out147 Btest48.sh161 Btest49.out355 Btest49.sh161 Btest5.out179 Btest5.sh155 Btest50.out355 Btest50.sh146 Btest51.out326 Btest51.sh142 Btest52.out355 Btest52.sh154 Btest53.out364 Btest53.sh157 Btest54.out866 Btest54.sh133 Btest55.out131 Btest55.sh159 Btest56.out171 Btest56.sh148 Btest57.out342 Btest57.sh176 Btest58.out8 Btest58.sh125 Btest59.out51 Btest59.sh149 Btest6.out165 Btest6.sh152 Btest60.out514 Btest60.sh145 Btest7.out841 Btest7.sh153 Btest8.out35 Btest8.sh134 Btest9.out186 Btest9.sh162 BtestCheck.sh727 BIJMacros.txt3.4 KBSourceCMakeLists.txt2.5 KBResampleDTI.cxx46.2 KBResampleDTI.xml12.6 KBResampleDTIApp.cxx1.1 KBTestingCMakeLists.txt4.3 KBCMakeLists.txt~4.3 KBResampleDTITest.cxx932 BTestDataAddTest_DOUBLE.mha76.2 KBFastNonrigidBSplineregistrationTransform.tfm16.5 KBaffine.tfm195 BdeformationField.nrrd591.3 KBdt-helix-ref-BS.nrrd1.1 MBdt-helix-ref-BSInterpolation.nrrd457 KBdt-helix-ref-HField.nrrd1.2 MBdt-helix-ref-Log.nrrd457.1 KBdt-helix-ref-Rotated.nrrd993.2 KBdt-helix-ref-RotationAndAffine.nrrd485.1 KBdt-helix.nrrd1.6 MBrotation.tfm183 BrotationAndAffine.tfm378 BitkDifferenceDiffusionTensor3DImageFilter.h6.5 KBitkDifferenceDiffusionTensor3DImageFilter.txx12.4 KBitkTestMainExtended.h21.1 KBdefine.h105 BdtiprocessFilesReadme120 Bdeformationfieldio.cxx1.6 KBdeformationfieldio.h1 KBdtitypes.h2.8 KBitkDeformationFieldToHFieldImageFilter.h2.8 KBitkDeformationFieldToHFieldImageFilter.h~2.8 KBitkDeformationFieldToHFieldImageFilter.txx3.2 KBitkDeformationFieldToHFieldImageFilter.txx~3.2 KBitkHFieldToDeformationFieldImageFilter.h3.3 KBitkHFieldToDeformationFieldImageFilter.txx3 KBitkDiffusionTensor3DAbsCorrection.h4.6 KBitkDiffusionTensor3DAffineTransform.h2.5 KBitkDiffusionTensor3DAffineTransform.txx2 KBitkDiffusionTensor3DBSplineInterpolateImageFunction.h2.4 KBitkDiffusionTensor3DBSplineInterpolateImageFunction.txx1.4 KBitkDiffusionTensor3DExpImageFilter.h4.2 KBitkDiffusionTensor3DExtended.h1.8 KBitkDiffusionTensor3DExtended.txx1.8 KBitkDiffusionTensor3DFSAffineTransform.h2.4 KBitkDiffusionTensor3DFSAffineTransform.txx3.5 KBitkDiffusionTensor3DInterpolateImageFunction.h4.1 KBitkDiffusionTensor3DInterpolateImageFunction.txx1.4 KBitkDiffusionTensor3DInterpolateImageFunctionReimplementation.h3.8 KBitkDiffusionTensor3DInterpolateImageFunctionReimplementation.txx2.6 KBitkDiffusionTensor3DLinearInterpolateFunction.h1.9 KBitkDiffusionTensor3DLinearInterpolateFunction.txx1.1 KBitkDiffusionTensor3DLogImageFilter.h4.2 KBitkDiffusionTensor3DMatrix3x3Transform.h3.3 KBitkDiffusionTensor3DMatrix3x3Transform.txx4.8 KBitkDiffusionTensor3DNearestCorrection.h5.1 KBitkDiffusionTensor3DNearestNeighborInterpolateFunction.h2.1 KBitkDiffusionTensor3DNearestNeighborInterpolateFunction.txx1.5 KBitkDiffusionTensor3DNonRigidTransform.h2.6 KBitkDiffusionTensor3DNonRigidTransform.txx2.9 KBitkDiffusionTensor3DPPDAffineTransform.h2.7 KBitkDiffusionTensor3DPPDAffineTransform.txx5.9 KBitkDiffusionTensor3DRead.h2.4 KBitkDiffusionTensor3DRead.txx2.9 KBitkDiffusionTensor3DResample.h4.4 KBitkDiffusionTensor3DResample.txx6.4 KBitkDiffusionTensor3DRigidTransform.h2.4 KBitkDiffusionTensor3DRigidTransform.txx4.4 KBitkDiffusionTensor3DTransform.h2.4 KBitkDiffusionTensor3DTransform.txx941 BitkDiffusionTensor3DWindowedSincInterpolateImageFunction.h2.4 KBitkDiffusionTensor3DWindowedSincInterpolateImageFunction.txx1.6 KBitkDiffusionTensor3DWrite.h3.5 KBitkDiffusionTensor3DWrite.txx3.4 KBitkDiffusionTensor3DZeroCorrection.h4.5 KBitkMatrixExtended.h1.6 KBitkMatrixExtended.txx3 KBitkSeparateComponentsOfADiffusionTensorImage.h2.5 KBitkSeparateComponentsOfADiffusionTensorImage.txx3.6 KBitkTransformDeformationFieldFilter.h3.1 KBitkTransformDeformationFieldFilter.txx4.4 KBitkWarpTransform3D.h1.9 KBitkWarpTransform3D.txx2.8 KB

Select a file to preview