
// -----------------------------------------------
// Group Core
/** \defgroup Group-Core Group Core
This group of modules contain the toolkit framework used
by other modules.  There are common base classes for data objects and process
objects, basic data structures such as Image, Mesh, QuadEdgeMesh, and
SpatialObjects, and common functionality for operations such as finite
differences, image adaptors, or image transforms. */

/** \defgroup ITKCommon Module ITKCommon
\ingroup Group-Core */

/** \defgroup ITKFiniteDifference Module ITKFiniteDifference
\ingroup Group-Core */

/** \defgroup ITKGPUCommon Module ITKGPUCommon
\ingroup Group-Core */

/** \defgroup ITKGPUFiniteDifference Module ITKGPUFiniteDifference
\ingroup Group-Core */

/** \defgroup ITKImageAdaptors Module ITKImageAdaptors
\ingroup Group-Core */

/** \defgroup ITKImageFunction Module ITKImageFunction
\ingroup Group-Core */

/** \defgroup ITKMesh Module ITKMesh
\ingroup Group-Core */

/** \defgroup ITKQuadEdgeMesh Module ITKQuadEdgeMesh
\ingroup Group-Core */

/** \defgroup ITKSpatialObjects Module ITKSpatialObjects
\ingroup Group-Core */

/** \defgroup ITKTestKernel Module ITKTestKernel
\ingroup Group-Core */

/** \defgroup ITKTransform Module ITKTransform
\ingroup Group-Core */

// -----------------------------------------------
// Group IO
/** \defgroup Group-IO Group IO
This group of modules contains classes for reading and
writing images and other data objects. */

/** \defgroup ITKIOBioRad Module ITKIOBioRad
\ingroup Group-IO */

/** \defgroup ITKIOBMP Module ITKIOBMP
\ingroup Group-IO */

/** \defgroup ITKIOCSV Module ITKIOCSV
\ingroup Group-IO */

/** \defgroup ITKIODCMTK Module ITKIODCMTK
\ingroup Group-IO */

/** \defgroup ITKIOGDCM Module ITKIOGDCM
\ingroup Group-IO */

/** \defgroup ITKIOGE Module ITKIOGE
\ingroup Group-IO */

/** \defgroup ITKIOGIPL Module ITKIOGIPL
\ingroup Group-IO */

/** \defgroup ITKIOHDF5 Module ITKIOHDF5
\ingroup Group-IO */

/** \defgroup ITKIOImageBase Module ITKIOImageBase
\ingroup Group-IO */

/** \defgroup ITKIOIPL Module ITKIOIPL
\ingroup Group-IO */

/** \defgroup ITKIOJPEG Module ITKIOJPEG
\ingroup Group-IO */

/** \defgroup ITKIOLSM Module ITKIOLSM
\ingroup Group-IO */

/** \defgroup ITKIOMesh Module ITKIOMesh
\ingroup Group-IO */

/** \defgroup ITKIOMeta Module ITKIOMeta
\ingroup Group-IO */

/** \defgroup ITKIOMINC Module ITKIOMINC
\ingroup Group-IO */

/** \defgroup ITKIOMRC Module ITKIOMRC
\ingroup Group-IO */

/** \defgroup ITKIONIFTI Module ITKIONIFTI
\ingroup Group-IO */

/** \defgroup ITKIONRRD Module ITKIONRRD
\ingroup Group-IO */

/** \defgroup ITKIOPhilipsREC Module ITKIOPhilipsREC
\ingroup Group-IO */

/** \defgroup ITKIOPNG Module ITKIOPNG
\ingroup Group-IO */

/** \defgroup ITKIORAW Module ITKIORAW
\ingroup Group-IO */

/** \defgroup ITKIOSiemens Module ITKIOSiemens
\ingroup Group-IO */

/** \defgroup ITKIOSpatialObjects Module ITKIOSpatialObjects
\ingroup Group-IO */

/** \defgroup ITKIOStimulate Module ITKIOStimulate
\ingroup Group-IO */

/** \defgroup ITKIOTIFF Module ITKIOTIFF
\ingroup Group-IO */

/** \defgroup ITKIOTransformBase Module ITKIOTransformBase
\ingroup Group-IO */

/** \defgroup ITKIOTransformHDF5 Module ITKIOTransformHDF5
\ingroup Group-IO */

/** \defgroup ITKIOTransformInsightLegacy Module ITKIOTransformInsightLegacy
\ingroup Group-IO */

