├── .appveyor.yml ├── .bintray.yml ├── .dockerignore ├── .gitattributes ├── .gitignore ├── .gitmodules ├── .travis.yml ├── .vscode ├── c_cpp_properties.json ├── extensions.json ├── launch.json └── settings.json ├── AUTHORS.txt ├── Applications ├── BasisProject.cmake ├── CMakeLists.txt ├── config │ └── Depends.cmake ├── doc │ ├── construct-atlas-config.json │ ├── dhcp-atlas-ages.csv │ ├── dhcp-atlas-config.json │ └── dhcp-atlas-uids.csv ├── lib │ └── python │ │ └── mirtk │ │ ├── __init__.py.in │ │ ├── atlas │ │ ├── __init__.py │ │ └── spatiotemporal.py │ │ ├── batch │ │ ├── __init__.py │ │ ├── condor.py │ │ └── slurm.py │ │ ├── subprocess.py.in │ │ └── utils.py ├── src │ ├── CMakeLists.txt │ ├── aggregate-images.cc │ ├── auto-contrast.cc │ ├── average-dofs.cc │ ├── average-images.cc │ ├── average-measure.py │ ├── average-overlap.py │ ├── bisect-dof.cc │ ├── blend-surface.cc │ ├── calculate-distance-map.cc │ ├── calculate-element-wise.cc │ ├── calculate-exponential-map.cc │ ├── calculate-lie-bracket.cc │ ├── calculate-logarithmic-map.cc │ ├── calculate-surface-attributes.cc │ ├── calculate-surface-spectrum.cc │ ├── clean-surface.cc │ ├── close-image.cc │ ├── close-scalars.cc │ ├── combine-images.cc │ ├── compose-dofs.cc │ ├── construct-atlas.py │ ├── convert-dof.cc │ ├── convert-image.cc │ ├── convert-mris.py │ ├── convert-pointset-to-mat.cc │ ├── convert-pointset.cc │ ├── copy-pointset-attributes-from-mat.cc │ ├── copy-pointset-attributes.cc │ ├── cut-brain.cc │ ├── decimate-surface.cc │ ├── delete-pointset-attributes.cc │ ├── detect-cardiac-phases.cc │ ├── detect-edges.cc │ ├── dilate-image.cc │ ├── dilate-scalars.cc │ ├── downsample-image.cc │ ├── edit-dof.cc │ ├── edit-image.cc │ ├── erode-image.cc │ ├── erode-scalars.cc │ ├── evaluate-atlas.py │ ├── evaluate-cardiac-motion.cc │ ├── evaluate-distance.cc │ ├── evaluate-distortion.cc │ ├── evaluate-dof.cc │ ├── evaluate-jacobian.cc │ ├── evaluate-label-overlap.cc │ ├── evaluate-overlap.cc │ ├── evaluate-similarity.cc │ ├── evaluate-surface-mesh.cc │ ├── evaluate-surface-overlap.cc │ ├── extract-connected-components.cc │ ├── extract-connected-points.cc │ ├── extract-image-region.cc │ ├── extract-image-slice.py │ ├── extract-image-volume.py │ ├── extract-pointset-cells.cc │ ├── extract-pointset-surface.cc │ ├── extract-surface.cc │ ├── flip-image.cc │ ├── help-rst.py │ ├── info.cc │ ├── init-dof.cc │ ├── invert-dof.cc │ ├── match-histogram.cc │ ├── match-points.cc │ ├── merge-surfaces.cc │ ├── offset-surface.cc │ ├── open-image.cc │ ├── open-scalars.cc │ ├── project-onto-surface.cc │ ├── random-dof.cc │ ├── reflect-image.cc │ ├── register-points.cc │ ├── register.cc │ ├── remesh-surface.cc │ ├── resample-image.cc │ ├── smooth-image.cc │ ├── smooth-surface.cc │ ├── subdivide-brain-image.cc │ ├── transform-image.cc │ └── transform-points.cc └── tools │ ├── CMakeLists.txt │ └── mirtk.py ├── BasisProject.cmake ├── CMake ├── Basis │ ├── BashUtilities.dox │ ├── BasisConfigSettings.cmake │ ├── BasisPack.cmake │ ├── BasisSettings.cmake │ ├── BasisTest.cmake │ ├── BasisTools.cmake │ ├── CMakeLists.txt │ ├── COPYING.txt │ ├── CheckPublicHeaders.cmake │ ├── CommonTools.cmake │ ├── Config.cmake.in │ ├── ConfigUse.cmake.in │ ├── ConfigVersion.cmake.in │ ├── ConfigureIncludeFiles.cmake │ ├── CxxUtilities.dox │ ├── Directories.cmake.in │ ├── DirectoriesSettings.cmake │ ├── DocTools.cmake │ ├── Doxyfile.in │ ├── ExecuteProcess.cmake │ ├── ExportTools.cmake │ ├── ExternalData.cmake │ ├── ExternalData_config.cmake.in │ ├── GenerateConfig.cmake │ ├── GenerateExportHeader.cmake │ ├── ImportTools.cmake │ ├── InstallationTools.cmake │ ├── InterpTools.cmake │ ├── JavaUtilities.dox │ ├── MatlabTools.cmake │ ├── MatlabUtilities.dox │ ├── ModuleConfig.cmake.in │ ├── ModuleConfigUse.cmake.in │ ├── Modules.dox │ ├── PerlUtilities.dox │ ├── PostprocessChangeLog.cmake │ ├── ProjectSettings.cmake.in │ ├── ProjectTools.cmake │ ├── PythonUtilities.dox │ ├── README.md │ ├── RevisionTools.cmake │ ├── ScriptConfig.cmake.in │ ├── SlicerTools.cmake │ ├── SuperBuildTools.cmake │ ├── TargetTools.cmake │ ├── TopologicalSort.cmake │ ├── Utilities.dox │ ├── UtilitiesTools.cmake │ ├── buildtimestamp.cmd │ ├── cmake_uninstall.cmake.in │ ├── configure_script.cmake.in │ ├── doxyfilter.bat.in │ ├── doxygen_extra.css.in │ ├── doxygen_footer.html.in │ ├── doxygen_header.html.in │ ├── exportheader.cmake.in │ ├── generate_matlab_executable.cmake.in │ ├── get_python_lib.py │ ├── glob.cmake │ ├── sphinx_conf.py.in │ ├── sphinx_make.sh.in │ └── uninstall │ │ └── CMakeLists.txt ├── CMakeLists.txt ├── Config │ ├── Config.cmake.in │ ├── ConfigSettings.cmake │ ├── Depends.cmake │ └── Settings.cmake └── Modules │ ├── CMakeLists.txt │ ├── FindARPACK.cmake │ ├── FindEigen3.cmake │ ├── FindFLANN.cmake │ ├── FindMATLAB.cmake │ ├── FindPython.cmake │ ├── FindPythonInterp.cmake │ ├── FindSphinx.cmake │ ├── FindSuiteSparse.cmake │ ├── FindTBB.cmake │ ├── FindUMFPACK.cmake │ ├── mirtkAddExecutable.cmake │ ├── mirtkAddLibrary.cmake │ ├── mirtkAddTest.cmake │ ├── mirtkConfigureModule.cmake │ ├── mirtkGetTargetName.cmake │ ├── mirtkPolicies.cmake │ ├── mirtkProjectBegin.cmake │ ├── mirtkProjectEnd.cmake │ ├── mirtkTargetDependencies.cmake │ └── mirtkTools.cmake ├── CMakeLists.txt ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── ChangeLog.txt ├── Docker ├── Completion │ └── Bash │ │ └── docker-mirtk └── Ubuntu │ ├── .dockerignore │ └── Dockerfile ├── Dockerfile ├── Documentation ├── CMakeLists.txt ├── apidoc.rst ├── apidoc │ ├── classes.rst │ ├── doxygen_config.in │ ├── doxygen_extra.css.in │ ├── doxygen_footer.html.in │ ├── doxygen_header.html.in │ ├── headers.rst │ └── namespace.rst ├── changelog.rst ├── commands.rst ├── commands │ ├── _descriptions │ │ ├── aggregate-images.rst │ │ ├── average-dofs.rst │ │ ├── average-images.rst │ │ ├── average-measure.rst │ │ ├── average-overlap.rst │ │ ├── bisect-dof.rst │ │ ├── blend-surface.rst │ │ ├── calculate-boundary-map.rst │ │ ├── calculate-distance-map.rst │ │ ├── calculate-element-wise.rst │ │ ├── calculate-exponential-map.rst │ │ ├── calculate-filtering.rst │ │ ├── calculate-gradients.rst │ │ ├── calculate-lie-bracket.rst │ │ ├── calculate-logarithmic-map.rst │ │ ├── calculate-surface-attributes.rst │ │ ├── calculate-surface-map.rst │ │ ├── calculate-surface-spectrum.rst │ │ ├── calculate-volume-map.rst │ │ ├── calculate.rst │ │ ├── change-label.rst │ │ ├── close-image.rst │ │ ├── close-scalars.rst │ │ ├── combine-images.rst │ │ ├── compose-dofs.rst │ │ ├── compose-maps.rst │ │ ├── construct-atlas.rst │ │ ├── convert-dof.rst │ │ ├── convert-dof2csv.rst │ │ ├── convert-dof2velo.rst │ │ ├── convert-image.rst │ │ ├── convert-pointset-to-mat.rst │ │ ├── convert-pointset.rst │ │ ├── copy-pointset-attributes-from-mat.rst │ │ ├── copy-pointset-attributes.rst │ │ ├── cut-brain.rst │ │ ├── decimate-surface.rst │ │ ├── deform-mesh.rst │ │ ├── delete-pointset-attributes.rst │ │ ├── detect-edges.rst │ │ ├── dilate-image.rst │ │ ├── dilate-scalars.rst │ │ ├── downsample-image.rst │ │ ├── draw-em.rst │ │ ├── edit-dof.rst │ │ ├── edit-image.rst │ │ ├── em-hard-segmentation.rst │ │ ├── em.rst │ │ ├── erode-image.rst │ │ ├── erode-scalars.rst │ │ ├── evaluate-atlas.rst │ │ ├── evaluate-cardiac-motion.rst │ │ ├── evaluate-distance.rst │ │ ├── evaluate-distortion.rst │ │ ├── evaluate-dof.rst │ │ ├── evaluate-jacobian.rst │ │ ├── evaluate-map.rst │ │ ├── evaluate-overlap.rst │ │ ├── evaluate-similarity.rst │ │ ├── evaluate-surface-map.rst │ │ ├── evaluate-surface-mesh.rst │ │ ├── evaluate-surface-overlap.rst │ │ ├── evaluate-volume-map.rst │ │ ├── extract-connected-components.rst │ │ ├── extract-connected-points.rst │ │ ├── extract-image-region.rst │ │ ├── extract-image-slice.rst │ │ ├── extract-image-volume.rst │ │ ├── extract-pointset-cells.rst │ │ ├── extract-pointset-surface.rst │ │ ├── extract-surface.rst │ │ ├── fill-holes-nn-based.rst │ │ ├── fill-holes.rst │ │ ├── flip-image.rst │ │ ├── help-rst.rst │ │ ├── info.rst │ │ ├── init-dof.rst │ │ ├── invert-dof.rst │ │ ├── kmeans.rst │ │ ├── map-boundary.rst │ │ ├── map-surface.rst │ │ ├── map-volume.rst │ │ ├── match-histogram.rst │ │ ├── match-points.rst │ │ ├── measure-volume.rst │ │ ├── merge-surfaces.rst │ │ ├── normalize.rst │ │ ├── offset-surface.rst │ │ ├── open-image.rst │ │ ├── open-scalars.rst │ │ ├── padding.rst │ │ ├── project-onto-surface.rst │ │ ├── recon-neonatal-cortex.rst │ │ ├── reflect-image.rst │ │ ├── register.rst │ │ ├── remesh-surface.rst │ │ ├── remesh.rst │ │ ├── resample-image.rst │ │ ├── smooth-image.rst │ │ ├── smooth-surface.rst │ │ ├── split-labels.rst │ │ ├── subdivide-brain-image.rst │ │ ├── transform-image.rst │ │ └── transform-points.rst │ ├── _options.rst │ ├── _overview.rst │ ├── _summaries │ │ ├── aggregate-images.rst │ │ ├── average-dofs.rst │ │ ├── average-images.rst │ │ ├── average-measure.rst │ │ ├── average-overlap.rst │ │ ├── bisect-dof.rst │ │ ├── blend-surface.rst │ │ ├── calculate-boundary-map.rst │ │ ├── calculate-distance-map.rst │ │ ├── calculate-element-wise.rst │ │ ├── calculate-exponential-map.rst │ │ ├── calculate-filtering.rst │ │ ├── calculate-gradients.rst │ │ ├── calculate-lie-bracket.rst │ │ ├── calculate-logarithmic-map.rst │ │ ├── calculate-surface-attributes.rst │ │ ├── calculate-surface-map.rst │ │ ├── calculate-surface-spectrum.rst │ │ ├── calculate-volume-map.rst │ │ ├── calculate.rst │ │ ├── change-label.rst │ │ ├── close-image.rst │ │ ├── close-scalars.rst │ │ ├── combine-images.rst │ │ ├── compose-dofs.rst │ │ ├── compose-maps.rst │ │ ├── construct-atlas.rst │ │ ├── convert-dof.rst │ │ ├── convert-dof2csv.rst │ │ ├── convert-dof2velo.rst │ │ ├── convert-image.rst │ │ ├── convert-pointset-to-mat.rst │ │ ├── convert-pointset.rst │ │ ├── copy-pointset-attributes-from-mat.rst │ │ ├── copy-pointset-attributes.rst │ │ ├── cut-brain.rst │ │ ├── decimate-surface.rst │ │ ├── deform-mesh.rst │ │ ├── delete-pointset-attributes.rst │ │ ├── detect-edges.rst │ │ ├── dilate-image.rst │ │ ├── dilate-scalars.rst │ │ ├── downsample-image.rst │ │ ├── draw-em.rst │ │ ├── edit-dof.rst │ │ ├── edit-image.rst │ │ ├── em-hard-segmentation.rst │ │ ├── em.rst │ │ ├── erode-image.rst │ │ ├── erode-scalars.rst │ │ ├── evaluate-atlas.rst │ │ ├── evaluate-cardiac-motion.rst │ │ ├── evaluate-distance.rst │ │ ├── evaluate-distortion.rst │ │ ├── evaluate-dof.rst │ │ ├── evaluate-jacobian.rst │ │ ├── evaluate-map.rst │ │ ├── evaluate-overlap.rst │ │ ├── evaluate-similarity.rst │ │ ├── evaluate-surface-map.rst │ │ ├── evaluate-surface-mesh.rst │ │ ├── evaluate-surface-overlap.rst │ │ ├── evaluate-volume-map.rst │ │ ├── extract-connected-components.rst │ │ ├── extract-connected-points.rst │ │ ├── extract-image-region.rst │ │ ├── extract-image-slice.rst │ │ ├── extract-image-volume.rst │ │ ├── extract-pointset-cells.rst │ │ ├── extract-pointset-surface.rst │ │ ├── extract-surface.rst │ │ ├── fill-holes-nn-based.rst │ │ ├── fill-holes.rst │ │ ├── flip-image.rst │ │ ├── help-rst.rst │ │ ├── info.rst │ │ ├── init-dof.rst │ │ ├── invert-dof.rst │ │ ├── kmeans.rst │ │ ├── map-boundary.rst │ │ ├── map-surface.rst │ │ ├── map-volume.rst │ │ ├── match-histogram.rst │ │ ├── match-points.rst │ │ ├── measure-volume.rst │ │ ├── merge-surfaces.rst │ │ ├── normalize.rst │ │ ├── offset-surface.rst │ │ ├── open-image.rst │ │ ├── open-scalars.rst │ │ ├── project-onto-surface.rst │ │ ├── recon-neonatal-cortex.rst │ │ ├── reflect-image.rst │ │ ├── register.rst │ │ ├── remesh-surface.rst │ │ ├── remesh.rst │ │ ├── resample-image.rst │ │ ├── smooth-image.rst │ │ ├── smooth-surface.rst │ │ ├── split-labels.rst │ │ ├── subdivide-brain-image.rst │ │ ├── transform-image.rst │ │ └── transform-points.rst │ ├── _summary.rst │ ├── aggregate-images.rst │ ├── average-dofs.rst │ ├── average-images.rst │ ├── average-measure.rst │ ├── average-overlap.rst │ ├── bisect-dof.rst │ ├── blend-surface.rst │ ├── calculate-boundary-map.rst │ ├── calculate-distance-map.rst │ ├── calculate-element-wise.rst │ ├── calculate-exponential-map.rst │ ├── calculate-filtering.rst │ ├── calculate-gradients.rst │ ├── calculate-lie-bracket.rst │ ├── calculate-logarithmic-map.rst │ ├── calculate-surface-attributes.rst │ ├── calculate-surface-map.rst │ ├── calculate-surface-spectrum.rst │ ├── calculate-volume-map.rst │ ├── calculate.rst │ ├── change-label.rst │ ├── close-image.rst │ ├── close-scalars.rst │ ├── combine-images.rst │ ├── compose-dofs.rst │ ├── compose-maps.rst │ ├── construct-atlas.rst │ ├── convert-dof.rst │ ├── convert-dof2csv.rst │ ├── convert-dof2velo.rst │ ├── convert-image.rst │ ├── convert-pointset-to-mat.rst │ ├── convert-pointset.rst │ ├── copy-pointset-attributes-from-mat.rst │ ├── copy-pointset-attributes.rst │ ├── cut-brain.rst │ ├── decimate-surface.rst │ ├── deform-mesh.rst │ ├── delete-pointset-attributes.rst │ ├── detect-edges.rst │ ├── dilate-image.rst │ ├── dilate-scalars.rst │ ├── downsample-image.rst │ ├── draw-em.rst │ ├── edit-dof.rst │ ├── edit-image.rst │ ├── em-hard-segmentation.rst │ ├── em.rst │ ├── erode-image.rst │ ├── erode-scalars.rst │ ├── evaluate-atlas.rst │ ├── evaluate-cardiac-motion.rst │ ├── evaluate-distance.rst │ ├── evaluate-distortion.rst │ ├── evaluate-dof.rst │ ├── evaluate-jacobian.rst │ ├── evaluate-map.rst │ ├── evaluate-overlap.rst │ ├── evaluate-similarity.rst │ ├── evaluate-surface-map.rst │ ├── evaluate-surface-mesh.rst │ ├── evaluate-surface-overlap.rst │ ├── evaluate-volume-map.rst │ ├── extract-connected-components.rst │ ├── extract-connected-points.rst │ ├── extract-image-region.rst │ ├── extract-image-slice.rst │ ├── extract-image-volume.rst │ ├── extract-pointset-cells.rst │ ├── extract-pointset-surface.rst │ ├── extract-surface.rst │ ├── fill-holes-nn-based.rst │ ├── fill-holes.rst │ ├── flip-image.rst │ ├── help-rst.rst │ ├── info.rst │ ├── init-dof.rst │ ├── invert-dof.rst │ ├── kmeans.rst │ ├── map-boundary.rst │ ├── map-surface.rst │ ├── map-volume.rst │ ├── match-histogram.rst │ ├── match-points.rst │ ├── measure-volume.rst │ ├── merge-surfaces.rst │ ├── normalize.rst │ ├── offset-surface.rst │ ├── open-image.rst │ ├── open-scalars.rst │ ├── project-onto-surface.rst │ ├── recon-neonatal-cortex.rst │ ├── reflect-image.rst │ ├── register.rst │ ├── remesh-surface.rst │ ├── remesh.rst │ ├── resample-image.rst │ ├── smooth-image.rst │ ├── smooth-surface.rst │ ├── split-labels.rst │ ├── subdivide-brain-image.rst │ ├── transform-image.rst │ └── transform-points.rst ├── contents.rst ├── download.rst ├── getstarted.rst ├── help.rst ├── index.rst ├── install.rst ├── modules.rst ├── modules │ ├── _descriptions │ │ ├── common.rst │ │ ├── deformable.rst │ │ ├── drawem.rst │ │ ├── image.rst │ │ ├── io.rst │ │ ├── mapping.rst │ │ ├── numerics.rst │ │ ├── pointset.rst │ │ ├── registration.rst │ │ ├── scripting.rst │ │ └── transformation.rst │ ├── _overview.rst │ ├── _refs.rst │ ├── common.rst │ ├── deformable.rst │ ├── drawem.rst │ ├── image.rst │ ├── io.rst │ ├── mapping.rst │ ├── numerics.rst │ ├── pointset.rst │ ├── registration.rst │ ├── scripting.rst │ └── transformation.rst ├── people.rst ├── publications.rst ├── sidebar.rst ├── static │ ├── CMakeGUIDefaultConfig.png │ ├── CMakeGUIVTKNotFound.png │ └── logo.svg └── tools │ ├── write-commands-overview.py │ └── write-commands-summary.py ├── Examples └── helloworld │ ├── CMakeLists.txt │ ├── README.md │ └── flip.cc ├── LICENSE.txt ├── Modules ├── Common │ ├── BasisProject.cmake │ ├── CMakeLists.txt │ ├── config │ │ ├── Config.cmake.in │ │ ├── Settings.cmake │ │ ├── config.h.in │ │ └── version.h.in │ ├── include │ │ └── mirtk │ │ │ ├── Algorithm.h │ │ │ ├── Allocate.h │ │ │ ├── Array.h │ │ │ ├── ArrayHeap.h │ │ │ ├── Assert.h │ │ │ ├── Cfstream.h │ │ │ ├── Cifstream.h │ │ │ ├── Cofstream.h │ │ │ ├── Common.h │ │ │ ├── Config.h │ │ │ ├── Configurable.h │ │ │ ├── Cuda.h │ │ │ ├── CudaRuntime.h │ │ │ ├── CutilMath.h │ │ │ ├── DataSelection.h │ │ │ ├── Deallocate.h │ │ │ ├── EnergyMeasure.h │ │ │ ├── Event.h │ │ │ ├── EventDelegate.h │ │ │ ├── Exception.h │ │ │ ├── FastDelegate.h │ │ │ ├── Indent.h │ │ │ ├── List.h │ │ │ ├── Math.h │ │ │ ├── Matlab.h │ │ │ ├── Memory.h │ │ │ ├── Numeric.h │ │ │ ├── Object.h │ │ │ ├── ObjectFactory.h │ │ │ ├── Observable.h │ │ │ ├── Observer.h │ │ │ ├── Options.h │ │ │ ├── OrderedMap.h │ │ │ ├── OrderedSet.h │ │ │ ├── Pair.h │ │ │ ├── Parallel.h │ │ │ ├── Path.h │ │ │ ├── PriorityQueue.h │ │ │ ├── Profiling.h │ │ │ ├── Queue.h │ │ │ ├── Random.h │ │ │ ├── Stack.h │ │ │ ├── Status.h │ │ │ ├── Stream.h │ │ │ ├── String.h │ │ │ ├── System.h │ │ │ ├── Terminal.h │ │ │ ├── TestProd.h │ │ │ ├── UnorderedMap.h │ │ │ ├── UnorderedSet.h │ │ │ ├── Utils.h │ │ │ ├── Version.h │ │ │ ├── Vtk.h │ │ │ └── VtkMath.h │ ├── src │ │ ├── CMakeLists.txt │ │ ├── Cifstream.cc │ │ ├── Cofstream.cc │ │ ├── Configurable.cc │ │ ├── Math.cc │ │ ├── Matlab.cc │ │ ├── Memory.cc │ │ ├── Observer.cc │ │ ├── Options.cc │ │ ├── Parallel.cc │ │ ├── Path.cc │ │ ├── Profiling.cc │ │ ├── String.cc │ │ ├── System.cc │ │ ├── Terminal.cc │ │ ├── Version.cc │ │ └── Vtk.cc │ └── test │ │ ├── CMakeLists.txt │ │ └── testString.cc ├── IO │ ├── BasisProject.cmake │ ├── CMakeLists.txt │ ├── config │ │ ├── Config.cmake.in │ │ ├── Depends.cmake │ │ ├── Settings.cmake │ │ └── config.h.in │ ├── include │ │ └── mirtk │ │ │ ├── GIPLImageReader.h │ │ │ ├── GIPLImageWriter.h │ │ │ ├── MetaImageReader.h │ │ │ ├── MetaImageWriter.h │ │ │ ├── NiftiImageInfo.h │ │ │ ├── NiftiImageReader.h │ │ │ ├── NiftiImageWriter.h │ │ │ ├── PGMImageReader.h │ │ │ ├── PGMImageWriter.h │ │ │ ├── PNGImageWriter.h │ │ │ └── PointSetIO.h │ └── src │ │ ├── CMakeLists.txt │ │ ├── GIPL.h │ │ ├── GIPLImageReader.cc │ │ ├── GIPLImageWriter.cc │ │ ├── IOConfig.cc │ │ ├── MetaImageReader.cc │ │ ├── MetaImageWriter.cc │ │ ├── NiftiImage.cc │ │ ├── NiftiImage.h │ │ ├── NiftiImageInfo.cc │ │ ├── NiftiImageReader.cc │ │ ├── NiftiImageWriter.cc │ │ ├── PGM.h │ │ ├── PGMImageReader.cc │ │ ├── PGMImageWriter.cc │ │ ├── PNGImageWriter.cc │ │ ├── PointSetIO.cc │ │ ├── brainsuite │ │ └── dfsurface.h │ │ ├── gifti │ │ ├── gifti_io.cc │ │ ├── gifti_io.h │ │ ├── gifti_xml.cc │ │ └── gifti_xml.h │ │ ├── meta │ │ ├── License.txt │ │ ├── metaEvent.h │ │ ├── metaIOConfig.h │ │ ├── metaImage.cxx │ │ ├── metaImage.h │ │ ├── metaImageTypes.h │ │ ├── metaImageUtils.cxx │ │ ├── metaImageUtils.h │ │ ├── metaObject.cxx │ │ ├── metaObject.h │ │ ├── metaTypes.h │ │ ├── metaUtils.cxx │ │ └── metaUtils.h │ │ └── nifti │ │ ├── nifti1.h │ │ ├── nifti2.h │ │ ├── nifti2_io.cc │ │ ├── nifti2_io.h │ │ ├── znzlib.cc │ │ └── znzlib.h ├── Image │ ├── BasisProject.cmake │ ├── CMakeLists.txt │ ├── config │ │ ├── Config.cmake.in │ │ ├── Settings.cmake │ │ └── config.h.in │ ├── include │ │ └── mirtk │ │ │ ├── BSplineInterpolateImageFunction.h │ │ │ ├── BSplineInterpolateImageFunction.hxx │ │ │ ├── BSplineInterpolateImageFunction2D.h │ │ │ ├── BSplineInterpolateImageFunction2D.hxx │ │ │ ├── BSplineInterpolateImageFunction3D.h │ │ │ ├── BSplineInterpolateImageFunction3D.hxx │ │ │ ├── BSplineInterpolateImageFunction4D.h │ │ │ ├── BSplineInterpolateImageFunction4D.hxx │ │ │ ├── BaseImage.h │ │ │ ├── BinaryVoxelFunction.h │ │ │ ├── CSplineInterpolateImageFunction.h │ │ │ ├── CSplineInterpolateImageFunction.hxx │ │ │ ├── CSplineInterpolateImageFunction2D.h │ │ │ ├── CSplineInterpolateImageFunction2D.hxx │ │ │ ├── CSplineInterpolateImageFunction3D.h │ │ │ ├── CSplineInterpolateImageFunction3D.hxx │ │ │ ├── CSplineInterpolateImageFunction4D.h │ │ │ ├── CSplineInterpolateImageFunction4D.hxx │ │ │ ├── CityBlockDistanceTransform.h │ │ │ ├── Closing.h │ │ │ ├── ConnectedComponents.h │ │ │ ├── ConstExtrapolateImageFunction.h │ │ │ ├── ConstExtrapolateImageFunctionWithPeriodicTime.h │ │ │ ├── ConstGenericImageIterator.h │ │ │ ├── ConstImageIterator.h │ │ │ ├── ConvolutionFunction.h │ │ │ ├── CubicBSplineConvolution.h │ │ │ ├── CubicBSplineInterpolateImageFunction.h │ │ │ ├── CubicBSplineInterpolateImageFunction.hxx │ │ │ ├── CubicBSplineInterpolateImageFunction2D.h │ │ │ ├── CubicBSplineInterpolateImageFunction2D.hxx │ │ │ ├── CubicBSplineInterpolateImageFunction3D.h │ │ │ ├── CubicBSplineInterpolateImageFunction3D.hxx │ │ │ ├── CubicBSplineInterpolateImageFunction4D.h │ │ │ ├── CubicBSplineInterpolateImageFunction4D.hxx │ │ │ ├── DataFunctions.h │ │ │ ├── DataOp.h │ │ │ ├── DataStatistics.h │ │ │ ├── DifferenceOfCompositionLieBracketImageFilter3D.h │ │ │ ├── Dilation.h │ │ │ ├── DisplacementFieldExp.h │ │ │ ├── DisplacementToVelocityField.h │ │ │ ├── DisplacementToVelocityFieldBCH.h │ │ │ ├── Downsampling.h │ │ │ ├── Erosion.h │ │ │ ├── EuclideanDistanceTransform.h │ │ │ ├── ExtrapolateImageFunction.h │ │ │ ├── ExtrapolationMode.h │ │ │ ├── FastCubicBSplineInterpolateImageFunction.h │ │ │ ├── FastCubicBSplineInterpolateImageFunction.hxx │ │ │ ├── FastCubicBSplineInterpolateImageFunction2D.h │ │ │ ├── FastCubicBSplineInterpolateImageFunction2D.hxx │ │ │ ├── FastCubicBSplineInterpolateImageFunction3D.h │ │ │ ├── FastCubicBSplineInterpolateImageFunction3D.hxx │ │ │ ├── FastCubicBSplineInterpolateImageFunction4D.h │ │ │ ├── FastCubicBSplineInterpolateImageFunction4D.hxx │ │ │ ├── FastLinearImageGradientFunction.h │ │ │ ├── FastLinearImageGradientFunction.hxx │ │ │ ├── FastLinearImageGradientFunction2D.h │ │ │ ├── FastLinearImageGradientFunction2D.hxx │ │ │ ├── FastLinearImageGradientFunction3D.h │ │ │ ├── FastLinearImageGradientFunction3D.hxx │ │ │ ├── ForEachBinaryVoxelFunction.h │ │ │ ├── ForEachNonaryVoxelFunction.h │ │ │ ├── ForEachOctaryVoxelFunction.h │ │ │ ├── ForEachQuaternaryVoxelFunction.h │ │ │ ├── ForEachQuinaryVoxelFunction.h │ │ │ ├── ForEachSenaryVoxelFunction.h │ │ │ ├── ForEachSeptenaryVoxelFunction.h │ │ │ ├── ForEachTernaryVoxelFunction.h │ │ │ ├── ForEachUnaryVoxelFunction.h │ │ │ ├── GaussianBlurring.h │ │ │ ├── GaussianBlurring2D.h │ │ │ ├── GaussianBlurring4D.h │ │ │ ├── GaussianBlurringWithPadding.h │ │ │ ├── GaussianBlurringWithPadding2D.h │ │ │ ├── GaussianInterpolateImageFunction.h │ │ │ ├── GaussianInterpolateImageFunction.hxx │ │ │ ├── GaussianInterpolateImageFunction2D.h │ │ │ ├── GaussianInterpolateImageFunction2D.hxx │ │ │ ├── GaussianInterpolateImageFunction3D.h │ │ │ ├── GaussianInterpolateImageFunction3D.hxx │ │ │ ├── GaussianInterpolateImageFunction4D.h │ │ │ ├── GaussianInterpolateImageFunction4D.hxx │ │ │ ├── GaussianPyramidFilter.h │ │ │ ├── GenericImage.h │ │ │ ├── GenericImageIterator.h │ │ │ ├── GradientImageFilter.h │ │ │ ├── HashImage.h │ │ │ ├── HashImage.hxx │ │ │ ├── HessianImageFilter.h │ │ │ ├── Histogram1D.h │ │ │ ├── Histogram2D.h │ │ │ ├── HistogramMatching.h │ │ │ ├── Image.h │ │ │ ├── ImageAttributes.h │ │ │ ├── ImageFunction.h │ │ │ ├── ImageGradientFunction.h │ │ │ ├── ImageGradientFunction.hxx │ │ │ ├── ImageIterator.h │ │ │ ├── ImageReader.h │ │ │ ├── ImageReaderFactory.h │ │ │ ├── ImageRegion.h │ │ │ ├── ImageSequence.h │ │ │ ├── ImageSequence.hh │ │ │ ├── ImageToImage.h │ │ │ ├── ImageToInterpolationCoefficients.h │ │ │ ├── ImageWriter.h │ │ │ ├── ImageWriterFactory.h │ │ │ ├── InterpolateImageFunction.h │ │ │ ├── InterpolateImageFunction.hxx │ │ │ ├── InterpolationMode.h │ │ │ ├── LieBracketImageFilter.h │ │ │ ├── LieBracketImageFilter2D.h │ │ │ ├── LieBracketImageFilter3D.h │ │ │ ├── LinearImageGradientFunction.h │ │ │ ├── LinearImageGradientFunction.hxx │ │ │ ├── LinearImageGradientFunction2D.h │ │ │ ├── LinearImageGradientFunction2D.hxx │ │ │ ├── LinearImageGradientFunction3D.h │ │ │ ├── LinearImageGradientFunction3D.hxx │ │ │ ├── LinearInterpolateImageFunction.h │ │ │ ├── LinearInterpolateImageFunction.hxx │ │ │ ├── LinearInterpolateImageFunction2D.h │ │ │ ├── LinearInterpolateImageFunction2D.hxx │ │ │ ├── LinearInterpolateImageFunction3D.h │ │ │ ├── LinearInterpolateImageFunction3D.hxx │ │ │ ├── LinearInterpolateImageFunction4D.h │ │ │ ├── LinearInterpolateImageFunction4D.hxx │ │ │ ├── MirrorExtrapolateImageFunction.h │ │ │ ├── NaryVoxelFunction.h │ │ │ ├── NearestNeighborExtrapolateImageFunction.h │ │ │ ├── NearestNeighborInterpolateImageFunction.h │ │ │ ├── NearestNeighborInterpolateImageFunction.hxx │ │ │ ├── NeighborhoodOffsets.h │ │ │ ├── RepeatExtrapolateImageFunction.h │ │ │ ├── Resampling.h │ │ │ ├── ResamplingWithPadding.h │ │ │ ├── ScalarFunctionToImage.h │ │ │ ├── ScalingAndSquaring.h │ │ │ ├── SeparableConvolution.h │ │ │ ├── ShapeBasedInterpolateImageFunction.h │ │ │ ├── SincInterpolateImageFunction.h │ │ │ ├── SincInterpolateImageFunction.hxx │ │ │ ├── SincInterpolateImageFunction2D.h │ │ │ ├── SincInterpolateImageFunction2D.hxx │ │ │ ├── SincInterpolateImageFunction3D.h │ │ │ ├── SincInterpolateImageFunction3D.hxx │ │ │ ├── SincInterpolateImageFunction4D.h │ │ │ ├── SincInterpolateImageFunction4D.hxx │ │ │ ├── TernaryVoxelFunction.h │ │ │ ├── UnaryVoxelFunction.h │ │ │ ├── VelocityFieldExp.h │ │ │ ├── VelocityToDisplacementField.h │ │ │ ├── VelocityToDisplacementFieldEuler.h │ │ │ ├── VelocityToDisplacementFieldSS.h │ │ │ ├── Voxel.h │ │ │ ├── VoxelCast.h │ │ │ ├── VoxelDomain.h │ │ │ └── VoxelFunction.h │ ├── src │ │ ├── BaseImage.cc │ │ ├── CMakeLists.txt │ │ ├── CityBlockDistanceTransform.cc │ │ ├── Closing.cc │ │ ├── ConnectedComponents.cc │ │ ├── CubicBSplineConvolution.cc │ │ ├── DataOp.cc │ │ ├── DifferenceOfCompositionLieBracketImageFilter3D.cc │ │ ├── Dilation.cc │ │ ├── DisplacementToVelocityFieldBCH.cc │ │ ├── Downsampling.cc │ │ ├── Erosion.cc │ │ ├── EuclideanDistanceTransform.cc │ │ ├── ExtrapolateImageFunction.cc │ │ ├── ForEachVoxelFunction.py │ │ ├── GaussianBlurring.cc │ │ ├── GaussianBlurring2D.cc │ │ ├── GaussianBlurring4D.cc │ │ ├── GaussianBlurringWithPadding.cc │ │ ├── GaussianBlurringWithPadding2D.cc │ │ ├── GaussianPyramidFilter.cc │ │ ├── GenericImage.cc │ │ ├── GradientImageFilter.cc │ │ ├── HashImage.cc │ │ ├── HessianImageFilter.cc │ │ ├── Histogram1D.cc │ │ ├── Histogram2D.cc │ │ ├── HistogramMatching.cc │ │ ├── ImageAttributes.cc │ │ ├── ImageConfig.cc │ │ ├── ImageFunction.cc │ │ ├── ImageGradientFunction.cc │ │ ├── ImageReader.cc │ │ ├── ImageReaderFactory.cc │ │ ├── ImageToImage.cc │ │ ├── ImageWriter.cc │ │ ├── ImageWriterFactory.cc │ │ ├── InterpolateImageFunction.cc │ │ ├── NeighborhoodOffsets.cc │ │ ├── Resampling.cc │ │ ├── ResamplingWithPadding.cc │ │ ├── ScalarFunctionToImage.cc │ │ ├── ScalingAndSquaring.cc │ │ ├── SeparableConvolution.cc │ │ ├── ShapeBasedInterpolateImageFunction.cc │ │ ├── VelocityToDisplacementField.cc │ │ ├── VelocityToDisplacementFieldEuler.cc │ │ ├── VelocityToDisplacementFieldSS.cc │ │ └── Voxel.cc │ └── test │ │ ├── CMakeLists.txt │ │ ├── testConvolutionFunction.cc │ │ ├── testDisplacementToVelocityField.cc │ │ ├── testDownsampling.cc │ │ ├── testInterpolateExtrapolateImageFunction.cc │ │ └── testUnaryVoxelFunction.cc ├── Numerics │ ├── BasisProject.cmake │ ├── CMakeLists.txt │ ├── config │ │ ├── Config.cmake.in │ │ ├── Settings.cmake │ │ └── config.h.in │ ├── include │ │ └── mirtk │ │ │ ├── AdaptiveLineSearch.h │ │ │ ├── Arith.h │ │ │ ├── Arpack.h │ │ │ ├── BSpline.h │ │ │ ├── BrentLineSearch.h │ │ │ ├── CharbonnierErrorFunction.h │ │ │ ├── ConjugateGradientDescent.h │ │ │ ├── DistanceErrorFunction.h │ │ │ ├── Eigen.h │ │ │ ├── EnergyThreshold.h │ │ │ ├── GaussianErrorFunction.h │ │ │ ├── GradientDescent.h │ │ │ ├── InexactLineSearch.h │ │ │ ├── LimitedMemoryBFGSDescent.h │ │ │ ├── LineSearch.h │ │ │ ├── LocalOptimizer.h │ │ │ ├── Matrix.h │ │ │ ├── Matrix3x3.h │ │ │ ├── MaxStepLineSearch.h │ │ │ ├── Numerics.h │ │ │ ├── ObjectiveFunction.h │ │ │ ├── OptimizationMethod.h │ │ │ ├── PeronaMalikErrorFunction.h │ │ │ ├── Plane.h │ │ │ ├── Point.h │ │ │ ├── PointSamples.h │ │ │ ├── PointSet.h │ │ │ ├── Polynomial.h │ │ │ ├── PolynomialSolvers.h │ │ │ ├── RadialErrorFunction.h │ │ │ ├── ScalarFunction.h │ │ │ ├── ScalarGaussian.h │ │ │ ├── Sinc.h │ │ │ ├── SparseMatrix.h │ │ │ ├── SquaredErrorFunction.h │ │ │ ├── StoppingCriterion.h │ │ │ ├── Umfpack.h │ │ │ ├── Vector.h │ │ │ ├── Vector3.h │ │ │ ├── Vector3D.h │ │ │ ├── Vector4D.h │ │ │ └── VectorND.h │ ├── src │ │ ├── AdaptiveLineSearch.cc │ │ ├── Arith.cc │ │ ├── BSpline.cc │ │ ├── BrentLineSearch.cc │ │ ├── CMakeLists.txt │ │ ├── ConjugateGradientDescent.cc │ │ ├── EnergyThreshold.cc │ │ ├── GradientDescent.cc │ │ ├── InexactLineSearch.cc │ │ ├── LimitedMemoryBFGSDescent.cc │ │ ├── LineSearch.cc │ │ ├── LocalOptimizer.cc │ │ ├── Matrix.cc │ │ ├── Matrix3x3.cc │ │ ├── MaxStepLineSearch.cc │ │ ├── NumericsConfig.cc │ │ ├── Plane.cc │ │ ├── Point.cc │ │ ├── PointSamples.cc │ │ ├── PointSet.cc │ │ ├── Polynomial.cc │ │ ├── PolynomialSolvers.cc │ │ ├── RadialErrorFunction.cc │ │ ├── ScalarGaussian.cc │ │ ├── Sinc.cc │ │ ├── SparseMatrix.cc │ │ ├── StoppingCriterion.cc │ │ ├── Vector.cc │ │ ├── Vector3.cc │ │ ├── Vector3D.cc │ │ └── Vector4D.cc │ └── test │ │ ├── CMakeLists.txt │ │ ├── NumericsTest.h │ │ ├── testMatrix.cc │ │ ├── testPolynomial.cc │ │ └── testVector.cc ├── PointSet │ ├── BasisProject.cmake │ ├── CMakeLists.txt │ ├── config │ │ └── Config.cmake.in │ ├── include │ │ └── mirtk │ │ │ ├── BoundarySegment.h │ │ │ ├── CellDataFilter.h │ │ │ ├── CloseCellData.h │ │ │ ├── ClosePointData.h │ │ │ ├── ClosestCell.h │ │ │ ├── ClosestPoint.h │ │ │ ├── ClosestPointLabel.h │ │ │ ├── DilateCellData.h │ │ │ ├── DilatePointData.h │ │ │ ├── EdgeConnectivity.h │ │ │ ├── EdgeTable.h │ │ │ ├── ErodeCellData.h │ │ │ ├── ErodePointData.h │ │ │ ├── FiducialMatch.h │ │ │ ├── FuzzyCorrespondence.h │ │ │ ├── ImageSurfaceStatistics.h │ │ │ ├── ImplicitSurfaceUtils.h │ │ │ ├── MedianPointData.h │ │ │ ├── MeshFilter.h │ │ │ ├── MeshSmoothing.h │ │ │ ├── OpenCellData.h │ │ │ ├── OpenPointData.h │ │ │ ├── PointCorrespondence.h │ │ │ ├── PointDataFilter.h │ │ │ ├── PointLocator.h │ │ │ ├── PointSetUtils.h │ │ │ ├── Polyhedron.h │ │ │ ├── RegisteredPointSet.h │ │ │ ├── RegisteredSurface.h │ │ │ ├── RobustClosestPoint.h │ │ │ ├── RobustPointMatch.h │ │ │ ├── SpectralDecomposition.h │ │ │ ├── SpectralMatch.h │ │ │ ├── Stripper.h │ │ │ ├── SurfaceBoundary.h │ │ │ ├── SurfaceCollisions.h │ │ │ ├── SurfaceCurvature.h │ │ │ ├── SurfaceFilter.h │ │ │ ├── SurfacePatches.h │ │ │ ├── SurfaceRemeshing.h │ │ │ └── Triangle.h │ ├── src │ │ ├── BoundarySegment.cc │ │ ├── CMakeLists.txt │ │ ├── CellDataFilter.cc │ │ ├── CloseCellData.cc │ │ ├── ClosePointData.cc │ │ ├── ClosestCell.cc │ │ ├── ClosestPoint.cc │ │ ├── ClosestPointLabel.cc │ │ ├── DilateCellData.cc │ │ ├── DilatePointData.cc │ │ ├── EdgeConnectivity.cc │ │ ├── EdgeTable.cc │ │ ├── ErodeCellData.cc │ │ ├── ErodePointData.cc │ │ ├── FiducialMatch.cc │ │ ├── FuzzyCorrespondence.cc │ │ ├── FuzzyCorrespondenceUtils.cc │ │ ├── FuzzyCorrespondenceUtils.h │ │ ├── ImageSurfaceStatistics.cc │ │ ├── ImplicitSurfaceUtils.cc │ │ ├── MedianPointData.cc │ │ ├── MeshFilter.cc │ │ ├── MeshSmoothing.cc │ │ ├── OpenCellData.cc │ │ ├── OpenPointData.cc │ │ ├── PointCorrespondence.cc │ │ ├── PointDataFilter.cc │ │ ├── PointLocator.cc │ │ ├── PointSetUtils.cc │ │ ├── Polyhedron.cc │ │ ├── RegisteredPointSet.cc │ │ ├── RegisteredSurface.cc │ │ ├── RobustClosestPoint.cc │ │ ├── RobustPointMatch.cc │ │ ├── SpectralDecomposition.cc │ │ ├── SpectralMatch.cc │ │ ├── Stripper.cc │ │ ├── SurfaceBoundary.cc │ │ ├── SurfaceCollisions.cc │ │ ├── SurfaceCurvature.cc │ │ ├── SurfaceFilter.cc │ │ ├── SurfacePatches.cc │ │ ├── SurfaceRemeshing.cc │ │ ├── Triangle.cc │ │ └── triangle_triangle_intersection.h │ └── test │ │ ├── CMakeLists.txt │ │ └── testEdgeTable.cc ├── Registration │ ├── BasisProject.cmake │ ├── CMakeLists.txt │ ├── config │ │ ├── Config.cmake.in │ │ ├── Settings.cmake │ │ └── config.h.in │ ├── example │ │ ├── DummyImageSimilarity.cc │ │ ├── DummyImageSimilarity.h │ │ └── register.par │ ├── include │ │ └── mirtk │ │ │ ├── CosineOfNormalizedGradientField.h │ │ │ ├── CurrentsDistance.h │ │ │ ├── DataFidelity.h │ │ │ ├── FiducialRegistrationError.h │ │ │ ├── GenericRegistrationDebugger.h │ │ │ ├── GenericRegistrationFilter.h │ │ │ ├── GenericRegistrationLogger.h │ │ │ ├── GradientFieldSimilarity.h │ │ │ ├── HistogramImageSimilarity.h │ │ │ ├── ImageCovariance.h │ │ │ ├── ImageSimilarity.h │ │ │ ├── IntensityCorrelationRatioXY.h │ │ │ ├── IntensityCorrelationRatioYX.h │ │ │ ├── IntensityCrossCorrelation.h │ │ │ ├── JointImageEntropy.h │ │ │ ├── LabelConsistency.h │ │ │ ├── MeanSquaredDisplacementError.h │ │ │ ├── MutualImageInformation.h │ │ │ ├── NormalizedGradientFieldSimilarity.h │ │ │ ├── NormalizedIntensityCrossCorrelation.h │ │ │ ├── NormalizedMutualImageInformation.h │ │ │ ├── PeakSignalToNoiseRatio.h │ │ │ ├── PointCorrespondenceDistance.h │ │ │ ├── PointSetDistance.h │ │ │ ├── PointSetDistanceMeasure.h │ │ │ ├── Registration.h │ │ │ ├── RegistrationEnergy.h │ │ │ ├── RegistrationFilter.h │ │ │ ├── SimilarityMeasure.h │ │ │ ├── SumOfSquaredIntensityDifferences.h │ │ │ └── SurfaceDistance.h │ ├── src │ │ ├── CMakeLists.txt │ │ ├── CosineOfNormalizedGradientField.cc │ │ ├── CurrentsDistance.cc │ │ ├── DataFidelity.cc │ │ ├── FiducialRegistrationError.cc │ │ ├── GenericRegistrationDebugger.cc │ │ ├── GenericRegistrationFilter.cc │ │ ├── GenericRegistrationLogger.cc │ │ ├── GradientFieldSimilarity.cc │ │ ├── HistogramImageSimilarity.cc │ │ ├── ImageCovariance.cc │ │ ├── ImageSimilarity.cc │ │ ├── IntensityCorrelationRatioXY.cc │ │ ├── IntensityCorrelationRatioYX.cc │ │ ├── IntensityCrossCorrelation.cc │ │ ├── JointImageEntropy.cc │ │ ├── LabelConsistency.cc │ │ ├── MeanSquaredDisplacementError.cc │ │ ├── MutualImageInformation.cc │ │ ├── NormalizedGradientFieldSimilarity.cc │ │ ├── NormalizedIntensityCrossCorrelation.cc │ │ ├── NormalizedMutualImageInformation.cc │ │ ├── PeakSignalToNoiseRatio.cc │ │ ├── PointCorrespondenceDistance.cc │ │ ├── PointSetDistance.cc │ │ ├── RegistrationConfig.cc │ │ ├── RegistrationEnergy.cc │ │ ├── RegistrationEnergyParser.h │ │ ├── SumOfSquaredIntensityDifferences.cc │ │ └── SurfaceDistance.cc │ └── test │ │ ├── CMakeLists.txt │ │ └── testRegisteredImage.cc └── Transformation │ ├── BasisProject.cmake │ ├── CMakeLists.txt │ ├── include │ └── mirtk │ │ ├── AffineTransformation.h │ │ ├── BSplineFreeFormTransformation3D.h │ │ ├── BSplineFreeFormTransformation4D.h │ │ ├── BSplineFreeFormTransformationSV.h │ │ ├── BSplineFreeFormTransformationStatistical.h │ │ ├── BSplineFreeFormTransformationTD.h │ │ ├── ConstraintMeasure.h │ │ ├── EnergyTerm.h │ │ ├── FFDIntegrationMethod.h │ │ ├── FluidFreeFormTransformation.h │ │ ├── FreeFormTransformation.h │ │ ├── FreeFormTransformation3D.h │ │ ├── FreeFormTransformation4D.h │ │ ├── HomogeneousTransformation.h │ │ ├── HomogeneousTransformationIterator.h │ │ ├── ImageTransformation.h │ │ ├── InverseAffineTransformation.h │ │ ├── JacobianConstraint.h │ │ ├── LinearElasticityConstraint.h │ │ ├── LinearFreeFormTransformation3D.h │ │ ├── LinearFreeFormTransformation4D.h │ │ ├── LinearFreeFormTransformationTD.h │ │ ├── LogJacobianConstraint.h │ │ ├── MultiLevelFreeFormTransformation.h │ │ ├── MultiLevelStationaryVelocityTransformation.h │ │ ├── MultiLevelTransformation.h │ │ ├── MultipleVoxelTransformation.h │ │ ├── NegJacobianConstraint.h │ │ ├── PartialAffineTransformation.h │ │ ├── PartialBSplineFreeFormTransformationSV.h │ │ ├── PartialMultiLevelStationaryVelocityTransformation.h │ │ ├── RegisteredImage.h │ │ ├── RigidTransformation.h │ │ ├── SimilarityTransformation.h │ │ ├── SmoothnessConstraint.h │ │ ├── SparsityConstraint.h │ │ ├── TopologyPreservationConstraint.h │ │ ├── Transformation.h │ │ ├── TransformationApproximationError.h │ │ ├── TransformationConfig.h │ │ ├── TransformationConstraint.h │ │ ├── TransformationJacobian.h │ │ ├── TransformationModel.h │ │ ├── TransformationType.h │ │ ├── Transformations.h │ │ └── VolumePreservationConstraint.h │ └── src │ ├── AffineTransformation.cc │ ├── BSplineFreeFormTransformation3D.cc │ ├── BSplineFreeFormTransformation4D.cc │ ├── BSplineFreeFormTransformationSV.cc │ ├── BSplineFreeFormTransformationStatistical.cc │ ├── BSplineFreeFormTransformationTD.cc │ ├── CMakeLists.txt │ ├── EnergyTerm.cc │ ├── FluidFreeFormTransformation.cc │ ├── FreeFormTransformation.cc │ ├── FreeFormTransformation3D.cc │ ├── FreeFormTransformation4D.cc │ ├── FreeFormTransformationIntegration.h │ ├── FreeFormTransformationRungeKutta.cc │ ├── FreeFormTransformationRungeKutta.h │ ├── HomogeneousTransformation.cc │ ├── ImageTransformation.cc │ ├── InverseAffineTransformation.cc │ ├── JacobianConstraint.cc │ ├── LinearElasticityConstraint.cc │ ├── LinearFreeFormTransformation3D.cc │ ├── LinearFreeFormTransformation4D.cc │ ├── LinearFreeFormTransformationTD.cc │ ├── LogJacobianConstraint.cc │ ├── MultiLevelFreeFormTransformation.cc │ ├── MultiLevelStationaryVelocityTransformation.cc │ ├── MultiLevelTransformation.cc │ ├── NegJacobianConstraint.cc │ ├── PartialAffineTransformation.cc │ ├── PartialBSplineFreeFormTransformationSV.cc │ ├── PartialMultiLevelStationaryVelocityTransformation.cc │ ├── RegisteredImage.cc │ ├── RigidTransformation.cc │ ├── SimilarityTransformation.cc │ ├── SmoothnessConstraint.cc │ ├── SparsityConstraint.cc │ ├── TopologyPreservationConstraint.cc │ ├── Transformation.cc │ ├── TransformationApproximationError.cc │ ├── TransformationConfig.cc │ ├── TransformationConstraint.cc │ ├── TransformationInverse.cc │ ├── TransformationUtils.h │ └── VolumePreservationConstraint.cc ├── README.md ├── Scripts ├── install_depends.sh ├── install_mirtk_appimage.sh ├── make_appimage.sh ├── mirtk_bash_completion.sh ├── replace.sh └── travis.sh └── Templates ├── README.md └── mirtk-module └── 1.0 ├── BasisProject.cmake ├── CMakeLists.txt ├── LICENSE.txt ├── README.md ├── _config.py ├── config ├── FindMIRTK.cmake ├── Settings.cmake └── config.h.in ├── src └── CMakeLists.txt ├── test ├── CMakeLists.txt └── testClassName.cc └── tools └── CMakeLists.txt /.bintray.yml: -------------------------------------------------------------------------------- 1 | { 2 | "package": { 3 | "name": "MIRTK", 4 | "repo": "AppImages", 5 | "subject": "schuhschuh", 6 | "desc": "Medical Image Registration ToolKit", 7 | "website_url": "https://mirtk.github.io", 8 | "issue_tracker_url": "https://github.com/BioMedIA/MIRTK/issues", 9 | "vcs_url": "https://github.com/BioMedIA/MIRTK.git", 10 | "licenses": ["Apache-2.0"], 11 | "labels": [ 12 | "BioMedIA", 13 | "MIRTK", 14 | "medical imaging", 15 | "image registration", 16 | "cortical surface reconstruction", 17 | "brain atlas construction" 18 | ], 19 | "public_download_numbers": false, 20 | "public_stats": false 21 | }, 22 | "version": { 23 | "name": "2.1-pre2", 24 | "desc": "AppImage of MIRTK master HEAD deployed by Travis CI build", 25 | "gpgSign": true 26 | }, 27 | "files": [ 28 | { 29 | "includePattern": "Deploy/(.*\\.AppImage)", 30 | "uploadPattern": "$1", 31 | "matrixParams": { 32 | "override": 1 33 | } 34 | } 35 | ], 36 | "publish": true 37 | } -------------------------------------------------------------------------------- /.dockerignore: -------------------------------------------------------------------------------- 1 | Dockerfile 2 | Docker/Ubuntu/Dockerfile 3 | Docker/Ubuntu/.dockerignore 4 | build* 5 | Build* 6 | xcode* 7 | Xcode* 8 | Debug* 9 | Release* 10 | nbproject/private 11 | nbproject/configurations.xml 12 | CMakeLists.txt.user* 13 | .project 14 | .cproject 15 | **/.DS_Store 16 | .*.swp 17 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # The following files are text files and should always be written to the 2 | # repository with LF line endings, but checked out on MS Windows with CRLF. 3 | *.tmpl text 4 | *.txt text 5 | *.md text 6 | *.c text 7 | *.cpp text 8 | *.cxx text 9 | *.cc text 10 | *.h text 11 | *.hpp text 12 | *.hh text 13 | *.hxx text 14 | *.txx text 15 | *.py text 16 | *.pyx text 17 | *.sh text 18 | *.m text 19 | 20 | # The following files are binary files and should never be modified by Git. 21 | *.ubu binary 22 | *.ico binary 23 | *.nii binary 24 | *.gz binary 25 | *.hdr binary 26 | *.img binary 27 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | [bB]uild* 2 | [xX]code 3 | Debug* 4 | Release* 5 | nbproject/private 6 | nbproject/configurations.xml 7 | CMakeLists.txt.user* 8 | .DS_Store 9 | .project 10 | .cproject 11 | .*.swp 12 | .idea 13 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "ThirdParty/LBFGS"] 2 | path = ThirdParty/LBFGS 3 | url = https://github.com/MIRTK/LBFGS.git 4 | [submodule "Packages/Deformable"] 5 | path = Packages/Deformable 6 | url = https://github.com/MIRTK/Deformable.git 7 | [submodule "Packages/Mapping"] 8 | path = Packages/Mapping 9 | url = https://github.com/MIRTK/Mapping.git 10 | [submodule "Packages/DrawEM"] 11 | path = Packages/DrawEM 12 | url = https://github.com/MIRTK/DrawEM.git 13 | [submodule "Packages/Scripting"] 14 | path = Packages/Scripting 15 | url = https://github.com/MIRTK/Scripting.git 16 | [submodule "Packages/Viewer"] 17 | path = Packages/Viewer 18 | url = https://github.com/MIRTK/Viewer.git 19 | -------------------------------------------------------------------------------- /.vscode/c_cpp_properties.json: -------------------------------------------------------------------------------- 1 | { 2 | "configurations": [ 3 | { 4 | "name": "Linux", 5 | "includePath": [ 6 | "${workspaceFolder}/**" 7 | ], 8 | "defines": [], 9 | "compilerPath": "/usr/bin/clang", 10 | "cStandard": "c11", 11 | "cppStandard": "c++17", 12 | "intelliSenseMode": "clang-x64", 13 | "compileCommands": "${workspaceFolder}/Build/compile_commands.json" 14 | } 15 | ], 16 | "version": 4 17 | } -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": [ 3 | "ms-python.python", 4 | "ms-python.vscode-pylance", 5 | "ms-vscode-remote.remote-ssh", 6 | "ms-vscode-remote.remote-ssh-edit", 7 | "visualstudioexptteam.vscodeintellicode", 8 | "ms-azuretools.vscode-docker", 9 | "eamodio.gitlens", 10 | "yzhang.markdown-all-in-one", 11 | "shd101wyy.markdown-preview-enhanced", 12 | "github.vscode-pull-request-github", 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /AUTHORS.txt: -------------------------------------------------------------------------------- 1 | .. This file is formatted using reStructuredText (reST) and included by Documentation/people.rst ! 2 | 3 | Software Development 4 | -------------------- 5 | 6 | - `Andreas Schuh`_ 7 | - `Daniel Rueckert`_ 8 | - `Julia Schnabel`_ 9 | 10 | 11 | Contributors 12 | ------------ 13 | 14 | - Wenzhe Shi 15 | 16 | - *Helped to reimplement and test his sparse free-form deformation in the Registration module.* 17 | 18 | - Stefan Pszczolkowski Parraguez 19 | 20 | - *Implemented the image gradient similarity measures of the Registration module.* 21 | - *Added statistical free-form deformation class to the Transformation module.* 22 | 23 | - Ghislain Antony Vaillant 24 | 25 | - *Reimplemented the transformation inversion code using Boost instead of GSL.* 26 | 27 | Advisors 28 | -------- 29 | 30 | - `Daniel Rueckert`_ 31 | 32 | 33 | .. _Daniel Rueckert: http://www.imperial.ac.uk/people/d.rueckert 34 | .. _Julia Schnabel: http://www.imagingcdt.com/about/cdt-management/professor-julia-schnabel 35 | .. _Andreas Schuh: http://www.andreasschuh.com/ 36 | -------------------------------------------------------------------------------- /Applications/lib/python/mirtk/atlas/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BioMedIA/MIRTK/ef71a176c120447b3f95291901af7af8b4f00544/Applications/lib/python/mirtk/atlas/__init__.py -------------------------------------------------------------------------------- /Applications/lib/python/mirtk/batch/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BioMedIA/MIRTK/ef71a176c120447b3f95291901af7af8b4f00544/Applications/lib/python/mirtk/batch/__init__.py -------------------------------------------------------------------------------- /Applications/src/extract-image-slice.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | """ 4 | Split image volume into individual slices. 5 | """ 6 | 7 | import mirtk 8 | import argparse 9 | 10 | 11 | if __name__ == '__main__': 12 | parser = argparse.ArgumentParser(description=__doc__) 13 | parser.add_argument('input', help="Input volume") 14 | parser.add_argument('output', help="Output file path") 15 | parser.add_argument('-z', type=int, default=0, help="Index of slice to extract") 16 | parser.add_argument('-n', type=int, default=0, 17 | help="Number of slices to extract. Extract all from -z to maximum index when non-positive") 18 | args = parser.parse_args() 19 | opts = {"Rz1": args.z} 20 | if args.n > 0: 21 | opts["Rz2"] = args.z + args.n - 1 22 | mirtk.extract_image_region(args.input, args.output, split='z', **opts) 23 | -------------------------------------------------------------------------------- /Applications/src/extract-image-volume.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | """ 4 | Split image sequence into individual volumes. 5 | """ 6 | 7 | import mirtk 8 | import argparse 9 | 10 | 11 | if __name__ == '__main__': 12 | parser = argparse.ArgumentParser(description=__doc__) 13 | parser.add_argument('input', help="Input sequence.") 14 | parser.add_argument('output', help="Output file path.") 15 | parser.add_argument('-t', type=int, default=0, help="Index of volume to extract.") 16 | parser.add_argument('-n', type=int, default=0, 17 | help="Number of volumes to extract. Extract all from -t to maximum index when non-positive.") 18 | args = parser.parse_args() 19 | opts = {"Rt1": args.t} 20 | if args.n > 0: 21 | opts["Rt2"] = args.t + args.n - 1 22 | mirtk.extract_image_region(args.input, args.output, split='t', **opts) 23 | -------------------------------------------------------------------------------- /CMake/Basis/BashUtilities.dox: -------------------------------------------------------------------------------- 1 | /** 2 | @defgroup BasisBashUtilities Bash Utilities 3 | @brief Auxiliary implementations for use in Bash scripts. 4 | 5 | @ingroup BasisUtilities 6 | */ 7 | -------------------------------------------------------------------------------- /CMake/Basis/CxxUtilities.dox: -------------------------------------------------------------------------------- 1 | /** 2 | @defgroup BasisCxxUtilities C++ Utilities 3 | @brief Auxiliary implementations for use in C++ source code. 4 | 5 | @ingroup BasisUtilities 6 | */ 7 | -------------------------------------------------------------------------------- /CMake/Basis/ExternalData_config.cmake.in: -------------------------------------------------------------------------------- 1 | ############################################################################## 2 | # @file ExternalData_config.cmake.in 3 | # @brief Defines URL templates for external data. 4 | # 5 | # This file is configured and used by the ExternalData.cmake module. 6 | # 7 | # @ingroup CMakeTemplates 8 | ############################################################################## 9 | 10 | set (ExternalData_URL_TEMPLATES "@ExternalData_URL_TEMPLATES@") 11 | -------------------------------------------------------------------------------- /CMake/Basis/JavaUtilities.dox: -------------------------------------------------------------------------------- 1 | /** 2 | @defgroup BasisJavaUtilities Java Utilities 3 | @brief Auxiliary implementations for use in Java source code. 4 | 5 | @todo The Java utilities are not implemented yet. 6 | 7 | @ingroup BasisUtilities 8 | */ 9 | -------------------------------------------------------------------------------- /CMake/Basis/MatlabUtilities.dox: -------------------------------------------------------------------------------- 1 | /** 2 | @defgroup BasisMatlabUtilities MATLAB Utilities 3 | @brief Auxiliary implementations for use in MATLAB scripts. 4 | 5 | @todo The MATLAB utilities are not implemented yet. Note, however, that 6 | for certain utilities provided for other programming languages there 7 | is no use in MATLAB. For example, the ExecutableTargetInfo module is 8 | not required as MATLAB does not allow the execution of an executable 9 | from within MATLAB scripts. 10 | 11 | @ingroup BasisUtilities 12 | */ 13 | -------------------------------------------------------------------------------- /CMake/Basis/Modules.dox: -------------------------------------------------------------------------------- 1 | /** 2 | @defgroup BasisModules BASIS Modules 3 | @brief BASIS CMake modules. 4 | */ 5 | 6 | /** 7 | @defgroup BasisSettings Settings 8 | @brief CMake modules defining settings for BASIS. 9 | 10 | @ingroup BasisModules 11 | */ 12 | 13 | /** 14 | @defgroup BasisConfig Package Configuration 15 | @brief CMake package configuration. 16 | 17 | @ingroup BasisModules 18 | */ 19 | 20 | /** 21 | @defgroup BasisDirectories Project Directories 22 | @brief CMake variables of project directories. 23 | 24 | @sa http://www.rad.upenn.edu/sbia/software/basis/standard/fhs/ 25 | 26 | @ingroup BasisModules 27 | */ 28 | 29 | /** 30 | @defgroup BasisScriptConfig Script Configuration 31 | @brief Script configuration as used for the build of script targets. 32 | 33 | @sa http://www.rad.upenn.edu/sbia/software/basis/standard/scripttargets/ 34 | 35 | @ingroup BasisModules 36 | */ 37 | -------------------------------------------------------------------------------- /CMake/Basis/PerlUtilities.dox: -------------------------------------------------------------------------------- 1 | /** 2 | @defgroup BasisPerlUtilities Perl Utilities 3 | @brief Auxiliary implementations for use in Perl scripts. 4 | 5 | @ingroup BasisUtilities 6 | */ 7 | -------------------------------------------------------------------------------- /CMake/Basis/PythonUtilities.dox: -------------------------------------------------------------------------------- 1 | /** 2 | @defgroup BasisPythonUtilities Python Utilities 3 | @brief Auxiliary implementations for use in Python scripts. 4 | 5 | @ingroup BasisUtilities 6 | */ 7 | -------------------------------------------------------------------------------- /CMake/Basis/Utilities.dox: -------------------------------------------------------------------------------- 1 | /** 2 | @defgroup BasisUtilities BASIS Utilities 3 | @brief Auxiliary implementations in different programming languages. 4 | */ 5 | -------------------------------------------------------------------------------- /CMake/Basis/buildtimestamp.cmd: -------------------------------------------------------------------------------- 1 | @echo off 2 | rem get some local settings from the registry 3 | rem see http://ss64.com/nt/date.html 4 | rem see http://ss64.com/nt/time.html 5 | for /f "tokens=3" %%d in ('reg query ^"HKEY_CURRENT_USER\Control Panel\International^" /v iCountry ^| find ^"REG_SZ^"') do (set country=%%d) 6 | for /f "tokens=3" %%d in ('reg query ^"HKEY_CURRENT_USER\Control Panel\International^" /v sDate ^| find ^"REG_SZ^"') do (set date_sep=%%d) 7 | for /f "tokens=3" %%d in ('reg query ^"HKEY_CURRENT_USER\Control Panel\International^" /v sTime ^| find ^"REG_SZ^"') do (set time_sep=%%d) 8 | rem get the date in the format YYYY.MM.DD 9 | if %country% equ 1 ( 10 | for /f "tokens=1-5 delims=%date_sep% " %%d in ("%date%") do (set build_date=%%g.%%e.%%f) 11 | ) else ( 12 | for /f "tokens=1-5 delims=%date_sep% " %%d in ("%date%") do (set build_date=%%e.%%f.%%g) 13 | ) 14 | rem get the time in the format HH:MM 15 | for /f "tokens=1-5 delims=%time_sep% " %%d in ("%time%") do (set build_time=%%d:%%e) 16 | for /f "tokens=1-5 delims=%time_sep%" %%d in ("%time%") do (set build_time_with_leading_space=%%d:%%e) 17 | if /i "%build_time_with_leading_space%" neq "%build_time%" (set build_time=0%build_time%) 18 | rem print build timestamp as used as alternative for PROJECT_RELEASE 19 | echo %build_date% (%build_time%) 20 | -------------------------------------------------------------------------------- /CMake/Basis/doxyfilter.bat.in: -------------------------------------------------------------------------------- 1 | :: ============================================================================ 2 | :: Copyright (c) 2011-2012 University of Pennsylvania 3 | :: Copyright (c) 2013-2016 Andreas Schuh 4 | :: All rights reserved. 5 | :: 6 | :: See COPYING file for license information or visit 7 | :: https://cmake-basis.github.io/download.html#license 8 | :: ============================================================================ 9 | 10 | rem @file doxyfilter.bat 11 | rem @brief Wrapper Batch program for Doxygen input filter. 12 | rem 13 | rem This Batch program simply calls the actual Doxygen filter executable. 14 | rem It is required on Windows because Doxygen (at least up to version 1.8.0) 15 | rem seems to have a problem with filter executables which have a space 16 | rem character in their file path. 17 | @"@DOXYGEN_INPUT_FILTER@" %* 18 | -------------------------------------------------------------------------------- /CMake/Basis/doxygen_footer.html.in: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 |
10 | 11 |