/** \defgroup ITKIOTransformMatlab Module ITKIOTransformMatlab
\ingroup Group-IO */

/** \defgroup ITKIOVTK Module ITKIOVTK
\ingroup Group-IO */

/** \defgroup ITKIOXML Module ITKIOXML
\ingroup Group-IO */

// -----------------------------------------------
// Group Filtering
/** \defgroup Group-Filtering Group Filtering
This group of modules are filters that modify data
in the ITK pipeline framework.  These filters take an input object, such as an
Image, and modify it to create an output.  Filters can be chained together to
create a processing pipeline. */

/** \defgroup ITKAnisotropicSmoothing Module ITKAnisotropicSmoothing
\ingroup Group-Filtering */

/** \defgroup ITKAntiAlias Module ITKAntiAlias
\ingroup Group-Filtering */

/** \defgroup ITKBiasCorrection Module ITKBiasCorrection
\ingroup Group-Filtering */

/** \defgroup ITKBinaryMathematicalMorphology Module ITKBinaryMathematicalMorphology
\ingroup Group-Filtering */

/** \defgroup ITKColormap Module ITKColormap
\ingroup Group-Filtering */

/** \defgroup ITKConvolution Module ITKConvolution
\ingroup Group-Filtering */

/** \defgroup ITKCurvatureFlow Module ITKCurvatureFlow
\ingroup Group-Filtering */

/** \defgroup ITKDeconvolution Module ITKDeconvolution
\ingroup Group-Filtering */

/** \defgroup ITKDenoising Module ITKDenoising
\ingroup Group-Filtering */

/** \defgroup ITKDiffusionTensorImage Module ITKDiffusionTensorImage
\ingroup Group-Filtering */

/** \defgroup ITKDisplacementField Module ITKDisplacementField
\ingroup Group-Filtering */

/** \defgroup ITKDistanceMap Module ITKDistanceMap
\ingroup Group-Filtering */

/** \defgroup ITKFastMarching Module ITKFastMarching
\ingroup Group-Filtering */

/** \defgroup ITKFFT Module ITKFFT
\ingroup Group-Filtering */

/** \defgroup ITKGPUAnisotropicSmoothing Module ITKGPUAnisotropicSmoothing
\ingroup Group-Filtering */

/** \defgroup ITKGPUImageFilterBase Module ITKGPUImageFilterBase
\ingroup Group-Filtering */

/** \defgroup ITKGPUSmoothing Module ITKGPUSmoothing
\ingroup Group-Filtering */

/** \defgroup ITKGPUThresholding Module ITKGPUThresholding
\ingroup Group-Filtering */

/** \defgroup ITKImageCompare Module ITKImageCompare
\ingroup Group-Filtering */

/** \defgroup ITKImageCompose Module ITKImageCompose
\ingroup Group-Filtering */

/** \defgroup ITKImageFeature Module ITKImageFeature
\ingroup Group-Filtering */

/** \defgroup ITKImageFilterBase Module ITKImageFilterBase
\ingroup Group-Filtering */

/** \defgroup ITKImageFusion Module ITKImageFusion
\ingroup Group-Filtering */

/** \defgroup ITKImageGradient Module ITKImageGradient
\ingroup Group-Filtering */

/** \defgroup ITKImageGrid Module ITKImageGrid
\ingroup Group-Filtering */

/** \defgroup ITKImageIntensity Module ITKImageIntensity
\ingroup Group-Filtering */

/** \defgroup ITKImageLabel Module ITKImageLabel
\ingroup Group-Filtering */

/** \defgroup ITKImageNoise Module ITKImageNoise
\ingroup Group-Filtering */

/** \defgroup ITKImageSources Module ITKImageSources
\ingroup Group-Filtering */

/** \defgroup ITKImageStatistics Module ITKImageStatistics
\ingroup Group-Filtering */

/** \defgroup ITKLabelMap Module ITKLabelMap
\ingroup Group-Filtering */

/** \defgroup ITKMathematicalMorphology Module ITKMathematicalMorphology
\ingroup Group-Filtering */

/** \defgroup ITKPath Module ITKPath
\ingroup Group-Filtering */

/** \defgroup ITKQuadEdgeMeshFiltering Module ITKQuadEdgeMeshFiltering
\ingroup Group-Filtering */

/** \defgroup ITKSmoothing Module ITKSmoothing
\ingroup Group-Filtering */

/** \defgroup ITKSpatialFunction Module ITKSpatialFunction
\ingroup Group-Filtering */

/** \defgroup ITKThresholding Module ITKThresholding
\ingroup Group-Filtering */

// -----------------------------------------------
// Group Registration
/** \defgroup Group-Registration Group Registration
This group of modules address the registration
problem: find the spatial transformation between two images.  This is a high
level group that makes use of many lower level modules such as \ref
ITKTransform, \ref ITKOptimizers, \ref ITKFiniteDifference, and \ref
ITKFEM. */

/** \defgroup ITKRegistrationCommon Module ITKRegistrationCommon
\ingroup Group-Registration */

/** \defgroup ITKFEMRegistration Module ITKFEMRegistration
\ingroup Group-Registration */

/** \defgroup ITKGPURegistrationCommon Module ITKGPURegistrationCommon
\ingroup Group-Registration */

/** \defgroup ITKGPUPDEDeformableRegistration Module ITKGPUPDEDeformableRegistration
\ingroup Group-Registration */

/** \defgroup ITKMetricsv4 Module ITKMetricsv4
\ingroup Group-Registration */

/** \defgroup ITKPDEDeformableRegistration Module ITKPDEDeformableRegistration
\ingroup Group-Registration */

/** \defgroup ITKRegistrationMethodsv4 Module ITKRegistrationMethodsv4
\ingroup Group-Registration */

// -----------------------------------------------
// Group Segmentation
/** \defgroup Group-Segmentation Group Segmentation
This group of modules address the segmentation
problem: partition the image into classified regions (labels).  This is a high
level group that makes use of many lower level modules such as \ref
ITKQuadEdgeMesh and \ref ITKNarrowBand. */

/** \defgroup ITKBioCell Module ITKBioCell
\ingroup Group-Segmentation */

/** \defgroup ITKClassifiers Module ITKClassifiers
\ingroup Group-Segmentation */

/** \defgroup ITKConnectedComponents Module ITKConnectedComponents
\ingroup Group-Segmentation */

/** \defgroup ITKDeformableMesh Module ITKDeformableMesh
\ingroup Group-Segmentation */

/** \defgroup ITKKLMRegionGrowing Module ITKKLMRegionGrowing
\ingroup Group-Segmentation */

/** \defgroup ITKLabelVoting Module ITKLabelVoting
\ingroup Group-Segmentation */

/** \defgroup ITKLevelSets Module ITKLevelSets
\ingroup Group-Segmentation */

/** \defgroup ITKLevelSetsv4 Module ITKLevelSetsv4
\ingroup Group-Segmentation */

/** \defgroup ITKLevelSetsv4Visualization Module ITKLevelSetsv4Visualization
\ingroup Group-Segmentation */

/** \defgroup ITKMarkovRandomFieldsClassifiers Module ITKMarkovRandomFieldsClassifiers
\ingroup Group-Segmentation */

/** \defgroup ITKRegionGrowing Module ITKRegionGrowing
\ingroup Group-Segmentation */

/** \defgroup ITKSignedDistanceFunction Module ITKSignedDistanceFunction
\ingroup Group-Segmentation */

/** \defgroup ITKVoronoi Module ITKVoronoi
\ingroup Group-Segmentation */

/** \defgroup ITKWatersheds Module ITKWatersheds
\ingroup Group-Segmentation */

// -----------------------------------------------
// Group Numerics
/** \defgroup Group-Numerics Group Numerics
This group of modules are basic numerical tools and
algorithms that have general applications outside of imaging. */

/** \defgroup ITKEigen Module ITKEigen
\ingroup Group-Numerics */

/** \defgroup ITKFEM Module ITKFEM
\ingroup Group-Numerics */

/** \defgroup ITKNarrowBand Module ITKNarrowBand
\ingroup Group-Numerics */

/** \defgroup ITKNeuralNetworks Module ITKNeuralNetworks
\ingroup Group-Numerics */

/** \defgroup ITKOptimizers Module ITKOptimizers
\ingroup Group-Numerics */

/** \defgroup ITKOptimizersv4 Module ITKOptimizersv4
\ingroup Group-Numerics */

/** \defgroup ITKPolynomials Module ITKPolynomials
\ingroup Group-Numerics */

/** \defgroup ITKStatistics Module ITKStatistics
\ingroup Group-Numerics */

// -----------------------------------------------
// Group Video
/** \defgroup Group-Video Group Video
This group of modules handles input, output and processing
of static and real-time data with temporal components. It also handles communications
to OpenCV and VXL external libraires. */

/** \defgroup ITKVideoBridgeOpenCV Module ITKVideoBridgeOpenCV
\ingroup Group-Video */

/** \defgroup ITKVideoBridgeVXL Module ITKVideoBridgeVXL
\ingroup Group-Video */

/** \defgroup ITKVideoCore Module ITKVideoCore
\ingroup Group-Video */

/** \defgroup ITKVideoFiltering Module ITKVideoFiltering
\ingroup Group-Video */

/** \defgroup ITKVideoIO Module ITKVideoIO
\ingroup Group-Video */

// -----------------------------------------------
// Group ThirdParty
/** \defgroup Group-ThirdParty Group ThirdParty
This group of modules are third party libraries
used by other ITK modules. */

/** \defgroup ITKDCMTK Module ITKDCMTK
\ingroup Group-ThirdParty */

/** \defgroup ITKDICOMParser Module ITKDICOMParser
\ingroup Group-ThirdParty */

/** \defgroup ITKDoubleConversion Module ITKDoubleConversion
\ingroup Group-ThirdParty */

/** \defgroup ITKExpat Module ITKExpat
\ingroup Group-ThirdParty */

/** \defgroup ITKGDCM Module ITKGDCM
\ingroup Group-ThirdParty */

/** \defgroup ITKGIFTI Module ITKGIFTI
\ingroup Group-ThirdParty */

/** \defgroup ITKHDF5 Module ITKHDF5
\ingroup Group-ThirdParty */

/** \defgroup ITKJPEG Module ITKJPEG
\ingroup Group-ThirdParty */

/** \defgroup ITKKWSys Module ITKKWSys
\ingroup Group-ThirdParty */

/** \defgroup ITKMetaIO Module ITKMetaIO
\ingroup Group-ThirdParty */

/** \defgroup ITKMINC Module ITKMINC
\ingroup Group-ThirdParty */

/** \defgroup ITKNetlib Module ITKNetlib
\ingroup Group-ThirdParty */

/** \defgroup ITKNIFTI Module ITKNIFTI
\ingroup Group-ThirdParty */

/** \defgroup ITKNrrdIO Module ITKNrrdIO
\ingroup Group-ThirdParty */

/** \defgroup ITKOpenJPEG Module ITKOpenJPEG
\ingroup Group-ThirdParty */

/** \defgroup ITKPNG Module ITKPNG
\ingroup Group-ThirdParty */

/** \defgroup ITKTIFF Module ITKTIFF
\ingroup Group-ThirdParty */

/** \defgroup ITKVNL Module ITKVNL
\ingroup Group-ThirdParty */

/** \defgroup ITKVNLInstantiation Module ITKVNLInstantiation
\ingroup Group-ThirdParty */

/** \defgroup ITKZLIB Module ITKZLIB
\ingroup Group-ThirdParty */

// -----------------------------------------------
// Group Bridge
/** \defgroup Group-Bridge Group Bridge
This group of modules are intended to bridge ITK to
other toolkits as libraries such as visualization toolkits. */

/** \defgroup ITKVTK Module ITKVTK
\ingroup Group-Bridge */

/** \defgroup ITKVtkGlue Module ITKVtkGlue
\ingroup Group-Bridge */

// -----------------------------------------------
// Group Nonunit
/** \defgroup Group-Nonunit Group Nonunit
This group of modules are intended to make use of an
extensive set of the toolkit modules. */

/** \defgroup ITKIntegratedTest Module ITKIntegratedTest
\ingroup Group-Nonunit */

/** \defgroup ITKReview Module ITKReview
\ingroup Group-Nonunit */

// -----------------------------------------------
// Group Compatibility
/** \defgroup Group-Compatibility Group Compatibility
This group contains modules that ease the transition to ITKv4 and Deprecated classes. */

/** \defgroup ITKDeprecated Module ITKDeprecated
\ingroup Group-Compatibility */

/** \defgroup ITKV3Compatibility Module ITKV3Compatibility
\ingroup Group-Compatibility */

// -----------------------------------------------
// Group Remote
/** \defgroup Group-Remote Group Remote
This group of modules is for ITK based code that have
additional third-party dependencies not bundled with the toolkit,
new algorithms or implementations seeking greater exposure and adoption,
algorithms that hope to eventually be integrated into the toolkit,
niche algorithms with limited application, and Modules in progress that do not
yet have the test coverage and cross-platform standards required by the main toolkit.
The modules are OFF by default in ITK's CMake configuration.
Note that these modules do get the same level of support and backwards
compatibility as other modules in the toolkit. */

