diff --git a/Modules/DiffusionImaging/Connectomics/Algorithms/BrainParcellation/mitkCostFunctionBase.cpp b/Modules/Connectomics/Algorithms/BrainParcellation/mitkCostFunctionBase.cpp similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Algorithms/BrainParcellation/mitkCostFunctionBase.cpp rename to Modules/Connectomics/Algorithms/BrainParcellation/mitkCostFunctionBase.cpp diff --git a/Modules/DiffusionImaging/Connectomics/Algorithms/BrainParcellation/mitkCostFunctionBase.h b/Modules/Connectomics/Algorithms/BrainParcellation/mitkCostFunctionBase.h similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Algorithms/BrainParcellation/mitkCostFunctionBase.h rename to Modules/Connectomics/Algorithms/BrainParcellation/mitkCostFunctionBase.h diff --git a/Modules/DiffusionImaging/Connectomics/Algorithms/BrainParcellation/mitkRandomParcellationGenerator.cpp b/Modules/Connectomics/Algorithms/BrainParcellation/mitkRandomParcellationGenerator.cpp similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Algorithms/BrainParcellation/mitkRandomParcellationGenerator.cpp rename to Modules/Connectomics/Algorithms/BrainParcellation/mitkRandomParcellationGenerator.cpp diff --git a/Modules/DiffusionImaging/Connectomics/Algorithms/BrainParcellation/mitkRandomParcellationGenerator.h b/Modules/Connectomics/Algorithms/BrainParcellation/mitkRandomParcellationGenerator.h similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Algorithms/BrainParcellation/mitkRandomParcellationGenerator.h rename to Modules/Connectomics/Algorithms/BrainParcellation/mitkRandomParcellationGenerator.h diff --git a/Modules/DiffusionImaging/Connectomics/Algorithms/BrainParcellation/mitkRegionVoxelCounter.cpp b/Modules/Connectomics/Algorithms/BrainParcellation/mitkRegionVoxelCounter.cpp similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Algorithms/BrainParcellation/mitkRegionVoxelCounter.cpp rename to Modules/Connectomics/Algorithms/BrainParcellation/mitkRegionVoxelCounter.cpp diff --git a/Modules/DiffusionImaging/Connectomics/Algorithms/BrainParcellation/mitkRegionVoxelCounter.h b/Modules/Connectomics/Algorithms/BrainParcellation/mitkRegionVoxelCounter.h similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Algorithms/BrainParcellation/mitkRegionVoxelCounter.h rename to Modules/Connectomics/Algorithms/BrainParcellation/mitkRegionVoxelCounter.h diff --git a/Modules/DiffusionImaging/Connectomics/Algorithms/itkConnectomicsNetworkToConnectivityMatrixImageFilter.cpp b/Modules/Connectomics/Algorithms/itkConnectomicsNetworkToConnectivityMatrixImageFilter.cpp similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Algorithms/itkConnectomicsNetworkToConnectivityMatrixImageFilter.cpp rename to Modules/Connectomics/Algorithms/itkConnectomicsNetworkToConnectivityMatrixImageFilter.cpp diff --git a/Modules/DiffusionImaging/Connectomics/Algorithms/itkConnectomicsNetworkToConnectivityMatrixImageFilter.h b/Modules/Connectomics/Algorithms/itkConnectomicsNetworkToConnectivityMatrixImageFilter.h similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Algorithms/itkConnectomicsNetworkToConnectivityMatrixImageFilter.h rename to Modules/Connectomics/Algorithms/itkConnectomicsNetworkToConnectivityMatrixImageFilter.h diff --git a/Modules/DiffusionImaging/Connectomics/Algorithms/mitkConnectomicsBetweennessHistogram.cpp b/Modules/Connectomics/Algorithms/mitkConnectomicsBetweennessHistogram.cpp similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Algorithms/mitkConnectomicsBetweennessHistogram.cpp rename to Modules/Connectomics/Algorithms/mitkConnectomicsBetweennessHistogram.cpp diff --git a/Modules/DiffusionImaging/Connectomics/Algorithms/mitkConnectomicsBetweennessHistogram.h b/Modules/Connectomics/Algorithms/mitkConnectomicsBetweennessHistogram.h similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Algorithms/mitkConnectomicsBetweennessHistogram.h rename to Modules/Connectomics/Algorithms/mitkConnectomicsBetweennessHistogram.h diff --git a/Modules/DiffusionImaging/Connectomics/Algorithms/mitkConnectomicsDegreeHistogram.cpp b/Modules/Connectomics/Algorithms/mitkConnectomicsDegreeHistogram.cpp similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Algorithms/mitkConnectomicsDegreeHistogram.cpp rename to Modules/Connectomics/Algorithms/mitkConnectomicsDegreeHistogram.cpp diff --git a/Modules/DiffusionImaging/Connectomics/Algorithms/mitkConnectomicsDegreeHistogram.h b/Modules/Connectomics/Algorithms/mitkConnectomicsDegreeHistogram.h similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Algorithms/mitkConnectomicsDegreeHistogram.h rename to Modules/Connectomics/Algorithms/mitkConnectomicsDegreeHistogram.h diff --git a/Modules/DiffusionImaging/Connectomics/Algorithms/mitkConnectomicsHistogramBase.cpp b/Modules/Connectomics/Algorithms/mitkConnectomicsHistogramBase.cpp similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Algorithms/mitkConnectomicsHistogramBase.cpp rename to Modules/Connectomics/Algorithms/mitkConnectomicsHistogramBase.cpp diff --git a/Modules/DiffusionImaging/Connectomics/Algorithms/mitkConnectomicsHistogramBase.h b/Modules/Connectomics/Algorithms/mitkConnectomicsHistogramBase.h similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Algorithms/mitkConnectomicsHistogramBase.h rename to Modules/Connectomics/Algorithms/mitkConnectomicsHistogramBase.h diff --git a/Modules/DiffusionImaging/Connectomics/Algorithms/mitkConnectomicsHistogramCache.cpp b/Modules/Connectomics/Algorithms/mitkConnectomicsHistogramCache.cpp similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Algorithms/mitkConnectomicsHistogramCache.cpp rename to Modules/Connectomics/Algorithms/mitkConnectomicsHistogramCache.cpp diff --git a/Modules/DiffusionImaging/Connectomics/Algorithms/mitkConnectomicsHistogramCache.h b/Modules/Connectomics/Algorithms/mitkConnectomicsHistogramCache.h similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Algorithms/mitkConnectomicsHistogramCache.h rename to Modules/Connectomics/Algorithms/mitkConnectomicsHistogramCache.h diff --git a/Modules/DiffusionImaging/Connectomics/Algorithms/mitkConnectomicsNetworkConverter.cpp b/Modules/Connectomics/Algorithms/mitkConnectomicsNetworkConverter.cpp similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Algorithms/mitkConnectomicsNetworkConverter.cpp rename to Modules/Connectomics/Algorithms/mitkConnectomicsNetworkConverter.cpp diff --git a/Modules/DiffusionImaging/Connectomics/Algorithms/mitkConnectomicsNetworkConverter.h b/Modules/Connectomics/Algorithms/mitkConnectomicsNetworkConverter.h similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Algorithms/mitkConnectomicsNetworkConverter.h rename to Modules/Connectomics/Algorithms/mitkConnectomicsNetworkConverter.h diff --git a/Modules/DiffusionImaging/Connectomics/Algorithms/mitkConnectomicsNetworkCreator.cpp b/Modules/Connectomics/Algorithms/mitkConnectomicsNetworkCreator.cpp similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Algorithms/mitkConnectomicsNetworkCreator.cpp rename to Modules/Connectomics/Algorithms/mitkConnectomicsNetworkCreator.cpp diff --git a/Modules/DiffusionImaging/Connectomics/Algorithms/mitkConnectomicsNetworkCreator.h b/Modules/Connectomics/Algorithms/mitkConnectomicsNetworkCreator.h similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Algorithms/mitkConnectomicsNetworkCreator.h rename to Modules/Connectomics/Algorithms/mitkConnectomicsNetworkCreator.h diff --git a/Modules/DiffusionImaging/Connectomics/Algorithms/mitkConnectomicsNetworkThresholder.cpp b/Modules/Connectomics/Algorithms/mitkConnectomicsNetworkThresholder.cpp similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Algorithms/mitkConnectomicsNetworkThresholder.cpp rename to Modules/Connectomics/Algorithms/mitkConnectomicsNetworkThresholder.cpp diff --git a/Modules/DiffusionImaging/Connectomics/Algorithms/mitkConnectomicsNetworkThresholder.h b/Modules/Connectomics/Algorithms/mitkConnectomicsNetworkThresholder.h similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Algorithms/mitkConnectomicsNetworkThresholder.h rename to Modules/Connectomics/Algorithms/mitkConnectomicsNetworkThresholder.h diff --git a/Modules/DiffusionImaging/Connectomics/Algorithms/mitkConnectomicsShortestPathHistogram.cpp b/Modules/Connectomics/Algorithms/mitkConnectomicsShortestPathHistogram.cpp similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Algorithms/mitkConnectomicsShortestPathHistogram.cpp rename to Modules/Connectomics/Algorithms/mitkConnectomicsShortestPathHistogram.cpp diff --git a/Modules/DiffusionImaging/Connectomics/Algorithms/mitkConnectomicsShortestPathHistogram.h b/Modules/Connectomics/Algorithms/mitkConnectomicsShortestPathHistogram.h similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Algorithms/mitkConnectomicsShortestPathHistogram.h rename to Modules/Connectomics/Algorithms/mitkConnectomicsShortestPathHistogram.h diff --git a/Modules/DiffusionImaging/Connectomics/Algorithms/mitkConnectomicsSimulatedAnnealingCostFunctionBase.cpp b/Modules/Connectomics/Algorithms/mitkConnectomicsSimulatedAnnealingCostFunctionBase.cpp similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Algorithms/mitkConnectomicsSimulatedAnnealingCostFunctionBase.cpp rename to Modules/Connectomics/Algorithms/mitkConnectomicsSimulatedAnnealingCostFunctionBase.cpp diff --git a/Modules/DiffusionImaging/Connectomics/Algorithms/mitkConnectomicsSimulatedAnnealingCostFunctionBase.h b/Modules/Connectomics/Algorithms/mitkConnectomicsSimulatedAnnealingCostFunctionBase.h similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Algorithms/mitkConnectomicsSimulatedAnnealingCostFunctionBase.h rename to Modules/Connectomics/Algorithms/mitkConnectomicsSimulatedAnnealingCostFunctionBase.h diff --git a/Modules/DiffusionImaging/Connectomics/Algorithms/mitkConnectomicsSimulatedAnnealingCostFunctionModularity.cpp b/Modules/Connectomics/Algorithms/mitkConnectomicsSimulatedAnnealingCostFunctionModularity.cpp similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Algorithms/mitkConnectomicsSimulatedAnnealingCostFunctionModularity.cpp rename to Modules/Connectomics/Algorithms/mitkConnectomicsSimulatedAnnealingCostFunctionModularity.cpp diff --git a/Modules/DiffusionImaging/Connectomics/Algorithms/mitkConnectomicsSimulatedAnnealingCostFunctionModularity.h b/Modules/Connectomics/Algorithms/mitkConnectomicsSimulatedAnnealingCostFunctionModularity.h similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Algorithms/mitkConnectomicsSimulatedAnnealingCostFunctionModularity.h rename to Modules/Connectomics/Algorithms/mitkConnectomicsSimulatedAnnealingCostFunctionModularity.h diff --git a/Modules/DiffusionImaging/Connectomics/Algorithms/mitkConnectomicsSimulatedAnnealingManager.cpp b/Modules/Connectomics/Algorithms/mitkConnectomicsSimulatedAnnealingManager.cpp similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Algorithms/mitkConnectomicsSimulatedAnnealingManager.cpp rename to Modules/Connectomics/Algorithms/mitkConnectomicsSimulatedAnnealingManager.cpp diff --git a/Modules/DiffusionImaging/Connectomics/Algorithms/mitkConnectomicsSimulatedAnnealingManager.h b/Modules/Connectomics/Algorithms/mitkConnectomicsSimulatedAnnealingManager.h similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Algorithms/mitkConnectomicsSimulatedAnnealingManager.h rename to Modules/Connectomics/Algorithms/mitkConnectomicsSimulatedAnnealingManager.h diff --git a/Modules/DiffusionImaging/Connectomics/Algorithms/mitkConnectomicsSimulatedAnnealingPermutationBase.cpp b/Modules/Connectomics/Algorithms/mitkConnectomicsSimulatedAnnealingPermutationBase.cpp similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Algorithms/mitkConnectomicsSimulatedAnnealingPermutationBase.cpp rename to Modules/Connectomics/Algorithms/mitkConnectomicsSimulatedAnnealingPermutationBase.cpp diff --git a/Modules/DiffusionImaging/Connectomics/Algorithms/mitkConnectomicsSimulatedAnnealingPermutationBase.h b/Modules/Connectomics/Algorithms/mitkConnectomicsSimulatedAnnealingPermutationBase.h similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Algorithms/mitkConnectomicsSimulatedAnnealingPermutationBase.h rename to Modules/Connectomics/Algorithms/mitkConnectomicsSimulatedAnnealingPermutationBase.h diff --git a/Modules/DiffusionImaging/Connectomics/Algorithms/mitkConnectomicsSimulatedAnnealingPermutationModularity.cpp b/Modules/Connectomics/Algorithms/mitkConnectomicsSimulatedAnnealingPermutationModularity.cpp similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Algorithms/mitkConnectomicsSimulatedAnnealingPermutationModularity.cpp rename to Modules/Connectomics/Algorithms/mitkConnectomicsSimulatedAnnealingPermutationModularity.cpp diff --git a/Modules/DiffusionImaging/Connectomics/Algorithms/mitkConnectomicsSimulatedAnnealingPermutationModularity.h b/Modules/Connectomics/Algorithms/mitkConnectomicsSimulatedAnnealingPermutationModularity.h similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Algorithms/mitkConnectomicsSimulatedAnnealingPermutationModularity.h rename to Modules/Connectomics/Algorithms/mitkConnectomicsSimulatedAnnealingPermutationModularity.h diff --git a/Modules/DiffusionImaging/Connectomics/Algorithms/mitkConnectomicsStatisticsCalculator.cpp b/Modules/Connectomics/Algorithms/mitkConnectomicsStatisticsCalculator.cpp similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Algorithms/mitkConnectomicsStatisticsCalculator.cpp rename to Modules/Connectomics/Algorithms/mitkConnectomicsStatisticsCalculator.cpp diff --git a/Modules/DiffusionImaging/Connectomics/Algorithms/mitkConnectomicsStatisticsCalculator.h b/Modules/Connectomics/Algorithms/mitkConnectomicsStatisticsCalculator.h similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Algorithms/mitkConnectomicsStatisticsCalculator.h rename to Modules/Connectomics/Algorithms/mitkConnectomicsStatisticsCalculator.h diff --git a/Modules/DiffusionImaging/Connectomics/Algorithms/mitkConnectomicsSyntheticNetworkGenerator.cpp b/Modules/Connectomics/Algorithms/mitkConnectomicsSyntheticNetworkGenerator.cpp similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Algorithms/mitkConnectomicsSyntheticNetworkGenerator.cpp rename to Modules/Connectomics/Algorithms/mitkConnectomicsSyntheticNetworkGenerator.cpp diff --git a/Modules/DiffusionImaging/Connectomics/Algorithms/mitkConnectomicsSyntheticNetworkGenerator.h b/Modules/Connectomics/Algorithms/mitkConnectomicsSyntheticNetworkGenerator.h similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Algorithms/mitkConnectomicsSyntheticNetworkGenerator.h rename to Modules/Connectomics/Algorithms/mitkConnectomicsSyntheticNetworkGenerator.h diff --git a/Modules/DiffusionImaging/Connectomics/Algorithms/mitkCorrelationCalculator.h b/Modules/Connectomics/Algorithms/mitkCorrelationCalculator.h similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Algorithms/mitkCorrelationCalculator.h rename to Modules/Connectomics/Algorithms/mitkCorrelationCalculator.h diff --git a/Modules/DiffusionImaging/Connectomics/Algorithms/mitkCorrelationCalculator.txx b/Modules/Connectomics/Algorithms/mitkCorrelationCalculator.txx similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Algorithms/mitkCorrelationCalculator.txx rename to Modules/Connectomics/Algorithms/mitkCorrelationCalculator.txx diff --git a/Modules/DiffusionImaging/Connectomics/Algorithms/mitkFreeSurferParcellationTranslator.cpp b/Modules/Connectomics/Algorithms/mitkFreeSurferParcellationTranslator.cpp similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Algorithms/mitkFreeSurferParcellationTranslator.cpp rename to Modules/Connectomics/Algorithms/mitkFreeSurferParcellationTranslator.cpp diff --git a/Modules/DiffusionImaging/Connectomics/Algorithms/mitkFreeSurferParcellationTranslator.h b/Modules/Connectomics/Algorithms/mitkFreeSurferParcellationTranslator.h similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Algorithms/mitkFreeSurferParcellationTranslator.h rename to Modules/Connectomics/Algorithms/mitkFreeSurferParcellationTranslator.h diff --git a/Modules/DiffusionImaging/Connectomics/CMakeLists.txt b/Modules/Connectomics/CMakeLists.txt similarity index 83% rename from Modules/DiffusionImaging/Connectomics/CMakeLists.txt rename to Modules/Connectomics/CMakeLists.txt index e310934..a040900 100644 --- a/Modules/DiffusionImaging/Connectomics/CMakeLists.txt +++ b/Modules/Connectomics/CMakeLists.txt @@ -1,8 +1,8 @@ MITK_CREATE_MODULE( SUBPROJECTS MITK-Diffusion INCLUDE_DIRS Algorithms Algorithms/BrainParcellation IODataStructures Rendering ${CMAKE_CURRENT_BINARY_DIR} - DEPENDS MitkDiffusionCore MitkFiberTracking + DEPENDS MitkDiffusionCore PACKAGE_DEPENDS VTK|vtkInfovisLayout ) add_subdirectory(Testing) diff --git a/Modules/DiffusionImaging/Connectomics/Documentation/doxygen/ConnectomicsRenderingProperties.dox b/Modules/Connectomics/Documentation/doxygen/ConnectomicsRenderingProperties.dox similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Documentation/doxygen/ConnectomicsRenderingProperties.dox rename to Modules/Connectomics/Documentation/doxygen/ConnectomicsRenderingProperties.dox diff --git a/Modules/DiffusionImaging/Connectomics/IODataStructures/mitkConnectomicsConstantsManager.cpp b/Modules/Connectomics/IODataStructures/mitkConnectomicsConstantsManager.cpp similarity index 100% rename from Modules/DiffusionImaging/Connectomics/IODataStructures/mitkConnectomicsConstantsManager.cpp rename to Modules/Connectomics/IODataStructures/mitkConnectomicsConstantsManager.cpp diff --git a/Modules/DiffusionImaging/Connectomics/IODataStructures/mitkConnectomicsConstantsManager.h b/Modules/Connectomics/IODataStructures/mitkConnectomicsConstantsManager.h similarity index 100% rename from Modules/DiffusionImaging/Connectomics/IODataStructures/mitkConnectomicsConstantsManager.h rename to Modules/Connectomics/IODataStructures/mitkConnectomicsConstantsManager.h diff --git a/Modules/DiffusionImaging/Connectomics/IODataStructures/mitkConnectomicsNetwork.cpp b/Modules/Connectomics/IODataStructures/mitkConnectomicsNetwork.cpp similarity index 100% rename from Modules/DiffusionImaging/Connectomics/IODataStructures/mitkConnectomicsNetwork.cpp rename to Modules/Connectomics/IODataStructures/mitkConnectomicsNetwork.cpp diff --git a/Modules/DiffusionImaging/Connectomics/IODataStructures/mitkConnectomicsNetwork.h b/Modules/Connectomics/IODataStructures/mitkConnectomicsNetwork.h similarity index 100% rename from Modules/DiffusionImaging/Connectomics/IODataStructures/mitkConnectomicsNetwork.h rename to Modules/Connectomics/IODataStructures/mitkConnectomicsNetwork.h diff --git a/Modules/DiffusionImaging/Connectomics/IODataStructures/mitkConnectomicsNetworkProperties.h b/Modules/Connectomics/IODataStructures/mitkConnectomicsNetworkProperties.h similarity index 100% rename from Modules/DiffusionImaging/Connectomics/IODataStructures/mitkConnectomicsNetworkProperties.h rename to Modules/Connectomics/IODataStructures/mitkConnectomicsNetworkProperties.h diff --git a/Modules/DiffusionImaging/Connectomics/Rendering/mitkConnectomicsEnumerationSubclassesSerializer.cpp b/Modules/Connectomics/Rendering/mitkConnectomicsEnumerationSubclassesSerializer.cpp similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Rendering/mitkConnectomicsEnumerationSubclassesSerializer.cpp rename to Modules/Connectomics/Rendering/mitkConnectomicsEnumerationSubclassesSerializer.cpp diff --git a/Modules/DiffusionImaging/Connectomics/Rendering/mitkConnectomicsNetworkMapper3D.cpp b/Modules/Connectomics/Rendering/mitkConnectomicsNetworkMapper3D.cpp similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Rendering/mitkConnectomicsNetworkMapper3D.cpp rename to Modules/Connectomics/Rendering/mitkConnectomicsNetworkMapper3D.cpp diff --git a/Modules/DiffusionImaging/Connectomics/Rendering/mitkConnectomicsNetworkMapper3D.h b/Modules/Connectomics/Rendering/mitkConnectomicsNetworkMapper3D.h similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Rendering/mitkConnectomicsNetworkMapper3D.h rename to Modules/Connectomics/Rendering/mitkConnectomicsNetworkMapper3D.h diff --git a/Modules/DiffusionImaging/Connectomics/Rendering/mitkConnectomicsRenderingEdgeColorParameterProperty.cpp b/Modules/Connectomics/Rendering/mitkConnectomicsRenderingEdgeColorParameterProperty.cpp similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Rendering/mitkConnectomicsRenderingEdgeColorParameterProperty.cpp rename to Modules/Connectomics/Rendering/mitkConnectomicsRenderingEdgeColorParameterProperty.cpp diff --git a/Modules/DiffusionImaging/Connectomics/Rendering/mitkConnectomicsRenderingEdgeColorParameterProperty.h b/Modules/Connectomics/Rendering/mitkConnectomicsRenderingEdgeColorParameterProperty.h similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Rendering/mitkConnectomicsRenderingEdgeColorParameterProperty.h rename to Modules/Connectomics/Rendering/mitkConnectomicsRenderingEdgeColorParameterProperty.h diff --git a/Modules/DiffusionImaging/Connectomics/Rendering/mitkConnectomicsRenderingEdgeFilteringProperty.cpp b/Modules/Connectomics/Rendering/mitkConnectomicsRenderingEdgeFilteringProperty.cpp similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Rendering/mitkConnectomicsRenderingEdgeFilteringProperty.cpp rename to Modules/Connectomics/Rendering/mitkConnectomicsRenderingEdgeFilteringProperty.cpp diff --git a/Modules/DiffusionImaging/Connectomics/Rendering/mitkConnectomicsRenderingEdgeFilteringProperty.h b/Modules/Connectomics/Rendering/mitkConnectomicsRenderingEdgeFilteringProperty.h similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Rendering/mitkConnectomicsRenderingEdgeFilteringProperty.h rename to Modules/Connectomics/Rendering/mitkConnectomicsRenderingEdgeFilteringProperty.h diff --git a/Modules/DiffusionImaging/Connectomics/Rendering/mitkConnectomicsRenderingEdgeRadiusParameterProperty.cpp b/Modules/Connectomics/Rendering/mitkConnectomicsRenderingEdgeRadiusParameterProperty.cpp similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Rendering/mitkConnectomicsRenderingEdgeRadiusParameterProperty.cpp rename to Modules/Connectomics/Rendering/mitkConnectomicsRenderingEdgeRadiusParameterProperty.cpp diff --git a/Modules/DiffusionImaging/Connectomics/Rendering/mitkConnectomicsRenderingEdgeRadiusParameterProperty.h b/Modules/Connectomics/Rendering/mitkConnectomicsRenderingEdgeRadiusParameterProperty.h similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Rendering/mitkConnectomicsRenderingEdgeRadiusParameterProperty.h rename to Modules/Connectomics/Rendering/mitkConnectomicsRenderingEdgeRadiusParameterProperty.h diff --git a/Modules/DiffusionImaging/Connectomics/Rendering/mitkConnectomicsRenderingEdgeThresholdParameterProperty.cpp b/Modules/Connectomics/Rendering/mitkConnectomicsRenderingEdgeThresholdParameterProperty.cpp similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Rendering/mitkConnectomicsRenderingEdgeThresholdParameterProperty.cpp rename to Modules/Connectomics/Rendering/mitkConnectomicsRenderingEdgeThresholdParameterProperty.cpp diff --git a/Modules/DiffusionImaging/Connectomics/Rendering/mitkConnectomicsRenderingEdgeThresholdParameterProperty.h b/Modules/Connectomics/Rendering/mitkConnectomicsRenderingEdgeThresholdParameterProperty.h similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Rendering/mitkConnectomicsRenderingEdgeThresholdParameterProperty.h rename to Modules/Connectomics/Rendering/mitkConnectomicsRenderingEdgeThresholdParameterProperty.h diff --git a/Modules/DiffusionImaging/Connectomics/Rendering/mitkConnectomicsRenderingNodeColorParameterProperty.cpp b/Modules/Connectomics/Rendering/mitkConnectomicsRenderingNodeColorParameterProperty.cpp similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Rendering/mitkConnectomicsRenderingNodeColorParameterProperty.cpp rename to Modules/Connectomics/Rendering/mitkConnectomicsRenderingNodeColorParameterProperty.cpp diff --git a/Modules/DiffusionImaging/Connectomics/Rendering/mitkConnectomicsRenderingNodeColorParameterProperty.h b/Modules/Connectomics/Rendering/mitkConnectomicsRenderingNodeColorParameterProperty.h similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Rendering/mitkConnectomicsRenderingNodeColorParameterProperty.h rename to Modules/Connectomics/Rendering/mitkConnectomicsRenderingNodeColorParameterProperty.h diff --git a/Modules/DiffusionImaging/Connectomics/Rendering/mitkConnectomicsRenderingNodeFilteringProperty.cpp b/Modules/Connectomics/Rendering/mitkConnectomicsRenderingNodeFilteringProperty.cpp similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Rendering/mitkConnectomicsRenderingNodeFilteringProperty.cpp rename to Modules/Connectomics/Rendering/mitkConnectomicsRenderingNodeFilteringProperty.cpp diff --git a/Modules/DiffusionImaging/Connectomics/Rendering/mitkConnectomicsRenderingNodeFilteringProperty.h b/Modules/Connectomics/Rendering/mitkConnectomicsRenderingNodeFilteringProperty.h similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Rendering/mitkConnectomicsRenderingNodeFilteringProperty.h rename to Modules/Connectomics/Rendering/mitkConnectomicsRenderingNodeFilteringProperty.h diff --git a/Modules/DiffusionImaging/Connectomics/Rendering/mitkConnectomicsRenderingNodeRadiusParameterProperty.cpp b/Modules/Connectomics/Rendering/mitkConnectomicsRenderingNodeRadiusParameterProperty.cpp similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Rendering/mitkConnectomicsRenderingNodeRadiusParameterProperty.cpp rename to Modules/Connectomics/Rendering/mitkConnectomicsRenderingNodeRadiusParameterProperty.cpp diff --git a/Modules/DiffusionImaging/Connectomics/Rendering/mitkConnectomicsRenderingNodeRadiusParameterProperty.h b/Modules/Connectomics/Rendering/mitkConnectomicsRenderingNodeRadiusParameterProperty.h similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Rendering/mitkConnectomicsRenderingNodeRadiusParameterProperty.h rename to Modules/Connectomics/Rendering/mitkConnectomicsRenderingNodeRadiusParameterProperty.h diff --git a/Modules/DiffusionImaging/Connectomics/Rendering/mitkConnectomicsRenderingNodeThresholdParameterProperty.cpp b/Modules/Connectomics/Rendering/mitkConnectomicsRenderingNodeThresholdParameterProperty.cpp similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Rendering/mitkConnectomicsRenderingNodeThresholdParameterProperty.cpp rename to Modules/Connectomics/Rendering/mitkConnectomicsRenderingNodeThresholdParameterProperty.cpp diff --git a/Modules/DiffusionImaging/Connectomics/Rendering/mitkConnectomicsRenderingNodeThresholdParameterProperty.h b/Modules/Connectomics/Rendering/mitkConnectomicsRenderingNodeThresholdParameterProperty.h similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Rendering/mitkConnectomicsRenderingNodeThresholdParameterProperty.h rename to Modules/Connectomics/Rendering/mitkConnectomicsRenderingNodeThresholdParameterProperty.h diff --git a/Modules/DiffusionImaging/Connectomics/Rendering/mitkConnectomicsRenderingProperties.h b/Modules/Connectomics/Rendering/mitkConnectomicsRenderingProperties.h similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Rendering/mitkConnectomicsRenderingProperties.h rename to Modules/Connectomics/Rendering/mitkConnectomicsRenderingProperties.h diff --git a/Modules/DiffusionImaging/Connectomics/Rendering/mitkConnectomicsRenderingSchemeProperty.cpp b/Modules/Connectomics/Rendering/mitkConnectomicsRenderingSchemeProperty.cpp similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Rendering/mitkConnectomicsRenderingSchemeProperty.cpp rename to Modules/Connectomics/Rendering/mitkConnectomicsRenderingSchemeProperty.cpp diff --git a/Modules/DiffusionImaging/Connectomics/Rendering/mitkConnectomicsRenderingSchemeProperty.h b/Modules/Connectomics/Rendering/mitkConnectomicsRenderingSchemeProperty.h similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Rendering/mitkConnectomicsRenderingSchemeProperty.h rename to Modules/Connectomics/Rendering/mitkConnectomicsRenderingSchemeProperty.h diff --git a/Modules/DiffusionImaging/Connectomics/Testing/CMakeLists.txt b/Modules/Connectomics/Testing/CMakeLists.txt similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Testing/CMakeLists.txt rename to Modules/Connectomics/Testing/CMakeLists.txt diff --git a/Modules/DiffusionImaging/Connectomics/Testing/files.cmake b/Modules/Connectomics/Testing/files.cmake similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Testing/files.cmake rename to Modules/Connectomics/Testing/files.cmake diff --git a/Modules/DiffusionImaging/Connectomics/Testing/mitkConnectomicsNetworkCreationTest.cpp b/Modules/Connectomics/Testing/mitkConnectomicsNetworkCreationTest.cpp similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Testing/mitkConnectomicsNetworkCreationTest.cpp rename to Modules/Connectomics/Testing/mitkConnectomicsNetworkCreationTest.cpp diff --git a/Modules/DiffusionImaging/Connectomics/Testing/mitkConnectomicsNetworkTest.cpp b/Modules/Connectomics/Testing/mitkConnectomicsNetworkTest.cpp similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Testing/mitkConnectomicsNetworkTest.cpp rename to Modules/Connectomics/Testing/mitkConnectomicsNetworkTest.cpp diff --git a/Modules/DiffusionImaging/Connectomics/Testing/mitkConnectomicsStatisticsCalculatorTest.cpp b/Modules/Connectomics/Testing/mitkConnectomicsStatisticsCalculatorTest.cpp similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Testing/mitkConnectomicsStatisticsCalculatorTest.cpp rename to Modules/Connectomics/Testing/mitkConnectomicsStatisticsCalculatorTest.cpp diff --git a/Modules/DiffusionImaging/Connectomics/Testing/mitkCorrelationCalculatorTest.cpp b/Modules/Connectomics/Testing/mitkCorrelationCalculatorTest.cpp similarity index 100% rename from Modules/DiffusionImaging/Connectomics/Testing/mitkCorrelationCalculatorTest.cpp rename to Modules/Connectomics/Testing/mitkCorrelationCalculatorTest.cpp diff --git a/Modules/DiffusionImaging/Connectomics/files.cmake b/Modules/Connectomics/files.cmake similarity index 100% rename from Modules/DiffusionImaging/Connectomics/files.cmake rename to Modules/Connectomics/files.cmake diff --git a/Modules/DiffusionImaging/DiffusionCmdApps/CMakeLists.txt b/Modules/DiffusionCmdApps/CMakeLists.txt similarity index 81% rename from Modules/DiffusionImaging/DiffusionCmdApps/CMakeLists.txt rename to Modules/DiffusionCmdApps/CMakeLists.txt index 0c121b8..ac0bdff 100644 --- a/Modules/DiffusionImaging/DiffusionCmdApps/CMakeLists.txt +++ b/Modules/DiffusionCmdApps/CMakeLists.txt @@ -1,20 +1,20 @@ MITK_CREATE_MODULE( SUBPROJECTS MITK-Diffusion # INCLUDE_DIRS Helpers - DEPENDS MitkDiffusionCore MitkDiffusionIO MitkFiberTracking MitkQuantification MitkConnectomics + DEPENDS MitkDiffusionCore MitkDiffusionIO PACKAGE_DEPENDS PUBLIC ITK ) if(MODULE_IS_ENABLED) add_subdirectory(Connectomics) add_subdirectory(Fiberfox) add_subdirectory(FiberProcessing) add_subdirectory(Tractography) add_subdirectory(TractographyEvaluation) add_subdirectory(Misc) add_subdirectory(Quantification) if(MITK_USE_Python) add_subdirectory(Python) endif() endif() diff --git a/Modules/DiffusionImaging/DiffusionCmdApps/Connectomics/CMakeLists.txt b/Modules/DiffusionCmdApps/Connectomics/CMakeLists.txt similarity index 94% rename from Modules/DiffusionImaging/DiffusionCmdApps/Connectomics/CMakeLists.txt rename to Modules/DiffusionCmdApps/Connectomics/CMakeLists.txt index bcfc777..51dc62c 100644 --- a/Modules/DiffusionImaging/DiffusionCmdApps/Connectomics/CMakeLists.txt +++ b/Modules/DiffusionCmdApps/Connectomics/CMakeLists.txt @@ -1,39 +1,39 @@ option(BUILD_DiffusionConnectomicsCmdApps "Build commandline tools for diffusion connectomics" OFF) if(BUILD_DiffusionConnectomicsCmdApps OR MITK_BUILD_ALL_APPS) # needed include directories include_directories( ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ) # list of DiffusionConnectomics cmdapps # if an app requires additional dependencies # they are added after a "^^" and separated by "_" set( DiffusionConnectomicscmdapps NetworkCreation^^ NetworkStatistics^^ ) foreach(DiffusionConnectomicscmdapp ${DiffusionConnectomicscmdapps}) # extract cmd app name and dependencies string(REPLACE "^^" "\\;" cmdapp_info ${DiffusionConnectomicscmdapp}) set(cmdapp_info_list ${cmdapp_info}) list(GET cmdapp_info_list 0 appname) list(GET cmdapp_info_list 1 raw_dependencies) string(REPLACE "_" "\\;" dependencies "${raw_dependencies}") set(dependencies_list ${dependencies}) mitkFunctionCreateCommandLineApp( NAME ${appname} - DEPENDS MitkDiffusionCmdApps ${dependencies_list} + DEPENDS MitkDiffusionCmdApps MitkConnectomics ${dependencies_list} PACKAGE_DEPENDS ) endforeach() if(EXECUTABLE_IS_ENABLED) MITK_INSTALL_TARGETS(EXECUTABLES ${EXECUTABLE_TARGET}) endif() endif() diff --git a/Modules/DiffusionImaging/DiffusionCmdApps/Connectomics/NetworkCreation.cpp b/Modules/DiffusionCmdApps/Connectomics/NetworkCreation.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCmdApps/Connectomics/NetworkCreation.cpp rename to Modules/DiffusionCmdApps/Connectomics/NetworkCreation.cpp diff --git a/Modules/DiffusionImaging/DiffusionCmdApps/Connectomics/NetworkStatistics.cpp b/Modules/DiffusionCmdApps/Connectomics/NetworkStatistics.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCmdApps/Connectomics/NetworkStatistics.cpp rename to Modules/DiffusionCmdApps/Connectomics/NetworkStatistics.cpp diff --git a/Modules/DiffusionImaging/DiffusionCmdApps/FiberProcessing/CMakeLists.txt b/Modules/DiffusionCmdApps/FiberProcessing/CMakeLists.txt similarity index 93% rename from Modules/DiffusionImaging/DiffusionCmdApps/FiberProcessing/CMakeLists.txt rename to Modules/DiffusionCmdApps/FiberProcessing/CMakeLists.txt index fdf23fb..5a0544f 100644 --- a/Modules/DiffusionImaging/DiffusionCmdApps/FiberProcessing/CMakeLists.txt +++ b/Modules/DiffusionCmdApps/FiberProcessing/CMakeLists.txt @@ -1,47 +1,47 @@ option(BUILD_DiffusionFiberProcessingCmdApps "Build commandline tools for diffusion fiber processing" OFF) if(BUILD_DiffusionFiberProcessingCmdApps OR MITK_BUILD_ALL_APPS) # needed include directories include_directories( ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ) # list of diffusion cmdapps # if an app requires additional dependencies # they are added after a "^^" and separated by "_" set( diffusionFiberProcessingcmdapps TractDensity^^ Sift2WeightCopy^^ FiberExtraction^^ FiberExtractionRoi^^ FiberProcessing^^ FitFibersToImage^^ FiberDirectionExtraction^^ FiberJoin^^ FiberClustering^^ TractDensityFilter^^ ) foreach(diffusionFiberProcessingcmdapp ${diffusionFiberProcessingcmdapps}) # extract cmd app name and dependencies string(REPLACE "^^" "\\;" cmdapp_info ${diffusionFiberProcessingcmdapp}) set(cmdapp_info_list ${cmdapp_info}) list(GET cmdapp_info_list 0 appname) list(GET cmdapp_info_list 1 raw_dependencies) string(REPLACE "_" "\\;" dependencies "${raw_dependencies}") set(dependencies_list ${dependencies}) mitkFunctionCreateCommandLineApp( NAME ${appname} - DEPENDS MitkDiffusionCmdApps ${dependencies_list} + DEPENDS MitkDiffusionCmdApps MitkMriSimulation MitkFiberTracking ${dependencies_list} PACKAGE_DEPENDS ) endforeach() if(EXECUTABLE_IS_ENABLED) MITK_INSTALL_TARGETS(EXECUTABLES ${EXECUTABLE_TARGET}) endif() endif() diff --git a/Modules/DiffusionImaging/DiffusionCmdApps/FiberProcessing/FiberClustering.cpp b/Modules/DiffusionCmdApps/FiberProcessing/FiberClustering.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCmdApps/FiberProcessing/FiberClustering.cpp rename to Modules/DiffusionCmdApps/FiberProcessing/FiberClustering.cpp diff --git a/Modules/DiffusionImaging/DiffusionCmdApps/FiberProcessing/FiberDirectionExtraction.cpp b/Modules/DiffusionCmdApps/FiberProcessing/FiberDirectionExtraction.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCmdApps/FiberProcessing/FiberDirectionExtraction.cpp rename to Modules/DiffusionCmdApps/FiberProcessing/FiberDirectionExtraction.cpp diff --git a/Modules/DiffusionImaging/DiffusionCmdApps/FiberProcessing/FiberExtraction.cpp b/Modules/DiffusionCmdApps/FiberProcessing/FiberExtraction.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCmdApps/FiberProcessing/FiberExtraction.cpp rename to Modules/DiffusionCmdApps/FiberProcessing/FiberExtraction.cpp diff --git a/Modules/DiffusionImaging/DiffusionCmdApps/FiberProcessing/FiberExtractionRoi.cpp b/Modules/DiffusionCmdApps/FiberProcessing/FiberExtractionRoi.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCmdApps/FiberProcessing/FiberExtractionRoi.cpp rename to Modules/DiffusionCmdApps/FiberProcessing/FiberExtractionRoi.cpp diff --git a/Modules/DiffusionImaging/DiffusionCmdApps/FiberProcessing/FiberJoin.cpp b/Modules/DiffusionCmdApps/FiberProcessing/FiberJoin.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCmdApps/FiberProcessing/FiberJoin.cpp rename to Modules/DiffusionCmdApps/FiberProcessing/FiberJoin.cpp diff --git a/Modules/DiffusionImaging/DiffusionCmdApps/FiberProcessing/FiberProcessing.cpp b/Modules/DiffusionCmdApps/FiberProcessing/FiberProcessing.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCmdApps/FiberProcessing/FiberProcessing.cpp rename to Modules/DiffusionCmdApps/FiberProcessing/FiberProcessing.cpp diff --git a/Modules/DiffusionImaging/DiffusionCmdApps/FiberProcessing/FitFibersToImage.cpp b/Modules/DiffusionCmdApps/FiberProcessing/FitFibersToImage.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCmdApps/FiberProcessing/FitFibersToImage.cpp rename to Modules/DiffusionCmdApps/FiberProcessing/FitFibersToImage.cpp diff --git a/Modules/DiffusionImaging/DiffusionCmdApps/FiberProcessing/Sift2WeightCopy.cpp b/Modules/DiffusionCmdApps/FiberProcessing/Sift2WeightCopy.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCmdApps/FiberProcessing/Sift2WeightCopy.cpp rename to Modules/DiffusionCmdApps/FiberProcessing/Sift2WeightCopy.cpp diff --git a/Modules/DiffusionImaging/DiffusionCmdApps/FiberProcessing/TractDensity.cpp b/Modules/DiffusionCmdApps/FiberProcessing/TractDensity.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCmdApps/FiberProcessing/TractDensity.cpp rename to Modules/DiffusionCmdApps/FiberProcessing/TractDensity.cpp diff --git a/Modules/DiffusionImaging/DiffusionCmdApps/FiberProcessing/TractDensityFilter.cpp b/Modules/DiffusionCmdApps/FiberProcessing/TractDensityFilter.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCmdApps/FiberProcessing/TractDensityFilter.cpp rename to Modules/DiffusionCmdApps/FiberProcessing/TractDensityFilter.cpp diff --git a/Modules/DiffusionImaging/DiffusionCmdApps/Fiberfox/CMakeLists.txt b/Modules/DiffusionCmdApps/Fiberfox/CMakeLists.txt similarity index 93% rename from Modules/DiffusionImaging/DiffusionCmdApps/Fiberfox/CMakeLists.txt rename to Modules/DiffusionCmdApps/Fiberfox/CMakeLists.txt index a2fe4c0..7b1903f 100644 --- a/Modules/DiffusionImaging/DiffusionCmdApps/Fiberfox/CMakeLists.txt +++ b/Modules/DiffusionCmdApps/Fiberfox/CMakeLists.txt @@ -1,39 +1,39 @@ option(BUILD_DiffusionFiberfoxCmdApps "Build commandline tools for diffusion data simulation (Fiberfox)" OFF) if(BUILD_DiffusionFiberfoxCmdApps OR MITK_BUILD_ALL_APPS) # needed include directories include_directories( ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ) # list of diffusion cmdapps # if an app requires additional dependencies # they are added after a "^^" and separated by "_" set( diffusionFiberfoxcmdapps Fiberfox^^ RandomFiberPhantom^^ ) foreach(diffusionFiberfoxcmdapp ${diffusionFiberfoxcmdapps}) # extract cmd app name and dependencies string(REPLACE "^^" "\\;" cmdapp_info ${diffusionFiberfoxcmdapp}) set(cmdapp_info_list ${cmdapp_info}) list(GET cmdapp_info_list 0 appname) list(GET cmdapp_info_list 1 raw_dependencies) string(REPLACE "_" "\\;" dependencies "${raw_dependencies}") set(dependencies_list ${dependencies}) mitkFunctionCreateCommandLineApp( NAME ${appname} - DEPENDS MitkDiffusionCmdApps ${dependencies_list} + DEPENDS MitkDiffusionCmdApps MitkMriSimulation ${dependencies_list} PACKAGE_DEPENDS ) endforeach() if(EXECUTABLE_IS_ENABLED) MITK_INSTALL_TARGETS(EXECUTABLES ${EXECUTABLE_TARGET}) endif() endif() diff --git a/Modules/DiffusionImaging/DiffusionCmdApps/Fiberfox/Fiberfox.cpp b/Modules/DiffusionCmdApps/Fiberfox/Fiberfox.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCmdApps/Fiberfox/Fiberfox.cpp rename to Modules/DiffusionCmdApps/Fiberfox/Fiberfox.cpp diff --git a/Modules/DiffusionImaging/DiffusionCmdApps/Fiberfox/RandomFiberPhantom.cpp b/Modules/DiffusionCmdApps/Fiberfox/RandomFiberPhantom.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCmdApps/Fiberfox/RandomFiberPhantom.cpp rename to Modules/DiffusionCmdApps/Fiberfox/RandomFiberPhantom.cpp diff --git a/Modules/DiffusionImaging/DiffusionCmdApps/Misc/CMakeLists.txt b/Modules/DiffusionCmdApps/Misc/CMakeLists.txt similarity index 100% rename from Modules/DiffusionImaging/DiffusionCmdApps/Misc/CMakeLists.txt rename to Modules/DiffusionCmdApps/Misc/CMakeLists.txt diff --git a/Modules/DiffusionImaging/DiffusionCmdApps/Misc/CopyGeometry.cpp b/Modules/DiffusionCmdApps/Misc/CopyGeometry.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCmdApps/Misc/CopyGeometry.cpp rename to Modules/DiffusionCmdApps/Misc/CopyGeometry.cpp diff --git a/Modules/DiffusionImaging/DiffusionCmdApps/Misc/DICOMLoader.cmake b/Modules/DiffusionCmdApps/Misc/DICOMLoader.cmake similarity index 100% rename from Modules/DiffusionImaging/DiffusionCmdApps/Misc/DICOMLoader.cmake rename to Modules/DiffusionCmdApps/Misc/DICOMLoader.cmake diff --git a/Modules/DiffusionImaging/DiffusionCmdApps/Misc/DImp.cpp b/Modules/DiffusionCmdApps/Misc/DImp.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCmdApps/Misc/DImp.cpp rename to Modules/DiffusionCmdApps/Misc/DImp.cpp diff --git a/Modules/DiffusionImaging/DiffusionCmdApps/Misc/DReg.cpp b/Modules/DiffusionCmdApps/Misc/DReg.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCmdApps/Misc/DReg.cpp rename to Modules/DiffusionCmdApps/Misc/DReg.cpp diff --git a/Modules/DiffusionImaging/DiffusionCmdApps/Misc/DiffusionDICOMLoader.cpp b/Modules/DiffusionCmdApps/Misc/DiffusionDICOMLoader.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCmdApps/Misc/DiffusionDICOMLoader.cpp rename to Modules/DiffusionCmdApps/Misc/DiffusionDICOMLoader.cpp diff --git a/Modules/DiffusionImaging/DiffusionCmdApps/Misc/DmriDenoising.cpp b/Modules/DiffusionCmdApps/Misc/DmriDenoising.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCmdApps/Misc/DmriDenoising.cpp rename to Modules/DiffusionCmdApps/Misc/DmriDenoising.cpp diff --git a/Modules/DiffusionImaging/DiffusionCmdApps/Misc/FileFormatConverter.cpp b/Modules/DiffusionCmdApps/Misc/FileFormatConverter.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCmdApps/Misc/FileFormatConverter.cpp rename to Modules/DiffusionCmdApps/Misc/FileFormatConverter.cpp diff --git a/Modules/DiffusionImaging/DiffusionCmdApps/Misc/FlipPeaks.cpp b/Modules/DiffusionCmdApps/Misc/FlipPeaks.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCmdApps/Misc/FlipPeaks.cpp rename to Modules/DiffusionCmdApps/Misc/FlipPeaks.cpp diff --git a/Modules/DiffusionImaging/DiffusionCmdApps/Misc/HeadMotionCorrection.cpp b/Modules/DiffusionCmdApps/Misc/HeadMotionCorrection.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCmdApps/Misc/HeadMotionCorrection.cpp rename to Modules/DiffusionCmdApps/Misc/HeadMotionCorrection.cpp diff --git a/Modules/DiffusionImaging/DiffusionCmdApps/Misc/ImageResampler.cpp b/Modules/DiffusionCmdApps/Misc/ImageResampler.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCmdApps/Misc/ImageResampler.cpp rename to Modules/DiffusionCmdApps/Misc/ImageResampler.cpp diff --git a/Modules/DiffusionImaging/DiffusionCmdApps/Misc/PeakExtraction.cpp b/Modules/DiffusionCmdApps/Misc/PeakExtraction.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCmdApps/Misc/PeakExtraction.cpp rename to Modules/DiffusionCmdApps/Misc/PeakExtraction.cpp diff --git a/Modules/DiffusionImaging/DiffusionCmdApps/Misc/Registration.cpp b/Modules/DiffusionCmdApps/Misc/Registration.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCmdApps/Misc/Registration.cpp rename to Modules/DiffusionCmdApps/Misc/Registration.cpp diff --git a/Modules/DiffusionImaging/DiffusionCmdApps/Misc/ResampleGradients.cpp b/Modules/DiffusionCmdApps/Misc/ResampleGradients.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCmdApps/Misc/ResampleGradients.cpp rename to Modules/DiffusionCmdApps/Misc/ResampleGradients.cpp diff --git a/Modules/DiffusionImaging/DiffusionCmdApps/Misc/RoundBvalues.cpp b/Modules/DiffusionCmdApps/Misc/RoundBvalues.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCmdApps/Misc/RoundBvalues.cpp rename to Modules/DiffusionCmdApps/Misc/RoundBvalues.cpp diff --git a/Modules/DiffusionImaging/DiffusionCmdApps/Misc/ShToOdfImage.cpp b/Modules/DiffusionCmdApps/Misc/ShToOdfImage.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCmdApps/Misc/ShToOdfImage.cpp rename to Modules/DiffusionCmdApps/Misc/ShToOdfImage.cpp diff --git a/Modules/DiffusionImaging/DiffusionCmdApps/Python/BrainExtraction.cpp b/Modules/DiffusionCmdApps/Python/BrainExtraction.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCmdApps/Python/BrainExtraction.cpp rename to Modules/DiffusionCmdApps/Python/BrainExtraction.cpp diff --git a/Modules/DiffusionImaging/DiffusionCmdApps/Python/CMakeLists.txt b/Modules/DiffusionCmdApps/Python/CMakeLists.txt similarity index 100% rename from Modules/DiffusionImaging/DiffusionCmdApps/Python/CMakeLists.txt rename to Modules/DiffusionCmdApps/Python/CMakeLists.txt diff --git a/Modules/DiffusionImaging/DiffusionCmdApps/Quantification/CMakeLists.txt b/Modules/DiffusionCmdApps/Quantification/CMakeLists.txt similarity index 100% rename from Modules/DiffusionImaging/DiffusionCmdApps/Quantification/CMakeLists.txt rename to Modules/DiffusionCmdApps/Quantification/CMakeLists.txt diff --git a/Modules/DiffusionImaging/DiffusionCmdApps/Quantification/DiffusionIndices.cpp b/Modules/DiffusionCmdApps/Quantification/DiffusionIndices.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCmdApps/Quantification/DiffusionIndices.cpp rename to Modules/DiffusionCmdApps/Quantification/DiffusionIndices.cpp diff --git a/Modules/DiffusionImaging/DiffusionCmdApps/Quantification/DiffusionKurtosisFit.cpp b/Modules/DiffusionCmdApps/Quantification/DiffusionKurtosisFit.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCmdApps/Quantification/DiffusionKurtosisFit.cpp rename to Modules/DiffusionCmdApps/Quantification/DiffusionKurtosisFit.cpp diff --git a/Modules/DiffusionImaging/DiffusionCmdApps/Quantification/MultishellMethods.cpp b/Modules/DiffusionCmdApps/Quantification/MultishellMethods.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCmdApps/Quantification/MultishellMethods.cpp rename to Modules/DiffusionCmdApps/Quantification/MultishellMethods.cpp diff --git a/Modules/DiffusionImaging/DiffusionCmdApps/Quantification/QballReconstruction.cpp b/Modules/DiffusionCmdApps/Quantification/QballReconstruction.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCmdApps/Quantification/QballReconstruction.cpp rename to Modules/DiffusionCmdApps/Quantification/QballReconstruction.cpp diff --git a/Modules/DiffusionImaging/DiffusionCmdApps/Quantification/TensorReconstruction.cpp b/Modules/DiffusionCmdApps/Quantification/TensorReconstruction.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCmdApps/Quantification/TensorReconstruction.cpp rename to Modules/DiffusionCmdApps/Quantification/TensorReconstruction.cpp diff --git a/Modules/DiffusionImaging/DiffusionCmdApps/Tractography/CMakeLists.txt b/Modules/DiffusionCmdApps/Tractography/CMakeLists.txt similarity index 94% rename from Modules/DiffusionImaging/DiffusionCmdApps/Tractography/CMakeLists.txt rename to Modules/DiffusionCmdApps/Tractography/CMakeLists.txt index a14ed6d..8cfdc98 100644 --- a/Modules/DiffusionImaging/DiffusionCmdApps/Tractography/CMakeLists.txt +++ b/Modules/DiffusionCmdApps/Tractography/CMakeLists.txt @@ -1,40 +1,40 @@ option(BUILD_DiffusionTractographyCmdApps "Build commandline tools for diffusion fiber tractography" OFF) if(BUILD_DiffusionTractographyCmdApps OR MITK_BUILD_ALL_APPS) # needed include directories include_directories( ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ) # list of diffusion cmdapps # if an app requires additional dependencies # they are added after a "^^" and separated by "_" set( diffusiontractographycmdapps StreamlineTractography^^ GlobalTractography^^ RfTraining^^ ) foreach(diffusiontractographycmdapp ${diffusiontractographycmdapps}) # extract cmd app name and dependencies string(REPLACE "^^" "\\;" cmdapp_info ${diffusiontractographycmdapp}) set(cmdapp_info_list ${cmdapp_info}) list(GET cmdapp_info_list 0 appname) list(GET cmdapp_info_list 1 raw_dependencies) string(REPLACE "_" "\\;" dependencies "${raw_dependencies}") set(dependencies_list ${dependencies}) mitkFunctionCreateCommandLineApp( NAME ${appname} - DEPENDS MitkDiffusionCmdApps ${dependencies_list} + DEPENDS MitkDiffusionCmdApps MitkFiberTracking ${dependencies_list} PACKAGE_DEPENDS ) endforeach() if(EXECUTABLE_IS_ENABLED) MITK_INSTALL_TARGETS(EXECUTABLES ${EXECUTABLE_TARGET}) endif() endif() diff --git a/Modules/DiffusionImaging/DiffusionCmdApps/Tractography/GlobalTractography.cpp b/Modules/DiffusionCmdApps/Tractography/GlobalTractography.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCmdApps/Tractography/GlobalTractography.cpp rename to Modules/DiffusionCmdApps/Tractography/GlobalTractography.cpp diff --git a/Modules/DiffusionImaging/DiffusionCmdApps/Tractography/RfTraining.cpp b/Modules/DiffusionCmdApps/Tractography/RfTraining.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCmdApps/Tractography/RfTraining.cpp rename to Modules/DiffusionCmdApps/Tractography/RfTraining.cpp diff --git a/Modules/DiffusionImaging/DiffusionCmdApps/Tractography/StreamlineTractography.cpp b/Modules/DiffusionCmdApps/Tractography/StreamlineTractography.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCmdApps/Tractography/StreamlineTractography.cpp rename to Modules/DiffusionCmdApps/Tractography/StreamlineTractography.cpp diff --git a/Modules/DiffusionImaging/DiffusionCmdApps/TractographyEvaluation/AnchorConstrainedPlausibility.cpp b/Modules/DiffusionCmdApps/TractographyEvaluation/AnchorConstrainedPlausibility.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCmdApps/TractographyEvaluation/AnchorConstrainedPlausibility.cpp rename to Modules/DiffusionCmdApps/TractographyEvaluation/AnchorConstrainedPlausibility.cpp diff --git a/Modules/DiffusionImaging/DiffusionCmdApps/TractographyEvaluation/CMakeLists.txt b/Modules/DiffusionCmdApps/TractographyEvaluation/CMakeLists.txt similarity index 95% rename from Modules/DiffusionImaging/DiffusionCmdApps/TractographyEvaluation/CMakeLists.txt rename to Modules/DiffusionCmdApps/TractographyEvaluation/CMakeLists.txt index 4328bcc..52758e6 100644 --- a/Modules/DiffusionImaging/DiffusionCmdApps/TractographyEvaluation/CMakeLists.txt +++ b/Modules/DiffusionCmdApps/TractographyEvaluation/CMakeLists.txt @@ -1,46 +1,46 @@ option(BUILD_DiffusionTractographyEvaluationCmdApps "Build commandline tools for diffusion fiber tractography evaluation" OFF) if(BUILD_DiffusionTractographyEvaluationCmdApps OR MITK_BUILD_ALL_APPS) # needed include directories include_directories( ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ) # list of diffusion cmdapps # if an app requires additional dependencies # they are added after a "^^" and separated by "_" set( diffusionTractographyEvaluationcmdapps PeaksAngularError^^ MergeOverlappingTracts^^ GetOverlappingTracts^^ ExtractSimilarTracts^^ AnchorConstrainedPlausibility^^ CalculateOverlap^^ CheckEpsAndOverlap^^ ReferenceSimilarity^^ TractDistance^^ ) foreach(diffusionTractographyEvaluationcmdapp ${diffusionTractographyEvaluationcmdapps}) # extract cmd app name and dependencies string(REPLACE "^^" "\\;" cmdapp_info ${diffusionTractographyEvaluationcmdapp}) set(cmdapp_info_list ${cmdapp_info}) list(GET cmdapp_info_list 0 appname) list(GET cmdapp_info_list 1 raw_dependencies) string(REPLACE "_" "\\;" dependencies "${raw_dependencies}") set(dependencies_list ${dependencies}) mitkFunctionCreateCommandLineApp( NAME ${appname} - DEPENDS MitkDiffusionCmdApps ${dependencies_list} + DEPENDS MitkDiffusionCmdApps MitkMriSimulation ${dependencies_list} PACKAGE_DEPENDS ) endforeach() if(EXECUTABLE_IS_ENABLED) MITK_INSTALL_TARGETS(EXECUTABLES ${EXECUTABLE_TARGET}) endif() endif() diff --git a/Modules/DiffusionImaging/DiffusionCmdApps/TractographyEvaluation/CalculateOverlap.cpp b/Modules/DiffusionCmdApps/TractographyEvaluation/CalculateOverlap.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCmdApps/TractographyEvaluation/CalculateOverlap.cpp rename to Modules/DiffusionCmdApps/TractographyEvaluation/CalculateOverlap.cpp diff --git a/Modules/DiffusionImaging/DiffusionCmdApps/TractographyEvaluation/CheckEpsAndOverlap.cpp b/Modules/DiffusionCmdApps/TractographyEvaluation/CheckEpsAndOverlap.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCmdApps/TractographyEvaluation/CheckEpsAndOverlap.cpp rename to Modules/DiffusionCmdApps/TractographyEvaluation/CheckEpsAndOverlap.cpp diff --git a/Modules/DiffusionImaging/DiffusionCmdApps/TractographyEvaluation/ExtractSimilarTracts.cpp b/Modules/DiffusionCmdApps/TractographyEvaluation/ExtractSimilarTracts.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCmdApps/TractographyEvaluation/ExtractSimilarTracts.cpp rename to Modules/DiffusionCmdApps/TractographyEvaluation/ExtractSimilarTracts.cpp diff --git a/Modules/DiffusionImaging/DiffusionCmdApps/TractographyEvaluation/GetOverlappingTracts.cpp b/Modules/DiffusionCmdApps/TractographyEvaluation/GetOverlappingTracts.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCmdApps/TractographyEvaluation/GetOverlappingTracts.cpp rename to Modules/DiffusionCmdApps/TractographyEvaluation/GetOverlappingTracts.cpp diff --git a/Modules/DiffusionImaging/DiffusionCmdApps/TractographyEvaluation/MergeOverlappingTracts.cpp b/Modules/DiffusionCmdApps/TractographyEvaluation/MergeOverlappingTracts.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCmdApps/TractographyEvaluation/MergeOverlappingTracts.cpp rename to Modules/DiffusionCmdApps/TractographyEvaluation/MergeOverlappingTracts.cpp diff --git a/Modules/DiffusionImaging/DiffusionCmdApps/TractographyEvaluation/PeaksAngularError.cpp b/Modules/DiffusionCmdApps/TractographyEvaluation/PeaksAngularError.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCmdApps/TractographyEvaluation/PeaksAngularError.cpp rename to Modules/DiffusionCmdApps/TractographyEvaluation/PeaksAngularError.cpp diff --git a/Modules/DiffusionImaging/DiffusionCmdApps/TractographyEvaluation/ReferenceSimilarity.cpp b/Modules/DiffusionCmdApps/TractographyEvaluation/ReferenceSimilarity.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCmdApps/TractographyEvaluation/ReferenceSimilarity.cpp rename to Modules/DiffusionCmdApps/TractographyEvaluation/ReferenceSimilarity.cpp diff --git a/Modules/DiffusionImaging/DiffusionCmdApps/TractographyEvaluation/TractDistance.cpp b/Modules/DiffusionCmdApps/TractographyEvaluation/TractDistance.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCmdApps/TractographyEvaluation/TractDistance.cpp rename to Modules/DiffusionCmdApps/TractographyEvaluation/TractDistance.cpp diff --git a/Modules/DiffusionImaging/DiffusionCmdApps/files.cmake b/Modules/DiffusionCmdApps/files.cmake similarity index 100% rename from Modules/DiffusionImaging/DiffusionCmdApps/files.cmake rename to Modules/DiffusionCmdApps/files.cmake diff --git a/Modules/DiffusionImaging/DiffusionCmdApps/mitkDiffusionDataIOHelper.cpp b/Modules/DiffusionCmdApps/mitkDiffusionDataIOHelper.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCmdApps/mitkDiffusionDataIOHelper.cpp rename to Modules/DiffusionCmdApps/mitkDiffusionDataIOHelper.cpp diff --git a/Modules/DiffusionImaging/DiffusionCmdApps/mitkDiffusionDataIOHelper.h b/Modules/DiffusionCmdApps/mitkDiffusionDataIOHelper.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCmdApps/mitkDiffusionDataIOHelper.h rename to Modules/DiffusionCmdApps/mitkDiffusionDataIOHelper.h diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/FittingFunctions/mitkAbstractFitter.h b/Modules/DiffusionCore/Algorithms/Reconstruction/FittingFunctions/mitkAbstractFitter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/FittingFunctions/mitkAbstractFitter.h rename to Modules/DiffusionCore/Algorithms/Reconstruction/FittingFunctions/mitkAbstractFitter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/FittingFunctions/mitkBallStickFitter.h b/Modules/DiffusionCore/Algorithms/Reconstruction/FittingFunctions/mitkBallStickFitter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/FittingFunctions/mitkBallStickFitter.h rename to Modules/DiffusionCore/Algorithms/Reconstruction/FittingFunctions/mitkBallStickFitter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/FittingFunctions/mitkMultiTensorFitter.h b/Modules/DiffusionCore/Algorithms/Reconstruction/FittingFunctions/mitkMultiTensorFitter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/FittingFunctions/mitkMultiTensorFitter.h rename to Modules/DiffusionCore/Algorithms/Reconstruction/FittingFunctions/mitkMultiTensorFitter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/src/Algorithms/Reconstruction/MultishellProcessing/itkADCAverageFunctor.cpp b/Modules/DiffusionCore/Algorithms/Reconstruction/MultishellProcessing/itkADCAverageFunctor.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/src/Algorithms/Reconstruction/MultishellProcessing/itkADCAverageFunctor.cpp rename to Modules/DiffusionCore/Algorithms/Reconstruction/MultishellProcessing/itkADCAverageFunctor.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/MultishellProcessing/itkADCAverageFunctor.h b/Modules/DiffusionCore/Algorithms/Reconstruction/MultishellProcessing/itkADCAverageFunctor.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/MultishellProcessing/itkADCAverageFunctor.h rename to Modules/DiffusionCore/Algorithms/Reconstruction/MultishellProcessing/itkADCAverageFunctor.h diff --git a/Modules/DiffusionImaging/DiffusionCore/src/Algorithms/Reconstruction/MultishellProcessing/itkADCFitFunctor.cpp b/Modules/DiffusionCore/Algorithms/Reconstruction/MultishellProcessing/itkADCFitFunctor.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/src/Algorithms/Reconstruction/MultishellProcessing/itkADCFitFunctor.cpp rename to Modules/DiffusionCore/Algorithms/Reconstruction/MultishellProcessing/itkADCFitFunctor.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/MultishellProcessing/itkADCFitFunctor.h b/Modules/DiffusionCore/Algorithms/Reconstruction/MultishellProcessing/itkADCFitFunctor.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/MultishellProcessing/itkADCFitFunctor.h rename to Modules/DiffusionCore/Algorithms/Reconstruction/MultishellProcessing/itkADCFitFunctor.h diff --git a/Modules/DiffusionImaging/DiffusionCore/src/Algorithms/Reconstruction/MultishellProcessing/itkBiExpFitFunctor.cpp b/Modules/DiffusionCore/Algorithms/Reconstruction/MultishellProcessing/itkBiExpFitFunctor.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/src/Algorithms/Reconstruction/MultishellProcessing/itkBiExpFitFunctor.cpp rename to Modules/DiffusionCore/Algorithms/Reconstruction/MultishellProcessing/itkBiExpFitFunctor.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/MultishellProcessing/itkBiExpFitFunctor.h b/Modules/DiffusionCore/Algorithms/Reconstruction/MultishellProcessing/itkBiExpFitFunctor.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/MultishellProcessing/itkBiExpFitFunctor.h rename to Modules/DiffusionCore/Algorithms/Reconstruction/MultishellProcessing/itkBiExpFitFunctor.h diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/MultishellProcessing/itkDWIVoxelFunctor.h b/Modules/DiffusionCore/Algorithms/Reconstruction/MultishellProcessing/itkDWIVoxelFunctor.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/MultishellProcessing/itkDWIVoxelFunctor.h rename to Modules/DiffusionCore/Algorithms/Reconstruction/MultishellProcessing/itkDWIVoxelFunctor.h diff --git a/Modules/DiffusionImaging/DiffusionCore/src/Algorithms/Reconstruction/MultishellProcessing/itkKurtosisFitFunctor.cpp b/Modules/DiffusionCore/Algorithms/Reconstruction/MultishellProcessing/itkKurtosisFitFunctor.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/src/Algorithms/Reconstruction/MultishellProcessing/itkKurtosisFitFunctor.cpp rename to Modules/DiffusionCore/Algorithms/Reconstruction/MultishellProcessing/itkKurtosisFitFunctor.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/MultishellProcessing/itkKurtosisFitFunctor.h b/Modules/DiffusionCore/Algorithms/Reconstruction/MultishellProcessing/itkKurtosisFitFunctor.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/MultishellProcessing/itkKurtosisFitFunctor.h rename to Modules/DiffusionCore/Algorithms/Reconstruction/MultishellProcessing/itkKurtosisFitFunctor.h diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/MultishellProcessing/itkRadialMultishellToSingleshellImageFilter.cpp b/Modules/DiffusionCore/Algorithms/Reconstruction/MultishellProcessing/itkRadialMultishellToSingleshellImageFilter.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/MultishellProcessing/itkRadialMultishellToSingleshellImageFilter.cpp rename to Modules/DiffusionCore/Algorithms/Reconstruction/MultishellProcessing/itkRadialMultishellToSingleshellImageFilter.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/MultishellProcessing/itkRadialMultishellToSingleshellImageFilter.h b/Modules/DiffusionCore/Algorithms/Reconstruction/MultishellProcessing/itkRadialMultishellToSingleshellImageFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/MultishellProcessing/itkRadialMultishellToSingleshellImageFilter.h rename to Modules/DiffusionCore/Algorithms/Reconstruction/MultishellProcessing/itkRadialMultishellToSingleshellImageFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/itkAnalyticalDiffusionQballReconstructionImageFilter.cpp b/Modules/DiffusionCore/Algorithms/Reconstruction/itkAnalyticalDiffusionQballReconstructionImageFilter.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/itkAnalyticalDiffusionQballReconstructionImageFilter.cpp rename to Modules/DiffusionCore/Algorithms/Reconstruction/itkAnalyticalDiffusionQballReconstructionImageFilter.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/itkAnalyticalDiffusionQballReconstructionImageFilter.h b/Modules/DiffusionCore/Algorithms/Reconstruction/itkAnalyticalDiffusionQballReconstructionImageFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/itkAnalyticalDiffusionQballReconstructionImageFilter.h rename to Modules/DiffusionCore/Algorithms/Reconstruction/itkAnalyticalDiffusionQballReconstructionImageFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/itkBallAndSticksImageFilter.h b/Modules/DiffusionCore/Algorithms/Reconstruction/itkBallAndSticksImageFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/itkBallAndSticksImageFilter.h rename to Modules/DiffusionCore/Algorithms/Reconstruction/itkBallAndSticksImageFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/itkBallAndSticksImageFilter.txx b/Modules/DiffusionCore/Algorithms/Reconstruction/itkBallAndSticksImageFilter.txx similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/itkBallAndSticksImageFilter.txx rename to Modules/DiffusionCore/Algorithms/Reconstruction/itkBallAndSticksImageFilter.txx diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/itkDiffusionIntravoxelIncoherentMotionReconstructionImageFilter.cpp b/Modules/DiffusionCore/Algorithms/Reconstruction/itkDiffusionIntravoxelIncoherentMotionReconstructionImageFilter.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/itkDiffusionIntravoxelIncoherentMotionReconstructionImageFilter.cpp rename to Modules/DiffusionCore/Algorithms/Reconstruction/itkDiffusionIntravoxelIncoherentMotionReconstructionImageFilter.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/itkDiffusionIntravoxelIncoherentMotionReconstructionImageFilter.h b/Modules/DiffusionCore/Algorithms/Reconstruction/itkDiffusionIntravoxelIncoherentMotionReconstructionImageFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/itkDiffusionIntravoxelIncoherentMotionReconstructionImageFilter.h rename to Modules/DiffusionCore/Algorithms/Reconstruction/itkDiffusionIntravoxelIncoherentMotionReconstructionImageFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/itkDiffusionKurtosisReconstructionImageFilter.cxx b/Modules/DiffusionCore/Algorithms/Reconstruction/itkDiffusionKurtosisReconstructionImageFilter.cxx similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/itkDiffusionKurtosisReconstructionImageFilter.cxx rename to Modules/DiffusionCore/Algorithms/Reconstruction/itkDiffusionKurtosisReconstructionImageFilter.cxx diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/itkDiffusionKurtosisReconstructionImageFilter.h b/Modules/DiffusionCore/Algorithms/Reconstruction/itkDiffusionKurtosisReconstructionImageFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/itkDiffusionKurtosisReconstructionImageFilter.h rename to Modules/DiffusionCore/Algorithms/Reconstruction/itkDiffusionKurtosisReconstructionImageFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/itkDiffusionMultiShellQballReconstructionImageFilter.cpp b/Modules/DiffusionCore/Algorithms/Reconstruction/itkDiffusionMultiShellQballReconstructionImageFilter.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/itkDiffusionMultiShellQballReconstructionImageFilter.cpp rename to Modules/DiffusionCore/Algorithms/Reconstruction/itkDiffusionMultiShellQballReconstructionImageFilter.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/itkDiffusionMultiShellQballReconstructionImageFilter.h b/Modules/DiffusionCore/Algorithms/Reconstruction/itkDiffusionMultiShellQballReconstructionImageFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/itkDiffusionMultiShellQballReconstructionImageFilter.h rename to Modules/DiffusionCore/Algorithms/Reconstruction/itkDiffusionMultiShellQballReconstructionImageFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/itkDiffusionQballReconstructionImageFilter.h b/Modules/DiffusionCore/Algorithms/Reconstruction/itkDiffusionQballReconstructionImageFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/itkDiffusionQballReconstructionImageFilter.h rename to Modules/DiffusionCore/Algorithms/Reconstruction/itkDiffusionQballReconstructionImageFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/itkDiffusionQballReconstructionImageFilter.txx b/Modules/DiffusionCore/Algorithms/Reconstruction/itkDiffusionQballReconstructionImageFilter.txx similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/itkDiffusionQballReconstructionImageFilter.txx rename to Modules/DiffusionCore/Algorithms/Reconstruction/itkDiffusionQballReconstructionImageFilter.txx diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/itkMultiTensorImageFilter.h b/Modules/DiffusionCore/Algorithms/Reconstruction/itkMultiTensorImageFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/itkMultiTensorImageFilter.h rename to Modules/DiffusionCore/Algorithms/Reconstruction/itkMultiTensorImageFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/itkMultiTensorImageFilter.txx b/Modules/DiffusionCore/Algorithms/Reconstruction/itkMultiTensorImageFilter.txx similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/itkMultiTensorImageFilter.txx rename to Modules/DiffusionCore/Algorithms/Reconstruction/itkMultiTensorImageFilter.txx diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/itkOrientationDistributionFunction.h b/Modules/DiffusionCore/Algorithms/Reconstruction/itkOrientationDistributionFunction.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/itkOrientationDistributionFunction.h rename to Modules/DiffusionCore/Algorithms/Reconstruction/itkOrientationDistributionFunction.h diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/itkOrientationDistributionFunction.txx b/Modules/DiffusionCore/Algorithms/Reconstruction/itkOrientationDistributionFunction.txx similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/itkOrientationDistributionFunction.txx rename to Modules/DiffusionCore/Algorithms/Reconstruction/itkOrientationDistributionFunction.txx diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/itkPointShell.h b/Modules/DiffusionCore/Algorithms/Reconstruction/itkPointShell.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/itkPointShell.h rename to Modules/DiffusionCore/Algorithms/Reconstruction/itkPointShell.h diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/itkPointShell.txx b/Modules/DiffusionCore/Algorithms/Reconstruction/itkPointShell.txx similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/itkPointShell.txx rename to Modules/DiffusionCore/Algorithms/Reconstruction/itkPointShell.txx diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/mitkTeemDiffusionTensor3DReconstructionImageFilter.cpp b/Modules/DiffusionCore/Algorithms/Reconstruction/mitkTeemDiffusionTensor3DReconstructionImageFilter.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/mitkTeemDiffusionTensor3DReconstructionImageFilter.cpp rename to Modules/DiffusionCore/Algorithms/Reconstruction/mitkTeemDiffusionTensor3DReconstructionImageFilter.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/mitkTeemDiffusionTensor3DReconstructionImageFilter.h b/Modules/DiffusionCore/Algorithms/Reconstruction/mitkTeemDiffusionTensor3DReconstructionImageFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/mitkTeemDiffusionTensor3DReconstructionImageFilter.h rename to Modules/DiffusionCore/Algorithms/Reconstruction/mitkTeemDiffusionTensor3DReconstructionImageFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/src/Algorithms/Registration/mitkDWIHeadMotionCorrectionFilter.cpp b/Modules/DiffusionCore/Algorithms/Registration/mitkDWIHeadMotionCorrectionFilter.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/src/Algorithms/Registration/mitkDWIHeadMotionCorrectionFilter.cpp rename to Modules/DiffusionCore/Algorithms/Registration/mitkDWIHeadMotionCorrectionFilter.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Registration/mitkDWIHeadMotionCorrectionFilter.h b/Modules/DiffusionCore/Algorithms/Registration/mitkDWIHeadMotionCorrectionFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Registration/mitkDWIHeadMotionCorrectionFilter.h rename to Modules/DiffusionCore/Algorithms/Registration/mitkDWIHeadMotionCorrectionFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/src/Algorithms/Registration/mitkPyramidImageRegistrationMethod.cpp b/Modules/DiffusionCore/Algorithms/Registration/mitkPyramidImageRegistrationMethod.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/src/Algorithms/Registration/mitkPyramidImageRegistrationMethod.cpp rename to Modules/DiffusionCore/Algorithms/Registration/mitkPyramidImageRegistrationMethod.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Registration/mitkPyramidImageRegistrationMethod.h b/Modules/DiffusionCore/Algorithms/Registration/mitkPyramidImageRegistrationMethod.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Registration/mitkPyramidImageRegistrationMethod.h rename to Modules/DiffusionCore/Algorithms/Registration/mitkPyramidImageRegistrationMethod.h diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Registration/mitkPyramidRegistrationMethodHelper.h b/Modules/DiffusionCore/Algorithms/Registration/mitkPyramidRegistrationMethodHelper.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Registration/mitkPyramidRegistrationMethodHelper.h rename to Modules/DiffusionCore/Algorithms/Registration/mitkPyramidRegistrationMethodHelper.h diff --git a/Modules/DiffusionImaging/DiffusionCore/src/Algorithms/Registration/mitkRegistrationWrapper.cpp b/Modules/DiffusionCore/Algorithms/Registration/mitkRegistrationWrapper.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/src/Algorithms/Registration/mitkRegistrationWrapper.cpp rename to Modules/DiffusionCore/Algorithms/Registration/mitkRegistrationWrapper.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Registration/mitkRegistrationWrapper.h b/Modules/DiffusionCore/Algorithms/Registration/mitkRegistrationWrapper.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Registration/mitkRegistrationWrapper.h rename to Modules/DiffusionCore/Algorithms/Registration/mitkRegistrationWrapper.h diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkAdcImageFilter.h b/Modules/DiffusionCore/Algorithms/itkAdcImageFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkAdcImageFilter.h rename to Modules/DiffusionCore/Algorithms/itkAdcImageFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkAdcImageFilter.txx b/Modules/DiffusionCore/Algorithms/itkAdcImageFilter.txx similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkAdcImageFilter.txx rename to Modules/DiffusionCore/Algorithms/itkAdcImageFilter.txx diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkB0ImageExtractionImageFilter.h b/Modules/DiffusionCore/Algorithms/itkB0ImageExtractionImageFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkB0ImageExtractionImageFilter.h rename to Modules/DiffusionCore/Algorithms/itkB0ImageExtractionImageFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkB0ImageExtractionImageFilter.txx b/Modules/DiffusionCore/Algorithms/itkB0ImageExtractionImageFilter.txx similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkB0ImageExtractionImageFilter.txx rename to Modules/DiffusionCore/Algorithms/itkB0ImageExtractionImageFilter.txx diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkB0ImageExtractionToSeparateImageFilter.h b/Modules/DiffusionCore/Algorithms/itkB0ImageExtractionToSeparateImageFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkB0ImageExtractionToSeparateImageFilter.h rename to Modules/DiffusionCore/Algorithms/itkB0ImageExtractionToSeparateImageFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkB0ImageExtractionToSeparateImageFilter.txx b/Modules/DiffusionCore/Algorithms/itkB0ImageExtractionToSeparateImageFilter.txx similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkB0ImageExtractionToSeparateImageFilter.txx rename to Modules/DiffusionCore/Algorithms/itkB0ImageExtractionToSeparateImageFilter.txx diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkBrainMaskExtractionImageFilter.h b/Modules/DiffusionCore/Algorithms/itkBrainMaskExtractionImageFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkBrainMaskExtractionImageFilter.h rename to Modules/DiffusionCore/Algorithms/itkBrainMaskExtractionImageFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkBrainMaskExtractionImageFilter.txx b/Modules/DiffusionCore/Algorithms/itkBrainMaskExtractionImageFilter.txx similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkBrainMaskExtractionImageFilter.txx rename to Modules/DiffusionCore/Algorithms/itkBrainMaskExtractionImageFilter.txx diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkCartesianToPolarVectorImageFilter.h b/Modules/DiffusionCore/Algorithms/itkCartesianToPolarVectorImageFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkCartesianToPolarVectorImageFilter.h rename to Modules/DiffusionCore/Algorithms/itkCartesianToPolarVectorImageFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkDiffusionOdfGeneralizedFaImageFilter.h b/Modules/DiffusionCore/Algorithms/itkDiffusionOdfGeneralizedFaImageFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkDiffusionOdfGeneralizedFaImageFilter.h rename to Modules/DiffusionCore/Algorithms/itkDiffusionOdfGeneralizedFaImageFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkDiffusionOdfGeneralizedFaImageFilter.txx b/Modules/DiffusionCore/Algorithms/itkDiffusionOdfGeneralizedFaImageFilter.txx similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkDiffusionOdfGeneralizedFaImageFilter.txx rename to Modules/DiffusionCore/Algorithms/itkDiffusionOdfGeneralizedFaImageFilter.txx diff --git a/Modules/DiffusionImaging/DiffusionCore/src/Algorithms/itkDiffusionOdfPrepareVisualizationImageFilter.cpp b/Modules/DiffusionCore/Algorithms/itkDiffusionOdfPrepareVisualizationImageFilter.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/src/Algorithms/itkDiffusionOdfPrepareVisualizationImageFilter.cpp rename to Modules/DiffusionCore/Algorithms/itkDiffusionOdfPrepareVisualizationImageFilter.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkDiffusionOdfPrepareVisualizationImageFilter.h b/Modules/DiffusionCore/Algorithms/itkDiffusionOdfPrepareVisualizationImageFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkDiffusionOdfPrepareVisualizationImageFilter.h rename to Modules/DiffusionCore/Algorithms/itkDiffusionOdfPrepareVisualizationImageFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkDiffusionTensorPrincipalDirectionImageFilter.h b/Modules/DiffusionCore/Algorithms/itkDiffusionTensorPrincipalDirectionImageFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkDiffusionTensorPrincipalDirectionImageFilter.h rename to Modules/DiffusionCore/Algorithms/itkDiffusionTensorPrincipalDirectionImageFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkDiffusionTensorPrincipalDirectionImageFilter.txx b/Modules/DiffusionCore/Algorithms/itkDiffusionTensorPrincipalDirectionImageFilter.txx similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkDiffusionTensorPrincipalDirectionImageFilter.txx rename to Modules/DiffusionCore/Algorithms/itkDiffusionTensorPrincipalDirectionImageFilter.txx diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkDistanceMapFilter.h b/Modules/DiffusionCore/Algorithms/itkDistanceMapFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkDistanceMapFilter.h rename to Modules/DiffusionCore/Algorithms/itkDistanceMapFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkDistanceMapFilter.txx b/Modules/DiffusionCore/Algorithms/itkDistanceMapFilter.txx similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkDistanceMapFilter.txx rename to Modules/DiffusionCore/Algorithms/itkDistanceMapFilter.txx diff --git a/Modules/DiffusionImaging/DiffusionCore/src/Algorithms/itkDwiGradientLengthCorrectionFilter.cpp b/Modules/DiffusionCore/Algorithms/itkDwiGradientLengthCorrectionFilter.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/src/Algorithms/itkDwiGradientLengthCorrectionFilter.cpp rename to Modules/DiffusionCore/Algorithms/itkDwiGradientLengthCorrectionFilter.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkDwiGradientLengthCorrectionFilter.h b/Modules/DiffusionCore/Algorithms/itkDwiGradientLengthCorrectionFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkDwiGradientLengthCorrectionFilter.h rename to Modules/DiffusionCore/Algorithms/itkDwiGradientLengthCorrectionFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkDwiNormilzationFilter.h b/Modules/DiffusionCore/Algorithms/itkDwiNormilzationFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkDwiNormilzationFilter.h rename to Modules/DiffusionCore/Algorithms/itkDwiNormilzationFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkDwiNormilzationFilter.txx b/Modules/DiffusionCore/Algorithms/itkDwiNormilzationFilter.txx similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkDwiNormilzationFilter.txx rename to Modules/DiffusionCore/Algorithms/itkDwiNormilzationFilter.txx diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkElectrostaticRepulsionDiffusionGradientReductionFilter.h b/Modules/DiffusionCore/Algorithms/itkElectrostaticRepulsionDiffusionGradientReductionFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkElectrostaticRepulsionDiffusionGradientReductionFilter.h rename to Modules/DiffusionCore/Algorithms/itkElectrostaticRepulsionDiffusionGradientReductionFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkElectrostaticRepulsionDiffusionGradientReductionFilter.txx b/Modules/DiffusionCore/Algorithms/itkElectrostaticRepulsionDiffusionGradientReductionFilter.txx similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkElectrostaticRepulsionDiffusionGradientReductionFilter.txx rename to Modules/DiffusionCore/Algorithms/itkElectrostaticRepulsionDiffusionGradientReductionFilter.txx diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkExtractChannelFromRgbaImageFilter.cpp b/Modules/DiffusionCore/Algorithms/itkExtractChannelFromRgbaImageFilter.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkExtractChannelFromRgbaImageFilter.cpp rename to Modules/DiffusionCore/Algorithms/itkExtractChannelFromRgbaImageFilter.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkExtractChannelFromRgbaImageFilter.h b/Modules/DiffusionCore/Algorithms/itkExtractChannelFromRgbaImageFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkExtractChannelFromRgbaImageFilter.h rename to Modules/DiffusionCore/Algorithms/itkExtractChannelFromRgbaImageFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkExtractDwiChannelFilter.h b/Modules/DiffusionCore/Algorithms/itkExtractDwiChannelFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkExtractDwiChannelFilter.h rename to Modules/DiffusionCore/Algorithms/itkExtractDwiChannelFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkExtractDwiChannelFilter.txx b/Modules/DiffusionCore/Algorithms/itkExtractDwiChannelFilter.txx similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkExtractDwiChannelFilter.txx rename to Modules/DiffusionCore/Algorithms/itkExtractDwiChannelFilter.txx diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkFlipPeaksFilter.cpp b/Modules/DiffusionCore/Algorithms/itkFlipPeaksFilter.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkFlipPeaksFilter.cpp rename to Modules/DiffusionCore/Algorithms/itkFlipPeaksFilter.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkFlipPeaksFilter.h b/Modules/DiffusionCore/Algorithms/itkFlipPeaksFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkFlipPeaksFilter.h rename to Modules/DiffusionCore/Algorithms/itkFlipPeaksFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkFourDToVectorImageFilter.cpp b/Modules/DiffusionCore/Algorithms/itkFourDToVectorImageFilter.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkFourDToVectorImageFilter.cpp rename to Modules/DiffusionCore/Algorithms/itkFourDToVectorImageFilter.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkFourDToVectorImageFilter.h b/Modules/DiffusionCore/Algorithms/itkFourDToVectorImageFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkFourDToVectorImageFilter.h rename to Modules/DiffusionCore/Algorithms/itkFourDToVectorImageFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkGaussianInterpolateImageFunction.h b/Modules/DiffusionCore/Algorithms/itkGaussianInterpolateImageFunction.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkGaussianInterpolateImageFunction.h rename to Modules/DiffusionCore/Algorithms/itkGaussianInterpolateImageFunction.h diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkGaussianInterpolateImageFunction.txx b/Modules/DiffusionCore/Algorithms/itkGaussianInterpolateImageFunction.txx similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkGaussianInterpolateImageFunction.txx rename to Modules/DiffusionCore/Algorithms/itkGaussianInterpolateImageFunction.txx diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkMergeDiffusionImagesFilter.h b/Modules/DiffusionCore/Algorithms/itkMergeDiffusionImagesFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkMergeDiffusionImagesFilter.h rename to Modules/DiffusionCore/Algorithms/itkMergeDiffusionImagesFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkMergeDiffusionImagesFilter.txx b/Modules/DiffusionCore/Algorithms/itkMergeDiffusionImagesFilter.txx similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkMergeDiffusionImagesFilter.txx rename to Modules/DiffusionCore/Algorithms/itkMergeDiffusionImagesFilter.txx diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkNonLocalMeansDenoisingFilter.h b/Modules/DiffusionCore/Algorithms/itkNonLocalMeansDenoisingFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkNonLocalMeansDenoisingFilter.h rename to Modules/DiffusionCore/Algorithms/itkNonLocalMeansDenoisingFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkNonLocalMeansDenoisingFilter.txx b/Modules/DiffusionCore/Algorithms/itkNonLocalMeansDenoisingFilter.txx similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkNonLocalMeansDenoisingFilter.txx rename to Modules/DiffusionCore/Algorithms/itkNonLocalMeansDenoisingFilter.txx diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkOdfMaximaExtractionFilter.cpp b/Modules/DiffusionCore/Algorithms/itkOdfMaximaExtractionFilter.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkOdfMaximaExtractionFilter.cpp rename to Modules/DiffusionCore/Algorithms/itkOdfMaximaExtractionFilter.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkOdfMaximaExtractionFilter.h b/Modules/DiffusionCore/Algorithms/itkOdfMaximaExtractionFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkOdfMaximaExtractionFilter.h rename to Modules/DiffusionCore/Algorithms/itkOdfMaximaExtractionFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkOdfToRgbImageFilter.h b/Modules/DiffusionCore/Algorithms/itkOdfToRgbImageFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkOdfToRgbImageFilter.h rename to Modules/DiffusionCore/Algorithms/itkOdfToRgbImageFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkPolarToCartesianVectorImageFilter.h b/Modules/DiffusionCore/Algorithms/itkPolarToCartesianVectorImageFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkPolarToCartesianVectorImageFilter.h rename to Modules/DiffusionCore/Algorithms/itkPolarToCartesianVectorImageFilter.h diff --git a/Modules/DiffusionImaging/Quantification/Algorithms/itkRegularizedIVIMLocalVariationImageFilter.h b/Modules/DiffusionCore/Algorithms/itkRegularizedIVIMLocalVariationImageFilter.h similarity index 100% rename from Modules/DiffusionImaging/Quantification/Algorithms/itkRegularizedIVIMLocalVariationImageFilter.h rename to Modules/DiffusionCore/Algorithms/itkRegularizedIVIMLocalVariationImageFilter.h diff --git a/Modules/DiffusionImaging/Quantification/Algorithms/itkRegularizedIVIMLocalVariationImageFilter.txx b/Modules/DiffusionCore/Algorithms/itkRegularizedIVIMLocalVariationImageFilter.txx similarity index 100% rename from Modules/DiffusionImaging/Quantification/Algorithms/itkRegularizedIVIMLocalVariationImageFilter.txx rename to Modules/DiffusionCore/Algorithms/itkRegularizedIVIMLocalVariationImageFilter.txx diff --git a/Modules/DiffusionImaging/Quantification/Algorithms/itkRegularizedIVIMReconstructionFilter.h b/Modules/DiffusionCore/Algorithms/itkRegularizedIVIMReconstructionFilter.h similarity index 100% rename from Modules/DiffusionImaging/Quantification/Algorithms/itkRegularizedIVIMReconstructionFilter.h rename to Modules/DiffusionCore/Algorithms/itkRegularizedIVIMReconstructionFilter.h diff --git a/Modules/DiffusionImaging/Quantification/Algorithms/itkRegularizedIVIMReconstructionFilter.txx b/Modules/DiffusionCore/Algorithms/itkRegularizedIVIMReconstructionFilter.txx similarity index 100% rename from Modules/DiffusionImaging/Quantification/Algorithms/itkRegularizedIVIMReconstructionFilter.txx rename to Modules/DiffusionCore/Algorithms/itkRegularizedIVIMReconstructionFilter.txx diff --git a/Modules/DiffusionImaging/Quantification/Algorithms/itkRegularizedIVIMReconstructionSingleIteration.h b/Modules/DiffusionCore/Algorithms/itkRegularizedIVIMReconstructionSingleIteration.h similarity index 100% rename from Modules/DiffusionImaging/Quantification/Algorithms/itkRegularizedIVIMReconstructionSingleIteration.h rename to Modules/DiffusionCore/Algorithms/itkRegularizedIVIMReconstructionSingleIteration.h diff --git a/Modules/DiffusionImaging/Quantification/Algorithms/itkRegularizedIVIMReconstructionSingleIteration.txx b/Modules/DiffusionCore/Algorithms/itkRegularizedIVIMReconstructionSingleIteration.txx similarity index 100% rename from Modules/DiffusionImaging/Quantification/Algorithms/itkRegularizedIVIMReconstructionSingleIteration.txx rename to Modules/DiffusionCore/Algorithms/itkRegularizedIVIMReconstructionSingleIteration.txx diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkRemoveDwiChannelFilter.h b/Modules/DiffusionCore/Algorithms/itkRemoveDwiChannelFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkRemoveDwiChannelFilter.h rename to Modules/DiffusionCore/Algorithms/itkRemoveDwiChannelFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkRemoveDwiChannelFilter.txx b/Modules/DiffusionCore/Algorithms/itkRemoveDwiChannelFilter.txx similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkRemoveDwiChannelFilter.txx rename to Modules/DiffusionCore/Algorithms/itkRemoveDwiChannelFilter.txx diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkResampleDwiImageFilter.h b/Modules/DiffusionCore/Algorithms/itkResampleDwiImageFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkResampleDwiImageFilter.h rename to Modules/DiffusionCore/Algorithms/itkResampleDwiImageFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkResampleDwiImageFilter.txx b/Modules/DiffusionCore/Algorithms/itkResampleDwiImageFilter.txx similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkResampleDwiImageFilter.txx rename to Modules/DiffusionCore/Algorithms/itkResampleDwiImageFilter.txx diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkResidualImageFilter.h b/Modules/DiffusionCore/Algorithms/itkResidualImageFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkResidualImageFilter.h rename to Modules/DiffusionCore/Algorithms/itkResidualImageFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkResidualImageFilter.txx b/Modules/DiffusionCore/Algorithms/itkResidualImageFilter.txx similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkResidualImageFilter.txx rename to Modules/DiffusionCore/Algorithms/itkResidualImageFilter.txx diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkShCoefficientImageExporter.cpp b/Modules/DiffusionCore/Algorithms/itkShCoefficientImageExporter.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkShCoefficientImageExporter.cpp rename to Modules/DiffusionCore/Algorithms/itkShCoefficientImageExporter.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkShCoefficientImageExporter.h b/Modules/DiffusionCore/Algorithms/itkShCoefficientImageExporter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkShCoefficientImageExporter.h rename to Modules/DiffusionCore/Algorithms/itkShCoefficientImageExporter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkShCoefficientImageImporter.cpp b/Modules/DiffusionCore/Algorithms/itkShCoefficientImageImporter.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkShCoefficientImageImporter.cpp rename to Modules/DiffusionCore/Algorithms/itkShCoefficientImageImporter.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkShCoefficientImageImporter.h b/Modules/DiffusionCore/Algorithms/itkShCoefficientImageImporter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkShCoefficientImageImporter.h rename to Modules/DiffusionCore/Algorithms/itkShCoefficientImageImporter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkShToOdfImageFilter.cpp b/Modules/DiffusionCore/Algorithms/itkShToOdfImageFilter.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkShToOdfImageFilter.cpp rename to Modules/DiffusionCore/Algorithms/itkShToOdfImageFilter.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkShToOdfImageFilter.h b/Modules/DiffusionCore/Algorithms/itkShToOdfImageFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkShToOdfImageFilter.h rename to Modules/DiffusionCore/Algorithms/itkShToOdfImageFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkShToRgbImageFilter.h b/Modules/DiffusionCore/Algorithms/itkShToRgbImageFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkShToRgbImageFilter.h rename to Modules/DiffusionCore/Algorithms/itkShToRgbImageFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkSplitDWImageFilter.h b/Modules/DiffusionCore/Algorithms/itkSplitDWImageFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkSplitDWImageFilter.h rename to Modules/DiffusionCore/Algorithms/itkSplitDWImageFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkSplitDWImageFilter.txx b/Modules/DiffusionCore/Algorithms/itkSplitDWImageFilter.txx similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkSplitDWImageFilter.txx rename to Modules/DiffusionCore/Algorithms/itkSplitDWImageFilter.txx diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkSplitVectorImageFilter.cpp b/Modules/DiffusionCore/Algorithms/itkSplitVectorImageFilter.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkSplitVectorImageFilter.cpp rename to Modules/DiffusionCore/Algorithms/itkSplitVectorImageFilter.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkSplitVectorImageFilter.h b/Modules/DiffusionCore/Algorithms/itkSplitVectorImageFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkSplitVectorImageFilter.h rename to Modules/DiffusionCore/Algorithms/itkSplitVectorImageFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkTensorDerivedMeasurementsFilter.h b/Modules/DiffusionCore/Algorithms/itkTensorDerivedMeasurementsFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkTensorDerivedMeasurementsFilter.h rename to Modules/DiffusionCore/Algorithms/itkTensorDerivedMeasurementsFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkTensorDerivedMeasurementsFilter.txx b/Modules/DiffusionCore/Algorithms/itkTensorDerivedMeasurementsFilter.txx similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkTensorDerivedMeasurementsFilter.txx rename to Modules/DiffusionCore/Algorithms/itkTensorDerivedMeasurementsFilter.txx diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkTensorImageToDiffusionImageFilter.h b/Modules/DiffusionCore/Algorithms/itkTensorImageToDiffusionImageFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkTensorImageToDiffusionImageFilter.h rename to Modules/DiffusionCore/Algorithms/itkTensorImageToDiffusionImageFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkTensorImageToDiffusionImageFilter.txx b/Modules/DiffusionCore/Algorithms/itkTensorImageToDiffusionImageFilter.txx similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkTensorImageToDiffusionImageFilter.txx rename to Modules/DiffusionCore/Algorithms/itkTensorImageToDiffusionImageFilter.txx diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkTensorImageToOdfImageFilter.h b/Modules/DiffusionCore/Algorithms/itkTensorImageToOdfImageFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkTensorImageToOdfImageFilter.h rename to Modules/DiffusionCore/Algorithms/itkTensorImageToOdfImageFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkTensorImageToOdfImageFilter.txx b/Modules/DiffusionCore/Algorithms/itkTensorImageToOdfImageFilter.txx similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkTensorImageToOdfImageFilter.txx rename to Modules/DiffusionCore/Algorithms/itkTensorImageToOdfImageFilter.txx diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkTensorReconstructionWithEigenvalueCorrectionFilter.h b/Modules/DiffusionCore/Algorithms/itkTensorReconstructionWithEigenvalueCorrectionFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkTensorReconstructionWithEigenvalueCorrectionFilter.h rename to Modules/DiffusionCore/Algorithms/itkTensorReconstructionWithEigenvalueCorrectionFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkTensorReconstructionWithEigenvalueCorrectionFilter.txx b/Modules/DiffusionCore/Algorithms/itkTensorReconstructionWithEigenvalueCorrectionFilter.txx similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkTensorReconstructionWithEigenvalueCorrectionFilter.txx rename to Modules/DiffusionCore/Algorithms/itkTensorReconstructionWithEigenvalueCorrectionFilter.txx diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkTensorToL2NormImageFilter.h b/Modules/DiffusionCore/Algorithms/itkTensorToL2NormImageFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkTensorToL2NormImageFilter.h rename to Modules/DiffusionCore/Algorithms/itkTensorToL2NormImageFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkTensorToL2NormImageFilter.txx b/Modules/DiffusionCore/Algorithms/itkTensorToL2NormImageFilter.txx similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkTensorToL2NormImageFilter.txx rename to Modules/DiffusionCore/Algorithms/itkTensorToL2NormImageFilter.txx diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkTensorToRgbImageFilter.h b/Modules/DiffusionCore/Algorithms/itkTensorToRgbImageFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkTensorToRgbImageFilter.h rename to Modules/DiffusionCore/Algorithms/itkTensorToRgbImageFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkVectorImageToFourDImageFilter.cpp b/Modules/DiffusionCore/Algorithms/itkVectorImageToFourDImageFilter.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkVectorImageToFourDImageFilter.cpp rename to Modules/DiffusionCore/Algorithms/itkVectorImageToFourDImageFilter.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkVectorImageToFourDImageFilter.h b/Modules/DiffusionCore/Algorithms/itkVectorImageToFourDImageFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkVectorImageToFourDImageFilter.h rename to Modules/DiffusionCore/Algorithms/itkVectorImageToFourDImageFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkVectorImageToImageFilter.h b/Modules/DiffusionCore/Algorithms/itkVectorImageToImageFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkVectorImageToImageFilter.h rename to Modules/DiffusionCore/Algorithms/itkVectorImageToImageFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkVectorImageToImageFilter.txx b/Modules/DiffusionCore/Algorithms/itkVectorImageToImageFilter.txx similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkVectorImageToImageFilter.txx rename to Modules/DiffusionCore/Algorithms/itkVectorImageToImageFilter.txx diff --git a/Modules/DiffusionImaging/DiffusionCore/src/Algorithms/mitkPartialVolumeAnalysisClusteringCalculator.cpp b/Modules/DiffusionCore/Algorithms/mitkPartialVolumeAnalysisClusteringCalculator.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/src/Algorithms/mitkPartialVolumeAnalysisClusteringCalculator.cpp rename to Modules/DiffusionCore/Algorithms/mitkPartialVolumeAnalysisClusteringCalculator.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/mitkPartialVolumeAnalysisClusteringCalculator.h b/Modules/DiffusionCore/Algorithms/mitkPartialVolumeAnalysisClusteringCalculator.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/mitkPartialVolumeAnalysisClusteringCalculator.h rename to Modules/DiffusionCore/Algorithms/mitkPartialVolumeAnalysisClusteringCalculator.h diff --git a/Modules/DiffusionImaging/DiffusionCore/src/Algorithms/mitkPartialVolumeAnalysisHistogramCalculator.cpp b/Modules/DiffusionCore/Algorithms/mitkPartialVolumeAnalysisHistogramCalculator.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/src/Algorithms/mitkPartialVolumeAnalysisHistogramCalculator.cpp rename to Modules/DiffusionCore/Algorithms/mitkPartialVolumeAnalysisHistogramCalculator.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/mitkPartialVolumeAnalysisHistogramCalculator.h b/Modules/DiffusionCore/Algorithms/mitkPartialVolumeAnalysisHistogramCalculator.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Algorithms/mitkPartialVolumeAnalysisHistogramCalculator.h rename to Modules/DiffusionCore/Algorithms/mitkPartialVolumeAnalysisHistogramCalculator.h diff --git a/Modules/DiffusionCore/CMakeLists.txt b/Modules/DiffusionCore/CMakeLists.txt new file mode 100644 index 0000000..f633eb1 --- /dev/null +++ b/Modules/DiffusionCore/CMakeLists.txt @@ -0,0 +1,24 @@ +# With apple gcc 4.2.1 the following waring leads to an build error if boost is enabled +if(APPLE) + mitkFunctionCheckCAndCXXCompilerFlags("-Wno-error=empty-body" CMAKE_C_FLAGS CMAKE_CXX_FLAGS) +endif() + +MITK_CREATE_MODULE( + SUBPROJECTS MITK-Diffusion + INCLUDE_DIRS Algorithms Algorithms/Reconstruction Algorithms/Registration Algorithms/Reconstruction/MultishellProcessing Algorithms/Reconstruction/FittingFunctions DicomImport IODataStructures/DiffusionWeightedImages IODataStructures/Properties IODataStructures Rendering ${CMAKE_CURRENT_BINARY_DIR} + DEPENDS MitkMapperExt MitkPlanarFigure MitkImageExtraction MitkDICOMReader MitkMatchPointRegistration + PACKAGE_DEPENDS + PUBLIC VTK|vtkFiltersProgrammable Vigra HDF5 +) + +if(MSVC) + mitkFunctionCheckCAndCXXCompilerFlags("/wd4005" CMAKE_C_FLAGS CMAKE_CXX_FLAGS) +endif() + +add_subdirectory(Testing) + +if(MITK_USE_Python) +MITK_INSTALL(FILES PythonRequirements.txt) +endif() + +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/mitkDiffusionImagingConfigure.h.in ${CMAKE_CURRENT_BINARY_DIR}/mitkDiffusionImagingConfigure.h) diff --git a/Modules/DiffusionImaging/DiffusionCore/src/DicomImport/mitkDicomDiffusionImageHeaderReader.cpp b/Modules/DiffusionCore/DicomImport/mitkDicomDiffusionImageHeaderReader.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/src/DicomImport/mitkDicomDiffusionImageHeaderReader.cpp rename to Modules/DiffusionCore/DicomImport/mitkDicomDiffusionImageHeaderReader.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/include/DicomImport/mitkDicomDiffusionImageHeaderReader.h b/Modules/DiffusionCore/DicomImport/mitkDicomDiffusionImageHeaderReader.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/DicomImport/mitkDicomDiffusionImageHeaderReader.h rename to Modules/DiffusionCore/DicomImport/mitkDicomDiffusionImageHeaderReader.h diff --git a/Modules/DiffusionImaging/DiffusionCore/include/DicomImport/mitkDicomDiffusionImageReader.cpp b/Modules/DiffusionCore/DicomImport/mitkDicomDiffusionImageReader.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/DicomImport/mitkDicomDiffusionImageReader.cpp rename to Modules/DiffusionCore/DicomImport/mitkDicomDiffusionImageReader.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/include/DicomImport/mitkDicomDiffusionImageReader.h b/Modules/DiffusionCore/DicomImport/mitkDicomDiffusionImageReader.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/DicomImport/mitkDicomDiffusionImageReader.h rename to Modules/DiffusionCore/DicomImport/mitkDicomDiffusionImageReader.h diff --git a/Modules/DiffusionImaging/DiffusionCore/src/DicomImport/mitkDiffusionDICOMFileReader.cpp b/Modules/DiffusionCore/DicomImport/mitkDiffusionDICOMFileReader.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/src/DicomImport/mitkDiffusionDICOMFileReader.cpp rename to Modules/DiffusionCore/DicomImport/mitkDiffusionDICOMFileReader.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/include/DicomImport/mitkDiffusionDICOMFileReader.h b/Modules/DiffusionCore/DicomImport/mitkDiffusionDICOMFileReader.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/DicomImport/mitkDiffusionDICOMFileReader.h rename to Modules/DiffusionCore/DicomImport/mitkDiffusionDICOMFileReader.h diff --git a/Modules/DiffusionImaging/DiffusionCore/include/DicomImport/mitkDiffusionDICOMFileReaderHelper.h b/Modules/DiffusionCore/DicomImport/mitkDiffusionDICOMFileReaderHelper.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/DicomImport/mitkDiffusionDICOMFileReaderHelper.h rename to Modules/DiffusionCore/DicomImport/mitkDiffusionDICOMFileReaderHelper.h diff --git a/Modules/DiffusionImaging/DiffusionCore/src/DicomImport/mitkDiffusionHeaderDICOMFileReader.cpp b/Modules/DiffusionCore/DicomImport/mitkDiffusionHeaderDICOMFileReader.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/src/DicomImport/mitkDiffusionHeaderDICOMFileReader.cpp rename to Modules/DiffusionCore/DicomImport/mitkDiffusionHeaderDICOMFileReader.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/include/DicomImport/mitkDiffusionHeaderDICOMFileReader.h b/Modules/DiffusionCore/DicomImport/mitkDiffusionHeaderDICOMFileReader.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/DicomImport/mitkDiffusionHeaderDICOMFileReader.h rename to Modules/DiffusionCore/DicomImport/mitkDiffusionHeaderDICOMFileReader.h diff --git a/Modules/DiffusionImaging/DiffusionCore/src/DicomImport/mitkDiffusionHeaderGEDICOMFileReader.cpp b/Modules/DiffusionCore/DicomImport/mitkDiffusionHeaderGEDICOMFileReader.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/src/DicomImport/mitkDiffusionHeaderGEDICOMFileReader.cpp rename to Modules/DiffusionCore/DicomImport/mitkDiffusionHeaderGEDICOMFileReader.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/include/DicomImport/mitkDiffusionHeaderGEDICOMFileReader.h b/Modules/DiffusionCore/DicomImport/mitkDiffusionHeaderGEDICOMFileReader.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/DicomImport/mitkDiffusionHeaderGEDICOMFileReader.h rename to Modules/DiffusionCore/DicomImport/mitkDiffusionHeaderGEDICOMFileReader.h diff --git a/Modules/DiffusionImaging/DiffusionCore/src/DicomImport/mitkDiffusionHeaderPhilipsDICOMFileReader.cpp b/Modules/DiffusionCore/DicomImport/mitkDiffusionHeaderPhilipsDICOMFileReader.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/src/DicomImport/mitkDiffusionHeaderPhilipsDICOMFileReader.cpp rename to Modules/DiffusionCore/DicomImport/mitkDiffusionHeaderPhilipsDICOMFileReader.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/include/DicomImport/mitkDiffusionHeaderPhilipsDICOMFileReader.h b/Modules/DiffusionCore/DicomImport/mitkDiffusionHeaderPhilipsDICOMFileReader.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/DicomImport/mitkDiffusionHeaderPhilipsDICOMFileReader.h rename to Modules/DiffusionCore/DicomImport/mitkDiffusionHeaderPhilipsDICOMFileReader.h diff --git a/Modules/DiffusionImaging/DiffusionCore/src/DicomImport/mitkDiffusionHeaderSiemensDICOMFileHelper.cpp b/Modules/DiffusionCore/DicomImport/mitkDiffusionHeaderSiemensDICOMFileHelper.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/src/DicomImport/mitkDiffusionHeaderSiemensDICOMFileHelper.cpp rename to Modules/DiffusionCore/DicomImport/mitkDiffusionHeaderSiemensDICOMFileHelper.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/include/DicomImport/mitkDiffusionHeaderSiemensDICOMFileHelper.h b/Modules/DiffusionCore/DicomImport/mitkDiffusionHeaderSiemensDICOMFileHelper.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/DicomImport/mitkDiffusionHeaderSiemensDICOMFileHelper.h rename to Modules/DiffusionCore/DicomImport/mitkDiffusionHeaderSiemensDICOMFileHelper.h diff --git a/Modules/DiffusionImaging/DiffusionCore/src/DicomImport/mitkDiffusionHeaderSiemensDICOMFileReader.cpp b/Modules/DiffusionCore/DicomImport/mitkDiffusionHeaderSiemensDICOMFileReader.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/src/DicomImport/mitkDiffusionHeaderSiemensDICOMFileReader.cpp rename to Modules/DiffusionCore/DicomImport/mitkDiffusionHeaderSiemensDICOMFileReader.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/include/DicomImport/mitkDiffusionHeaderSiemensDICOMFileReader.h b/Modules/DiffusionCore/DicomImport/mitkDiffusionHeaderSiemensDICOMFileReader.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/DicomImport/mitkDiffusionHeaderSiemensDICOMFileReader.h rename to Modules/DiffusionCore/DicomImport/mitkDiffusionHeaderSiemensDICOMFileReader.h diff --git a/Modules/DiffusionImaging/DiffusionCore/src/DicomImport/mitkDiffusionHeaderSiemensMosaicDICOMFileReader.cpp b/Modules/DiffusionCore/DicomImport/mitkDiffusionHeaderSiemensMosaicDICOMFileReader.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/src/DicomImport/mitkDiffusionHeaderSiemensMosaicDICOMFileReader.cpp rename to Modules/DiffusionCore/DicomImport/mitkDiffusionHeaderSiemensMosaicDICOMFileReader.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/include/DicomImport/mitkDiffusionHeaderSiemensMosaicDICOMFileReader.h b/Modules/DiffusionCore/DicomImport/mitkDiffusionHeaderSiemensMosaicDICOMFileReader.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/DicomImport/mitkDiffusionHeaderSiemensMosaicDICOMFileReader.h rename to Modules/DiffusionCore/DicomImport/mitkDiffusionHeaderSiemensMosaicDICOMFileReader.h diff --git a/Modules/DiffusionImaging/DiffusionCore/src/DicomImport/mitkGEDicomDiffusionImageHeaderReader.cpp b/Modules/DiffusionCore/DicomImport/mitkGEDicomDiffusionImageHeaderReader.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/src/DicomImport/mitkGEDicomDiffusionImageHeaderReader.cpp rename to Modules/DiffusionCore/DicomImport/mitkGEDicomDiffusionImageHeaderReader.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/include/DicomImport/mitkGEDicomDiffusionImageHeaderReader.h b/Modules/DiffusionCore/DicomImport/mitkGEDicomDiffusionImageHeaderReader.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/DicomImport/mitkGEDicomDiffusionImageHeaderReader.h rename to Modules/DiffusionCore/DicomImport/mitkGEDicomDiffusionImageHeaderReader.h diff --git a/Modules/DiffusionImaging/DiffusionCore/src/DicomImport/mitkGroupDiffusionHeadersFilter.cpp b/Modules/DiffusionCore/DicomImport/mitkGroupDiffusionHeadersFilter.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/src/DicomImport/mitkGroupDiffusionHeadersFilter.cpp rename to Modules/DiffusionCore/DicomImport/mitkGroupDiffusionHeadersFilter.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/include/DicomImport/mitkGroupDiffusionHeadersFilter.h b/Modules/DiffusionCore/DicomImport/mitkGroupDiffusionHeadersFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/DicomImport/mitkGroupDiffusionHeadersFilter.h rename to Modules/DiffusionCore/DicomImport/mitkGroupDiffusionHeadersFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/src/DicomImport/mitkPhilipsDicomDiffusionImageHeaderReader.cpp b/Modules/DiffusionCore/DicomImport/mitkPhilipsDicomDiffusionImageHeaderReader.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/src/DicomImport/mitkPhilipsDicomDiffusionImageHeaderReader.cpp rename to Modules/DiffusionCore/DicomImport/mitkPhilipsDicomDiffusionImageHeaderReader.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/include/DicomImport/mitkPhilipsDicomDiffusionImageHeaderReader.h b/Modules/DiffusionCore/DicomImport/mitkPhilipsDicomDiffusionImageHeaderReader.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/DicomImport/mitkPhilipsDicomDiffusionImageHeaderReader.h rename to Modules/DiffusionCore/DicomImport/mitkPhilipsDicomDiffusionImageHeaderReader.h diff --git a/Modules/DiffusionImaging/DiffusionCore/src/DicomImport/mitkSiemensDicomDiffusionImageHeaderReader.cpp b/Modules/DiffusionCore/DicomImport/mitkSiemensDicomDiffusionImageHeaderReader.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/src/DicomImport/mitkSiemensDicomDiffusionImageHeaderReader.cpp rename to Modules/DiffusionCore/DicomImport/mitkSiemensDicomDiffusionImageHeaderReader.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/include/DicomImport/mitkSiemensDicomDiffusionImageHeaderReader.h b/Modules/DiffusionCore/DicomImport/mitkSiemensDicomDiffusionImageHeaderReader.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/DicomImport/mitkSiemensDicomDiffusionImageHeaderReader.h rename to Modules/DiffusionCore/DicomImport/mitkSiemensDicomDiffusionImageHeaderReader.h diff --git a/Modules/DiffusionImaging/DiffusionCore/src/DicomImport/mitkSiemensMosaicDicomDiffusionImageHeaderReader.cpp b/Modules/DiffusionCore/DicomImport/mitkSiemensMosaicDicomDiffusionImageHeaderReader.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/src/DicomImport/mitkSiemensMosaicDicomDiffusionImageHeaderReader.cpp rename to Modules/DiffusionCore/DicomImport/mitkSiemensMosaicDicomDiffusionImageHeaderReader.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/include/DicomImport/mitkSiemensMosaicDicomDiffusionImageHeaderReader.h b/Modules/DiffusionCore/DicomImport/mitkSiemensMosaicDicomDiffusionImageHeaderReader.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/DicomImport/mitkSiemensMosaicDicomDiffusionImageHeaderReader.h rename to Modules/DiffusionCore/DicomImport/mitkSiemensMosaicDicomDiffusionImageHeaderReader.h diff --git a/Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageCorrectionFilter.cpp b/Modules/DiffusionCore/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageCorrectionFilter.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageCorrectionFilter.cpp rename to Modules/DiffusionCore/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageCorrectionFilter.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/include/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageCorrectionFilter.h b/Modules/DiffusionCore/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageCorrectionFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageCorrectionFilter.h rename to Modules/DiffusionCore/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageCorrectionFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageCreationFilter.cpp b/Modules/DiffusionCore/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageCreationFilter.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageCreationFilter.cpp rename to Modules/DiffusionCore/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageCreationFilter.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/include/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageCreationFilter.h b/Modules/DiffusionCore/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageCreationFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageCreationFilter.h rename to Modules/DiffusionCore/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageCreationFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageHeaderInformation.cpp b/Modules/DiffusionCore/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageHeaderInformation.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageHeaderInformation.cpp rename to Modules/DiffusionCore/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageHeaderInformation.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/include/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageHeaderInformation.h b/Modules/DiffusionCore/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageHeaderInformation.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageHeaderInformation.h rename to Modules/DiffusionCore/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageHeaderInformation.h diff --git a/Modules/DiffusionImaging/DiffusionCore/include/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageTransformedCreationFilter.cxx b/Modules/DiffusionCore/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageTransformedCreationFilter.cxx similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageTransformedCreationFilter.cxx rename to Modules/DiffusionCore/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageTransformedCreationFilter.cxx diff --git a/Modules/DiffusionImaging/DiffusionCore/include/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageTransformedCreationFilter.h b/Modules/DiffusionCore/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageTransformedCreationFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageTransformedCreationFilter.h rename to Modules/DiffusionCore/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageTransformedCreationFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/Properties/mitkBValueMapProperty.cpp b/Modules/DiffusionCore/IODataStructures/Properties/mitkBValueMapProperty.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/Properties/mitkBValueMapProperty.cpp rename to Modules/DiffusionCore/IODataStructures/Properties/mitkBValueMapProperty.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/include/IODataStructures/Properties/mitkBValueMapProperty.h b/Modules/DiffusionCore/IODataStructures/Properties/mitkBValueMapProperty.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/IODataStructures/Properties/mitkBValueMapProperty.h rename to Modules/DiffusionCore/IODataStructures/Properties/mitkBValueMapProperty.h diff --git a/Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/Properties/mitkBValueMapPropertySerializer.cpp b/Modules/DiffusionCore/IODataStructures/Properties/mitkBValueMapPropertySerializer.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/Properties/mitkBValueMapPropertySerializer.cpp rename to Modules/DiffusionCore/IODataStructures/Properties/mitkBValueMapPropertySerializer.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/Properties/mitkDiffusionPropertyHelper.cpp b/Modules/DiffusionCore/IODataStructures/Properties/mitkDiffusionPropertyHelper.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/Properties/mitkDiffusionPropertyHelper.cpp rename to Modules/DiffusionCore/IODataStructures/Properties/mitkDiffusionPropertyHelper.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/include/IODataStructures/Properties/mitkDiffusionPropertyHelper.h b/Modules/DiffusionCore/IODataStructures/Properties/mitkDiffusionPropertyHelper.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/IODataStructures/Properties/mitkDiffusionPropertyHelper.h rename to Modules/DiffusionCore/IODataStructures/Properties/mitkDiffusionPropertyHelper.h diff --git a/Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/Properties/mitkGradientDirectionsProperty.cpp b/Modules/DiffusionCore/IODataStructures/Properties/mitkGradientDirectionsProperty.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/Properties/mitkGradientDirectionsProperty.cpp rename to Modules/DiffusionCore/IODataStructures/Properties/mitkGradientDirectionsProperty.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/include/IODataStructures/Properties/mitkGradientDirectionsProperty.h b/Modules/DiffusionCore/IODataStructures/Properties/mitkGradientDirectionsProperty.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/IODataStructures/Properties/mitkGradientDirectionsProperty.h rename to Modules/DiffusionCore/IODataStructures/Properties/mitkGradientDirectionsProperty.h diff --git a/Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/Properties/mitkGradientDirectionsPropertySerializer.cpp b/Modules/DiffusionCore/IODataStructures/Properties/mitkGradientDirectionsPropertySerializer.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/Properties/mitkGradientDirectionsPropertySerializer.cpp rename to Modules/DiffusionCore/IODataStructures/Properties/mitkGradientDirectionsPropertySerializer.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/Properties/mitkMeasurementFrameProperty.cpp b/Modules/DiffusionCore/IODataStructures/Properties/mitkMeasurementFrameProperty.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/Properties/mitkMeasurementFrameProperty.cpp rename to Modules/DiffusionCore/IODataStructures/Properties/mitkMeasurementFrameProperty.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/include/IODataStructures/Properties/mitkMeasurementFrameProperty.h b/Modules/DiffusionCore/IODataStructures/Properties/mitkMeasurementFrameProperty.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/IODataStructures/Properties/mitkMeasurementFrameProperty.h rename to Modules/DiffusionCore/IODataStructures/Properties/mitkMeasurementFrameProperty.h diff --git a/Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/Properties/mitkMeasurementFramePropertySerializer.cpp b/Modules/DiffusionCore/IODataStructures/Properties/mitkMeasurementFramePropertySerializer.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/Properties/mitkMeasurementFramePropertySerializer.cpp rename to Modules/DiffusionCore/IODataStructures/Properties/mitkMeasurementFramePropertySerializer.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/Properties/mitkNodePredicateIsDWI.cpp b/Modules/DiffusionCore/IODataStructures/Properties/mitkNodePredicateIsDWI.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/Properties/mitkNodePredicateIsDWI.cpp rename to Modules/DiffusionCore/IODataStructures/Properties/mitkNodePredicateIsDWI.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/include/IODataStructures/Properties/mitkNodePredicateIsDWI.h b/Modules/DiffusionCore/IODataStructures/Properties/mitkNodePredicateIsDWI.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/IODataStructures/Properties/mitkNodePredicateIsDWI.h rename to Modules/DiffusionCore/IODataStructures/Properties/mitkNodePredicateIsDWI.h diff --git a/Modules/DiffusionImaging/FiberTracking/IODataStructures/FiberBundle/mitkFiberBundle.cpp b/Modules/DiffusionCore/IODataStructures/mitkFiberBundle.cpp similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/IODataStructures/FiberBundle/mitkFiberBundle.cpp rename to Modules/DiffusionCore/IODataStructures/mitkFiberBundle.cpp diff --git a/Modules/DiffusionImaging/FiberTracking/IODataStructures/FiberBundle/mitkFiberBundle.h b/Modules/DiffusionCore/IODataStructures/mitkFiberBundle.h similarity index 98% rename from Modules/DiffusionImaging/FiberTracking/IODataStructures/FiberBundle/mitkFiberBundle.h rename to Modules/DiffusionCore/IODataStructures/mitkFiberBundle.h index 349c199..377f42d 100644 --- a/Modules/DiffusionImaging/FiberTracking/IODataStructures/FiberBundle/mitkFiberBundle.h +++ b/Modules/DiffusionCore/IODataStructures/mitkFiberBundle.h @@ -1,214 +1,214 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ #ifndef _MITK_FiberBundle_H #define _MITK_FiberBundle_H //includes for MITK datastructure #include -#include +#include #include #include #include #include #include #include //includes storing fiberdata #include #include #include #include #include #include #include #include namespace mitk { /** * \brief Base Class for Fiber Bundles; */ -class MITKFIBERTRACKING_EXPORT FiberBundle : public BaseData +class MITKDIFFUSIONCORE_EXPORT FiberBundle : public BaseData { public: typedef itk::Image ItkUcharImgType; // fiber colorcodings static const char* FIBER_ID_ARRAY; void UpdateOutputInformation() override; void SetRequestedRegionToLargestPossibleRegion() override; bool RequestedRegionIsOutsideOfTheBufferedRegion() override; bool VerifyRequestedRegion() override; void SetRequestedRegion(const itk::DataObject*) override; mitkClassMacro( FiberBundle, BaseData ) itkFactorylessNewMacro(Self) itkCloneMacro(Self) mitkNewMacro1Param(Self, vtkSmartPointer) // custom constructor // colorcoding related methods void ColorFibersByFiberWeights(bool opacity, bool normalize); void ColorFibersByCurvature(bool opacity, bool normalize); void ColorFibersByLength(bool opacity, bool normalize); void ColorFibersByScalarMap(mitk::Image::Pointer, bool opacity, bool normalize); template void ColorFibersByScalarMap(const mitk::PixelType pixelType, mitk::Image::Pointer, bool opacity, bool normalize); void ColorFibersByOrientation(); void SetFiberOpacity(vtkDoubleArray *FAValArray); void ResetFiberOpacity(); void SetFiberColors(vtkSmartPointer fiberColors); void SetFiberColors(float r, float g, float b, float alpha=255); vtkSmartPointer GetFiberColors() const { return m_FiberColors; } // fiber compression void Compress(float error = 0.0); // fiber resampling void ResampleSpline(float pointDistance=1); void ResampleSpline(float pointDistance, double tension, double continuity, double bias ); void ResampleLinear(double pointDistance=1); void ResampleToNumPoints(unsigned int targetPoints); mitk::FiberBundle::Pointer FilterByWeights(float weight_thr, bool invert=false); bool RemoveShortFibers(float lengthInMM); bool RemoveLongFibers(float lengthInMM); bool ApplyCurvatureThreshold(float minRadius, bool deleteFibers); void MirrorFibers(unsigned int axis); void RotateAroundAxis(double x, double y, double z); void TranslateFibers(double x, double y, double z); void ScaleFibers(double x, double y, double z, bool subtractCenter=true); void TransformFibers(double rx, double ry, double rz, double tx, double ty, double tz); void TransformFibers(itk::ScalableAffineTransform< mitk::ScalarType >::Pointer transform); void RemoveDir(vnl_vector_fixed dir, double threshold); template< class TType=float > void TransformPoint(itk::Point& point, itk::Matrix< TType, 3, 3>& rot, TType& tx, TType& ty, TType& tz) { mitk::Point3D center = this->GetGeometry()->GetCenter(); point[0] -= center[0]; point[1] -= center[1]; point[2] -= center[2]; point = rot*point; point[0] += center[0]+tx; point[1] += center[1]+ty; point[2] += center[2]+tz; } template< class TType=float > void TransformPoint(itk::Point& point, TType rx, TType ry, TType rz, TType tx, TType ty, TType tz) { auto rot = mitk::imv::GetRotationMatrixItk(rx, ry, rz); mitk::Point3D center = this->GetGeometry()->GetCenter(); point[0] -= center[0]; point[1] -= center[1]; point[2] -= center[2]; point = rot*point; point[0] += center[0]+tx; point[1] += center[1]+ty; point[2] += center[2]+tz; } itk::Matrix< double, 3, 3 > TransformMatrix(itk::Matrix< double, 3, 3 > m, double rx, double ry, double rz); // add/subtract fibers FiberBundle::Pointer AddBundle(FiberBundle* fib); mitk::FiberBundle::Pointer AddBundles(std::vector< mitk::FiberBundle::Pointer > fibs); FiberBundle::Pointer SubtractBundle(FiberBundle* fib); // fiber subset extraction FiberBundle::Pointer ExtractFiberSubset(DataNode *roi, DataStorage* storage); std::vector ExtractFiberIdSubset(DataNode* roi, DataStorage* storage); FiberBundle::Pointer RemoveFibersOutside(ItkUcharImgType* mask, bool invert=false); float GetOverlap(ItkUcharImgType* mask); std::tuple GetDirectionalOverlap(ItkUcharImgType* mask, mitk::PeakImage::ItkPeakImageType* peak_image); float GetNumEpFractionInMask(ItkUcharImgType* mask, bool different_label); mitk::FiberBundle::Pointer SubsampleFibers(float factor, bool random_seed); // get/set data float GetFiberLength(unsigned int index) const { return m_FiberLengths.at(index); } vtkSmartPointer GetFiberWeights() const { return m_FiberWeights; } float GetFiberWeight(unsigned int fiber) const; void SetFiberWeights(float newWeight); void SetFiberWeight(unsigned int fiber, float weight); void SetFiberWeights(vtkSmartPointer weights); void SetFiberPolyData(vtkSmartPointer, bool updateGeometry = true); vtkSmartPointer GetFiberPolyData() const; itkGetConstMacro( NumFibers, unsigned int) //itkGetMacro( FiberSampling, int) itkGetConstMacro( MinFiberLength, float ) itkGetConstMacro( MaxFiberLength, float ) itkGetConstMacro( MeanFiberLength, float ) itkGetConstMacro( MedianFiberLength, float ) itkGetConstMacro( LengthStDev, float ) itkGetConstMacro( UpdateTime2D, itk::TimeStamp ) itkGetConstMacro( UpdateTime3D, itk::TimeStamp ) void RequestUpdate2D(){ m_UpdateTime2D.Modified(); } void RequestUpdate3D(){ m_UpdateTime3D.Modified(); } void RequestUpdate(){ m_UpdateTime2D.Modified(); m_UpdateTime3D.Modified(); } unsigned int GetNumberOfPoints() const; // copy fiber bundle mitk::FiberBundle::Pointer GetDeepCopy(); // compare fiber bundles bool Equals(FiberBundle* fib, double eps=0.01); itkSetMacro( ReferenceGeometry, mitk::BaseGeometry::Pointer ) itkGetConstMacro( ReferenceGeometry, mitk::BaseGeometry::Pointer ) vtkSmartPointer GeneratePolyDataByIds(std::vector fiberIds, vtkSmartPointer weights); protected: FiberBundle( vtkPolyData* fiberPolyData = nullptr ); ~FiberBundle() override; void GenerateFiberIds(); void UpdateFiberGeometry(); void PrintSelf(std::ostream &os, itk::Indent indent) const override; private: // actual fiber container vtkSmartPointer m_FiberPolyData; // contains fiber ids vtkSmartPointer m_FiberIdDataSet; unsigned int m_NumFibers; vtkSmartPointer m_FiberColors; vtkSmartPointer m_FiberWeights; std::vector< float > m_FiberLengths; float m_MinFiberLength; float m_MaxFiberLength; float m_MeanFiberLength; float m_MedianFiberLength; float m_LengthStDev; itk::TimeStamp m_UpdateTime2D; itk::TimeStamp m_UpdateTime3D; mitk::BaseGeometry::Pointer m_ReferenceGeometry; }; } // namespace mitk #endif /* _MITK_FiberBundle_H */ diff --git a/Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/OdfImages/mitkOdfImage.cpp b/Modules/DiffusionCore/IODataStructures/mitkOdfImage.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/OdfImages/mitkOdfImage.cpp rename to Modules/DiffusionCore/IODataStructures/mitkOdfImage.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/include/IODataStructures/OdfImages/mitkOdfImage.h b/Modules/DiffusionCore/IODataStructures/mitkOdfImage.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/IODataStructures/OdfImages/mitkOdfImage.h rename to Modules/DiffusionCore/IODataStructures/mitkOdfImage.h diff --git a/Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/mitkPeakImage.cpp b/Modules/DiffusionCore/IODataStructures/mitkPeakImage.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/mitkPeakImage.cpp rename to Modules/DiffusionCore/IODataStructures/mitkPeakImage.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/include/IODataStructures/mitkPeakImage.h b/Modules/DiffusionCore/IODataStructures/mitkPeakImage.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/IODataStructures/mitkPeakImage.h rename to Modules/DiffusionCore/IODataStructures/mitkPeakImage.h diff --git a/Modules/DiffusionImaging/FiberTracking/IODataStructures/PlanarFigureComposite/mitkPlanarFigureComposite.cpp b/Modules/DiffusionCore/IODataStructures/mitkPlanarFigureComposite.cpp similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/IODataStructures/PlanarFigureComposite/mitkPlanarFigureComposite.cpp rename to Modules/DiffusionCore/IODataStructures/mitkPlanarFigureComposite.cpp diff --git a/Modules/DiffusionImaging/FiberTracking/IODataStructures/PlanarFigureComposite/mitkPlanarFigureComposite.h b/Modules/DiffusionCore/IODataStructures/mitkPlanarFigureComposite.h similarity index 93% rename from Modules/DiffusionImaging/FiberTracking/IODataStructures/PlanarFigureComposite/mitkPlanarFigureComposite.h rename to Modules/DiffusionCore/IODataStructures/mitkPlanarFigureComposite.h index 7487ab2..d0e7a08 100644 --- a/Modules/DiffusionImaging/FiberTracking/IODataStructures/PlanarFigureComposite/mitkPlanarFigureComposite.h +++ b/Modules/DiffusionCore/IODataStructures/mitkPlanarFigureComposite.h @@ -1,65 +1,65 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ #ifndef _MITK_PLANARFIGURECOMPOSITE_H #define _MITK_PLANARFIGURECOMPOSITE_H #include "mitkCommon.h" #include "mitkBaseData.h" -#include +#include #include "mitkPlanarFigure.h" #include "itkVectorContainer.h" #include "mitkDataNode.h" namespace mitk { -class MITKFIBERTRACKING_EXPORT PlanarFigureComposite : public BaseData +class MITKDIFFUSIONCORE_EXPORT PlanarFigureComposite : public BaseData { public: enum OperationType { AND, OR, NOT }; mitkClassMacro(PlanarFigureComposite, BaseData) itkFactorylessNewMacro(Self) itkCloneMacro(Self) void SetRequestedRegionToLargestPossibleRegion() override; bool RequestedRegionIsOutsideOfTheBufferedRegion() override; bool VerifyRequestedRegion() override; void SetRequestedRegion(const itk::DataObject*) override; // set if this compsition is AND, OR, NOT void setOperationType(OperationType); OperationType getOperationType() const; protected: PlanarFigureComposite(); ~PlanarFigureComposite() override; PlanarFigureComposite(const Self& other); private: OperationType m_compOperation; }; } #endif diff --git a/Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/mitkRegistrationObject.cpp b/Modules/DiffusionCore/IODataStructures/mitkRegistrationObject.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/mitkRegistrationObject.cpp rename to Modules/DiffusionCore/IODataStructures/mitkRegistrationObject.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/include/IODataStructures/mitkRegistrationObject.h b/Modules/DiffusionCore/IODataStructures/mitkRegistrationObject.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/IODataStructures/mitkRegistrationObject.h rename to Modules/DiffusionCore/IODataStructures/mitkRegistrationObject.h diff --git a/Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/mitkShImage.cpp b/Modules/DiffusionCore/IODataStructures/mitkShImage.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/mitkShImage.cpp rename to Modules/DiffusionCore/IODataStructures/mitkShImage.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/include/IODataStructures/mitkShImage.h b/Modules/DiffusionCore/IODataStructures/mitkShImage.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/IODataStructures/mitkShImage.h rename to Modules/DiffusionCore/IODataStructures/mitkShImage.h diff --git a/Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/TensorImages/mitkTensorImage.cpp b/Modules/DiffusionCore/IODataStructures/mitkTensorImage.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/TensorImages/mitkTensorImage.cpp rename to Modules/DiffusionCore/IODataStructures/mitkTensorImage.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/include/IODataStructures/TensorImages/mitkTensorImage.h b/Modules/DiffusionCore/IODataStructures/mitkTensorImage.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/IODataStructures/TensorImages/mitkTensorImage.h rename to Modules/DiffusionCore/IODataStructures/mitkTensorImage.h diff --git a/Modules/DiffusionImaging/FiberTracking/IODataStructures/FiberBundle/mitkTrackvis.cpp b/Modules/DiffusionCore/IODataStructures/mitkTrackvis.cpp similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/IODataStructures/FiberBundle/mitkTrackvis.cpp rename to Modules/DiffusionCore/IODataStructures/mitkTrackvis.cpp diff --git a/Modules/DiffusionImaging/FiberTracking/IODataStructures/FiberBundle/mitkTrackvis.h b/Modules/DiffusionCore/IODataStructures/mitkTrackvis.h similarity index 97% rename from Modules/DiffusionImaging/FiberTracking/IODataStructures/FiberBundle/mitkTrackvis.h rename to Modules/DiffusionCore/IODataStructures/mitkTrackvis.h index 513b0a5..2de10a2 100644 --- a/Modules/DiffusionImaging/FiberTracking/IODataStructures/FiberBundle/mitkTrackvis.h +++ b/Modules/DiffusionCore/IODataStructures/mitkTrackvis.h @@ -1,80 +1,80 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ #ifndef _TRACKVIS #define _TRACKVIS #include #include #include #include #include #include #include #include // Structure to hold metadata of a TrackVis file // --------------------------------------------- struct TrackVis_header { char id_string[6]; short int dim[3]; float voxel_size[3]; float origin[3]; short int n_scalars; char scalar_name[10][20]; short int n_properties; char property_name[10][20]; char reserved[508]; char voxel_order[4]; char pad2[4]; float image_orientation_patient[6]; char pad1[2]; unsigned char invert_x; unsigned char invert_y; unsigned char invert_z; unsigned char swap_xy; unsigned char swap_yz; unsigned char swap_zx; int n_count; int version; int hdr_size; }; // Class to handle TrackVis files. // ------------------------------- -class MITKFIBERTRACKING_EXPORT TrackVisFiberReader +class MITKDIFFUSIONCORE_EXPORT TrackVisFiberReader { private: std::string m_Filename; FILE* m_FilePointer; public: TrackVis_header m_Header; short create(std::string m_Filename, const mitk::FiberBundle* fib, bool lps); short open(std::string m_Filename ); short read( mitk::FiberBundle* fib ); short append(const mitk::FiberBundle* fib ); void writeHdr(); void updateTotal( int totFibers ); void close(); bool IsTransformValid(); TrackVisFiberReader(); ~TrackVisFiberReader(); }; #endif diff --git a/Modules/DiffusionImaging/FiberTracking/IODataStructures/mitkTractographyForest.cpp b/Modules/DiffusionCore/IODataStructures/mitkTractographyForest.cpp similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/IODataStructures/mitkTractographyForest.cpp rename to Modules/DiffusionCore/IODataStructures/mitkTractographyForest.cpp diff --git a/Modules/DiffusionImaging/FiberTracking/IODataStructures/mitkTractographyForest.h b/Modules/DiffusionCore/IODataStructures/mitkTractographyForest.h similarity index 95% rename from Modules/DiffusionImaging/FiberTracking/IODataStructures/mitkTractographyForest.h rename to Modules/DiffusionCore/IODataStructures/mitkTractographyForest.h index e004f40..81fa7f1 100644 --- a/Modules/DiffusionImaging/FiberTracking/IODataStructures/mitkTractographyForest.h +++ b/Modules/DiffusionCore/IODataStructures/mitkTractographyForest.h @@ -1,72 +1,72 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ #ifndef _MITK_TractographyForest_H #define _MITK_TractographyForest_H #include -#include +#include #undef DIFFERENCE #define VIGRA_STATIC_LIB #include namespace mitk { /** * \brief Class containing random forest datastructures used for fiber tractography; */ -class MITKFIBERTRACKING_EXPORT TractographyForest : public BaseData +class MITKDIFFUSIONCORE_EXPORT TractographyForest : public BaseData { public: void UpdateOutputInformation() override; void SetRequestedRegionToLargestPossibleRegion() override; bool RequestedRegionIsOutsideOfTheBufferedRegion() override; bool VerifyRequestedRegion() override; void SetRequestedRegion(const itk::DataObject*) override; mitkClassMacro( TractographyForest, BaseData ) itkFactorylessNewMacro(Self) itkCloneMacro(Self) mitkNewMacro1Param(Self, std::shared_ptr< vigra::RandomForest >) // custom constructor int GetNumFeatures() const; int GetNumTrees() const; int GetNumClasses() const; int GetMaxTreeDepth() const; int IndexToClassLabel(int idx) const; bool HasForest() const; void PredictProbabilities(vigra::MultiArray<2, float>& features, vigra::MultiArray<2, float>& probabilities) const; std::shared_ptr< const vigra::RandomForest > GetForest() const { return m_Forest; } protected: TractographyForest( std::shared_ptr< vigra::RandomForest > forest = nullptr ); ~TractographyForest() override; void PrintSelf(std::ostream &os, itk::Indent indent) const override; private: std::shared_ptr< vigra::RandomForest > m_Forest; ///< random forest classifier }; } // namespace mitk #endif /* _MITK_TractographyForest_H */ diff --git a/Modules/DiffusionImaging/DiffusionCore/PythonRequirements.txt b/Modules/DiffusionCore/PythonRequirements.txt similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/PythonRequirements.txt rename to Modules/DiffusionCore/PythonRequirements.txt diff --git a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkCompositeMapper.cpp b/Modules/DiffusionCore/Rendering/mitkCompositeMapper.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkCompositeMapper.cpp rename to Modules/DiffusionCore/Rendering/mitkCompositeMapper.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkCompositeMapper.h b/Modules/DiffusionCore/Rendering/mitkCompositeMapper.h similarity index 97% rename from Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkCompositeMapper.h rename to Modules/DiffusionCore/Rendering/mitkCompositeMapper.h index a6c3b7f..40c0e5a 100644 --- a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkCompositeMapper.h +++ b/Modules/DiffusionCore/Rendering/mitkCompositeMapper.h @@ -1,162 +1,163 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ #ifndef COMPOSITEMAPPER_H_HEADER_INCLUDED #define COMPOSITEMAPPER_H_HEADER_INCLUDED #include "mitkGLMapper.h" #include "mitkVtkMapper.h" #include "mitkOdfImage.h" #include "mitkImageVtkMapper2D.h" #include "mitkOdfVtkMapper2D.h" #include "mitkLevelWindowProperty.h" +#include namespace mitk { class CopyImageMapper2D : public ImageVtkMapper2D { public: mitkClassMacro(CopyImageMapper2D,ImageVtkMapper2D); itkFactorylessNewMacro(Self) itkCloneMacro(Self) friend class CompositeMapper; }; //##Documentation //## @brief Composite pattern for combination of different mappers //## @ingroup Mapper - class CompositeMapper : public VtkMapper + class MITKDIFFUSIONCORE_EXPORT CompositeMapper : public VtkMapper { public: mitkClassMacro(CompositeMapper,VtkMapper); itkFactorylessNewMacro(Self) itkCloneMacro(Self) void MitkRenderOverlay(BaseRenderer* renderer) override { m_ImgMapper->MitkRenderOverlay(renderer); m_OdfMapper->MitkRenderOverlay(renderer); } void MitkRenderOpaqueGeometry(BaseRenderer* renderer) override { m_ImgMapper->MitkRenderOpaqueGeometry(renderer); m_OdfMapper->MitkRenderOpaqueGeometry(renderer); if( mitk::RenderingManager::GetInstance()->GetNextLOD( renderer ) == 0 ) { renderer->Modified(); } } void MitkRenderTranslucentGeometry(BaseRenderer* renderer) override { m_ImgMapper->MitkRenderTranslucentGeometry(renderer); m_OdfMapper->MitkRenderTranslucentGeometry(renderer); } void MitkRenderVolumetricGeometry(BaseRenderer* renderer) override { m_ImgMapper->MitkRenderVolumetricGeometry(renderer); m_OdfMapper->MitkRenderVolumetricGeometry(renderer); } void SetDataNode(DataNode* node) override { m_DataNode = node; m_ImgMapper->SetDataNode(node); m_OdfMapper->SetDataNode(node); } mitk::ImageVtkMapper2D::Pointer GetImageMapper() { ImageVtkMapper2D* retval = m_ImgMapper; return retval; } bool HasVtkProp( const vtkProp* prop, BaseRenderer* renderer ) override { return m_OdfMapper->HasVtkProp(prop, renderer); } void ReleaseGraphicsResources(mitk::BaseRenderer* renderer) override { m_ImgMapper->ReleaseGraphicsResources(renderer); m_OdfMapper->ReleaseGraphicsResources(renderer); } static void SetDefaultProperties(DataNode* node, BaseRenderer* renderer = nullptr, bool overwrite = false ) { mitk::OdfVtkMapper2D::SetDefaultProperties(node, renderer, overwrite); mitk::CopyImageMapper2D::SetDefaultProperties(node, renderer, overwrite); mitk::LevelWindow opaclevwin; opaclevwin.SetRangeMinMax(0,255); opaclevwin.SetWindowBounds(0,0); mitk::LevelWindowProperty::Pointer prop = mitk::LevelWindowProperty::New(opaclevwin); node->AddProperty( "opaclevelwindow", prop ); } bool IsLODEnabled( BaseRenderer * renderer ) const override { return m_ImgMapper->IsLODEnabled(renderer) || m_OdfMapper->IsLODEnabled(renderer); } vtkProp* GetVtkProp(mitk::BaseRenderer* renderer) override { m_PropAssembly = vtkSmartPointer::New(); m_PropAssembly->AddPart( m_OdfMapper->GetVtkProp(renderer)); m_PropAssembly->AddPart( m_ImgMapper->GetVtkProp(renderer)); return m_PropAssembly; } protected: void Update(mitk::BaseRenderer* renderer) override { m_OdfMapper->Update(renderer); GenerateDataForRenderer(renderer); } void GenerateDataForRenderer(mitk::BaseRenderer* renderer) override { m_ImgMapper->GenerateDataForRenderer(renderer); // if( mitk::RenderingManager::GetInstance()->GetNextLOD( renderer ) > 0 ) // { // m_OdfMapper->GenerateDataForRenderer(renderer); // } } CompositeMapper(); ~CompositeMapper() override; private: mitk::OdfVtkMapper2D::Pointer m_OdfMapper; mitk::CopyImageMapper2D::Pointer m_ImgMapper; vtkSmartPointer m_PropAssembly; }; } // namespace mitk #endif /* COMPOSITEMAPPER_H_HEADER_INCLUDED */ diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkFiberBundleMapper2D.cpp b/Modules/DiffusionCore/Rendering/mitkFiberBundleMapper2D.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionIO/mitkFiberBundleMapper2D.cpp rename to Modules/DiffusionCore/Rendering/mitkFiberBundleMapper2D.cpp diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkFiberBundleMapper2D.h b/Modules/DiffusionCore/Rendering/mitkFiberBundleMapper2D.h similarity index 95% rename from Modules/DiffusionImaging/DiffusionIO/mitkFiberBundleMapper2D.h rename to Modules/DiffusionCore/Rendering/mitkFiberBundleMapper2D.h index c1daaf5..147a724 100644 --- a/Modules/DiffusionImaging/DiffusionIO/mitkFiberBundleMapper2D.h +++ b/Modules/DiffusionCore/Rendering/mitkFiberBundleMapper2D.h @@ -1,86 +1,87 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ #ifndef FiberBundleMAPPER2D_H_HEADER_INCLUDED #define FiberBundleMAPPER2D_H_HEADER_INCLUDED #include #include #include #include #include +#include #define MITKFIBERBUNDLEMAPPER2D_POLYDATAMAPPER vtkOpenGLPolyDataMapper class vtkActor; class mitkBaseRenderer; class MITKFIBERBUNDLEMAPPER2D_POLYDATAMAPPER; class vtkCutter; class vtkPlane; class vtkPolyData; namespace mitk { struct IShaderRepository; -class FiberBundleMapper2D : public VtkMapper +class MITKDIFFUSIONCORE_EXPORT FiberBundleMapper2D : public VtkMapper { public: mitkClassMacro(FiberBundleMapper2D, VtkMapper); itkFactorylessNewMacro(Self) itkCloneMacro(Self) mitk::FiberBundle* GetInput(); void Update(mitk::BaseRenderer * renderer) override; static void SetDefaultProperties(DataNode* node, BaseRenderer* renderer = nullptr, bool overwrite = false ); vtkProp* GetVtkProp(mitk::BaseRenderer* renderer) override; class FBXLocalStorage : public mitk::Mapper::BaseLocalStorage { public: vtkSmartPointer m_Actor; vtkSmartPointer m_Mapper; itk::TimeStamp m_LastUpdateTime; FBXLocalStorage(); ~FBXLocalStorage() override { } }; /** \brief This member holds all three LocalStorages for the three 2D render windows. */ mitk::LocalStorageHandler m_LocalStorageHandler; protected: FiberBundleMapper2D(); ~FiberBundleMapper2D() override; /** Does the actual resampling, without rendering. */ void GenerateDataForRenderer(mitk::BaseRenderer*) override; void UpdateShaderParameter(mitk::BaseRenderer*); private: vtkSmartPointer m_lut; int m_LineWidth; }; }//end namespace #endif diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkFiberBundleMapper3D.cpp b/Modules/DiffusionCore/Rendering/mitkFiberBundleMapper3D.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionIO/mitkFiberBundleMapper3D.cpp rename to Modules/DiffusionCore/Rendering/mitkFiberBundleMapper3D.cpp diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkFiberBundleMapper3D.h b/Modules/DiffusionCore/Rendering/mitkFiberBundleMapper3D.h similarity index 95% rename from Modules/DiffusionImaging/DiffusionIO/mitkFiberBundleMapper3D.h rename to Modules/DiffusionCore/Rendering/mitkFiberBundleMapper3D.h index fa70e4f..96b6490 100644 --- a/Modules/DiffusionImaging/DiffusionIO/mitkFiberBundleMapper3D.h +++ b/Modules/DiffusionCore/Rendering/mitkFiberBundleMapper3D.h @@ -1,92 +1,94 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ #ifndef FiberBundleMapper3D_H_HEADER_INCLUDED #define FiberBundleMapper3D_H_HEADER_INCLUDED #include #include #include #include +#include + class vtkPropAssembly; class vtkPolyDataMapper; class vtkLookupTable; class vtkOpenGLActor; namespace mitk { //##Documentation //## @brief Mapper for FiberBundle //## @ingroup Mapper -class FiberBundleMapper3D : public VtkMapper +class MITKDIFFUSIONCORE_EXPORT FiberBundleMapper3D : public VtkMapper { public: mitkClassMacro(FiberBundleMapper3D, VtkMapper) itkFactorylessNewMacro(Self) itkCloneMacro(Self) const FiberBundle* GetInput(); vtkProp *GetVtkProp(mitk::BaseRenderer *renderer) override; //looks like depricated.. should be replaced bz GetViewProp() static void SetDefaultProperties(DataNode* node, BaseRenderer* renderer = nullptr, bool overwrite = false ); void GenerateDataForRenderer(mitk::BaseRenderer* renderer) override; class LocalStorage3D : public mitk::Mapper::BaseLocalStorage { public: vtkSmartPointer m_FiberActor; vtkSmartPointer m_FiberMapper; vtkSmartPointer m_FiberAssembly; itk::TimeStamp m_LastUpdateTime; LocalStorage3D(); ~LocalStorage3D() override { } }; /** \brief This member holds all three LocalStorages for the 3D render window(s). */ mitk::LocalStorageHandler m_LocalStorageHandler; protected: FiberBundleMapper3D(); ~FiberBundleMapper3D() override; void InternalGenerateData(mitk::BaseRenderer *renderer); void UpdateShaderParameter(mitk::BaseRenderer*); private: vtkSmartPointer m_lut; float m_TubeRadius; int m_TubeSides; int m_LineWidth; float m_RibbonWidth; vtkSmartPointer m_FiberPolyData; mitk::FiberBundle* m_FiberBundle; }; } // end namespace mitk #endif /* FiberBundleMapper3D_H_HEADER_INCLUDED */ diff --git a/Modules/DiffusionImaging/DiffusionCore/src/Rendering/mitkOdfNormalizationMethodProperty.cpp b/Modules/DiffusionCore/Rendering/mitkOdfNormalizationMethodProperty.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/src/Rendering/mitkOdfNormalizationMethodProperty.cpp rename to Modules/DiffusionCore/Rendering/mitkOdfNormalizationMethodProperty.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Rendering/mitkOdfNormalizationMethodProperty.h b/Modules/DiffusionCore/Rendering/mitkOdfNormalizationMethodProperty.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Rendering/mitkOdfNormalizationMethodProperty.h rename to Modules/DiffusionCore/Rendering/mitkOdfNormalizationMethodProperty.h diff --git a/Modules/DiffusionImaging/DiffusionCore/src/Rendering/mitkOdfScaleByProperty.cpp b/Modules/DiffusionCore/Rendering/mitkOdfScaleByProperty.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/src/Rendering/mitkOdfScaleByProperty.cpp rename to Modules/DiffusionCore/Rendering/mitkOdfScaleByProperty.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Rendering/mitkOdfScaleByProperty.h b/Modules/DiffusionCore/Rendering/mitkOdfScaleByProperty.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Rendering/mitkOdfScaleByProperty.h rename to Modules/DiffusionCore/Rendering/mitkOdfScaleByProperty.h diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Rendering/mitkOdfVtkMapper2D.h b/Modules/DiffusionCore/Rendering/mitkOdfVtkMapper2D.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Rendering/mitkOdfVtkMapper2D.h rename to Modules/DiffusionCore/Rendering/mitkOdfVtkMapper2D.h diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Rendering/mitkOdfVtkMapper2D.txx b/Modules/DiffusionCore/Rendering/mitkOdfVtkMapper2D.txx similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Rendering/mitkOdfVtkMapper2D.txx rename to Modules/DiffusionCore/Rendering/mitkOdfVtkMapper2D.txx diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkPeakImageMapper2D.cpp b/Modules/DiffusionCore/Rendering/mitkPeakImageMapper2D.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionIO/mitkPeakImageMapper2D.cpp rename to Modules/DiffusionCore/Rendering/mitkPeakImageMapper2D.cpp diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkPeakImageMapper2D.h b/Modules/DiffusionCore/Rendering/mitkPeakImageMapper2D.h similarity index 95% rename from Modules/DiffusionImaging/DiffusionIO/mitkPeakImageMapper2D.h rename to Modules/DiffusionCore/Rendering/mitkPeakImageMapper2D.h index 39e97b8..237d969 100644 --- a/Modules/DiffusionImaging/DiffusionIO/mitkPeakImageMapper2D.h +++ b/Modules/DiffusionCore/Rendering/mitkPeakImageMapper2D.h @@ -1,85 +1,86 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ #ifndef PeakImageMapper2D_H_HEADER_INCLUDED #define PeakImageMapper2D_H_HEADER_INCLUDED //MITK Rendering #include #include #include #include #include +#include #define MITKPeakImageMapper2D_POLYDATAMAPPER vtkOpenGLPolyDataMapper class vtkActor; class mitkBaseRenderer; class MITKPeakImageMapper2D_POLYDATAMAPPER; class vtkCutter; class vtkPlane; class vtkPolyData; namespace mitk { struct IShaderRepository; -class PeakImageMapper2D : public VtkMapper +class MITKDIFFUSIONCORE_EXPORT PeakImageMapper2D : public VtkMapper { public: mitkClassMacro(PeakImageMapper2D, VtkMapper) itkFactorylessNewMacro(Self) itkCloneMacro(Self) mitk::PeakImage* GetInput(); void Update(mitk::BaseRenderer * renderer) override; static void SetDefaultProperties(DataNode* node, BaseRenderer* renderer = nullptr, bool overwrite = false ); void UpdateVtkTransform(mitk::BaseRenderer *renderer) override; vtkProp* GetVtkProp(mitk::BaseRenderer* renderer) override; class LocalStorage : public mitk::Mapper::BaseLocalStorage { public: vtkSmartPointer m_PointActor; vtkSmartPointer m_Mapper; itk::TimeStamp m_LastUpdateTime; LocalStorage(); ~LocalStorage() override { } }; /** \brief This member holds all three LocalStorages for the three 2D render windows. */ mitk::LocalStorageHandler m_LocalStorageHandler; protected: PeakImageMapper2D(); ~PeakImageMapper2D() override; void GenerateDataForRenderer(mitk::BaseRenderer*) override; private: vtkSmartPointer m_lut; }; }//end namespace #endif diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkPeakImageMapper3D.cpp b/Modules/DiffusionCore/Rendering/mitkPeakImageMapper3D.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionIO/mitkPeakImageMapper3D.cpp rename to Modules/DiffusionCore/Rendering/mitkPeakImageMapper3D.cpp diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkPeakImageMapper3D.h b/Modules/DiffusionCore/Rendering/mitkPeakImageMapper3D.h similarity index 95% rename from Modules/DiffusionImaging/DiffusionIO/mitkPeakImageMapper3D.h rename to Modules/DiffusionCore/Rendering/mitkPeakImageMapper3D.h index 09891ba..8c33d9e 100644 --- a/Modules/DiffusionImaging/DiffusionIO/mitkPeakImageMapper3D.h +++ b/Modules/DiffusionCore/Rendering/mitkPeakImageMapper3D.h @@ -1,85 +1,86 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ #ifndef PeakImageMapper3D_H_HEADER_INCLUDED #define PeakImageMapper3D_H_HEADER_INCLUDED //MITK Rendering #include #include #include #include #include +#include #define MITKPeakImageMapper3D_POLYDATAMAPPER vtkOpenGLPolyDataMapper class vtkActor; class mitkBaseRenderer; class MITKPeakImageMapper3D_POLYDATAMAPPER; class vtkCutter; class vtkPlane; class vtkPolyData; namespace mitk { struct IShaderRepository; -class PeakImageMapper3D : public VtkMapper +class MITKDIFFUSIONCORE_EXPORT PeakImageMapper3D : public VtkMapper { public: mitkClassMacro(PeakImageMapper3D, VtkMapper) itkFactorylessNewMacro(Self) itkCloneMacro(Self) mitk::PeakImage* GetInput(); void Update(mitk::BaseRenderer * renderer) override; static void SetDefaultProperties(DataNode* node, BaseRenderer* renderer = nullptr, bool overwrite = false ); void UpdateVtkTransform(mitk::BaseRenderer *renderer) override; vtkProp* GetVtkProp(mitk::BaseRenderer* renderer) override; class LocalStorage : public mitk::Mapper::BaseLocalStorage { public: vtkSmartPointer m_Actor; vtkSmartPointer m_Mapper; vtkSmartPointer m_Assembly; itk::TimeStamp m_LastUpdateTime; LocalStorage(); ~LocalStorage() override { } }; mitk::LocalStorageHandler m_LocalStorageHandler; protected: PeakImageMapper3D(); ~PeakImageMapper3D() override; void GenerateDataForRenderer(mitk::BaseRenderer*) override; private: vtkSmartPointer m_lut; }; }//end namespace #endif diff --git a/Modules/DiffusionImaging/DiffusionCore/src/Rendering/mitkVectorImageVtkGlyphMapper3D.cpp b/Modules/DiffusionCore/Rendering/mitkVectorImageVtkGlyphMapper3D.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/src/Rendering/mitkVectorImageVtkGlyphMapper3D.cpp rename to Modules/DiffusionCore/Rendering/mitkVectorImageVtkGlyphMapper3D.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Rendering/mitkVectorImageVtkGlyphMapper3D.h b/Modules/DiffusionCore/Rendering/mitkVectorImageVtkGlyphMapper3D.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Rendering/mitkVectorImageVtkGlyphMapper3D.h rename to Modules/DiffusionCore/Rendering/mitkVectorImageVtkGlyphMapper3D.h diff --git a/Modules/DiffusionImaging/DiffusionCore/src/Rendering/vtkMaskedProgrammableGlyphFilter.cpp b/Modules/DiffusionCore/Rendering/vtkMaskedProgrammableGlyphFilter.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/src/Rendering/vtkMaskedProgrammableGlyphFilter.cpp rename to Modules/DiffusionCore/Rendering/vtkMaskedProgrammableGlyphFilter.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Rendering/vtkMaskedProgrammableGlyphFilter.h b/Modules/DiffusionCore/Rendering/vtkMaskedProgrammableGlyphFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Rendering/vtkMaskedProgrammableGlyphFilter.h rename to Modules/DiffusionCore/Rendering/vtkMaskedProgrammableGlyphFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/src/Rendering/vtkOdfSource.cxx b/Modules/DiffusionCore/Rendering/vtkOdfSource.cxx similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/src/Rendering/vtkOdfSource.cxx rename to Modules/DiffusionCore/Rendering/vtkOdfSource.cxx diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Rendering/vtkOdfSource.h b/Modules/DiffusionCore/Rendering/vtkOdfSource.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Rendering/vtkOdfSource.h rename to Modules/DiffusionCore/Rendering/vtkOdfSource.h diff --git a/Modules/DiffusionImaging/DiffusionCore/src/Rendering/vtkThickPlane.cxx b/Modules/DiffusionCore/Rendering/vtkThickPlane.cxx similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/src/Rendering/vtkThickPlane.cxx rename to Modules/DiffusionCore/Rendering/vtkThickPlane.cxx diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Rendering/vtkThickPlane.h b/Modules/DiffusionCore/Rendering/vtkThickPlane.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/Rendering/vtkThickPlane.h rename to Modules/DiffusionCore/Rendering/vtkThickPlane.h diff --git a/Modules/DiffusionImaging/DiffusionCore/Testing/CMakeLists.txt b/Modules/DiffusionCore/Testing/CMakeLists.txt similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Testing/CMakeLists.txt rename to Modules/DiffusionCore/Testing/CMakeLists.txt diff --git a/Modules/DiffusionImaging/DiffusionCore/Testing/files.cmake b/Modules/DiffusionCore/Testing/files.cmake similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Testing/files.cmake rename to Modules/DiffusionCore/Testing/files.cmake diff --git a/Modules/DiffusionImaging/DiffusionCore/Testing/mitkB0ExtractionToSeparateImagesFilterTest.cpp b/Modules/DiffusionCore/Testing/mitkB0ExtractionToSeparateImagesFilterTest.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Testing/mitkB0ExtractionToSeparateImagesFilterTest.cpp rename to Modules/DiffusionCore/Testing/mitkB0ExtractionToSeparateImagesFilterTest.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/Testing/mitkConvertDWITypeTest.cpp b/Modules/DiffusionCore/Testing/mitkConvertDWITypeTest.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Testing/mitkConvertDWITypeTest.cpp rename to Modules/DiffusionCore/Testing/mitkConvertDWITypeTest.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/Testing/mitkDWHeadMotionCorrectionTest.cpp b/Modules/DiffusionCore/Testing/mitkDWHeadMotionCorrectionTest.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Testing/mitkDWHeadMotionCorrectionTest.cpp rename to Modules/DiffusionCore/Testing/mitkDWHeadMotionCorrectionTest.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/Testing/mitkDiffusionDICOMFileReaderTest.cpp b/Modules/DiffusionCore/Testing/mitkDiffusionDICOMFileReaderTest.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Testing/mitkDiffusionDICOMFileReaderTest.cpp rename to Modules/DiffusionCore/Testing/mitkDiffusionDICOMFileReaderTest.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/Testing/mitkDiffusionDICOMFileReaderTestHelper.h b/Modules/DiffusionCore/Testing/mitkDiffusionDICOMFileReaderTestHelper.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Testing/mitkDiffusionDICOMFileReaderTestHelper.h rename to Modules/DiffusionCore/Testing/mitkDiffusionDICOMFileReaderTestHelper.h diff --git a/Modules/DiffusionImaging/DiffusionCore/Testing/mitkDiffusionPropertySerializerTest.cpp b/Modules/DiffusionCore/Testing/mitkDiffusionPropertySerializerTest.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Testing/mitkDiffusionPropertySerializerTest.cpp rename to Modules/DiffusionCore/Testing/mitkDiffusionPropertySerializerTest.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/Testing/mitkExtractSingleShellTest.cpp b/Modules/DiffusionCore/Testing/mitkExtractSingleShellTest.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Testing/mitkExtractSingleShellTest.cpp rename to Modules/DiffusionCore/Testing/mitkExtractSingleShellTest.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/Testing/mitkImageReconstructionTest.cpp b/Modules/DiffusionCore/Testing/mitkImageReconstructionTest.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Testing/mitkImageReconstructionTest.cpp rename to Modules/DiffusionCore/Testing/mitkImageReconstructionTest.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/Testing/mitkNonLocalMeansDenoisingTest.cpp b/Modules/DiffusionCore/Testing/mitkNonLocalMeansDenoisingTest.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Testing/mitkNonLocalMeansDenoisingTest.cpp rename to Modules/DiffusionCore/Testing/mitkNonLocalMeansDenoisingTest.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/Testing/mitkPyramidImageRegistrationMethodTest.cpp b/Modules/DiffusionCore/Testing/mitkPyramidImageRegistrationMethodTest.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Testing/mitkPyramidImageRegistrationMethodTest.cpp rename to Modules/DiffusionCore/Testing/mitkPyramidImageRegistrationMethodTest.cpp diff --git a/Modules/DiffusionCore/files.cmake b/Modules/DiffusionCore/files.cmake new file mode 100644 index 0000000..193b6be --- /dev/null +++ b/Modules/DiffusionCore/files.cmake @@ -0,0 +1,163 @@ +set(CPP_FILES + + mitkDiffusionFunctionCollection.cpp + + # DicomImport + # DicomImport/mitkGroupDiffusionHeadersFilter.cpp + DicomImport/mitkDicomDiffusionImageHeaderReader.cpp + DicomImport/mitkGEDicomDiffusionImageHeaderReader.cpp + DicomImport/mitkPhilipsDicomDiffusionImageHeaderReader.cpp + DicomImport/mitkSiemensDicomDiffusionImageHeaderReader.cpp + DicomImport/mitkSiemensMosaicDicomDiffusionImageHeaderReader.cpp + + DicomImport/mitkDiffusionDICOMFileReader.cpp + DicomImport/mitkDiffusionHeaderDICOMFileReader.cpp + DicomImport/mitkDiffusionHeaderSiemensDICOMFileReader.cpp + DicomImport/mitkDiffusionHeaderSiemensDICOMFileHelper.cpp + DicomImport/mitkDiffusionHeaderSiemensMosaicDICOMFileReader.cpp + DicomImport/mitkDiffusionHeaderGEDICOMFileReader.cpp + DicomImport/mitkDiffusionHeaderPhilipsDICOMFileReader.cpp + + # DataStructures + IODataStructures/DiffusionWeightedImages/mitkDiffusionImageHeaderInformation.cpp + IODataStructures/DiffusionWeightedImages/mitkDiffusionImageCorrectionFilter.cpp + IODataStructures/DiffusionWeightedImages/mitkDiffusionImageCreationFilter.cpp + IODataStructures/mitkOdfImage.cpp + IODataStructures/mitkShImage.cpp + IODataStructures/mitkTensorImage.cpp + IODataStructures/mitkPeakImage.cpp + IODataStructures/mitkFiberBundle.cpp + IODataStructures/mitkTrackvis.cpp + IODataStructures/mitkPlanarFigureComposite.cpp + IODataStructures/mitkTractographyForest.cpp + + # Properties + IODataStructures/Properties/mitkBValueMapProperty.cpp + IODataStructures/Properties/mitkGradientDirectionsProperty.cpp + IODataStructures/Properties/mitkMeasurementFrameProperty.cpp + IODataStructures/Properties/mitkDiffusionPropertyHelper.cpp + IODataStructures/Properties/mitkNodePredicateIsDWI.cpp + + # Serializer + IODataStructures/Properties/mitkBValueMapPropertySerializer.cpp + IODataStructures/Properties/mitkGradientDirectionsPropertySerializer.cpp + IODataStructures/Properties/mitkMeasurementFramePropertySerializer.cpp + + # Mapper etc. + Rendering/vtkMaskedProgrammableGlyphFilter.cpp + Rendering/mitkVectorImageVtkGlyphMapper3D.cpp + Rendering/vtkOdfSource.cxx + Rendering/vtkThickPlane.cxx + Rendering/mitkOdfNormalizationMethodProperty.cpp + Rendering/mitkOdfScaleByProperty.cpp + Rendering/mitkFiberBundleMapper2D.cpp + Rendering/mitkFiberBundleMapper3D.cpp + Rendering/mitkPeakImageMapper2D.cpp + Rendering/mitkPeakImageMapper3D.cpp + Rendering/mitkCompositeMapper.cpp + + # Algorithms + Algorithms/mitkPartialVolumeAnalysisHistogramCalculator.cpp + Algorithms/mitkPartialVolumeAnalysisClusteringCalculator.cpp + Algorithms/itkDwiGradientLengthCorrectionFilter.cpp + Algorithms/Registration/mitkRegistrationWrapper.cpp + Algorithms/Registration/mitkPyramidImageRegistrationMethod.cpp + # Algorithms/Registration/mitkRegistrationMethodITK4.cpp + Algorithms/Registration/mitkDWIHeadMotionCorrectionFilter.cpp + Algorithms/Reconstruction/MultishellProcessing/itkADCAverageFunctor.cpp + Algorithms/Reconstruction/MultishellProcessing/itkADCFitFunctor.cpp + Algorithms/Reconstruction/MultishellProcessing/itkKurtosisFitFunctor.cpp + Algorithms/Reconstruction/MultishellProcessing/itkBiExpFitFunctor.cpp +) + +set(H_FILES + mitkDiffusionFunctionCollection.h + + # Rendering + Rendering/mitkOdfVtkMapper2D.h + + # Reconstruction + Algorithms/Reconstruction/itkDiffusionQballReconstructionImageFilter.h + Algorithms/Reconstruction/mitkTeemDiffusionTensor3DReconstructionImageFilter.h + Algorithms/Reconstruction/itkAnalyticalDiffusionQballReconstructionImageFilter.h + Algorithms/Reconstruction/itkDiffusionMultiShellQballReconstructionImageFilter.h + Algorithms/Reconstruction/itkPointShell.h + Algorithms/Reconstruction/itkOrientationDistributionFunction.h + Algorithms/Reconstruction/itkDiffusionIntravoxelIncoherentMotionReconstructionImageFilter.h + Algorithms/Reconstruction/itkDiffusionKurtosisReconstructionImageFilter.h + Algorithms/Reconstruction/itkBallAndSticksImageFilter.h + Algorithms/Reconstruction/itkMultiTensorImageFilter.h + + # Fitting functions + Algorithms/Reconstruction/FittingFunctions/mitkAbstractFitter.h + Algorithms/Reconstruction/FittingFunctions/mitkMultiTensorFitter.h + Algorithms/Reconstruction/FittingFunctions/mitkBallStickFitter.h + + + # MultishellProcessing + Algorithms/Reconstruction/MultishellProcessing/itkRadialMultishellToSingleshellImageFilter.h + Algorithms/Reconstruction/MultishellProcessing/itkDWIVoxelFunctor.h + Algorithms/Reconstruction/MultishellProcessing/itkADCAverageFunctor.h + Algorithms/Reconstruction/MultishellProcessing/itkKurtosisFitFunctor.h + Algorithms/Reconstruction/MultishellProcessing/itkBiExpFitFunctor.h + Algorithms/Reconstruction/MultishellProcessing/itkADCFitFunctor.h + + IODataStructures/mitkFiberBundle.h + IODataStructures/mitkTrackvis.h + IODataStructures/mitkPlanarFigureComposite.h + IODataStructures/mitkTractographyForest.h + + IODataStructures/Properties/mitkBValueMapProperty.h + IODataStructures/Properties/mitkGradientDirectionsProperty.h + IODataStructures/Properties/mitkMeasurementFrameProperty.h + IODataStructures/Properties/mitkDiffusionPropertyHelper.h + + IODataStructures/DiffusionWeightedImages/mitkDiffusionImageTransformedCreationFilter.h + + # Algorithms + Algorithms/itkDiffusionOdfGeneralizedFaImageFilter.h + Algorithms/itkDiffusionOdfPrepareVisualizationImageFilter.h + Algorithms/itkElectrostaticRepulsionDiffusionGradientReductionFilter.h + Algorithms/itkTensorDerivedMeasurementsFilter.h + Algorithms/itkBrainMaskExtractionImageFilter.h + Algorithms/itkB0ImageExtractionImageFilter.h + Algorithms/itkB0ImageExtractionToSeparateImageFilter.h + Algorithms/itkTensorImageToDiffusionImageFilter.h + Algorithms/itkTensorToL2NormImageFilter.h + Algorithms/itkGaussianInterpolateImageFunction.h + Algorithms/mitkPartialVolumeAnalysisHistogramCalculator.h + Algorithms/mitkPartialVolumeAnalysisClusteringCalculator.h + Algorithms/itkDiffusionTensorPrincipalDirectionImageFilter.h + Algorithms/itkCartesianToPolarVectorImageFilter.h + Algorithms/itkPolarToCartesianVectorImageFilter.h + Algorithms/itkDistanceMapFilter.h + Algorithms/itkResidualImageFilter.h + Algorithms/itkExtractChannelFromRgbaImageFilter.h + Algorithms/itkTensorReconstructionWithEigenvalueCorrectionFilter.h + Algorithms/itkMergeDiffusionImagesFilter.h + Algorithms/itkShCoefficientImageImporter.h + Algorithms/itkShCoefficientImageExporter.h + Algorithms/itkOdfMaximaExtractionFilter.h + Algorithms/itkResampleDwiImageFilter.h + Algorithms/itkDwiGradientLengthCorrectionFilter.h + Algorithms/itkAdcImageFilter.h + Algorithms/itkDwiNormilzationFilter.h + Algorithms/itkSplitDWImageFilter.h + Algorithms/itkRemoveDwiChannelFilter.h + Algorithms/itkExtractDwiChannelFilter.h + Algorithms/itkFlipPeaksFilter.h + Algorithms/itkShToOdfImageFilter.h + Algorithms/itkFourDToVectorImageFilter.h + Algorithms/itkVectorImageToFourDImageFilter.h + Algorithms/Registration/mitkDWIHeadMotionCorrectionFilter.h + Algorithms/itkNonLocalMeansDenoisingFilter.h + Algorithms/itkVectorImageToImageFilter.h + Algorithms/itkSplitVectorImageFilter.h + Algorithms/itkRegularizedIVIMLocalVariationImageFilter.h + Algorithms/itkRegularizedIVIMReconstructionFilter.h + Algorithms/itkRegularizedIVIMReconstructionSingleIteration.h +) + +set( TOOL_FILES +) + diff --git a/Modules/DiffusionImaging/DiffusionCore/src/mitkDiffusionFunctionCollection.cpp b/Modules/DiffusionCore/mitkDiffusionFunctionCollection.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/src/mitkDiffusionFunctionCollection.cpp rename to Modules/DiffusionCore/mitkDiffusionFunctionCollection.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/include/mitkDiffusionFunctionCollection.h b/Modules/DiffusionCore/mitkDiffusionFunctionCollection.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/include/mitkDiffusionFunctionCollection.h rename to Modules/DiffusionCore/mitkDiffusionFunctionCollection.h diff --git a/Modules/DiffusionImaging/mitkDiffusionImagingConfigure.h.in b/Modules/DiffusionCore/mitkDiffusionImagingConfigure.h.in similarity index 100% rename from Modules/DiffusionImaging/mitkDiffusionImagingConfigure.h.in rename to Modules/DiffusionCore/mitkDiffusionImagingConfigure.h.in diff --git a/Modules/DiffusionIO/CMakeLists.txt b/Modules/DiffusionIO/CMakeLists.txt new file mode 100644 index 0000000..4fcc91b --- /dev/null +++ b/Modules/DiffusionIO/CMakeLists.txt @@ -0,0 +1,10 @@ +MITK_CREATE_MODULE( + SUBPROJECTS MITK-Diffusion + INCLUDE_DIRS ${CMAKE_CURRENT_BINARY_DIR} ReaderWriter ObjectFactories + DEPENDS MitkConnectomics MitkDiffusionCore MitkSceneSerialization + AUTOLOAD_WITH MitkCore + PACKAGE_DEPENDS + PUBLIC DCMTK + PRIVATE tinyxml +) + diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkConnectomicsObjectFactory.cpp b/Modules/DiffusionIO/ObjectFactories/mitkConnectomicsObjectFactory.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionIO/mitkConnectomicsObjectFactory.cpp rename to Modules/DiffusionIO/ObjectFactories/mitkConnectomicsObjectFactory.cpp diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkConnectomicsObjectFactory.h b/Modules/DiffusionIO/ObjectFactories/mitkConnectomicsObjectFactory.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionIO/mitkConnectomicsObjectFactory.h rename to Modules/DiffusionIO/ObjectFactories/mitkConnectomicsObjectFactory.h diff --git a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionCoreObjectFactory.cpp b/Modules/DiffusionIO/ObjectFactories/mitkDiffusionCoreObjectFactory.cpp similarity index 65% rename from Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionCoreObjectFactory.cpp rename to Modules/DiffusionIO/ObjectFactories/mitkDiffusionCoreObjectFactory.cpp index 4c50855..1b4eb3f 100644 --- a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionCoreObjectFactory.cpp +++ b/Modules/DiffusionIO/ObjectFactories/mitkDiffusionCoreObjectFactory.cpp @@ -1,175 +1,204 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ #include "mitkDiffusionCoreObjectFactory.h" #include "mitkProperties.h" #include "mitkBaseRenderer.h" #include "mitkDataNode.h" #include "mitkCompositeMapper.h" #include "mitkGPUVolumeMapper3D.h" +#include +#include +#include +#include + typedef short DiffusionPixelType; typedef std::multimap MultimapType; mitk::DiffusionCoreObjectFactory::DiffusionCoreObjectFactory() : CoreObjectFactoryBase() { static bool alreadyDone = false; if (!alreadyDone) { MITK_DEBUG << "DiffusionCoreObjectFactory c'tor" << std::endl; CreateFileExtensionsMap(); alreadyDone = true; } } mitk::DiffusionCoreObjectFactory::~DiffusionCoreObjectFactory() { } mitk::Mapper::Pointer mitk::DiffusionCoreObjectFactory::CreateMapper(mitk::DataNode* node, MapperSlotId id) { mitk::Mapper::Pointer newMapper=nullptr; + if (!node->GetData()) + return newMapper; + if ( id == mitk::BaseRenderer::Standard2D ) { - std::string classname("OdfImage"); - if(node->GetData() && classname.compare(node->GetData()->GetNameOfClass())==0) + if(std::string("OdfImage").compare(node->GetData()->GetNameOfClass())==0) { newMapper = mitk::CompositeMapper::New(); newMapper->SetDataNode(node); node->SetMapper(3, static_cast(newMapper.GetPointer())->GetImageMapper()); } - classname = "TensorImage"; - if(node->GetData() && classname.compare(node->GetData()->GetNameOfClass())==0) + else if(std::string("TensorImage").compare(node->GetData()->GetNameOfClass())==0) { newMapper = mitk::CompositeMapper::New(); newMapper->SetDataNode(node); node->SetMapper(3, static_cast(newMapper.GetPointer())->GetImageMapper()); } - classname = "ShImage"; - if(node->GetData() && classname.compare(node->GetData()->GetNameOfClass())==0) + else if(std::string("ShImage").compare(node->GetData()->GetNameOfClass())==0) { newMapper = mitk::CompositeMapper::New(); newMapper->SetDataNode(node); node->SetMapper(3, static_cast(newMapper.GetPointer())->GetImageMapper()); } - + else if(std::string("FiberBundle").compare(node->GetData()->GetNameOfClass())==0) + { + newMapper = mitk::FiberBundleMapper2D::New(); + newMapper->SetDataNode(node); + } + else if(std::string("PeakImage").compare(node->GetData()->GetNameOfClass())==0) + { + newMapper = mitk::PeakImageMapper2D::New(); + newMapper->SetDataNode(node); + } } else if ( id == mitk::BaseRenderer::Standard3D ) { - std::string classname("OdfImage"); - if(node->GetData() && classname.compare(node->GetData()->GetNameOfClass())==0) + if(std::string("OdfImage").compare(node->GetData()->GetNameOfClass())==0) { newMapper = mitk::GPUVolumeMapper3D::New(); newMapper->SetDataNode(node); } - classname = "TensorImage"; - if(node->GetData() && classname.compare(node->GetData()->GetNameOfClass())==0) + else if(std::string("TensorImage").compare(node->GetData()->GetNameOfClass())==0) { newMapper = mitk::GPUVolumeMapper3D::New(); newMapper->SetDataNode(node); } - classname = "ShImage"; - if(node->GetData() && classname.compare(node->GetData()->GetNameOfClass())==0) + else if(std::string("ShImage").compare(node->GetData()->GetNameOfClass())==0) { newMapper = mitk::GPUVolumeMapper3D::New(); newMapper->SetDataNode(node); } + else if(std::string("FiberBundle").compare(node->GetData()->GetNameOfClass())==0) + { + newMapper = mitk::FiberBundleMapper3D::New(); + newMapper->SetDataNode(node); + } + else if(std::string("PeakImage").compare(node->GetData()->GetNameOfClass())==0) + { + newMapper = mitk::PeakImageMapper3D::New(); + newMapper->SetDataNode(node); + } } return newMapper; } void mitk::DiffusionCoreObjectFactory::SetDefaultProperties(mitk::DataNode* node) { - std::string classname = "OdfImage"; - if(node->GetData() && classname.compare(node->GetData()->GetNameOfClass())==0) + if (!node->GetData()) + return; + + if(std::string("OdfImage").compare(node->GetData()->GetNameOfClass())==0) { mitk::CompositeMapper::SetDefaultProperties(node); mitk::GPUVolumeMapper3D::SetDefaultProperties(node); } - - classname = "TensorImage"; - if(node->GetData() && classname.compare(node->GetData()->GetNameOfClass())==0) + else if(std::string("TensorImage").compare(node->GetData()->GetNameOfClass())==0) { mitk::CompositeMapper::SetDefaultProperties(node); mitk::GPUVolumeMapper3D::SetDefaultProperties(node); } - - classname = "ShImage"; - if(node->GetData() && classname.compare(node->GetData()->GetNameOfClass())==0) + else if(std::string("ShImage").compare(node->GetData()->GetNameOfClass())==0) { mitk::CompositeMapper::SetDefaultProperties(node); mitk::GPUVolumeMapper3D::SetDefaultProperties(node); } + else if(std::string("FiberBundle").compare(node->GetData()->GetNameOfClass())==0) + { + mitk::FiberBundleMapper3D::SetDefaultProperties(node); + mitk::FiberBundleMapper2D::SetDefaultProperties(node); + } + else if (std::string("PeakImage").compare(node->GetData()->GetNameOfClass())==0) + { + mitk::PeakImageMapper3D::SetDefaultProperties(node); + mitk::PeakImageMapper2D::SetDefaultProperties(node); + } } const char* mitk::DiffusionCoreObjectFactory::GetFileExtensions() { std::string fileExtension; this->CreateFileExtensions(m_FileExtensionsMap, fileExtension); return fileExtension.c_str(); } mitk::CoreObjectFactoryBase::MultimapType mitk::DiffusionCoreObjectFactory::GetFileExtensionsMap() { return m_FileExtensionsMap; } const char* mitk::DiffusionCoreObjectFactory::GetSaveFileExtensions() { std::string fileExtension; this->CreateFileExtensions(m_SaveFileExtensionsMap, fileExtension); return fileExtension.c_str(); } mitk::CoreObjectFactoryBase::MultimapType mitk::DiffusionCoreObjectFactory::GetSaveFileExtensionsMap() { return m_SaveFileExtensionsMap; } void mitk::DiffusionCoreObjectFactory::CreateFileExtensionsMap() { } struct RegisterDiffusionCoreObjectFactory{ RegisterDiffusionCoreObjectFactory() : m_Factory( mitk::DiffusionCoreObjectFactory::New() ) { mitk::CoreObjectFactory::GetInstance()->RegisterExtraFactory( m_Factory ); } ~RegisterDiffusionCoreObjectFactory() { mitk::CoreObjectFactory::GetInstance()->UnRegisterExtraFactory( m_Factory ); } mitk::DiffusionCoreObjectFactory::Pointer m_Factory; }; static RegisterDiffusionCoreObjectFactory registerDiffusionCoreObjectFactory; diff --git a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionCoreObjectFactory.h b/Modules/DiffusionIO/ObjectFactories/mitkDiffusionCoreObjectFactory.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionCoreObjectFactory.h rename to Modules/DiffusionIO/ObjectFactories/mitkDiffusionCoreObjectFactory.h diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkConnectomicsNetworkCSVWriter.cpp b/Modules/DiffusionIO/ReaderWriter/mitkConnectomicsNetworkCSVWriter.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionIO/mitkConnectomicsNetworkCSVWriter.cpp rename to Modules/DiffusionIO/ReaderWriter/mitkConnectomicsNetworkCSVWriter.cpp diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkConnectomicsNetworkCSVWriter.h b/Modules/DiffusionIO/ReaderWriter/mitkConnectomicsNetworkCSVWriter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionIO/mitkConnectomicsNetworkCSVWriter.h rename to Modules/DiffusionIO/ReaderWriter/mitkConnectomicsNetworkCSVWriter.h diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkConnectomicsNetworkDefinitions.cpp b/Modules/DiffusionIO/ReaderWriter/mitkConnectomicsNetworkDefinitions.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionIO/mitkConnectomicsNetworkDefinitions.cpp rename to Modules/DiffusionIO/ReaderWriter/mitkConnectomicsNetworkDefinitions.cpp diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkConnectomicsNetworkDefinitions.h b/Modules/DiffusionIO/ReaderWriter/mitkConnectomicsNetworkDefinitions.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionIO/mitkConnectomicsNetworkDefinitions.h rename to Modules/DiffusionIO/ReaderWriter/mitkConnectomicsNetworkDefinitions.h diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkConnectomicsNetworkMatrixWriter.cpp b/Modules/DiffusionIO/ReaderWriter/mitkConnectomicsNetworkMatrixWriter.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionIO/mitkConnectomicsNetworkMatrixWriter.cpp rename to Modules/DiffusionIO/ReaderWriter/mitkConnectomicsNetworkMatrixWriter.cpp diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkConnectomicsNetworkMatrixWriter.h b/Modules/DiffusionIO/ReaderWriter/mitkConnectomicsNetworkMatrixWriter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionIO/mitkConnectomicsNetworkMatrixWriter.h rename to Modules/DiffusionIO/ReaderWriter/mitkConnectomicsNetworkMatrixWriter.h diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkConnectomicsNetworkReader.cpp b/Modules/DiffusionIO/ReaderWriter/mitkConnectomicsNetworkReader.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionIO/mitkConnectomicsNetworkReader.cpp rename to Modules/DiffusionIO/ReaderWriter/mitkConnectomicsNetworkReader.cpp diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkConnectomicsNetworkReader.h b/Modules/DiffusionIO/ReaderWriter/mitkConnectomicsNetworkReader.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionIO/mitkConnectomicsNetworkReader.h rename to Modules/DiffusionIO/ReaderWriter/mitkConnectomicsNetworkReader.h diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkConnectomicsNetworkSerializer.cpp b/Modules/DiffusionIO/ReaderWriter/mitkConnectomicsNetworkSerializer.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionIO/mitkConnectomicsNetworkSerializer.cpp rename to Modules/DiffusionIO/ReaderWriter/mitkConnectomicsNetworkSerializer.cpp diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkConnectomicsNetworkSerializer.h b/Modules/DiffusionIO/ReaderWriter/mitkConnectomicsNetworkSerializer.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionIO/mitkConnectomicsNetworkSerializer.h rename to Modules/DiffusionIO/ReaderWriter/mitkConnectomicsNetworkSerializer.h diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkConnectomicsNetworkWriter.cpp b/Modules/DiffusionIO/ReaderWriter/mitkConnectomicsNetworkWriter.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionIO/mitkConnectomicsNetworkWriter.cpp rename to Modules/DiffusionIO/ReaderWriter/mitkConnectomicsNetworkWriter.cpp diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkConnectomicsNetworkWriter.h b/Modules/DiffusionIO/ReaderWriter/mitkConnectomicsNetworkWriter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionIO/mitkConnectomicsNetworkWriter.h rename to Modules/DiffusionIO/ReaderWriter/mitkConnectomicsNetworkWriter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionImageDicomReaderService.cpp b/Modules/DiffusionIO/ReaderWriter/mitkDiffusionImageDicomReader.cpp similarity index 92% rename from Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionImageDicomReaderService.cpp rename to Modules/DiffusionIO/ReaderWriter/mitkDiffusionImageDicomReader.cpp index a4e9350..795ca2a 100644 --- a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionImageDicomReaderService.cpp +++ b/Modules/DiffusionIO/ReaderWriter/mitkDiffusionImageDicomReader.cpp @@ -1,327 +1,327 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ -#ifndef __mitkDiffusionImageDicomReaderService_cpp -#define __mitkDiffusionImageDicomReaderService_cpp +#ifndef __mitkDiffusionImageDicomReader_cpp +#define __mitkDiffusionImageDicomReader_cpp -#include "mitkDiffusionImageDicomReaderService.h" +#include "mitkDiffusionImageDicomReader.h" #include #include // Diffusion properties #include #include #include #include #include #include #include "itksys/SystemTools.hxx" #include "itkImageFileReader.h" #include "itkMetaDataObject.h" #include "itkNrrdImageIO.h" #include "mitkCustomMimeType.h" -#include "mitkDiffusionCoreIOMimeTypes.h" +#include "mitkDiffusionIOMimeTypes.h" #include #include #include #include #include #include #include #include #include #include #include #include namespace mitk { -DiffusionImageDicomReaderService:: -DiffusionImageDicomReaderService(const DiffusionImageDicomReaderService & other) +DiffusionImageDicomReader:: +DiffusionImageDicomReader(const DiffusionImageDicomReader & other) : AbstractFileReader(other) { } -DiffusionImageDicomReaderService* DiffusionImageDicomReaderService::Clone() const +DiffusionImageDicomReader* DiffusionImageDicomReader::Clone() const { - return new DiffusionImageDicomReaderService(*this); + return new DiffusionImageDicomReader(*this); } -DiffusionImageDicomReaderService:: -~DiffusionImageDicomReaderService() +DiffusionImageDicomReader:: +~DiffusionImageDicomReader() {} -DiffusionImageDicomReaderService:: -DiffusionImageDicomReaderService() - : mitk::AbstractFileReader( CustomMimeType( mitk::DiffusionCoreIOMimeTypes::DWI_DICOM_MIMETYPE() ), mitk::DiffusionCoreIOMimeTypes::DWI_DICOM_MIMETYPE_DESCRIPTION() ) +DiffusionImageDicomReader:: +DiffusionImageDicomReader() + : mitk::AbstractFileReader( CustomMimeType( mitk::DiffusionIOMimeTypes::DWI_DICOM_MIMETYPE() ), mitk::DiffusionIOMimeTypes::DWI_DICOM_MIMETYPE_DESCRIPTION() ) { Options defaultOptions; defaultOptions["Apply image rotation to gradients"] = true; defaultOptions["Load recursive"] = false; defaultOptions["Split mosaic"] = true; this->SetDefaultOptions(defaultOptions); m_ServiceReg = this->RegisterService(); } std::vector > -DiffusionImageDicomReaderService::Read() +DiffusionImageDicomReader::Read() { return InternalRead(); } -std::vector > DiffusionImageDicomReaderService::InternalRead() +std::vector > DiffusionImageDicomReader::InternalRead() { std::vector > result_images; OutputType::Pointer outputForCache = OutputType::New(); if ( this->GetInputLocation() == "") { throw itk::ImageFileReaderException(__FILE__, __LINE__, "Sorry, the filename to be read is empty!"); } else { const std::string& locale = "C"; const std::string& currLocale = setlocale( LC_ALL, nullptr ); if ( locale.compare(currLocale)!=0 ) { try { setlocale(LC_ALL, locale.c_str()); } catch(...) { MITK_INFO << "Could not set locale " << locale; } } try { Options options = this->GetOptions(); bool load_recursive = us::any_cast(options["Load recursive"]); bool split_mosaic = us::any_cast(options["Split mosaic"]); gdcm::Directory::FilenamesType complete_list; std::string folderName = itksys::SystemTools::GetFilenamePath( this->GetInputLocation() ); if( load_recursive ) { std::string subdir_prefix = ""; itksys::Directory rootdir; rootdir.Load( folderName.c_str() ); for( unsigned int idx=0; idxAddDistinguishingTag( mitk::DICOMTag(0x0028, 0x0010) ); // Number of Rows tagSorter->AddDistinguishingTag( mitk::DICOMTag(0x0028, 0x0011) ); // Number of Columns tagSorter->AddDistinguishingTag( mitk::DICOMTag(0x0028, 0x0030) ); // Pixel Spacing tagSorter->AddDistinguishingTag( mitk::DICOMTag(0x0018, 0x1164) ); // Imager Pixel Spacing tagSorter->AddDistinguishingTag( mitk::DICOMTag(0x0020, 0x0037) ); // Image Orientation (Patient) // TODO add tolerance parameter (l. 1572 of original code) // TODO handle as real vectors! cluster with configurable errors! tagSorter->AddDistinguishingTag( mitk::DICOMTag(0x0020, 0x000e) ); // Series Instance UID tagSorter->AddDistinguishingTag( mitk::DICOMTag(0x0018, 0x0050) ); // Slice Thickness tagSorter->AddDistinguishingTag( mitk::DICOMTag(0x0028, 0x0008) ); // Number of Frames //tagSorter->AddDistinguishingTag( mitk::DICOMTag(0x0020, 0x0052) ); // Frame of Reference UID auto tag_sop_instance_uid = mitk::DICOMSortByTag::New( mitk::DICOMTag(0x0008, 0x0018), nullptr ); // SOP instance UID (last resort, not really meaningful but decides clearly) auto tag_trigger_time = mitk::DICOMSortByTag::New( mitk::DICOMTag(0x0018, 0x1060), tag_sop_instance_uid.GetPointer() ); // trigger time auto tag_aqcuisition_time = mitk::DICOMSortByTag::New( mitk::DICOMTag(0x0008, 0x0032), tag_trigger_time.GetPointer()); // aqcuisition time auto tag_aqcuisition_number = mitk::DICOMSortByTag::New( mitk::DICOMTag(0x0020, 0x0012), tag_aqcuisition_time.GetPointer()); // aqcuisition number mitk::DICOMSortCriterion::ConstPointer sorting = mitk::SortByImagePositionPatient::New(tag_aqcuisition_number.GetPointer()).GetPointer(); tagSorter->SetSortCriterion( sorting ); // mosaic gdcmReader->SetResolveMosaic( split_mosaic ); gdcmReader->AddSortingElement( tagSorter ); gdcmReader->SetInputFiles( complete_list ); gdcmReader->SetApplyRotationToGradients(us::any_cast(options["Apply image rotation to gradients"])); try { gdcmReader->AnalyzeInputFiles(); } catch( const itk::ExceptionObject &e) { MITK_ERROR << "Failed to analyze data. " << e.what(); } catch( const std::exception &se) { MITK_ERROR << "Std Exception " << se.what(); } gdcmReader->LoadImages(); for( unsigned int o = 0; o < gdcmReader->GetNumberOfOutputs(); o++ ) { mitk::Image::Pointer loaded_image = gdcmReader->GetOutput(o).GetMitkImage(); StringProperty::Pointer nameProp; if (gdcmReader->GetSeriesName(o)!="-") nameProp = StringProperty::New(gdcmReader->GetSeriesName(o)); else if (gdcmReader->GetStudyName(o)!="-") nameProp = StringProperty::New(gdcmReader->GetStudyName(o)); else nameProp = StringProperty::New(folderName); loaded_image->SetProperty("name", nameProp); std::string val = "-"; if (gdcmReader->patient_ids().size()>o) { val = gdcmReader->patient_ids().at(o); loaded_image->GetPropertyList()->SetStringProperty("DICOM.patient_id",val.c_str()); } if (gdcmReader->patient_names().size()>o) { val = gdcmReader->patient_names().at(o); loaded_image->GetPropertyList()->SetStringProperty("DICOM.patient_name",val.c_str()); } if (gdcmReader->study_instance_uids().size()>o) { val = gdcmReader->study_instance_uids().at(o); loaded_image->GetPropertyList()->SetStringProperty("DICOM.study_instance_uid",val.c_str()); } if (gdcmReader->series_instance_uids().size()>o) { val = gdcmReader->series_instance_uids().at(o); loaded_image->GetPropertyList()->SetStringProperty("DICOM.series_instance_uid",val.c_str()); } if (gdcmReader->sop_instance_uids().size()>o) { val = gdcmReader->sop_instance_uids().at(o); loaded_image->GetPropertyList()->SetStringProperty("DICOM.sop_instance_uid",val.c_str()); } if (gdcmReader->frame_of_reference_uids().size()>o) { val = gdcmReader->frame_of_reference_uids().at(o); loaded_image->GetPropertyList()->SetStringProperty("DICOM.frame_of_reference_uid",val.c_str()); } result_images.push_back(loaded_image.GetPointer()); } // Since we have already read the tree, we can store it in a cache variable // so that it can be assigned to the DataObject in GenerateData(); m_OutputCache = outputForCache; m_CacheTime.Modified(); try { setlocale(LC_ALL, currLocale.c_str()); } catch(...) { MITK_INFO << "Could not reset locale " << currLocale; } } catch(std::exception& e) { try { setlocale(LC_ALL, currLocale.c_str()); } catch(...) { MITK_INFO << "Could not reset locale " << currLocale; } MITK_INFO << "Std::Exception while reading file!!"; MITK_INFO << e.what(); throw itk::ImageFileReaderException(__FILE__, __LINE__, e.what()); } catch(...) { try { setlocale(LC_ALL, currLocale.c_str()); } catch(...) { MITK_INFO << "Could not reset locale " << currLocale; } MITK_INFO << "Exception while reading file!!"; throw itk::ImageFileReaderException(__FILE__, __LINE__, "Sorry, an error occurred while reading the requested vessel tree file!"); } } return result_images; } } //namespace MITK #endif diff --git a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionImageDicomReaderService.h b/Modules/DiffusionIO/ReaderWriter/mitkDiffusionImageDicomReader.h similarity index 78% rename from Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionImageDicomReaderService.h rename to Modules/DiffusionIO/ReaderWriter/mitkDiffusionImageDicomReader.h index e74fcfe..6983763 100644 --- a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionImageDicomReaderService.h +++ b/Modules/DiffusionIO/ReaderWriter/mitkDiffusionImageDicomReader.h @@ -1,73 +1,73 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ -#ifndef __mitkDiffusionImageDicomReaderService_h -#define __mitkDiffusionImageDicomReaderService_h +#ifndef __mitkDiffusionImageDicomReader_h +#define __mitkDiffusionImageDicomReader_h #include "mitkCommon.h" // MITK includes #include "mitkImageSource.h" #include "mitkFileReader.h" #include // ITK includes #include "itkVectorImage.h" #include "mitkAbstractFileReader.h" namespace mitk { /** \brief */ - class DiffusionImageDicomReaderService : public mitk::AbstractFileReader + class DiffusionImageDicomReader : public mitk::AbstractFileReader { public: - DiffusionImageDicomReaderService(const DiffusionImageDicomReaderService & other); - DiffusionImageDicomReaderService(); - ~DiffusionImageDicomReaderService() override; + DiffusionImageDicomReader(const DiffusionImageDicomReader & other); + DiffusionImageDicomReader(); + ~DiffusionImageDicomReader() override; using AbstractFileReader::Read; std::vector > Read() override; typedef short DiffusionPixelType; typedef mitk::Image OutputType; typedef mitk::DiffusionPropertyHelper::ImageType VectorImageType; typedef mitk::DiffusionPropertyHelper::GradientDirectionType GradientDirectionType; typedef mitk::DiffusionPropertyHelper::MeasurementFrameType MeasurementFrameType; typedef mitk::DiffusionPropertyHelper::GradientDirectionsContainerType GradientDirectionContainerType; protected: OutputType::Pointer m_OutputCache; itk::TimeStamp m_CacheTime; std::vector > InternalRead(); private: - DiffusionImageDicomReaderService* Clone() const override; + DiffusionImageDicomReader* Clone() const override; us::ServiceRegistration m_ServiceReg; }; } //namespace MITK -#endif // __mitkDiffusionImageDicomReaderService_h +#endif // __mitkDiffusionImageDicomReader_h diff --git a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionImageNiftiReaderService.cpp b/Modules/DiffusionIO/ReaderWriter/mitkDiffusionImageNiftiReader.cpp similarity index 71% rename from Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionImageNiftiReaderService.cpp rename to Modules/DiffusionIO/ReaderWriter/mitkDiffusionImageNiftiReader.cpp index 7915778..9452914 100644 --- a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionImageNiftiReaderService.cpp +++ b/Modules/DiffusionIO/ReaderWriter/mitkDiffusionImageNiftiReader.cpp @@ -1,425 +1,342 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ -#ifndef __mitkDiffusionImageNiftiReaderService_cpp -#define __mitkDiffusionImageNiftiReaderService_cpp +#ifndef __mitkDiffusionImageNiftiReader_cpp +#define __mitkDiffusionImageNiftiReader_cpp -#include "mitkDiffusionImageNiftiReaderService.h" +#include "mitkDiffusionImageNiftiReader.h" #include #include // Diffusion properties #include #include #include #include // ITK includes #include #include #include "itksys/SystemTools.hxx" #include "itkImageFileReader.h" #include "itkMetaDataObject.h" #include "itkNiftiImageIO.h" #include "mitkCustomMimeType.h" -#include "mitkDiffusionCoreIOMimeTypes.h" +#include "mitkDiffusionIOMimeTypes.h" #include #include #include #include #include "mitkIOUtil.h" #include #include #include #include namespace mitk { -DiffusionImageNiftiReaderService:: -DiffusionImageNiftiReaderService(const DiffusionImageNiftiReaderService & other) +DiffusionImageNiftiReader:: +DiffusionImageNiftiReader(const DiffusionImageNiftiReader & other) : AbstractFileReader(other) { } -DiffusionImageNiftiReaderService* DiffusionImageNiftiReaderService::Clone() const +DiffusionImageNiftiReader* DiffusionImageNiftiReader::Clone() const { - return new DiffusionImageNiftiReaderService(*this); + return new DiffusionImageNiftiReader(*this); } -DiffusionImageNiftiReaderService:: -~DiffusionImageNiftiReaderService() +DiffusionImageNiftiReader:: +~DiffusionImageNiftiReader() {} -DiffusionImageNiftiReaderService:: -DiffusionImageNiftiReaderService(CustomMimeType mime_type, std::string mime_type_description ) : mitk::AbstractFileReader( mime_type, mime_type_description ) +DiffusionImageNiftiReader:: +DiffusionImageNiftiReader() + : mitk::AbstractFileReader( CustomMimeType( mitk::DiffusionIOMimeTypes::DWI_NIFTI_MIMETYPE() ), mitk::DiffusionIOMimeTypes::DWI_NIFTI_MIMETYPE_DESCRIPTION() ) + { Options defaultOptions; defaultOptions["Apply image rotation to gradients"] = true; this->SetDefaultOptions(defaultOptions); m_ServiceReg = this->RegisterService(); } -//DiffusionImageNiftiReaderService:: -//DiffusionImageNiftiReaderService() : mitk::AbstractFileReader( CustomMimeType( mitk::DiffusionCoreIOMimeTypes::DWI_NIFTI_MIMETYPE() ), mitk::DiffusionCoreIOMimeTypes::DWI_NIFTI_MIMETYPE_DESCRIPTION() ) -//{ -// m_ServiceReg = this->RegisterService(); -//} - std::vector > -DiffusionImageNiftiReaderService:: +DiffusionImageNiftiReader:: Read() { std::vector > result; // Since everything is completely read in GenerateOutputInformation() it is stored // in a cache variable. A timestamp is associated. // If the timestamp of the cache variable is newer than the MTime, we only need to // assign the cache variable to the DataObject. // Otherwise, the tree must be read again from the file and OuputInformation must // be updated! if(m_OutputCache.IsNull()) InternalRead(); result.push_back(m_OutputCache.GetPointer()); return result; } -void DiffusionImageNiftiReaderService::InternalRead() +void DiffusionImageNiftiReader::InternalRead() { OutputType::Pointer outputForCache = OutputType::New(); if ( this->GetInputLocation() == "") { throw itk::ImageFileReaderException(__FILE__, __LINE__, "Sorry, the filename to be read is empty!"); } else { try { mitk::LocaleSwitch localeSwitch("C"); - MITK_INFO << "DiffusionImageNiftiReaderService: reading image information"; + MITK_INFO << "DiffusionImageNiftiReader: reading image information"; VectorImageType::Pointer itkVectorImage; std::string ext = this->GetMimeType()->GetExtension( this->GetInputLocation() ); ext = itksys::SystemTools::LowerCase( ext ); - if(ext == ".fsl" || ext == ".fslgz") - { - // create temporary file with correct ending for nifti-io - std::string fname3 = "temp_dwi"; - fname3 += ext == ".fsl" ? ".nii" : ".nii.gz"; - itksys::SystemTools::CopyAFile(this->GetInputLocation().c_str(), fname3.c_str()); - - // create reader and read file - typedef itk::Image ImageType4D; - itk::NiftiImageIO::Pointer io2 = itk::NiftiImageIO::New(); - typedef itk::ImageFileReader FileReaderType; - FileReaderType::Pointer reader = FileReaderType::New(); - reader->SetFileName(fname3); - reader->SetImageIO(io2); - reader->Update(); - ImageType4D::Pointer img4 = reader->GetOutput(); - - // delete temporary file - itksys::SystemTools::RemoveFile(fname3.c_str()); - - // convert 4D file to vector image - itkVectorImage = VectorImageType::New(); - - VectorImageType::SpacingType spacing; - ImageType4D::SpacingType spacing4 = img4->GetSpacing(); - for(int i=0; i<3; i++) - spacing[i] = spacing4[i]; - itkVectorImage->SetSpacing( spacing ); // Set the image spacing - - VectorImageType::PointType origin; - ImageType4D::PointType origin4 = img4->GetOrigin(); - for(int i=0; i<3; i++) - origin[i] = origin4[i]; - itkVectorImage->SetOrigin( origin ); // Set the image origin - - VectorImageType::DirectionType direction; - ImageType4D::DirectionType direction4 = img4->GetDirection(); - for(int i=0; i<3; i++) - for(int j=0; j<3; j++) - direction[i][j] = direction4[i][j]; - itkVectorImage->SetDirection( direction ); // Set the image direction - - VectorImageType::RegionType region; - ImageType4D::RegionType region4 = img4->GetLargestPossibleRegion(); - - VectorImageType::RegionType::SizeType size; - ImageType4D::RegionType::SizeType size4 = region4.GetSize(); - - for(int i=0; i<3; i++) - size[i] = size4[i]; - - VectorImageType::RegionType::IndexType index; - ImageType4D::RegionType::IndexType index4 = region4.GetIndex(); - for(int i=0; i<3; i++) - index[i] = index4[i]; - - region.SetSize(size); - region.SetIndex(index); - itkVectorImage->SetRegions( region ); - - itkVectorImage->SetVectorLength(size4[3]); - itkVectorImage->Allocate(); - - itk::ImageRegionIterator it ( itkVectorImage, itkVectorImage->GetLargestPossibleRegion() ); - typedef VectorImageType::PixelType VecPixType; - for (it.GoToBegin(); !it.IsAtEnd(); ++it) - { - VecPixType vec = it.Get(); - VectorImageType::IndexType currentIndex = it.GetIndex(); - for(int i=0; i<3; i++) - index4[i] = currentIndex[i]; - for(unsigned int ind=0; indGetPixel(index4); - } - it.Set(vec); - } - } - else if(ext == ".nii" || ext == ".nii.gz") + if(ext == ".nii" || ext == ".nii.gz") { // create reader and read file typedef itk::Image ImageType4D; itk::NiftiImageIO::Pointer io2 = itk::NiftiImageIO::New(); ImageType4D::Pointer img4 = ImageType4D::New(); if (io2->CanReadFile(this->GetInputLocation().c_str())) { typedef itk::ImageFileReader FileReaderType; FileReaderType::Pointer reader = FileReaderType::New(); reader->SetFileName( this->GetInputLocation() ); reader->SetImageIO(io2); reader->Update(); img4 = reader->GetOutput(); } else { vtkSmartPointer reader = vtkSmartPointer::New(); if (reader->CanReadFile(this->GetInputLocation().c_str())) { reader->SetFileName(this->GetInputLocation().c_str()); reader->SetTimeAsVector(true); reader->Update(); auto vtk_image = reader->GetOutput(); auto header = reader->GetNIFTIHeader(); auto dim = header->GetDim(0); auto matrix = reader->GetQFormMatrix(); if (matrix == nullptr) matrix = reader->GetSFormMatrix(); itk::Matrix direction; direction.SetIdentity(); itk::Matrix ras_lps; ras_lps.SetIdentity(); ras_lps[0][0] = -1; ras_lps[1][1] = -1; if (matrix != nullptr) { for (int r=0; rGetElement(r, c); } direction = direction*ras_lps; itk::Vector< double, 4 > spacing; spacing.Fill(1.0); vtk_image->GetSpacing(spacing.GetDataPointer()); itk::Point< double, 4 > origin; origin.Fill(0.0); vtk_image->GetOrigin(origin.GetDataPointer()); itk::ImageRegion< 4 > region; for (int i=0; i<4; ++i) if (iGetDim(i+1)); else region.SetSize(i, 1); img4->SetSpacing( spacing ); img4->SetOrigin( origin ); img4->SetDirection( direction ); img4->SetRegions( region ); img4->Allocate(); img4->FillBuffer(0); switch (header->GetDim(0)) { case 4: for (int g=0; gGetDim(4); g++) for (int z=0; zGetDim(3); z++) for (int y=0; yGetDim(2); y++) for (int x=0; xGetDim(1); x++) { double val = vtk_image->GetScalarComponentAsDouble(x, y, z, g); ImageType4D::IndexType idx; idx[0] = x; idx[1] = y; idx[2] = z; idx[3] = g; img4->SetPixel(idx, val); } break; default: mitkThrow() << "Image dimension " << header->GetDim(0) << " not supported!"; break; } } } // convert 4D file to vector image itkVectorImage = VectorImageType::New(); VectorImageType::SpacingType spacing; ImageType4D::SpacingType spacing4 = img4->GetSpacing(); for(int i=0; i<3; i++) spacing[i] = spacing4[i]; itkVectorImage->SetSpacing( spacing ); // Set the image spacing VectorImageType::PointType origin; ImageType4D::PointType origin4 = img4->GetOrigin(); for(int i=0; i<3; i++) origin[i] = origin4[i]; itkVectorImage->SetOrigin( origin ); // Set the image origin VectorImageType::DirectionType direction; ImageType4D::DirectionType direction4 = img4->GetDirection(); for(int i=0; i<3; i++) for(int j=0; j<3; j++) direction[i][j] = direction4[i][j]; itkVectorImage->SetDirection( direction ); // Set the image direction VectorImageType::RegionType region; ImageType4D::RegionType region4 = img4->GetLargestPossibleRegion(); VectorImageType::RegionType::SizeType size; ImageType4D::RegionType::SizeType size4 = region4.GetSize(); for(int i=0; i<3; i++) size[i] = size4[i]; VectorImageType::RegionType::IndexType index; ImageType4D::RegionType::IndexType index4 = region4.GetIndex(); for(int i=0; i<3; i++) index[i] = index4[i]; region.SetSize(size); region.SetIndex(index); itkVectorImage->SetRegions( region ); itkVectorImage->SetVectorLength(size4[3]); itkVectorImage->Allocate(); itk::ImageRegionIterator it ( itkVectorImage, itkVectorImage->GetLargestPossibleRegion() ); typedef VectorImageType::PixelType VecPixType; for (it.GoToBegin(); !it.IsAtEnd(); ++it) { VecPixType vec = it.Get(); VectorImageType::IndexType currentIndex = it.GetIndex(); for(int i=0; i<3; i++) index4[i] = currentIndex[i]; for(unsigned int ind=0; indGetPixel(index4); } it.Set(vec); } } // Diffusion Image information START GradientDirectionContainerType::Pointer DiffusionVectors = GradientDirectionContainerType::New(); MeasurementFrameType MeasurementFrame; double BValue = -1; // Diffusion Image information END - if(ext == ".fsl" || ext == ".fslgz" || ext == ".nii" || ext == ".nii.gz") + if(ext == ".nii" || ext == ".nii.gz") { std::string base_path = itksys::SystemTools::GetFilenamePath(this->GetInputLocation()); std::string base = this->GetMimeType()->GetFilenameWithoutExtension(this->GetInputLocation()); if (!base_path.empty()) { base = base_path + "/" + base; base_path += "/"; } // check for possible file names std::string bvals_file, bvecs_file; if (itksys::SystemTools::FileExists(base+".bvals")) bvals_file = base+".bvals"; else if (itksys::SystemTools::FileExists(base+".bval")) bvals_file = base+".bval"; else if (itksys::SystemTools::FileExists(base_path+"bvals")) bvals_file = base_path + "bvals"; else if (itksys::SystemTools::FileExists(base_path+"bval")) bvals_file = base_path + "bval"; if (itksys::SystemTools::FileExists(std::string(base+".bvecs").c_str())) bvecs_file = base+".bvecs"; else if (itksys::SystemTools::FileExists(base+".bvec")) bvals_file = base+".bvec"; else if (itksys::SystemTools::FileExists(base_path+"bvecs")) bvecs_file = base_path + "bvecs"; else if (itksys::SystemTools::FileExists(base_path+"bvec")) bvecs_file = base_path + "bvec"; DiffusionVectors = mitk::gradients::ReadBvalsBvecs(bvals_file, bvecs_file, BValue); MeasurementFrame.set_identity(); } outputForCache = mitk::GrabItkImageMemory( itkVectorImage); // create BValueMap mitk::BValueMapProperty::BValueMap BValueMap = mitk::BValueMapProperty::CreateBValueMap(DiffusionVectors,BValue); mitk::DiffusionPropertyHelper::SetOriginalGradientContainer(outputForCache, DiffusionVectors); mitk::DiffusionPropertyHelper::SetMeasurementFrame(outputForCache, MeasurementFrame); mitk::DiffusionPropertyHelper::SetBValueMap(outputForCache, BValueMap); mitk::DiffusionPropertyHelper::SetReferenceBValue(outputForCache, BValue); mitk::DiffusionPropertyHelper::SetApplyMatrixToGradients(outputForCache, us::any_cast(this->GetOptions()["Apply image rotation to gradients"])); mitk::DiffusionPropertyHelper::InitializeImage(outputForCache); // Since we have already read the tree, we can store it in a cache variable // so that it can be assigned to the DataObject in GenerateData(); m_OutputCache = outputForCache; m_CacheTime.Modified(); } catch(std::exception& e) { MITK_INFO << "Std::Exception while reading file!!"; MITK_INFO << e.what(); throw itk::ImageFileReaderException(__FILE__, __LINE__, e.what()); } catch(...) { MITK_INFO << "Exception while reading file!!"; - throw itk::ImageFileReaderException(__FILE__, __LINE__, "Sorry, an error occurred while reading the requested vessel tree file!"); + throw itk::ImageFileReaderException(__FILE__, __LINE__, "Sorry, an error occurred while reading the requested file!"); } } } } //namespace MITK #endif diff --git a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionImageNrrdReaderService.h b/Modules/DiffusionIO/ReaderWriter/mitkDiffusionImageNiftiReader.h similarity index 78% rename from Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionImageNrrdReaderService.h rename to Modules/DiffusionIO/ReaderWriter/mitkDiffusionImageNiftiReader.h index 9faf34b..fd2dc3a 100644 --- a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionImageNrrdReaderService.h +++ b/Modules/DiffusionIO/ReaderWriter/mitkDiffusionImageNiftiReader.h @@ -1,73 +1,73 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ -#ifndef __mitkDiffusionImageNrrdReaderService_h -#define __mitkDiffusionImageNrrdReaderService_h +#ifndef __mitkDiffusionImageNiftiReader_h +#define __mitkDiffusionImageNiftiReader_h #include "mitkCommon.h" // MITK includes #include "mitkImageSource.h" #include "mitkFileReader.h" #include // ITK includes #include "itkVectorImage.h" #include "mitkAbstractFileReader.h" namespace mitk { /** \brief */ - class DiffusionImageNrrdReaderService : public mitk::AbstractFileReader + class DiffusionImageNiftiReader : public mitk::AbstractFileReader { public: - DiffusionImageNrrdReaderService(const DiffusionImageNrrdReaderService & other); - DiffusionImageNrrdReaderService(); - ~DiffusionImageNrrdReaderService() override; + DiffusionImageNiftiReader(const DiffusionImageNiftiReader & other); + DiffusionImageNiftiReader(); + ~DiffusionImageNiftiReader() override; using AbstractFileReader::Read; std::vector > Read() override; typedef short DiffusionPixelType; typedef mitk::Image OutputType; typedef mitk::DiffusionPropertyHelper::ImageType VectorImageType; typedef mitk::DiffusionPropertyHelper::GradientDirectionType GradientDirectionType; typedef mitk::DiffusionPropertyHelper::MeasurementFrameType MeasurementFrameType; typedef mitk::DiffusionPropertyHelper::GradientDirectionsContainerType GradientDirectionContainerType; protected: OutputType::Pointer m_OutputCache; itk::TimeStamp m_CacheTime; void InternalRead(); private: - DiffusionImageNrrdReaderService* Clone() const override; + DiffusionImageNiftiReader* Clone() const override; us::ServiceRegistration m_ServiceReg; }; } //namespace MITK -#endif // __mitkDiffusionImageNrrdReaderService_h +#endif // __mitkDiffusionImageNiftiReader_h diff --git a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionImageNiftiWriterService.cpp b/Modules/DiffusionIO/ReaderWriter/mitkDiffusionImageNiftiWriter.cpp similarity index 89% rename from Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionImageNiftiWriterService.cpp rename to Modules/DiffusionIO/ReaderWriter/mitkDiffusionImageNiftiWriter.cpp index 918773f..6896dc7 100644 --- a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionImageNiftiWriterService.cpp +++ b/Modules/DiffusionIO/ReaderWriter/mitkDiffusionImageNiftiWriter.cpp @@ -1,249 +1,249 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ -#ifndef __mitkDiffusionImageNiftiWriterService__cpp -#define __mitkDiffusionImageNiftiWriterService__cpp +#ifndef __mitkDiffusionImageNiftiWriter__cpp +#define __mitkDiffusionImageNiftiWriter__cpp -#include "mitkDiffusionImageNiftiWriterService.h" +#include "mitkDiffusionImageNiftiWriter.h" #include "itkMetaDataDictionary.h" #include "itkMetaDataObject.h" #include "itkNiftiImageIO.h" #include "itkImageFileWriter.h" #include "itksys/SystemTools.hxx" -#include "mitkDiffusionCoreIOMimeTypes.h" +#include "mitkDiffusionIOMimeTypes.h" #include "mitkImageCast.h" #include #include #include #include -mitk::DiffusionImageNiftiWriterService::DiffusionImageNiftiWriterService() - : AbstractFileWriter(mitk::Image::GetStaticNameOfClass(), CustomMimeType( mitk::DiffusionCoreIOMimeTypes::DWI_NIFTI_MIMETYPE() ), mitk::DiffusionCoreIOMimeTypes::DWI_NIFTI_MIMETYPE_DESCRIPTION()) +mitk::DiffusionImageNiftiWriter::DiffusionImageNiftiWriter() + : AbstractFileWriter(mitk::Image::GetStaticNameOfClass(), CustomMimeType( mitk::DiffusionIOMimeTypes::DWI_NIFTI_MIMETYPE() ), mitk::DiffusionIOMimeTypes::DWI_NIFTI_MIMETYPE_DESCRIPTION()) { RegisterService(); } -mitk::DiffusionImageNiftiWriterService::DiffusionImageNiftiWriterService(const mitk::DiffusionImageNiftiWriterService& other) +mitk::DiffusionImageNiftiWriter::DiffusionImageNiftiWriter(const mitk::DiffusionImageNiftiWriter& other) : AbstractFileWriter(other) { } -mitk::DiffusionImageNiftiWriterService::~DiffusionImageNiftiWriterService() +mitk::DiffusionImageNiftiWriter::~DiffusionImageNiftiWriter() {} -void mitk::DiffusionImageNiftiWriterService::Write() +void mitk::DiffusionImageNiftiWriter::Write() { mitk::Image::ConstPointer input = dynamic_cast(this->GetInput()); VectorImageType::Pointer itkImg; mitk::CastToItkImage(input,itkImg); if (input.IsNull()) { - MITK_ERROR <<"Sorry, input to DiffusionImageNiftiWriterService is nullptr!"; + MITK_ERROR <<"Sorry, input to DiffusionImageNiftiWriter is nullptr!"; return; } if ( this->GetOutputLocation().empty() ) { MITK_ERROR << "Sorry, filename has not been set!"; return ; } mitk::LocaleSwitch localeSwitch("C"); char keybuffer[512]; char valbuffer[512]; //itk::MetaDataDictionary dic = input->GetImage()->GetMetaDataDictionary(); vnl_matrix_fixed measurementFrame = mitk::DiffusionPropertyHelper::GetMeasurementFrame(input); if (measurementFrame(0,0) || measurementFrame(0,1) || measurementFrame(0,2) || measurementFrame(1,0) || measurementFrame(1,1) || measurementFrame(1,2) || measurementFrame(2,0) || measurementFrame(2,1) || measurementFrame(2,2)) { sprintf( valbuffer, " (%lf,%lf,%lf) (%lf,%lf,%lf) (%lf,%lf,%lf)", measurementFrame(0,0), measurementFrame(0,1), measurementFrame(0,2), measurementFrame(1,0), measurementFrame(1,1), measurementFrame(1,2), measurementFrame(2,0), measurementFrame(2,1), measurementFrame(2,2)); itk::EncapsulateMetaData(itkImg->GetMetaDataDictionary(),std::string("measurement frame"),std::string(valbuffer)); } sprintf( valbuffer, "DWMRI"); itk::EncapsulateMetaData(itkImg->GetMetaDataDictionary(),std::string("modality"),std::string(valbuffer)); if(mitk::DiffusionPropertyHelper::GetGradientContainer(input)->Size()) { sprintf( valbuffer, "%1f", mitk::DiffusionPropertyHelper::GetReferenceBValue(input) ); itk::EncapsulateMetaData(itkImg->GetMetaDataDictionary(),std::string("DWMRI_b-value"),std::string(valbuffer)); } for(unsigned int i=0; iSize(); i++) { sprintf( keybuffer, "DWMRI_gradient_%04d", i ); /*if(itk::ExposeMetaData(input->GetMetaDataDictionary(), std::string(keybuffer),tmp)) continue;*/ sprintf( valbuffer, "%1f %1f %1f", mitk::DiffusionPropertyHelper::GetGradientContainer(input)->ElementAt(i).get(0), mitk::DiffusionPropertyHelper::GetGradientContainer(input)->ElementAt(i).get(1), mitk::DiffusionPropertyHelper::GetGradientContainer(input)->ElementAt(i).get(2)); itk::EncapsulateMetaData(itkImg->GetMetaDataDictionary(),std::string(keybuffer),std::string(valbuffer)); } typedef itk::VectorImage ImageType; std::string ext = this->GetMimeType()->GetExtension(this->GetOutputLocation()); ext = itksys::SystemTools::LowerCase(ext); // default extension is .nii.gz if( ext == "") { ext = ".nii.gz"; this->SetOutputLocation(this->GetOutputLocation() + ext); } if (ext == ".nii" || ext == ".nii.gz") { MITK_INFO << "Writing Nifti-Image"; typedef itk::Image ImageType4D; ImageType4D::Pointer img4 = ImageType4D::New(); ImageType::SpacingType spacing = itkImg->GetSpacing(); ImageType4D::SpacingType spacing4; for(int i=0; i<3; i++) spacing4[i] = spacing[i]; spacing4[3] = 1; img4->SetSpacing( spacing4 ); // Set the image spacing ImageType::PointType origin = itkImg->GetOrigin(); ImageType4D::PointType origin4; for(int i=0; i<3; i++) origin4[i] = origin[i]; origin4[3] = 0; img4->SetOrigin( origin4 ); // Set the image origin ImageType::DirectionType direction = itkImg->GetDirection(); ImageType4D::DirectionType direction4; for(int i=0; i<3; i++) for(int j=0; j<3; j++) direction4[i][j] = direction[i][j]; for(int i=0; i<4; i++) direction4[i][3] = 0; for(int i=0; i<4; i++) direction4[3][i] = 0; direction4[3][3] = 1; img4->SetDirection( direction4 ); // Set the image direction ImageType::RegionType region = itkImg->GetLargestPossibleRegion(); ImageType4D::RegionType region4; ImageType::RegionType::SizeType size = region.GetSize(); ImageType4D::RegionType::SizeType size4; for(int i=0; i<3; i++) size4[i] = size[i]; size4[3] = itkImg->GetVectorLength(); ImageType::RegionType::IndexType index = region.GetIndex(); ImageType4D::RegionType::IndexType index4; for(int i=0; i<3; i++) index4[i] = index[i]; index4[3] = 0; region4.SetSize(size4); region4.SetIndex(index4); img4->SetRegions( region4 ); img4->Allocate(); itk::ImageRegionIterator it (itkImg, itkImg->GetLargestPossibleRegion() ); typedef ImageType::PixelType VecPixType; for (it.GoToBegin(); !it.IsAtEnd(); ++it) { VecPixType vec = it.Get(); ImageType::IndexType currentIndex = it.GetIndex(); for(unsigned int ind=0; indSetPixel(index4, vec[ind]); } } itk::NiftiImageIO::Pointer io4 = itk::NiftiImageIO::New(); typedef itk::ImageFileWriter WriterType4; WriterType4::Pointer nrrdWriter4 = WriterType4::New(); nrrdWriter4->UseInputMetaDataDictionaryOn(); nrrdWriter4->SetInput( img4 ); nrrdWriter4->SetFileName(this->GetOutputLocation()); nrrdWriter4->UseCompressionOn(); nrrdWriter4->SetImageIO(io4); try { nrrdWriter4->Update(); } catch (const itk::ExceptionObject& e) { std::cout << e.GetDescription() << std::endl; throw; } std::string base_path = itksys::SystemTools::GetFilenamePath(this->GetOutputLocation()); std::string bvals_file = this->GetMimeType()->GetFilenameWithoutExtension(this->GetOutputLocation()); if (!base_path.empty()) bvals_file = base_path + "/" + bvals_file; bvals_file += ".bvals"; std::string bvecs_file = this->GetMimeType()->GetFilenameWithoutExtension(this->GetOutputLocation()); if (!base_path.empty()) bvecs_file = base_path + "/" + bvecs_file; bvecs_file += ".bvecs"; if(mitk::DiffusionPropertyHelper::GetOriginalGradientContainer(input)->Size()) { MITK_INFO << "Saving original gradient directions"; mitk::gradients::WriteBvalsBvecs(bvals_file, bvecs_file, mitk::DiffusionPropertyHelper::GetOriginalGradientContainer(input), mitk::DiffusionPropertyHelper::GetReferenceBValue(input)); } else if(mitk::DiffusionPropertyHelper::GetGradientContainer(input)->Size()) { MITK_INFO << "Original gradient directions not found. Saving modified gradient directions"; mitk::gradients::WriteBvalsBvecs(bvals_file, bvecs_file, mitk::DiffusionPropertyHelper::GetGradientContainer(input), mitk::DiffusionPropertyHelper::GetReferenceBValue(input)); } } } -mitk::DiffusionImageNiftiWriterService* mitk::DiffusionImageNiftiWriterService::Clone() const +mitk::DiffusionImageNiftiWriter* mitk::DiffusionImageNiftiWriter::Clone() const { - return new DiffusionImageNiftiWriterService(*this); + return new DiffusionImageNiftiWriter(*this); } -mitk::IFileWriter::ConfidenceLevel mitk::DiffusionImageNiftiWriterService::GetConfidenceLevel() const +mitk::IFileWriter::ConfidenceLevel mitk::DiffusionImageNiftiWriter::GetConfidenceLevel() const { mitk::Image::ConstPointer input = dynamic_cast(this->GetInput()); if (input.IsNull() || !mitk::DiffusionPropertyHelper::IsDiffusionWeightedImage( input ) ) { return Unsupported; } else { return Supported; } } -#endif //__mitkDiffusionImageNiftiWriterService__cpp +#endif //__mitkDiffusionImageNiftiWriter__cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionImageNrrdWriterService.h b/Modules/DiffusionIO/ReaderWriter/mitkDiffusionImageNiftiWriter.h similarity index 75% rename from Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionImageNrrdWriterService.h rename to Modules/DiffusionIO/ReaderWriter/mitkDiffusionImageNiftiWriter.h index f9d193a..f407f58 100644 --- a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionImageNrrdWriterService.h +++ b/Modules/DiffusionIO/ReaderWriter/mitkDiffusionImageNiftiWriter.h @@ -1,58 +1,58 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ -#ifndef _MITK_DiffusionImageNrrdWriterService__H_ -#define _MITK_DiffusionImageNrrdWriterService__H_ +#ifndef _MITK_DiffusionImageNiftiWriter__H_ +#define _MITK_DiffusionImageNiftiWriter__H_ #include #include namespace mitk { /** * Writes diffusion volumes to a file * @ingroup Process */ -class DiffusionImageNrrdWriterService : public mitk::AbstractFileWriter +class DiffusionImageNiftiWriter : public mitk::AbstractFileWriter { public: - DiffusionImageNrrdWriterService(); - ~DiffusionImageNrrdWriterService() override; + DiffusionImageNiftiWriter(); + ~DiffusionImageNiftiWriter() override; using AbstractFileWriter::Write; void Write() override; ConfidenceLevel GetConfidenceLevel() const override; typedef mitk::DiffusionPropertyHelper::ImageType VectorImageType; typedef mitk::DiffusionPropertyHelper::GradientDirectionType GradientDirectionType; typedef mitk::DiffusionPropertyHelper::MeasurementFrameType MeasurementFrameType; typedef mitk::DiffusionPropertyHelper::GradientDirectionsContainerType GradientDirectionContainerType; protected: - DiffusionImageNrrdWriterService(const DiffusionImageNrrdWriterService& other); - mitk::DiffusionImageNrrdWriterService* Clone() const override; + DiffusionImageNiftiWriter(const DiffusionImageNiftiWriter& other); + mitk::DiffusionImageNiftiWriter* Clone() const override; }; } // end of namespace mitk #endif diff --git a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionImageNrrdReaderService.cpp b/Modules/DiffusionIO/ReaderWriter/mitkDiffusionImageNrrdReader.cpp similarity index 89% rename from Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionImageNrrdReaderService.cpp rename to Modules/DiffusionIO/ReaderWriter/mitkDiffusionImageNrrdReader.cpp index 455463e..a689a2a 100644 --- a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionImageNrrdReaderService.cpp +++ b/Modules/DiffusionIO/ReaderWriter/mitkDiffusionImageNrrdReader.cpp @@ -1,249 +1,249 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ -#ifndef __mitkDiffusionImageNrrdReaderService_cpp -#define __mitkDiffusionImageNrrdReaderService_cpp +#ifndef __mitkDiffusionImageNrrdReader_cpp +#define __mitkDiffusionImageNrrdReader_cpp -#include "mitkDiffusionImageNrrdReaderService.h" +#include "mitkDiffusionImageNrrdReader.h" #include #include // Diffusion properties #include #include #include #include // ITK includes #include #include #include "itksys/SystemTools.hxx" #include "itkImageFileReader.h" #include "itkMetaDataObject.h" #include "itkNrrdImageIO.h" #include "mitkCustomMimeType.h" -#include "mitkDiffusionCoreIOMimeTypes.h" +#include "mitkDiffusionIOMimeTypes.h" #include #include #include #include "mitkIOUtil.h" #include namespace mitk { - DiffusionImageNrrdReaderService:: - DiffusionImageNrrdReaderService(const DiffusionImageNrrdReaderService & other) + DiffusionImageNrrdReader:: + DiffusionImageNrrdReader(const DiffusionImageNrrdReader & other) : AbstractFileReader(other) { } - DiffusionImageNrrdReaderService* DiffusionImageNrrdReaderService::Clone() const + DiffusionImageNrrdReader* DiffusionImageNrrdReader::Clone() const { - return new DiffusionImageNrrdReaderService(*this); + return new DiffusionImageNrrdReader(*this); } - DiffusionImageNrrdReaderService:: - ~DiffusionImageNrrdReaderService() + DiffusionImageNrrdReader:: + ~DiffusionImageNrrdReader() {} - DiffusionImageNrrdReaderService:: - DiffusionImageNrrdReaderService() - : mitk::AbstractFileReader( CustomMimeType( mitk::DiffusionCoreIOMimeTypes::DWI_NRRD_MIMETYPE() ), mitk::DiffusionCoreIOMimeTypes::DWI_NRRD_MIMETYPE_DESCRIPTION() ) + DiffusionImageNrrdReader:: + DiffusionImageNrrdReader() + : mitk::AbstractFileReader( CustomMimeType( mitk::DiffusionIOMimeTypes::DWI_NRRD_MIMETYPE() ), mitk::DiffusionIOMimeTypes::DWI_NRRD_MIMETYPE_DESCRIPTION() ) { Options defaultOptions; defaultOptions["Apply image rotation to gradients"] = true; this->SetDefaultOptions(defaultOptions); m_ServiceReg = this->RegisterService(); } std::vector > - DiffusionImageNrrdReaderService:: + DiffusionImageNrrdReader:: Read() { std::vector > result; // Since everything is completely read in GenerateOutputInformation() it is stored // in a cache variable. A timestamp is associated. // If the timestamp of the cache variable is newer than the MTime, we only need to // assign the cache variable to the DataObject. // Otherwise, the tree must be read again from the file and OuputInformation must // be updated! if(m_OutputCache.IsNull()) InternalRead(); result.push_back(m_OutputCache.GetPointer()); return result; } - void DiffusionImageNrrdReaderService::InternalRead() + void DiffusionImageNrrdReader::InternalRead() { OutputType::Pointer outputForCache = OutputType::New(); if ( this->GetInputLocation() == "") { throw itk::ImageFileReaderException(__FILE__, __LINE__, "Sorry, the filename to be read is empty!"); } else { try { mitk::LocaleSwitch localeSwitch("C"); - MITK_INFO << "DiffusionImageNrrdReaderService: reading image information"; + MITK_INFO << "DiffusionImageNrrdReader: reading image information"; VectorImageType::Pointer itkVectorImage; std::string ext = this->GetMimeType()->GetExtension( this->GetInputLocation() ); ext = itksys::SystemTools::LowerCase( ext ); if (ext == ".hdwi" || ext == ".dwi" || ext == ".nrrd") { typedef itk::ImageFileReader FileReaderType; FileReaderType::Pointer reader = FileReaderType::New(); reader->SetFileName(this->GetInputLocation()); itk::NrrdImageIO::Pointer io = itk::NrrdImageIO::New(); reader->SetImageIO(io); reader->Update(); itkVectorImage = reader->GetOutput(); } // Diffusion Image information START GradientDirectionContainerType::Pointer DiffusionVectors = GradientDirectionContainerType::New(); GradientDirectionContainerType::Pointer OriginalDiffusionVectors = GradientDirectionContainerType::New(); MeasurementFrameType MeasurementFrame; float BValue = -1; // Diffusion Image information END if (ext == ".hdwi" || ext == ".dwi" || ext == ".nrrd") { itk::MetaDataDictionary imgMetaDictionary = itkVectorImage->GetMetaDataDictionary(); std::vector imgMetaKeys = imgMetaDictionary.GetKeys(); std::vector::const_iterator itKey = imgMetaKeys.begin(); std::string metaString; GradientDirectionType vect3d; int numberOfImages = 0; int numberOfGradientImages = 0; bool readb0 = false; double xx, xy, xz, yx, yy, yz, zx, zy, zz; for (; itKey != imgMetaKeys.end(); itKey ++) { double x,y,z; itk::ExposeMetaData (imgMetaDictionary, *itKey, metaString); if (itKey->find("DWMRI_gradient") != std::string::npos) { sscanf(metaString.c_str(), "%lf %lf %lf\n", &x, &y, &z); vect3d[0] = x; vect3d[1] = y; vect3d[2] = z; DiffusionVectors->InsertElement( numberOfImages, vect3d ); ++numberOfImages; // If the direction is 0.0, this is a reference image if (vect3d[0] == 0.0 && vect3d[1] == 0.0 && vect3d[2] == 0.0) { continue; } ++numberOfGradientImages;; } else if (itKey->find("DWMRI_b-value") != std::string::npos) { readb0 = true; BValue = atof(metaString.c_str()); } else if (itKey->find("measurement frame") != std::string::npos) { sscanf(metaString.c_str(), " ( %lf , %lf , %lf ) ( %lf , %lf , %lf ) ( %lf , %lf , %lf ) \n", &xx, &xy, &xz, &yx, &yy, &yz, &zx, &zy, &zz); if (xx>10e-10 || xy>10e-10 || xz>10e-10 || yx>10e-10 || yy>10e-10 || yz>10e-10 || zx>10e-10 || zy>10e-10 || zz>10e-10 ) { MeasurementFrame(0,0) = xx; MeasurementFrame(0,1) = xy; MeasurementFrame(0,2) = xz; MeasurementFrame(1,0) = yx; MeasurementFrame(1,1) = yy; MeasurementFrame(1,2) = yz; MeasurementFrame(2,0) = zx; MeasurementFrame(2,1) = zy; MeasurementFrame(2,2) = zz; } else { MeasurementFrame(0,0) = 1; MeasurementFrame(0,1) = 0; MeasurementFrame(0,2) = 0; MeasurementFrame(1,0) = 0; MeasurementFrame(1,1) = 1; MeasurementFrame(1,2) = 0; MeasurementFrame(2,0) = 0; MeasurementFrame(2,1) = 0; MeasurementFrame(2,2) = 1; } } } if(!readb0) { MITK_INFO << "BValue not specified in header file"; } } outputForCache = mitk::GrabItkImageMemory( itkVectorImage); // create BValueMap mitk::BValueMapProperty::BValueMap BValueMap = mitk::BValueMapProperty::CreateBValueMap(DiffusionVectors,BValue); mitk::DiffusionPropertyHelper::SetOriginalGradientContainer(outputForCache, DiffusionVectors); mitk::DiffusionPropertyHelper::SetMeasurementFrame(outputForCache, MeasurementFrame); mitk::DiffusionPropertyHelper::SetBValueMap(outputForCache, BValueMap); mitk::DiffusionPropertyHelper::SetReferenceBValue(outputForCache, BValue); mitk::DiffusionPropertyHelper::SetApplyMatrixToGradients(outputForCache, us::any_cast(this->GetOptions()["Apply image rotation to gradients"])); mitk::DiffusionPropertyHelper::InitializeImage(outputForCache); // Since we have already read the tree, we can store it in a cache variable // so that it can be assigned to the DataObject in GenerateData(); m_OutputCache = outputForCache; m_CacheTime.Modified(); } catch(std::exception& e) { MITK_INFO << "Std::Exception while reading file!!"; MITK_INFO << e.what(); throw itk::ImageFileReaderException(__FILE__, __LINE__, e.what()); } catch(...) { MITK_INFO << "Exception while reading file!!"; throw itk::ImageFileReaderException(__FILE__, __LINE__, "Sorry, an error occurred while reading the requested vessel tree file!"); } } } } //namespace MITK #endif diff --git a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionImageNiftiReaderService.h b/Modules/DiffusionIO/ReaderWriter/mitkDiffusionImageNrrdReader.h similarity index 74% rename from Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionImageNiftiReaderService.h rename to Modules/DiffusionIO/ReaderWriter/mitkDiffusionImageNrrdReader.h index c4a6b97..dfd14d9 100644 --- a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionImageNiftiReaderService.h +++ b/Modules/DiffusionIO/ReaderWriter/mitkDiffusionImageNrrdReader.h @@ -1,74 +1,73 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ -#ifndef __mitkDiffusionImageNiftiReaderService_h -#define __mitkDiffusionImageNiftiReaderService_h +#ifndef __mitkDiffusionImageNrrdReader_h +#define __mitkDiffusionImageNrrdReader_h #include "mitkCommon.h" // MITK includes #include "mitkImageSource.h" #include "mitkFileReader.h" #include // ITK includes #include "itkVectorImage.h" #include "mitkAbstractFileReader.h" namespace mitk { /** \brief */ - class DiffusionImageNiftiReaderService : public mitk::AbstractFileReader + class DiffusionImageNrrdReader : public mitk::AbstractFileReader { public: - DiffusionImageNiftiReaderService(const DiffusionImageNiftiReaderService & other); - //DiffusionImageNiftiReaderService(); - DiffusionImageNiftiReaderService(CustomMimeType mime_type, std::string mime_type_description ); - ~DiffusionImageNiftiReaderService() override; + DiffusionImageNrrdReader(const DiffusionImageNrrdReader & other); + DiffusionImageNrrdReader(); + ~DiffusionImageNrrdReader() override; using AbstractFileReader::Read; std::vector > Read() override; typedef short DiffusionPixelType; typedef mitk::Image OutputType; typedef mitk::DiffusionPropertyHelper::ImageType VectorImageType; typedef mitk::DiffusionPropertyHelper::GradientDirectionType GradientDirectionType; typedef mitk::DiffusionPropertyHelper::MeasurementFrameType MeasurementFrameType; typedef mitk::DiffusionPropertyHelper::GradientDirectionsContainerType GradientDirectionContainerType; protected: OutputType::Pointer m_OutputCache; itk::TimeStamp m_CacheTime; void InternalRead(); private: - DiffusionImageNiftiReaderService* Clone() const override; + DiffusionImageNrrdReader* Clone() const override; us::ServiceRegistration m_ServiceReg; }; } //namespace MITK -#endif // __mitkDiffusionImageNiftiReaderService_h +#endif // __mitkDiffusionImageNrrdReader_h diff --git a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionImageNrrdWriterService.cpp b/Modules/DiffusionIO/ReaderWriter/mitkDiffusionImageNrrdWriter.cpp similarity index 85% rename from Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionImageNrrdWriterService.cpp rename to Modules/DiffusionIO/ReaderWriter/mitkDiffusionImageNrrdWriter.cpp index 37e3479..9b482de 100644 --- a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionImageNrrdWriterService.cpp +++ b/Modules/DiffusionIO/ReaderWriter/mitkDiffusionImageNrrdWriter.cpp @@ -1,173 +1,173 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ -#ifndef __mitkDiffusionImageNrrdWriterService__cpp -#define __mitkDiffusionImageNrrdWriterService__cpp +#ifndef __mitkDiffusionImageNrrdWriter__cpp +#define __mitkDiffusionImageNrrdWriter__cpp -#include "mitkDiffusionImageNrrdWriterService.h" +#include "mitkDiffusionImageNrrdWriter.h" #include "itkMetaDataDictionary.h" #include "itkMetaDataObject.h" #include "itkNrrdImageIO.h" #include "itkImageFileWriter.h" #include "itksys/SystemTools.hxx" -#include "mitkDiffusionCoreIOMimeTypes.h" +#include "mitkDiffusionIOMimeTypes.h" #include "mitkImageCast.h" #include #include #include -mitk::DiffusionImageNrrdWriterService::DiffusionImageNrrdWriterService() - : AbstractFileWriter(mitk::Image::GetStaticNameOfClass(), CustomMimeType( mitk::DiffusionCoreIOMimeTypes::DWI_NRRD_MIMETYPE() ), mitk::DiffusionCoreIOMimeTypes::DWI_NRRD_MIMETYPE_DESCRIPTION()) +mitk::DiffusionImageNrrdWriter::DiffusionImageNrrdWriter() + : AbstractFileWriter(mitk::Image::GetStaticNameOfClass(), CustomMimeType( mitk::DiffusionIOMimeTypes::DWI_NRRD_MIMETYPE() ), mitk::DiffusionIOMimeTypes::DWI_NRRD_MIMETYPE_DESCRIPTION()) { RegisterService(); } -mitk::DiffusionImageNrrdWriterService::DiffusionImageNrrdWriterService(const mitk::DiffusionImageNrrdWriterService& other) +mitk::DiffusionImageNrrdWriter::DiffusionImageNrrdWriter(const mitk::DiffusionImageNrrdWriter& other) : AbstractFileWriter(other) { } -mitk::DiffusionImageNrrdWriterService::~DiffusionImageNrrdWriterService() +mitk::DiffusionImageNrrdWriter::~DiffusionImageNrrdWriter() {} -void mitk::DiffusionImageNrrdWriterService::Write() +void mitk::DiffusionImageNrrdWriter::Write() { mitk::Image::ConstPointer input = dynamic_cast(this->GetInput()); VectorImageType::Pointer itkImg; mitk::CastToItkImage(input,itkImg); if (input.IsNull()) { - MITK_ERROR <<"Sorry, input to DiffusionImageNrrdWriterService is nullptr!"; + MITK_ERROR <<"Sorry, input to DiffusionImageNrrdWriter is nullptr!"; return; } if ( this->GetOutputLocation().empty() ) { MITK_ERROR << "Sorry, filename has not been set!"; return ; } mitk::LocaleSwitch localeSwitch("C"); char keybuffer[512]; char valbuffer[512]; //itk::MetaDataDictionary dic = input->GetImage()->GetMetaDataDictionary(); vnl_matrix_fixed measurementFrame = mitk::DiffusionPropertyHelper::GetMeasurementFrame(input); if (measurementFrame(0,0) || measurementFrame(0,1) || measurementFrame(0,2) || measurementFrame(1,0) || measurementFrame(1,1) || measurementFrame(1,2) || measurementFrame(2,0) || measurementFrame(2,1) || measurementFrame(2,2)) { sprintf( valbuffer, " (%lf,%lf,%lf) (%lf,%lf,%lf) (%lf,%lf,%lf)", measurementFrame(0,0), measurementFrame(0,1), measurementFrame(0,2), measurementFrame(1,0), measurementFrame(1,1), measurementFrame(1,2), measurementFrame(2,0), measurementFrame(2,1), measurementFrame(2,2)); itk::EncapsulateMetaData(itkImg->GetMetaDataDictionary(),std::string("measurement frame"),std::string(valbuffer)); } sprintf( valbuffer, "DWMRI"); itk::EncapsulateMetaData(itkImg->GetMetaDataDictionary(),std::string("modality"),std::string(valbuffer)); if (mitk::DiffusionPropertyHelper::GetOriginalGradientContainer(input)->Size()) { MITK_INFO << "Saving original gradient directions"; sprintf( valbuffer, "%1f", mitk::DiffusionPropertyHelper::GetReferenceBValue(input) ); itk::EncapsulateMetaData(itkImg->GetMetaDataDictionary(),std::string("DWMRI_b-value"),std::string(valbuffer)); for(unsigned int i=0; iSize(); i++) { sprintf( keybuffer, "DWMRI_gradient_%04d", i ); sprintf( valbuffer, "%1f %1f %1f", mitk::DiffusionPropertyHelper::GetOriginalGradientContainer(input)->ElementAt(i).get(0), mitk::DiffusionPropertyHelper::GetOriginalGradientContainer(input)->ElementAt(i).get(1), mitk::DiffusionPropertyHelper::GetOriginalGradientContainer(input)->ElementAt(i).get(2)); itk::EncapsulateMetaData(itkImg->GetMetaDataDictionary(),std::string(keybuffer),std::string(valbuffer)); } } else if(mitk::DiffusionPropertyHelper::GetGradientContainer(input)->Size()) { MITK_INFO << "Original gradient directions not found. Saving modified gradient directions"; sprintf( valbuffer, "%1f", mitk::DiffusionPropertyHelper::GetReferenceBValue(input) ); itk::EncapsulateMetaData(itkImg->GetMetaDataDictionary(),std::string("DWMRI_b-value"),std::string(valbuffer)); for(unsigned int i=0; iSize(); i++) { sprintf( keybuffer, "DWMRI_gradient_%04d", i ); sprintf( valbuffer, "%1f %1f %1f", mitk::DiffusionPropertyHelper::GetGradientContainer(input)->ElementAt(i).get(0), mitk::DiffusionPropertyHelper::GetGradientContainer(input)->ElementAt(i).get(1), mitk::DiffusionPropertyHelper::GetGradientContainer(input)->ElementAt(i).get(2)); itk::EncapsulateMetaData(itkImg->GetMetaDataDictionary(),std::string(keybuffer),std::string(valbuffer)); } } typedef itk::VectorImage ImageType; std::string ext = this->GetMimeType()->GetExtension(this->GetOutputLocation()); ext = itksys::SystemTools::LowerCase(ext); // default extension is .nrrd if( ext == "") { ext = ".nrrd"; this->SetOutputLocation(this->GetOutputLocation() + ext); } if (ext == ".hdwi" || ext == ".nrrd" || ext == ".dwi") { itk::NrrdImageIO::Pointer io = itk::NrrdImageIO::New(); io->SetFileType( itk::ImageIOBase::Binary ); io->UseCompressionOn(); typedef itk::ImageFileWriter WriterType; WriterType::Pointer nrrdWriter = WriterType::New(); nrrdWriter->UseInputMetaDataDictionaryOn(); nrrdWriter->SetInput( itkImg ); nrrdWriter->SetImageIO(io); nrrdWriter->SetFileName(this->GetOutputLocation()); nrrdWriter->UseCompressionOn(); nrrdWriter->SetImageIO(io); try { nrrdWriter->Update(); } catch (const itk::ExceptionObject& e) { std::cout << e.GetDescription() << std::endl; throw; } } } -mitk::DiffusionImageNrrdWriterService* mitk::DiffusionImageNrrdWriterService::Clone() const +mitk::DiffusionImageNrrdWriter* mitk::DiffusionImageNrrdWriter::Clone() const { - return new DiffusionImageNrrdWriterService(*this); + return new DiffusionImageNrrdWriter(*this); } -mitk::IFileWriter::ConfidenceLevel mitk::DiffusionImageNrrdWriterService::GetConfidenceLevel() const +mitk::IFileWriter::ConfidenceLevel mitk::DiffusionImageNrrdWriter::GetConfidenceLevel() const { mitk::Image::ConstPointer input = dynamic_cast(this->GetInput()); if (input.IsNull() || !mitk::DiffusionPropertyHelper::IsDiffusionWeightedImage( input ) ) { return Unsupported; } else { return Supported; } } -#endif //__mitkDiffusionImageNrrdWriterService__cpp +#endif //__mitkDiffusionImageNrrdWriter__cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionImageNiftiWriterService.h b/Modules/DiffusionIO/ReaderWriter/mitkDiffusionImageNrrdWriter.h similarity index 74% rename from Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionImageNiftiWriterService.h rename to Modules/DiffusionIO/ReaderWriter/mitkDiffusionImageNrrdWriter.h index 4937d93..719b1db 100644 --- a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionImageNiftiWriterService.h +++ b/Modules/DiffusionIO/ReaderWriter/mitkDiffusionImageNrrdWriter.h @@ -1,58 +1,58 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ -#ifndef _MITK_DiffusionImageNiftiWriterService__H_ -#define _MITK_DiffusionImageNiftiWriterService__H_ +#ifndef _MITK_DiffusionImageNrrdWriter__H_ +#define _MITK_DiffusionImageNrrdWriter__H_ #include #include namespace mitk { /** * Writes diffusion volumes to a file * @ingroup Process */ -class DiffusionImageNiftiWriterService : public mitk::AbstractFileWriter +class DiffusionImageNrrdWriter : public mitk::AbstractFileWriter { public: - DiffusionImageNiftiWriterService(); - ~DiffusionImageNiftiWriterService() override; + DiffusionImageNrrdWriter(); + ~DiffusionImageNrrdWriter() override; using AbstractFileWriter::Write; void Write() override; ConfidenceLevel GetConfidenceLevel() const override; typedef mitk::DiffusionPropertyHelper::ImageType VectorImageType; typedef mitk::DiffusionPropertyHelper::GradientDirectionType GradientDirectionType; typedef mitk::DiffusionPropertyHelper::MeasurementFrameType MeasurementFrameType; typedef mitk::DiffusionPropertyHelper::GradientDirectionsContainerType GradientDirectionContainerType; protected: - DiffusionImageNiftiWriterService(const DiffusionImageNiftiWriterService& other); - mitk::DiffusionImageNiftiWriterService* Clone() const override; + DiffusionImageNrrdWriter(const DiffusionImageNrrdWriter& other); + mitk::DiffusionImageNrrdWriter* Clone() const override; }; } // end of namespace mitk #endif diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkFiberBundleDicomReader.cpp b/Modules/DiffusionIO/ReaderWriter/mitkFiberBundleDicomReader.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionIO/mitkFiberBundleDicomReader.cpp rename to Modules/DiffusionIO/ReaderWriter/mitkFiberBundleDicomReader.cpp diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkFiberBundleDicomReader.h b/Modules/DiffusionIO/ReaderWriter/mitkFiberBundleDicomReader.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionIO/mitkFiberBundleDicomReader.h rename to Modules/DiffusionIO/ReaderWriter/mitkFiberBundleDicomReader.h diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkFiberBundleDicomWriter.cpp b/Modules/DiffusionIO/ReaderWriter/mitkFiberBundleDicomWriter.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionIO/mitkFiberBundleDicomWriter.cpp rename to Modules/DiffusionIO/ReaderWriter/mitkFiberBundleDicomWriter.cpp diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkFiberBundleDicomWriter.h b/Modules/DiffusionIO/ReaderWriter/mitkFiberBundleDicomWriter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionIO/mitkFiberBundleDicomWriter.h rename to Modules/DiffusionIO/ReaderWriter/mitkFiberBundleDicomWriter.h diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkFiberBundleSerializer.cpp b/Modules/DiffusionIO/ReaderWriter/mitkFiberBundleSerializer.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionIO/mitkFiberBundleSerializer.cpp rename to Modules/DiffusionIO/ReaderWriter/mitkFiberBundleSerializer.cpp diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkFiberBundleSerializer.h b/Modules/DiffusionIO/ReaderWriter/mitkFiberBundleSerializer.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionIO/mitkFiberBundleSerializer.h rename to Modules/DiffusionIO/ReaderWriter/mitkFiberBundleSerializer.h diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkFiberBundleTckReader.cpp b/Modules/DiffusionIO/ReaderWriter/mitkFiberBundleTckReader.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionIO/mitkFiberBundleTckReader.cpp rename to Modules/DiffusionIO/ReaderWriter/mitkFiberBundleTckReader.cpp diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkFiberBundleTckReader.h b/Modules/DiffusionIO/ReaderWriter/mitkFiberBundleTckReader.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionIO/mitkFiberBundleTckReader.h rename to Modules/DiffusionIO/ReaderWriter/mitkFiberBundleTckReader.h diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkFiberBundleTrackVisReader.cpp b/Modules/DiffusionIO/ReaderWriter/mitkFiberBundleTrackVisReader.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionIO/mitkFiberBundleTrackVisReader.cpp rename to Modules/DiffusionIO/ReaderWriter/mitkFiberBundleTrackVisReader.cpp diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkFiberBundleTrackVisReader.h b/Modules/DiffusionIO/ReaderWriter/mitkFiberBundleTrackVisReader.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionIO/mitkFiberBundleTrackVisReader.h rename to Modules/DiffusionIO/ReaderWriter/mitkFiberBundleTrackVisReader.h diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkFiberBundleTrackVisWriter.cpp b/Modules/DiffusionIO/ReaderWriter/mitkFiberBundleTrackVisWriter.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionIO/mitkFiberBundleTrackVisWriter.cpp rename to Modules/DiffusionIO/ReaderWriter/mitkFiberBundleTrackVisWriter.cpp diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkFiberBundleTrackVisWriter.h b/Modules/DiffusionIO/ReaderWriter/mitkFiberBundleTrackVisWriter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionIO/mitkFiberBundleTrackVisWriter.h rename to Modules/DiffusionIO/ReaderWriter/mitkFiberBundleTrackVisWriter.h diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkFiberBundleVtkReader.cpp b/Modules/DiffusionIO/ReaderWriter/mitkFiberBundleVtkReader.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionIO/mitkFiberBundleVtkReader.cpp rename to Modules/DiffusionIO/ReaderWriter/mitkFiberBundleVtkReader.cpp diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkFiberBundleVtkReader.h b/Modules/DiffusionIO/ReaderWriter/mitkFiberBundleVtkReader.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionIO/mitkFiberBundleVtkReader.h rename to Modules/DiffusionIO/ReaderWriter/mitkFiberBundleVtkReader.h diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkFiberBundleVtkWriter.cpp b/Modules/DiffusionIO/ReaderWriter/mitkFiberBundleVtkWriter.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionIO/mitkFiberBundleVtkWriter.cpp rename to Modules/DiffusionIO/ReaderWriter/mitkFiberBundleVtkWriter.cpp diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkFiberBundleVtkWriter.h b/Modules/DiffusionIO/ReaderWriter/mitkFiberBundleVtkWriter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionIO/mitkFiberBundleVtkWriter.h rename to Modules/DiffusionIO/ReaderWriter/mitkFiberBundleVtkWriter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkNrrdOdfImageReader.cpp b/Modules/DiffusionIO/ReaderWriter/mitkNrrdOdfImageReader.cpp similarity index 94% rename from Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkNrrdOdfImageReader.cpp rename to Modules/DiffusionIO/ReaderWriter/mitkNrrdOdfImageReader.cpp index 8faf43b..01451ca 100644 --- a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkNrrdOdfImageReader.cpp +++ b/Modules/DiffusionIO/ReaderWriter/mitkNrrdOdfImageReader.cpp @@ -1,118 +1,118 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ #include "mitkNrrdOdfImageReader.h" #include -#include "mitkDiffusionCoreIOMimeTypes.h" +#include "mitkDiffusionIOMimeTypes.h" #include "itkImageFileReader.h" #include "itkImageRegionIterator.h" #include "itkMetaDataObject.h" #include "itkNrrdImageIO.h" #include "mitkITKImageImport.h" #include "mitkImageDataItem.h" #include namespace mitk { NrrdOdfImageReader::NrrdOdfImageReader(const NrrdOdfImageReader& other) : mitk::AbstractFileReader(other) { } NrrdOdfImageReader::NrrdOdfImageReader() - : mitk::AbstractFileReader( CustomMimeType( mitk::DiffusionCoreIOMimeTypes::ODF_MIMETYPE() ), mitk::DiffusionCoreIOMimeTypes::ODF_MIMETYPE_DESCRIPTION() ) + : mitk::AbstractFileReader( CustomMimeType( mitk::DiffusionIOMimeTypes::ODF_MIMETYPE() ), mitk::DiffusionIOMimeTypes::ODF_MIMETYPE_DESCRIPTION() ) { m_ServiceReg = this->RegisterService(); } NrrdOdfImageReader::~NrrdOdfImageReader() { } std::vector > NrrdOdfImageReader::Read() { std::vector > result; std::string location = GetInputLocation(); if ( location == "") { throw itk::ImageFileReaderException(__FILE__, __LINE__, "Sorry, the filename of the ODF image to be read is empty!"); } else { try { mitk::LocaleSwitch localeSwitch("C"); typedef itk::VectorImage ImageType; itk::NrrdImageIO::Pointer io = itk::NrrdImageIO::New(); typedef itk::ImageFileReader FileReaderType; FileReaderType::Pointer reader = FileReaderType::New(); reader->SetImageIO(io); reader->SetFileName(location); reader->Update(); ImageType::Pointer img = reader->GetOutput(); typedef itk::Image,3> VecImgType; VecImgType::Pointer vecImg = VecImgType::New(); vecImg->SetSpacing( img->GetSpacing() ); // Set the image spacing vecImg->SetOrigin( img->GetOrigin() ); // Set the image origin vecImg->SetDirection( img->GetDirection() ); // Set the image direction vecImg->SetLargestPossibleRegion( img->GetLargestPossibleRegion()); vecImg->SetBufferedRegion( img->GetLargestPossibleRegion() ); vecImg->Allocate(); itk::ImageRegionIterator ot (vecImg, vecImg->GetLargestPossibleRegion() ); ot.GoToBegin(); itk::ImageRegionIterator it (img, img->GetLargestPossibleRegion() ); typedef ImageType::PixelType VarPixType; typedef VecImgType::PixelType FixPixType; for (it.GoToBegin(); !it.IsAtEnd(); ++it) { VarPixType vec = it.Get(); FixPixType fixVec(vec.GetDataPointer()); ot.Set(fixVec); ++ot; } OutputType::Pointer resultImage = OutputType::New(); resultImage->InitializeByItk( vecImg.GetPointer() ); resultImage->SetVolume( vecImg->GetBufferPointer() ); result.push_back( resultImage.GetPointer() ); } catch(std::exception& e) { throw itk::ImageFileReaderException(__FILE__, __LINE__, e.what()); } catch(...) { throw itk::ImageFileReaderException(__FILE__, __LINE__, "Sorry, an error occurred while reading the requested vessel tree file!"); } } return result; } } //namespace MITK mitk::NrrdOdfImageReader* mitk::NrrdOdfImageReader::Clone() const { return new NrrdOdfImageReader(*this); } diff --git a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkNrrdOdfImageReader.h b/Modules/DiffusionIO/ReaderWriter/mitkNrrdOdfImageReader.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkNrrdOdfImageReader.h rename to Modules/DiffusionIO/ReaderWriter/mitkNrrdOdfImageReader.h diff --git a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkNrrdOdfImageWriter.cpp b/Modules/DiffusionIO/ReaderWriter/mitkNrrdOdfImageWriter.cpp similarity index 95% rename from Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkNrrdOdfImageWriter.cpp rename to Modules/DiffusionIO/ReaderWriter/mitkNrrdOdfImageWriter.cpp index 9483f59..ed35e5b 100644 --- a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkNrrdOdfImageWriter.cpp +++ b/Modules/DiffusionIO/ReaderWriter/mitkNrrdOdfImageWriter.cpp @@ -1,129 +1,129 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ #include "mitkNrrdOdfImageWriter.h" #include "itkMetaDataDictionary.h" #include "itkMetaDataObject.h" #include "itkNrrdImageIO.h" #include "itkImageFileWriter.h" #include "mitkImageCast.h" #include "mitkIOMimeTypes.h" -#include "mitkDiffusionCoreIOMimeTypes.h" +#include "mitkDiffusionIOMimeTypes.h" #include mitk::NrrdOdfImageWriter::NrrdOdfImageWriter() - : AbstractFileWriter(mitk::OdfImage::GetStaticNameOfClass(), CustomMimeType( mitk::DiffusionCoreIOMimeTypes::ODF_MIMETYPE() ), mitk::DiffusionCoreIOMimeTypes::ODF_MIMETYPE_DESCRIPTION()) + : AbstractFileWriter(mitk::OdfImage::GetStaticNameOfClass(), CustomMimeType( mitk::DiffusionIOMimeTypes::ODF_MIMETYPE() ), mitk::DiffusionIOMimeTypes::ODF_MIMETYPE_DESCRIPTION()) { RegisterService(); } mitk::NrrdOdfImageWriter::NrrdOdfImageWriter(const mitk::NrrdOdfImageWriter& other) : AbstractFileWriter(other) { } mitk::NrrdOdfImageWriter::~NrrdOdfImageWriter() {} void mitk::NrrdOdfImageWriter::Write() { InputType::ConstPointer input = dynamic_cast(this->GetInput()); if (input.IsNull()) { MITK_ERROR <<"Sorry, input to NrrdOdfImageWriter is nullptr!"; return; } if ( this->GetOutputLocation().empty() ) { MITK_ERROR << "Sorry, filename has not been set!"; return ; } mitk::LocaleSwitch localeSwitch("C"); itk::NrrdImageIO::Pointer io = itk::NrrdImageIO::New(); io->SetFileType( itk::ImageIOBase::Binary ); io->UseCompressionOn(); typedef itk::VectorImage VecImgType; typedef itk::Image,3> ImageType; typedef itk::ImageFileWriter WriterType; WriterType::Pointer nrrdWriter = WriterType::New(); ImageType::Pointer outimage = ImageType::New(); CastToItkImage(input, outimage); VecImgType::Pointer vecImg = VecImgType::New(); vecImg->SetSpacing( outimage->GetSpacing() ); // Set the image spacing vecImg->SetOrigin( outimage->GetOrigin() ); // Set the image origin vecImg->SetDirection( outimage->GetDirection() ); // Set the image direction vecImg->SetLargestPossibleRegion( outimage->GetLargestPossibleRegion()); vecImg->SetBufferedRegion( outimage->GetLargestPossibleRegion() ); vecImg->SetVectorLength(ODF_SAMPLING_SIZE); vecImg->Allocate(); itk::ImageRegionIterator ot (vecImg, vecImg->GetLargestPossibleRegion() ); ot.GoToBegin(); itk::ImageRegionIterator it (outimage, outimage->GetLargestPossibleRegion() ); typedef ImageType::PixelType VecPixType; typedef VecImgType::PixelType VarVecType; for (it.GoToBegin(); !it.IsAtEnd(); ++it) { VecPixType vec = it.Get(); VarVecType varVec(vec.GetVnlVector().data_block(), ODF_SAMPLING_SIZE); ot.Set(varVec); ++ot; } nrrdWriter->SetInput( vecImg ); nrrdWriter->SetImageIO(io); nrrdWriter->SetFileName(this->GetOutputLocation().c_str()); nrrdWriter->UseCompressionOn(); try { nrrdWriter->Update(); } catch (const itk::ExceptionObject& e) { MITK_INFO << e.what(); } } mitk::NrrdOdfImageWriter* mitk::NrrdOdfImageWriter::Clone() const { return new NrrdOdfImageWriter(*this); } mitk::IFileWriter::ConfidenceLevel mitk::NrrdOdfImageWriter::GetConfidenceLevel() const { InputType::ConstPointer input = dynamic_cast(this->GetInput()); if (input.IsNull() ) { return Unsupported; } else { return Supported; } } diff --git a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkNrrdOdfImageWriter.h b/Modules/DiffusionIO/ReaderWriter/mitkNrrdOdfImageWriter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkNrrdOdfImageWriter.h rename to Modules/DiffusionIO/ReaderWriter/mitkNrrdOdfImageWriter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkNrrdTensorImageReader.cpp b/Modules/DiffusionIO/ReaderWriter/mitkNrrdTensorImageReader.cpp similarity index 98% rename from Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkNrrdTensorImageReader.cpp rename to Modules/DiffusionIO/ReaderWriter/mitkNrrdTensorImageReader.cpp index c6449ec..1347e4c 100644 --- a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkNrrdTensorImageReader.cpp +++ b/Modules/DiffusionIO/ReaderWriter/mitkNrrdTensorImageReader.cpp @@ -1,428 +1,428 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ #include "mitkNrrdTensorImageReader.h" #include -#include "mitkDiffusionCoreIOMimeTypes.h" +#include "mitkDiffusionIOMimeTypes.h" #include "itkImageFileReader.h" #include "itkImageRegionIterator.h" #include "itkMetaDataObject.h" #include "itkNrrdImageIO.h" #include #include "mitkITKImageImport.h" #include "mitkImageDataItem.h" #include #include #include namespace mitk { NrrdTensorImageReader::NrrdTensorImageReader(const NrrdTensorImageReader& other) : mitk::AbstractFileReader(other) { } NrrdTensorImageReader::NrrdTensorImageReader() - : mitk::AbstractFileReader( CustomMimeType( mitk::DiffusionCoreIOMimeTypes::DTI_MIMETYPE() ), mitk::DiffusionCoreIOMimeTypes::DTI_MIMETYPE_DESCRIPTION() ) + : mitk::AbstractFileReader( CustomMimeType( mitk::DiffusionIOMimeTypes::DTI_MIMETYPE() ), mitk::DiffusionIOMimeTypes::DTI_MIMETYPE_DESCRIPTION() ) { m_ServiceReg = this->RegisterService(); } NrrdTensorImageReader::~NrrdTensorImageReader() { } std::vector > NrrdTensorImageReader::Read() { std::vector > result; std::string location = GetInputLocation(); if ( location == "") { throw itk::ImageFileReaderException(__FILE__, __LINE__, "Sorry, the filename is empty!"); } else { try { mitk::LocaleSwitch localeSwitch("C"); try { std::string fname3 = mitk::IOUtil::GetTempPath()+"/temp_dti.nii.gz"; int c = 0; while( itksys::SystemTools::FileExists(fname3) ) { fname3 = mitk::IOUtil::GetTempPath()+"/temp_dti_" + boost::lexical_cast(c) + ".nii.gz"; ++c; } itksys::SystemTools::CopyAFile(location.c_str(), fname3.c_str()); typedef itk::VectorImage ImageType; itk::NiftiImageIO::Pointer io = itk::NiftiImageIO::New(); typedef itk::ImageFileReader FileReaderType; FileReaderType::Pointer reader = FileReaderType::New(); reader->SetImageIO(io); reader->SetFileName(fname3); reader->Update(); ImageType::Pointer img = reader->GetOutput(); TensorImage::ItkTensorImageType::Pointer vecImg = TensorImage::ItkTensorImageType::New(); vecImg->SetSpacing( img->GetSpacing() ); // Set the image spacing vecImg->SetOrigin( img->GetOrigin() ); // Set the image origin vecImg->SetDirection( img->GetDirection() ); // Set the image direction vecImg->SetRegions( img->GetLargestPossibleRegion()); vecImg->Allocate(); itk::ImageRegionIterator ot (vecImg, vecImg->GetLargestPossibleRegion() ); ot.GoToBegin(); itk::ImageRegionIterator it (img, img->GetLargestPossibleRegion() ); it.GoToBegin(); typedef ImageType::PixelType VarPixType; typedef TensorImage::PixelType FixPixType; int numComponents = img->GetNumberOfComponentsPerPixel(); if (numComponents==6) { MITK_INFO << "Trying to load dti as 6-comp nifti ..."; while (!it.IsAtEnd()) { VarPixType vec = it.Get(); FixPixType fixVec(vec.GetDataPointer()); TensorImage::PixelType tensor; tensor.SetElement(0, vec.GetElement(0)); tensor.SetElement(1, vec.GetElement(1)); tensor.SetElement(2, vec.GetElement(2)); tensor.SetElement(3, vec.GetElement(3)); tensor.SetElement(4, vec.GetElement(4)); tensor.SetElement(5, vec.GetElement(5)); fixVec = tensor; ot.Set(fixVec); ++ot; ++it; } } else if(numComponents==9) { MITK_INFO << "Trying to load dti as 9-comp nifti ..."; while (!it.IsAtEnd()) { VarPixType vec = it.Get(); TensorImage::PixelType tensor; tensor.SetElement(0, vec.GetElement(0)); tensor.SetElement(1, vec.GetElement(1)); tensor.SetElement(2, vec.GetElement(2)); tensor.SetElement(3, vec.GetElement(4)); tensor.SetElement(4, vec.GetElement(5)); tensor.SetElement(5, vec.GetElement(8)); FixPixType fixVec(tensor); ot.Set(fixVec); ++ot; ++it; } } else if (numComponents==1) { MITK_INFO << "Trying to load dti as 4D nifti ..."; typedef itk::Image ImageType; typedef itk::ImageFileReader FileReaderType; FileReaderType::Pointer reader = FileReaderType::New(); reader->SetImageIO(io); reader->SetFileName(fname3); reader->Update(); ImageType::Pointer img = reader->GetOutput(); itk::Size<4> size = img->GetLargestPossibleRegion().GetSize(); while (!ot.IsAtEnd()) { TensorImage::PixelType tensor; ImageType::IndexType idx; idx[0] = ot.GetIndex()[0]; idx[1] = ot.GetIndex()[1]; idx[2] = ot.GetIndex()[2]; if (size[3]==6) { for (unsigned int te=0; teGetPixel(idx)); } } else if (size[3]==9) { idx[3] = 0; tensor.SetElement(0, img->GetPixel(idx)); idx[3] = 1; tensor.SetElement(1, img->GetPixel(idx)); idx[3] = 2; tensor.SetElement(2, img->GetPixel(idx)); idx[3] = 4; tensor.SetElement(3, img->GetPixel(idx)); idx[3] = 5; tensor.SetElement(4, img->GetPixel(idx)); idx[3] = 8; tensor.SetElement(5, img->GetPixel(idx)); } else throw itk::ImageFileReaderException(__FILE__, __LINE__, "Unknown number of components for DTI file. Should be 6 or 9!"); FixPixType fixVec(tensor); ot.Set(fixVec); ++ot; } } OutputType::Pointer resultImage = OutputType::New(); resultImage->InitializeByItk( vecImg.GetPointer() ); resultImage->SetVolume( vecImg->GetBufferPointer() ); result.push_back( resultImage.GetPointer() ); } catch(...) { MITK_INFO << "Trying to load dti as nrrd ..."; typedef itk::VectorImage ImageType; itk::NrrdImageIO::Pointer io = itk::NrrdImageIO::New(); typedef itk::ImageFileReader FileReaderType; FileReaderType::Pointer reader = FileReaderType::New(); reader->SetImageIO(io); reader->SetFileName(location); reader->Update(); ImageType::Pointer img = reader->GetOutput(); TensorImage::ItkTensorImageType::Pointer vecImg = TensorImage::ItkTensorImageType::New(); vecImg->SetSpacing( img->GetSpacing() ); // Set the image spacing vecImg->SetOrigin( img->GetOrigin() ); // Set the image origin vecImg->SetDirection( img->GetDirection() ); // Set the image direction vecImg->SetRegions( img->GetLargestPossibleRegion()); vecImg->Allocate(); itk::ImageRegionIterator ot (vecImg, vecImg->GetLargestPossibleRegion() ); ot.GoToBegin(); itk::ImageRegionIterator it (img, img->GetLargestPossibleRegion() ); it.GoToBegin(); typedef ImageType::PixelType VarPixType; typedef TensorImage::PixelType FixPixType; int numComponents = img->GetNumberOfComponentsPerPixel(); itk::MetaDataDictionary imgMetaDictionary = img->GetMetaDataDictionary(); std::vector imgMetaKeys = imgMetaDictionary.GetKeys(); std::vector::const_iterator itKey = imgMetaKeys.begin(); std::string metaString; bool readFrame = false; double xx, xy, xz, yx, yy, yz, zx, zy, zz; MeasurementFrameType measFrame; measFrame.SetIdentity(); MeasurementFrameType measFrameTransp; measFrameTransp.SetIdentity(); for (; itKey != imgMetaKeys.end(); itKey ++) { itk::ExposeMetaData (imgMetaDictionary, *itKey, metaString); if (itKey->find("measurement frame") != std::string::npos) { sscanf(metaString.c_str(), " ( %lf , %lf , %lf ) ( %lf , %lf , %lf ) ( %lf , %lf , %lf ) \n", &xx, &xy, &xz, &yx, &yy, &yz, &zx, &zy, &zz); if (xx>10e-10 || xy>10e-10 || xz>10e-10 || yx>10e-10 || yy>10e-10 || yz>10e-10 || zx>10e-10 || zy>10e-10 || zz>10e-10 ) { readFrame = true; measFrame(0,0) = xx; measFrame(0,1) = xy; measFrame(0,2) = xz; measFrame(1,0) = yx; measFrame(1,1) = yy; measFrame(1,2) = yz; measFrame(2,0) = zx; measFrame(2,1) = zy; measFrame(2,2) = zz; measFrameTransp = measFrame.GetTranspose(); } } } if (numComponents==6) { while (!it.IsAtEnd()) { // T'=RTR' VarPixType vec = it.Get(); FixPixType fixVec(vec.GetDataPointer()); if(readFrame) { TensorImage::PixelType tensor; tensor.SetElement(0, vec.GetElement(0)); tensor.SetElement(1, vec.GetElement(1)); tensor.SetElement(2, vec.GetElement(2)); tensor.SetElement(3, vec.GetElement(3)); tensor.SetElement(4, vec.GetElement(4)); tensor.SetElement(5, vec.GetElement(5)); tensor = ConvertMatrixTypeToFixedArrayType(tensor.PreMultiply(measFrame)); tensor = ConvertMatrixTypeToFixedArrayType(tensor.PostMultiply(measFrameTransp)); fixVec = tensor; } ot.Set(fixVec); ++ot; ++it; } } else if(numComponents==9) { while (!it.IsAtEnd()) { VarPixType vec = it.Get(); TensorImage::PixelType tensor; tensor.SetElement(0, vec.GetElement(0)); tensor.SetElement(1, vec.GetElement(1)); tensor.SetElement(2, vec.GetElement(2)); tensor.SetElement(3, vec.GetElement(4)); tensor.SetElement(4, vec.GetElement(5)); tensor.SetElement(5, vec.GetElement(8)); if(readFrame) { tensor = ConvertMatrixTypeToFixedArrayType(tensor.PreMultiply(measFrame)); tensor = ConvertMatrixTypeToFixedArrayType(tensor.PostMultiply(measFrameTransp)); } FixPixType fixVec(tensor); ot.Set(fixVec); ++ot; ++it; } } else if (numComponents==1) { typedef itk::Image ImageType; itk::NrrdImageIO::Pointer io = itk::NrrdImageIO::New(); typedef itk::ImageFileReader FileReaderType; FileReaderType::Pointer reader = FileReaderType::New(); reader->SetImageIO(io); reader->SetFileName(location); reader->Update(); ImageType::Pointer img = reader->GetOutput(); itk::Size<4> size = img->GetLargestPossibleRegion().GetSize(); while (!ot.IsAtEnd()) { TensorImage::PixelType tensor; ImageType::IndexType idx; idx[0] = ot.GetIndex()[0]; idx[1] = ot.GetIndex()[1]; idx[2] = ot.GetIndex()[2]; if (size[3]==6) { for (unsigned int te=0; teGetPixel(idx)); } } else if (size[3]==9) { idx[3] = 0; tensor.SetElement(0, img->GetPixel(idx)); idx[3] = 1; tensor.SetElement(1, img->GetPixel(idx)); idx[3] = 2; tensor.SetElement(2, img->GetPixel(idx)); idx[3] = 4; tensor.SetElement(3, img->GetPixel(idx)); idx[3] = 5; tensor.SetElement(4, img->GetPixel(idx)); idx[3] = 8; tensor.SetElement(5, img->GetPixel(idx)); } else throw itk::ImageFileReaderException(__FILE__, __LINE__, "Unknown number of komponents for DTI file. Should be 6 or 9!"); if(readFrame) { tensor = ConvertMatrixTypeToFixedArrayType(tensor.PreMultiply(measFrame)); tensor = ConvertMatrixTypeToFixedArrayType(tensor.PostMultiply(measFrameTransp)); } FixPixType fixVec(tensor); ot.Set(fixVec); ++ot; } } else { throw itk::ImageFileReaderException(__FILE__, __LINE__, "Image has wrong number of pixel components!"); } OutputType::Pointer resultImage = OutputType::New(); resultImage->InitializeByItk( vecImg.GetPointer() ); resultImage->SetVolume( vecImg->GetBufferPointer() ); result.push_back( resultImage.GetPointer() ); } } catch(std::exception& e) { throw itk::ImageFileReaderException(__FILE__, __LINE__, e.what()); } catch(...) { throw itk::ImageFileReaderException(__FILE__, __LINE__, "Sorry, an error occurred while reading the requested DTI file!"); } } return result; } TensorImage::PixelType NrrdTensorImageReader ::ConvertMatrixTypeToFixedArrayType(const TensorImage::PixelType::Superclass::MatrixType & matrix) { /* | 0 1 2 | * | X 3 4 | * | X X 5 | */ TensorImage::PixelType arr; arr.SetElement(0,matrix(0,0)); arr.SetElement(1,matrix(0,1)); arr.SetElement(2,matrix(0,2)); arr.SetElement(3,matrix(1,3)); arr.SetElement(4,matrix(1,4)); arr.SetElement(5,matrix(2,5)); return arr; } } //namespace MITK mitk::NrrdTensorImageReader* mitk::NrrdTensorImageReader::Clone() const { return new NrrdTensorImageReader(*this); } diff --git a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkNrrdTensorImageReader.h b/Modules/DiffusionIO/ReaderWriter/mitkNrrdTensorImageReader.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkNrrdTensorImageReader.h rename to Modules/DiffusionIO/ReaderWriter/mitkNrrdTensorImageReader.h diff --git a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkNrrdTensorImageWriter.cpp b/Modules/DiffusionIO/ReaderWriter/mitkNrrdTensorImageWriter.cpp similarity index 93% rename from Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkNrrdTensorImageWriter.cpp rename to Modules/DiffusionIO/ReaderWriter/mitkNrrdTensorImageWriter.cpp index 3b30f62..ae40ce1 100644 --- a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkNrrdTensorImageWriter.cpp +++ b/Modules/DiffusionIO/ReaderWriter/mitkNrrdTensorImageWriter.cpp @@ -1,100 +1,100 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ #include "mitkNrrdTensorImageWriter.h" #include "itkMetaDataDictionary.h" #include "itkMetaDataObject.h" #include "itkNrrdImageIO.h" #include "itkImageFileWriter.h" #include "itkDiffusionTensor3D.h" #include "mitkImageCast.h" -#include "mitkDiffusionCoreIOMimeTypes.h" +#include "mitkDiffusionIOMimeTypes.h" #include mitk::NrrdTensorImageWriter::NrrdTensorImageWriter() - : AbstractFileWriter(mitk::TensorImage::GetStaticNameOfClass(), CustomMimeType( mitk::DiffusionCoreIOMimeTypes::DTI_MIMETYPE() ), mitk::DiffusionCoreIOMimeTypes::DTI_MIMETYPE_DESCRIPTION() ) + : AbstractFileWriter(mitk::TensorImage::GetStaticNameOfClass(), CustomMimeType( mitk::DiffusionIOMimeTypes::DTI_MIMETYPE() ), mitk::DiffusionIOMimeTypes::DTI_MIMETYPE_DESCRIPTION() ) { RegisterService(); } mitk::NrrdTensorImageWriter::NrrdTensorImageWriter(const mitk::NrrdTensorImageWriter& other) : AbstractFileWriter(other) { } mitk::NrrdTensorImageWriter::~NrrdTensorImageWriter() {} void mitk::NrrdTensorImageWriter::Write() { InputType::ConstPointer input = dynamic_cast(this->GetInput()); if (input.IsNull() ) { MITK_ERROR <<"Sorry, input to NrrdTensorImageWriter is nullptr!"; return; } if ( this->GetOutputLocation().empty() ) { MITK_ERROR << "Sorry, filename has not been set!" ; return ; } mitk::LocaleSwitch localeSwitch("C"); itk::NrrdImageIO::Pointer io = itk::NrrdImageIO::New(); io->SetFileType( itk::ImageIOBase::Binary ); io->UseCompressionOn(); typedef itk::ImageFileWriter WriterType; WriterType::Pointer nrrdWriter = WriterType::New(); TensorImage::ItkTensorImageType::Pointer outimage = TensorImage::ItkTensorImageType::New(); CastToItkImage(input, outimage); nrrdWriter->SetInput( outimage ); nrrdWriter->SetImageIO(io); nrrdWriter->SetFileName(this->GetOutputLocation().c_str()); nrrdWriter->UseCompressionOn(); try { nrrdWriter->Update(); } catch (const itk::ExceptionObject& e) { std::cout << e.GetDescription() << std::endl; } } mitk::NrrdTensorImageWriter* mitk::NrrdTensorImageWriter::Clone() const { return new NrrdTensorImageWriter(*this); } mitk::IFileWriter::ConfidenceLevel mitk::NrrdTensorImageWriter::GetConfidenceLevel() const { InputType::ConstPointer input = dynamic_cast(this->GetInput()); if (input.IsNull() ) { return Unsupported; } else { return Supported; } } diff --git a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkNrrdTensorImageWriter.h b/Modules/DiffusionIO/ReaderWriter/mitkNrrdTensorImageWriter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkNrrdTensorImageWriter.h rename to Modules/DiffusionIO/ReaderWriter/mitkNrrdTensorImageWriter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkOdfImageSerializer.cpp b/Modules/DiffusionIO/ReaderWriter/mitkOdfImageSerializer.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkOdfImageSerializer.cpp rename to Modules/DiffusionIO/ReaderWriter/mitkOdfImageSerializer.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkOdfImageSerializer.h b/Modules/DiffusionIO/ReaderWriter/mitkOdfImageSerializer.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkOdfImageSerializer.h rename to Modules/DiffusionIO/ReaderWriter/mitkOdfImageSerializer.h diff --git a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkPeakImageReader.cpp b/Modules/DiffusionIO/ReaderWriter/mitkPeakImageReader.cpp similarity index 92% rename from Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkPeakImageReader.cpp rename to Modules/DiffusionIO/ReaderWriter/mitkPeakImageReader.cpp index 52bc764..a973d38 100644 --- a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkPeakImageReader.cpp +++ b/Modules/DiffusionIO/ReaderWriter/mitkPeakImageReader.cpp @@ -1,85 +1,85 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ #include "mitkPeakImageReader.h" #include -#include +#include #include #include #include #include #include #include #include #include #include #include namespace mitk { PeakImageReader::PeakImageReader(const PeakImageReader& other) : mitk::AbstractFileReader(other) { } PeakImageReader::PeakImageReader() - : mitk::AbstractFileReader( CustomMimeType( mitk::DiffusionCoreIOMimeTypes::PEAK_MIMETYPE() ), mitk::DiffusionCoreIOMimeTypes::PEAK_MIMETYPE_DESCRIPTION() ) + : mitk::AbstractFileReader( CustomMimeType( mitk::DiffusionIOMimeTypes::PEAK_MIMETYPE() ), mitk::DiffusionIOMimeTypes::PEAK_MIMETYPE_DESCRIPTION() ) { m_ServiceReg = this->RegisterService(); } PeakImageReader::~PeakImageReader() { } std::vector > PeakImageReader::Read() { mitk::LocaleSwitch localeSwitch("C"); std::vector > result; std::string location = GetInputLocation(); std::string ext = itksys::SystemTools::GetFilenameExtension(location); MITK_INFO << "Reading " << location; typedef itk::ImageFileReader FileReaderType; FileReaderType::Pointer reader = FileReaderType::New(); reader->SetFileName(location); if (ext==".peak") { itk::NrrdImageIO::Pointer io = itk::NrrdImageIO::New(); reader->SetImageIO(io); } reader->Update(); Image::Pointer resultImage = dynamic_cast(PeakImage::New().GetPointer()); mitk::CastToMitkImage(reader->GetOutput(), resultImage); resultImage->SetVolume(reader->GetOutput()->GetBufferPointer()); StringProperty::Pointer nameProp; nameProp = StringProperty::New(itksys::SystemTools::GetFilenameWithoutExtension(GetInputLocation())); resultImage->SetProperty("name", nameProp); dynamic_cast(resultImage.GetPointer())->ConstructPolydata(); result.push_back( resultImage.GetPointer() ); return result; } } //namespace MITK mitk::PeakImageReader* mitk::PeakImageReader::Clone() const { return new PeakImageReader(*this); } diff --git a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkPeakImageReader.h b/Modules/DiffusionIO/ReaderWriter/mitkPeakImageReader.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkPeakImageReader.h rename to Modules/DiffusionIO/ReaderWriter/mitkPeakImageReader.h diff --git a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkPeakImageSerializer.cpp b/Modules/DiffusionIO/ReaderWriter/mitkPeakImageSerializer.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkPeakImageSerializer.cpp rename to Modules/DiffusionIO/ReaderWriter/mitkPeakImageSerializer.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkPeakImageSerializer.h b/Modules/DiffusionIO/ReaderWriter/mitkPeakImageSerializer.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkPeakImageSerializer.h rename to Modules/DiffusionIO/ReaderWriter/mitkPeakImageSerializer.h diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkPlanarFigureCompositeReader.cpp b/Modules/DiffusionIO/ReaderWriter/mitkPlanarFigureCompositeReader.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionIO/mitkPlanarFigureCompositeReader.cpp rename to Modules/DiffusionIO/ReaderWriter/mitkPlanarFigureCompositeReader.cpp diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkPlanarFigureCompositeReader.h b/Modules/DiffusionIO/ReaderWriter/mitkPlanarFigureCompositeReader.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionIO/mitkPlanarFigureCompositeReader.h rename to Modules/DiffusionIO/ReaderWriter/mitkPlanarFigureCompositeReader.h diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkPlanarFigureCompositeSerializer.cpp b/Modules/DiffusionIO/ReaderWriter/mitkPlanarFigureCompositeSerializer.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionIO/mitkPlanarFigureCompositeSerializer.cpp rename to Modules/DiffusionIO/ReaderWriter/mitkPlanarFigureCompositeSerializer.cpp diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkPlanarFigureCompositeSerializer.h b/Modules/DiffusionIO/ReaderWriter/mitkPlanarFigureCompositeSerializer.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionIO/mitkPlanarFigureCompositeSerializer.h rename to Modules/DiffusionIO/ReaderWriter/mitkPlanarFigureCompositeSerializer.h diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkPlanarFigureCompositeWriter.cpp b/Modules/DiffusionIO/ReaderWriter/mitkPlanarFigureCompositeWriter.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionIO/mitkPlanarFigureCompositeWriter.cpp rename to Modules/DiffusionIO/ReaderWriter/mitkPlanarFigureCompositeWriter.cpp diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkPlanarFigureCompositeWriter.h b/Modules/DiffusionIO/ReaderWriter/mitkPlanarFigureCompositeWriter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionIO/mitkPlanarFigureCompositeWriter.h rename to Modules/DiffusionIO/ReaderWriter/mitkPlanarFigureCompositeWriter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkShImageReader.cpp b/Modules/DiffusionIO/ReaderWriter/mitkShImageReader.cpp similarity index 95% rename from Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkShImageReader.cpp rename to Modules/DiffusionIO/ReaderWriter/mitkShImageReader.cpp index 3ea81d1..83f4dd5 100644 --- a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkShImageReader.cpp +++ b/Modules/DiffusionIO/ReaderWriter/mitkShImageReader.cpp @@ -1,131 +1,131 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ #include "mitkShImageReader.h" #include -#include "mitkDiffusionCoreIOMimeTypes.h" +#include "mitkDiffusionIOMimeTypes.h" #include "itkImageFileReader.h" #include "itkImageRegionIterator.h" #include "itkMetaDataObject.h" #include "itkNrrdImageIO.h" #include "itkNiftiImageIO.h" #include "mitkITKImageImport.h" #include "mitkImageDataItem.h" #include #include #include namespace mitk { ShImageReader::ShImageReader(const ShImageReader& other) : mitk::AbstractFileReader(other) { } ShImageReader::ShImageReader() - : mitk::AbstractFileReader( CustomMimeType( mitk::DiffusionCoreIOMimeTypes::SH_MIMETYPE() ), mitk::DiffusionCoreIOMimeTypes::SH_MIMETYPE_DESCRIPTION() ) + : mitk::AbstractFileReader( CustomMimeType( mitk::DiffusionIOMimeTypes::SH_MIMETYPE() ), mitk::DiffusionIOMimeTypes::SH_MIMETYPE_DESCRIPTION() ) { m_ServiceReg = this->RegisterService(); } ShImageReader::~ShImageReader() { } template mitk::Image::Pointer ShImageReader::ConvertShImage(ShImage::ShOnDiskType::Pointer img) { typedef itk::ShCoefficientImageImporter< float, shOrder > ImporterType; typename ImporterType::Pointer importer = ImporterType::New(); importer->SetInputImage(img); importer->GenerateData(); mitk::ShImage::Pointer shImage = mitk::ShImage::New(); mitk::Image::Pointer resultImage = dynamic_cast(shImage.GetPointer()); mitk::CastToMitkImage(importer->GetCoefficientImage(), resultImage); resultImage->SetVolume(importer->GetCoefficientImage()->GetBufferPointer()); return resultImage; } std::vector > ShImageReader::Read() { mitk::LocaleSwitch localeSwitch("C"); std::vector > result; std::string location = GetInputLocation(); if ( location == "") { throw itk::ImageFileReaderException(__FILE__, __LINE__, "Sorry, the filename is empty!"); } else { try { std::string ext = itksys::SystemTools::GetFilenameExtension(location); typedef itk::ImageFileReader< ShImage::ShOnDiskType > FileReaderType; FileReaderType::Pointer reader = FileReaderType::New(); reader->SetFileName(location); if (ext==".shi") { itk::NrrdImageIO::Pointer io = itk::NrrdImageIO::New(); reader->SetImageIO(io); } reader->Update(); ShImage::ShOnDiskType::Pointer img = reader->GetOutput(); switch (img->GetLargestPossibleRegion().GetSize()[3]) { case 6: result.push_back( ConvertShImage<2>(img).GetPointer() ); break; case 15: result.push_back( ConvertShImage<4>(img).GetPointer() ); break; case 28: result.push_back( ConvertShImage<6>(img).GetPointer() ); break; case 45: result.push_back( ConvertShImage<8>(img).GetPointer() ); break; case 66: result.push_back( ConvertShImage<10>(img).GetPointer() ); break; case 91: result.push_back( ConvertShImage<12>(img).GetPointer() ); break; default : mitkThrow() << "SH order larger 12 not supported"; } } catch(std::exception& e) { throw itk::ImageFileReaderException(__FILE__, __LINE__, e.what()); } catch(...) { throw itk::ImageFileReaderException(__FILE__, __LINE__, "Sorry, an error occurred while reading the requested vessel tree file!"); } } return result; } } //namespace MITK mitk::ShImageReader* mitk::ShImageReader::Clone() const { return new ShImageReader(*this); } diff --git a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkShImageReader.h b/Modules/DiffusionIO/ReaderWriter/mitkShImageReader.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkShImageReader.h rename to Modules/DiffusionIO/ReaderWriter/mitkShImageReader.h diff --git a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkShImageSerializer.cpp b/Modules/DiffusionIO/ReaderWriter/mitkShImageSerializer.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkShImageSerializer.cpp rename to Modules/DiffusionIO/ReaderWriter/mitkShImageSerializer.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkShImageSerializer.h b/Modules/DiffusionIO/ReaderWriter/mitkShImageSerializer.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkShImageSerializer.h rename to Modules/DiffusionIO/ReaderWriter/mitkShImageSerializer.h diff --git a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkShImageWriter.cpp b/Modules/DiffusionIO/ReaderWriter/mitkShImageWriter.cpp similarity index 95% rename from Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkShImageWriter.cpp rename to Modules/DiffusionIO/ReaderWriter/mitkShImageWriter.cpp index 6e2ea52..7da6c29 100644 --- a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkShImageWriter.cpp +++ b/Modules/DiffusionIO/ReaderWriter/mitkShImageWriter.cpp @@ -1,138 +1,138 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ #include "mitkShImageWriter.h" #include "itkMetaDataDictionary.h" #include "itkMetaDataObject.h" #include "itkImageFileWriter.h" #include "mitkImageCast.h" #include "mitkIOMimeTypes.h" -#include "mitkDiffusionCoreIOMimeTypes.h" +#include "mitkDiffusionIOMimeTypes.h" #include #include #include #include mitk::ShImageWriter::ShImageWriter() - : AbstractFileWriter(mitk::ShImage::GetStaticNameOfClass(), CustomMimeType( mitk::DiffusionCoreIOMimeTypes::SH_MIMETYPE() ), mitk::DiffusionCoreIOMimeTypes::SH_MIMETYPE_DESCRIPTION()) + : AbstractFileWriter(mitk::ShImage::GetStaticNameOfClass(), CustomMimeType( mitk::DiffusionIOMimeTypes::SH_MIMETYPE() ), mitk::DiffusionIOMimeTypes::SH_MIMETYPE_DESCRIPTION()) { RegisterService(); } mitk::ShImageWriter::ShImageWriter(const mitk::ShImageWriter& other) : AbstractFileWriter(other) { } mitk::ShImageWriter::~ShImageWriter() {} template void mitk::ShImageWriter::WriteShImage(InputType::ConstPointer input) { mitk::LocaleSwitch localeSwitch("C"); typename itk::ShCoefficientImageExporter< float, shOrder >::InputImageType::Pointer itk_image = itk::ShCoefficientImageExporter< float, shOrder >::InputImageType::New(); CastToItkImage(input, itk_image); typedef itk::ShCoefficientImageExporter< float, shOrder > ExporterType; typename ExporterType::Pointer exporter = ExporterType::New(); exporter->SetInputImage(itk_image); exporter->GenerateData(); std::string ext = itksys::SystemTools::GetFilenameExtension(this->GetOutputLocation()); typedef itk::ImageFileWriter WriterType; WriterType::Pointer writer = WriterType::New(); ShImage::ShOnDiskType::Pointer image = exporter->GetOutputImage(); writer->SetInput( image ); if (ext==".shi") { itk::NrrdImageIO::Pointer io = itk::NrrdImageIO::New(); io->SetFileType( itk::ImageIOBase::Binary ); io->UseCompressionOn(); writer->SetImageIO(io); } writer->SetFileName(this->GetOutputLocation().c_str()); writer->SetUseCompression(true); try { writer->Update(); } catch (const itk::ExceptionObject& e) { MITK_INFO << e.what(); } } void mitk::ShImageWriter::Write() { InputType::ConstPointer input = dynamic_cast(this->GetInput()); if (input.IsNull()) { MITK_ERROR <<"Sorry, input to ShImageWriter is nullptr!"; return; } if ( this->GetOutputLocation().empty() ) { MITK_ERROR << "Sorry, filename has not been set!"; return ; } switch (input->GetImageDescriptor()->GetChannelTypeById(0).GetNumberOfComponents()) { case 6: WriteShImage<2>(input); break; case 15: WriteShImage<4>(input); break; case 28: WriteShImage<6>(input); break; case 45: WriteShImage<8>(input); break; case 66: WriteShImage<10>(input); break; case 91: WriteShImage<12>(input); break; default : mitkThrow() << "SH order larger 12 not supported"; } } mitk::ShImageWriter* mitk::ShImageWriter::Clone() const { return new ShImageWriter(*this); } mitk::IFileWriter::ConfidenceLevel mitk::ShImageWriter::GetConfidenceLevel() const { InputType::ConstPointer input = dynamic_cast(this->GetInput()); if (input.IsNull() ) { return Unsupported; } else { return Supported; } } diff --git a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkShImageWriter.h b/Modules/DiffusionIO/ReaderWriter/mitkShImageWriter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkShImageWriter.h rename to Modules/DiffusionIO/ReaderWriter/mitkShImageWriter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkTensorImageSerializer.cpp b/Modules/DiffusionIO/ReaderWriter/mitkTensorImageSerializer.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkTensorImageSerializer.cpp rename to Modules/DiffusionIO/ReaderWriter/mitkTensorImageSerializer.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkTensorImageSerializer.h b/Modules/DiffusionIO/ReaderWriter/mitkTensorImageSerializer.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkTensorImageSerializer.h rename to Modules/DiffusionIO/ReaderWriter/mitkTensorImageSerializer.h diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkTractographyForestReader.cpp b/Modules/DiffusionIO/ReaderWriter/mitkTractographyForestReader.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionIO/mitkTractographyForestReader.cpp rename to Modules/DiffusionIO/ReaderWriter/mitkTractographyForestReader.cpp diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkTractographyForestReader.h b/Modules/DiffusionIO/ReaderWriter/mitkTractographyForestReader.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionIO/mitkTractographyForestReader.h rename to Modules/DiffusionIO/ReaderWriter/mitkTractographyForestReader.h diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkTractographyForestSerializer.cpp b/Modules/DiffusionIO/ReaderWriter/mitkTractographyForestSerializer.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionIO/mitkTractographyForestSerializer.cpp rename to Modules/DiffusionIO/ReaderWriter/mitkTractographyForestSerializer.cpp diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkTractographyForestSerializer.h b/Modules/DiffusionIO/ReaderWriter/mitkTractographyForestSerializer.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionIO/mitkTractographyForestSerializer.h rename to Modules/DiffusionIO/ReaderWriter/mitkTractographyForestSerializer.h diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkTractographyForestWriter.cpp b/Modules/DiffusionIO/ReaderWriter/mitkTractographyForestWriter.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionIO/mitkTractographyForestWriter.cpp rename to Modules/DiffusionIO/ReaderWriter/mitkTractographyForestWriter.cpp diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkTractographyForestWriter.h b/Modules/DiffusionIO/ReaderWriter/mitkTractographyForestWriter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionIO/mitkTractographyForestWriter.h rename to Modules/DiffusionIO/ReaderWriter/mitkTractographyForestWriter.h diff --git a/Modules/DiffusionIO/files.cmake b/Modules/DiffusionIO/files.cmake new file mode 100644 index 0000000..d8543ee --- /dev/null +++ b/Modules/DiffusionIO/files.cmake @@ -0,0 +1,54 @@ +set(CPP_FILES + + mitkDiffusionServiceActivator.cpp + mitkDiffusionIOMimeTypes.cpp + + ObjectFactories/mitkDiffusionCoreObjectFactory.cpp + ObjectFactories/mitkConnectomicsObjectFactory.cpp + + ReaderWriter/mitkConnectomicsNetworkReader.cpp + ReaderWriter/mitkConnectomicsNetworkWriter.cpp + ReaderWriter/mitkConnectomicsNetworkCSVWriter.cpp + ReaderWriter/mitkConnectomicsNetworkMatrixWriter.cpp + ReaderWriter/mitkConnectomicsNetworkSerializer.cpp + ReaderWriter/mitkConnectomicsNetworkDefinitions.cpp + + ReaderWriter/mitkFiberBundleDicomReader.cpp + ReaderWriter/mitkFiberBundleDicomWriter.cpp + ReaderWriter/mitkFiberBundleTckReader.cpp + ReaderWriter/mitkFiberBundleTrackVisReader.cpp + ReaderWriter/mitkFiberBundleTrackVisWriter.cpp + ReaderWriter/mitkFiberBundleVtkReader.cpp + ReaderWriter/mitkFiberBundleVtkWriter.cpp + ReaderWriter/mitkFiberBundleSerializer.cpp + + ReaderWriter/mitkTractographyForestReader.cpp + ReaderWriter/mitkTractographyForestWriter.cpp + ReaderWriter/mitkTractographyForestSerializer.cpp + + ReaderWriter/mitkPlanarFigureCompositeWriter.cpp + ReaderWriter/mitkPlanarFigureCompositeReader.cpp + ReaderWriter/mitkPlanarFigureCompositeSerializer.cpp + + ReaderWriter/mitkPeakImageReader.cpp + ReaderWriter/mitkPeakImageSerializer.cpp + + ReaderWriter/mitkNrrdTensorImageReader.cpp + ReaderWriter/mitkNrrdTensorImageWriter.cpp + ReaderWriter/mitkTensorImageSerializer.cpp + + ReaderWriter/mitkNrrdOdfImageReader.cpp + ReaderWriter/mitkNrrdOdfImageWriter.cpp + ReaderWriter/mitkOdfImageSerializer.cpp + + ReaderWriter/mitkShImageReader.cpp + ReaderWriter/mitkShImageWriter.cpp + ReaderWriter/mitkShImageSerializer.cpp + + ReaderWriter/mitkDiffusionImageDicomReader.cpp + ReaderWriter/mitkDiffusionImageNrrdReader.cpp + ReaderWriter/mitkDiffusionImageNrrdWriter.cpp + ReaderWriter/mitkDiffusionImageNiftiReader.cpp + ReaderWriter/mitkDiffusionImageNiftiWriter.cpp +) + diff --git a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionCoreIOMimeTypes.cpp b/Modules/DiffusionIO/mitkDiffusionIOMimeTypes.cpp similarity index 54% rename from Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionCoreIOMimeTypes.cpp rename to Modules/DiffusionIO/mitkDiffusionIOMimeTypes.cpp index e2263b9..7d7f38b 100644 --- a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionCoreIOMimeTypes.cpp +++ b/Modules/DiffusionIO/mitkDiffusionIOMimeTypes.cpp @@ -1,646 +1,796 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ -#include "mitkDiffusionCoreIOMimeTypes.h" +#include "mitkDiffusionIOMimeTypes.h" #include "mitkIOMimeTypes.h" #include #include #include #include #include +#include #include -#include #include #include namespace mitk { -std::vector DiffusionCoreIOMimeTypes::Get() +std::vector DiffusionIOMimeTypes::Get() { std::vector mimeTypes; // order matters here (descending rank for mime types) + mimeTypes.push_back(FIBERBUNDLE_VTK_MIMETYPE().Clone()); + mimeTypes.push_back(FIBERBUNDLE_TRK_MIMETYPE().Clone()); + mimeTypes.push_back(FIBERBUNDLE_TCK_MIMETYPE().Clone()); + mimeTypes.push_back(FIBERBUNDLE_DICOM_MIMETYPE().Clone()); + mimeTypes.push_back(CONNECTOMICS_MIMETYPE().Clone()); + mimeTypes.push_back(TRACTOGRAPHYFOREST_MIMETYPE().Clone()); + mimeTypes.push_back(PLANARFIGURECOMPOSITE_MIMETYPE().Clone()); + mimeTypes.push_back(DWI_NRRD_MIMETYPE().Clone()); mimeTypes.push_back(DWI_NIFTI_MIMETYPE().Clone()); - mimeTypes.push_back(DWI_FSL_MIMETYPE().Clone()); mimeTypes.push_back(DWI_DICOM_MIMETYPE().Clone()); mimeTypes.push_back(DTI_MIMETYPE().Clone()); mimeTypes.push_back(ODF_MIMETYPE().Clone()); mimeTypes.push_back(PEAK_MIMETYPE().Clone()); mimeTypes.push_back(SH_MIMETYPE().Clone()); return mimeTypes; } // Mime Types +CustomMimeType DiffusionIOMimeTypes::PLANARFIGURECOMPOSITE_MIMETYPE() +{ + CustomMimeType mimeType(PLANARFIGURECOMPOSITE_MIMETYPE_NAME()); + std::string category = "Planar Figure Composite"; + mimeType.SetComment("Planar Figure Composite"); + mimeType.SetCategory(category); + mimeType.AddExtension("pfc"); + return mimeType; +} + + +CustomMimeType DiffusionIOMimeTypes::TRACTOGRAPHYFOREST_MIMETYPE() +{ + CustomMimeType mimeType(TRACTOGRAPHYFOREST_MIMETYPE_NAME()); + std::string category = "Tractography Forest"; + mimeType.SetComment("Tractography Forest"); + mimeType.SetCategory(category); + mimeType.AddExtension("rf"); + return mimeType; +} + +CustomMimeType DiffusionIOMimeTypes::FIBERBUNDLE_VTK_MIMETYPE() +{ + CustomMimeType mimeType(FIBERBUNDLE_VTK_MIMETYPE_NAME()); + std::string category = "VTK Fibers"; + mimeType.SetComment("VTK Fibers"); + mimeType.SetCategory(category); + mimeType.AddExtension("fib"); + mimeType.AddExtension("vtk"); + return mimeType; +} + +CustomMimeType DiffusionIOMimeTypes::FIBERBUNDLE_TCK_MIMETYPE() +{ + CustomMimeType mimeType(FIBERBUNDLE_TCK_MIMETYPE_NAME()); + std::string category = "MRtrix Fibers"; + mimeType.SetComment("MRtrix Fibers"); + mimeType.SetCategory(category); + mimeType.AddExtension("tck"); + return mimeType; +} + +CustomMimeType DiffusionIOMimeTypes::FIBERBUNDLE_TRK_MIMETYPE() +{ + CustomMimeType mimeType(FIBERBUNDLE_TRK_MIMETYPE_NAME()); + std::string category = "TrackVis Fibers"; + mimeType.SetComment("TrackVis Fibers"); + mimeType.SetCategory(category); + mimeType.AddExtension("trk"); + return mimeType; +} + +DiffusionIOMimeTypes::FiberBundleDicomMimeType::FiberBundleDicomMimeType() + : CustomMimeType(FIBERBUNDLE_DICOM_MIMETYPE_NAME()) +{ + std::string category = "DICOM Fibers"; + this->SetCategory(category); + this->SetComment("DICOM Fibers"); + + this->AddExtension("dcm"); + this->AddExtension("DCM"); + this->AddExtension("gdcm"); + this->AddExtension("dc3"); + this->AddExtension("DC3"); + this->AddExtension("ima"); + this->AddExtension("img"); +} -DiffusionCoreIOMimeTypes::DiffusionImageNrrdMimeType::DiffusionImageNrrdMimeType() +bool DiffusionIOMimeTypes::FiberBundleDicomMimeType::AppliesTo(const std::string &path) const +{ + try + { + std::ifstream myfile; + myfile.open (path, std::ios::binary); +// myfile.seekg (128); + char *buffer = new char [128]; + myfile.read (buffer,128); + myfile.read (buffer,4); + if (std::string(buffer).compare("DICM")!=0) + { + delete[] buffer; + return false; + } + delete[] buffer; + + mitk::DICOMDCMTKTagScanner::Pointer scanner = mitk::DICOMDCMTKTagScanner::New(); + mitk::DICOMTag SOPInstanceUID(0x0008, 0x0016); + + mitk::StringList relevantFiles; + relevantFiles.push_back(path); + + scanner->AddTag(SOPInstanceUID); + scanner->SetInputFiles(relevantFiles); + scanner->Scan(); + mitk::DICOMTagCache::Pointer tagCache = scanner->GetScanCache(); + + mitk::DICOMImageFrameList imageFrameList = mitk::ConvertToDICOMImageFrameList(tagCache->GetFrameInfoList()); + if (imageFrameList.empty()) + return false; + + mitk::DICOMImageFrameInfo *firstFrame = imageFrameList.begin()->GetPointer(); + + std::string tag_value = tagCache->GetTagValue(firstFrame, SOPInstanceUID).value; + if (tag_value.empty()) { + return false; + } + + if (tag_value.compare(UID_TractographyResultsStorage)!=0) + return false; + + return true; + } + catch (std::exception& e) + { + MITK_INFO << e.what(); + } + return false; +} + +DiffusionIOMimeTypes::FiberBundleDicomMimeType* DiffusionIOMimeTypes::FiberBundleDicomMimeType::Clone() const +{ + return new FiberBundleDicomMimeType(*this); +} + + +DiffusionIOMimeTypes::FiberBundleDicomMimeType DiffusionIOMimeTypes::FIBERBUNDLE_DICOM_MIMETYPE() +{ + return FiberBundleDicomMimeType(); +} + +CustomMimeType DiffusionIOMimeTypes::CONNECTOMICS_MIMETYPE() +{ + CustomMimeType mimeType(CONNECTOMICS_MIMETYPE_NAME()); + std::string category = "Connectomics Networks"; + mimeType.SetComment("Connectomics Networks Files"); + mimeType.SetCategory(category); + mimeType.AddExtension("cnf"); + return mimeType; +} + +CustomMimeType DiffusionIOMimeTypes::CONNECTOMICS_MATRIX_MIMETYPE() +{ + CustomMimeType mimeType(CONNECTOMICS_MATRIX_MIMETYPE_NAME()); + std::string category = "Connectomics Networks export"; + mimeType.SetComment("Connectomics Matrix Files"); + mimeType.SetCategory(category); + mimeType.AddExtension("mat"); + return mimeType; +} + +CustomMimeType DiffusionIOMimeTypes::CONNECTOMICS_LIST_MIMETYPE() +{ + CustomMimeType mimeType(CONNECTOMICS_LIST_MIMETYPE_NAME()); + std::string category = "Connectomics Networks export"; + mimeType.SetComment("Connectomics Connection Lists"); + mimeType.SetCategory(category); + mimeType.AddExtension("txt"); + return mimeType; +} + +DiffusionIOMimeTypes::DiffusionImageNrrdMimeType::DiffusionImageNrrdMimeType() : CustomMimeType(DWI_NRRD_MIMETYPE_NAME()) { std::string category = "Diffusion Weighted Images"; this->SetCategory(category); this->SetComment("Diffusion Weighted Images"); this->AddExtension("dwi"); //this->AddExtension("hdwi"); // saving with detached header does not work out of the box this->AddExtension("nrrd"); } -bool DiffusionCoreIOMimeTypes::DiffusionImageNrrdMimeType::AppliesTo(const std::string &path) const +bool DiffusionIOMimeTypes::DiffusionImageNrrdMimeType::AppliesTo(const std::string &path) const { bool canRead( CustomMimeType::AppliesTo(path) ); // fix for bug 18572 // Currently this function is called for writing as well as reading, in that case // the image information can of course not be read // This is a bug, this function should only be called for reading. if( ! itksys::SystemTools::FileExists( path.c_str() ) ) { return canRead; } //end fix for bug 18572 itk::NrrdImageIO::Pointer io = itk::NrrdImageIO::New(); // Simple NRRD files should only be considered for this mime type if they contain // corresponding tags if( io->CanReadFile(path.c_str())) { io->SetFileName(path); try { io->ReadImageInformation(); itk::MetaDataDictionary imgMetaDictionary = io->GetMetaDataDictionary(); std::vector imgMetaKeys = imgMetaDictionary.GetKeys(); std::vector::const_iterator itKey = imgMetaKeys.begin(); std::string metaString; for (; itKey != imgMetaKeys.end(); itKey ++) { itk::ExposeMetaData (imgMetaDictionary, *itKey, metaString); if (itKey->find("modality") != std::string::npos) { if (metaString.find("DWMRI") != std::string::npos) { return canRead; } } } } catch( const itk::ExceptionObject &e ) { MITK_ERROR << "ITK Exception: " << e.what(); } canRead = false; } return canRead; } -DiffusionCoreIOMimeTypes::DiffusionImageNrrdMimeType* DiffusionCoreIOMimeTypes::DiffusionImageNrrdMimeType::Clone() const +DiffusionIOMimeTypes::DiffusionImageNrrdMimeType* DiffusionIOMimeTypes::DiffusionImageNrrdMimeType::Clone() const { return new DiffusionImageNrrdMimeType(*this); } -DiffusionCoreIOMimeTypes::DiffusionImageNrrdMimeType DiffusionCoreIOMimeTypes::DWI_NRRD_MIMETYPE() +DiffusionIOMimeTypes::DiffusionImageNrrdMimeType DiffusionIOMimeTypes::DWI_NRRD_MIMETYPE() { return DiffusionImageNrrdMimeType(); } -DiffusionCoreIOMimeTypes::DiffusionImageNiftiMimeType::DiffusionImageNiftiMimeType() +DiffusionIOMimeTypes::DiffusionImageNiftiMimeType::DiffusionImageNiftiMimeType() : CustomMimeType(DWI_NIFTI_MIMETYPE_NAME()) { std::string category = "Diffusion Weighted Images"; this->SetCategory(category); this->SetComment("Diffusion Weighted Images"); this->AddExtension("nii.gz"); this->AddExtension("nii"); } -bool DiffusionCoreIOMimeTypes::DiffusionImageNiftiMimeType::AppliesTo(const std::string &path) const +bool DiffusionIOMimeTypes::DiffusionImageNiftiMimeType::AppliesTo(const std::string &path) const { bool canRead(CustomMimeType::AppliesTo(path)); // fix for bug 18572 // Currently this function is called for writing as well as reading, in that case // the image information can of course not be read // This is a bug, this function should only be called for reading. if (!itksys::SystemTools::FileExists(path.c_str())) { return canRead; } //end fix for bug 18572 std::string ext = this->GetExtension(path); ext = itksys::SystemTools::LowerCase(ext); // Nifti files should only be considered for this mime type if they are // accompanied by bvecs and bvals files defining the diffusion information if (ext == ".nii" || ext == ".nii.gz") { std::string base_path = itksys::SystemTools::GetFilenamePath(path); std::string base = this->GetFilenameWithoutExtension(path); std::string filename = base; if (!base_path.empty()) { base = base_path + "/" + base; base_path += "/"; } if (itksys::SystemTools::FileExists(std::string(base + ".bvec").c_str()) && itksys::SystemTools::FileExists(std::string(base + ".bval").c_str()) ) { return canRead; } if (itksys::SystemTools::FileExists(std::string(base + ".bvecs").c_str()) && itksys::SystemTools::FileExists(std::string(base + ".bvals").c_str()) ) { return canRead; } // hack for HCP data if ( filename=="data" && itksys::SystemTools::FileExists(std::string(base_path + "bvec").c_str()) && itksys::SystemTools::FileExists(std::string(base_path + "bval").c_str()) ) { return canRead; } if ( filename=="data" && itksys::SystemTools::FileExists(std::string(base_path + "bvecs").c_str()) && itksys::SystemTools::FileExists(std::string(base_path + "bvals").c_str()) ) { return canRead; } canRead = false; } return canRead; } -DiffusionCoreIOMimeTypes::DiffusionImageNiftiMimeType* DiffusionCoreIOMimeTypes::DiffusionImageNiftiMimeType::Clone() const +DiffusionIOMimeTypes::DiffusionImageNiftiMimeType* DiffusionIOMimeTypes::DiffusionImageNiftiMimeType::Clone() const { return new DiffusionImageNiftiMimeType(*this); } -DiffusionCoreIOMimeTypes::DiffusionImageNiftiMimeType DiffusionCoreIOMimeTypes::DWI_NIFTI_MIMETYPE() +DiffusionIOMimeTypes::DiffusionImageNiftiMimeType DiffusionIOMimeTypes::DWI_NIFTI_MIMETYPE() { return DiffusionImageNiftiMimeType(); } -DiffusionCoreIOMimeTypes::DiffusionImageFslMimeType::DiffusionImageFslMimeType() - : CustomMimeType(DWI_FSL_MIMETYPE_NAME()) -{ - std::string category = "Diffusion Weighted Images"; - this->SetCategory(category); - this->SetComment("Diffusion Weighted Images"); - this->AddExtension("fslgz"); - this->AddExtension("fsl"); -} - -bool DiffusionCoreIOMimeTypes::DiffusionImageFslMimeType::AppliesTo(const std::string &path) const -{ - bool canRead(CustomMimeType::AppliesTo(path)); - - // fix for bug 18572 - // Currently this function is called for writing as well as reading, in that case - // the image information can of course not be read - // This is a bug, this function should only be called for reading. - if (!itksys::SystemTools::FileExists(path.c_str())) - { - return canRead; - } - //end fix for bug 18572 - - std::string ext = this->GetExtension(path); - ext = itksys::SystemTools::LowerCase(ext); - - // Nifti files should only be considered for this mime type if they are - // accompanied by bvecs and bvals files defining the diffusion information - if (ext == ".fsl" || ext == ".fslgz") - { - std::string base_path = itksys::SystemTools::GetFilenamePath(path); - std::string base = this->GetFilenameWithoutExtension(path); - if (!base_path.empty()) - base = base_path + "/" + base; - - if (itksys::SystemTools::FileExists(std::string(base + ".bvec").c_str()) - && itksys::SystemTools::FileExists(std::string(base + ".bval").c_str()) - ) - { - return canRead; - } - - if (itksys::SystemTools::FileExists(std::string(base + ".bvecs").c_str()) - && itksys::SystemTools::FileExists(std::string(base + ".bvals").c_str()) - ) - { - return canRead; - } - - if (itksys::SystemTools::FileExists(std::string(base + ext + ".bvec").c_str()) - && itksys::SystemTools::FileExists(std::string(base + ext + ".bval").c_str()) - ) - { - return canRead; - } - - if (itksys::SystemTools::FileExists(std::string(base + ext + ".bvecs").c_str()) - && itksys::SystemTools::FileExists(std::string(base + ext + ".bvals").c_str()) - ) - { - return canRead; - } - - canRead = false; - } - - return canRead; -} - -DiffusionCoreIOMimeTypes::DiffusionImageFslMimeType* DiffusionCoreIOMimeTypes::DiffusionImageFslMimeType::Clone() const -{ - return new DiffusionImageFslMimeType(*this); -} - - -DiffusionCoreIOMimeTypes::DiffusionImageFslMimeType DiffusionCoreIOMimeTypes::DWI_FSL_MIMETYPE() -{ - return DiffusionImageFslMimeType(); -} - - -DiffusionCoreIOMimeTypes::DiffusionImageDicomMimeType::DiffusionImageDicomMimeType() +DiffusionIOMimeTypes::DiffusionImageDicomMimeType::DiffusionImageDicomMimeType() : CustomMimeType(DWI_DICOM_MIMETYPE_NAME()) { std::string category = "Diffusion Weighted Images"; this->SetCategory(category); this->SetComment("Diffusion Weighted Images"); this->AddExtension("gdcm"); this->AddExtension("dcm"); this->AddExtension("DCM"); this->AddExtension("dc3"); this->AddExtension("DC3"); this->AddExtension("ima"); this->AddExtension("img"); } -bool DiffusionCoreIOMimeTypes::DiffusionImageDicomMimeType::AppliesTo(const std::string &path) const +bool DiffusionIOMimeTypes::DiffusionImageDicomMimeType::AppliesTo(const std::string &path) const { itk::GDCMImageIO::Pointer gdcmIO = itk::GDCMImageIO::New(); bool canRead = gdcmIO->CanReadFile(path.c_str()); if (!canRead) return canRead; mitk::DICOMDCMTKTagScanner::Pointer scanner = mitk::DICOMDCMTKTagScanner::New(); mitk::DICOMTag ImageTypeTag(0x0008, 0x0008); mitk::DICOMTag SeriesDescriptionTag(0x0008, 0x103E); mitk::StringList relevantFiles; relevantFiles.push_back(path); scanner->AddTag(ImageTypeTag); scanner->AddTag(SeriesDescriptionTag); scanner->SetInputFiles(relevantFiles); scanner->Scan(); mitk::DICOMTagCache::Pointer tagCache = scanner->GetScanCache(); mitk::DICOMImageFrameList imageFrameList = mitk::ConvertToDICOMImageFrameList(tagCache->GetFrameInfoList()); mitk::DICOMImageFrameInfo *firstFrame = imageFrameList.begin()->GetPointer(); std::string byteString = tagCache->GetTagValue(firstFrame, ImageTypeTag).value; if (byteString.empty()) return false; std::string byteString2 = tagCache->GetTagValue(firstFrame, SeriesDescriptionTag).value; if (byteString2.empty()) return false; if (byteString.find("DIFFUSION")==std::string::npos && byteString2.find("diff")==std::string::npos && byteString2.find("DWI")==std::string::npos) return false; return canRead; } -DiffusionCoreIOMimeTypes::DiffusionImageDicomMimeType* DiffusionCoreIOMimeTypes::DiffusionImageDicomMimeType::Clone() const +DiffusionIOMimeTypes::DiffusionImageDicomMimeType* DiffusionIOMimeTypes::DiffusionImageDicomMimeType::Clone() const { return new DiffusionImageDicomMimeType(*this); } -DiffusionCoreIOMimeTypes::DiffusionImageDicomMimeType DiffusionCoreIOMimeTypes::DWI_DICOM_MIMETYPE() +DiffusionIOMimeTypes::DiffusionImageDicomMimeType DiffusionIOMimeTypes::DWI_DICOM_MIMETYPE() { return DiffusionImageDicomMimeType(); } -DiffusionCoreIOMimeTypes::PeakImageMimeType::PeakImageMimeType() : CustomMimeType(PEAK_MIMETYPE_NAME()) +DiffusionIOMimeTypes::PeakImageMimeType::PeakImageMimeType() : CustomMimeType(PEAK_MIMETYPE_NAME()) { std::string category = "Peak Image"; this->SetCategory(category); this->SetComment("Peak Image"); this->AddExtension("nrrd"); this->AddExtension("nii"); this->AddExtension("nii.gz"); this->AddExtension("peak"); } -bool DiffusionCoreIOMimeTypes::PeakImageMimeType::AppliesTo(const std::string &path) const +bool DiffusionIOMimeTypes::PeakImageMimeType::AppliesTo(const std::string &path) const { std::string ext = itksys::SystemTools::GetFilenameExtension(path); if (ext==".peak") return true; try { itk::NrrdImageIO::Pointer io = itk::NrrdImageIO::New(); if ( io->CanReadFile( path.c_str() ) ) { io->SetFileName( path.c_str() ); io->ReadImageInformation(); if ( io->GetPixelType() == itk::ImageIOBase::SCALAR && io->GetNumberOfDimensions()==4 && io->GetDimensions(3)%3==0) return true; } } catch(...) {} try { itk::NiftiImageIO::Pointer io = itk::NiftiImageIO::New(); if ( io->CanReadFile( path.c_str() ) ) { io->SetFileName( path.c_str() ); io->ReadImageInformation(); if ( io->GetPixelType() == itk::ImageIOBase::SCALAR && io->GetNumberOfDimensions()==4 && io->GetDimensions(3)%3==0) return true; } } catch(...) {} return false; } -DiffusionCoreIOMimeTypes::PeakImageMimeType* DiffusionCoreIOMimeTypes::PeakImageMimeType::Clone() const +DiffusionIOMimeTypes::PeakImageMimeType* DiffusionIOMimeTypes::PeakImageMimeType::Clone() const { return new PeakImageMimeType(*this); } -DiffusionCoreIOMimeTypes::PeakImageMimeType DiffusionCoreIOMimeTypes::PEAK_MIMETYPE() +DiffusionIOMimeTypes::PeakImageMimeType DiffusionIOMimeTypes::PEAK_MIMETYPE() { return PeakImageMimeType(); } -DiffusionCoreIOMimeTypes::SHImageMimeType::SHImageMimeType() : CustomMimeType(SH_MIMETYPE_NAME()) +DiffusionIOMimeTypes::SHImageMimeType::SHImageMimeType() : CustomMimeType(SH_MIMETYPE_NAME()) { std::string category = "SH Image"; this->SetCategory(category); this->SetComment("SH Image"); this->AddExtension("nii.gz"); this->AddExtension("nii"); this->AddExtension("nrrd"); this->AddExtension("shi"); } -bool DiffusionCoreIOMimeTypes::SHImageMimeType::AppliesTo(const std::string &path) const +bool DiffusionIOMimeTypes::SHImageMimeType::AppliesTo(const std::string &path) const { std::string ext = itksys::SystemTools::GetFilenameExtension(path); if (ext==".shi") return true; { try { itk::NrrdImageIO::Pointer io = itk::NrrdImageIO::New(); if (io->CanReadFile(path.c_str())) { io->SetFileName(path.c_str()); io->ReadImageInformation(); if (io->GetPixelType() == itk::ImageIOBase::SCALAR && io->GetNumberOfDimensions() == 4) { switch (io->GetDimensions(3)) { case 6: return true; break; case 15: return true; break; case 28: return true; break; case 45: return true; break; case 66: return true; break; case 91: return true; break; default: return false; } } } } catch(...) {} } { itk::NiftiImageIO::Pointer io = itk::NiftiImageIO::New(); if ( io->CanReadFile( path.c_str() ) ) { io->SetFileName( path.c_str() ); io->ReadImageInformation(); if ( io->GetPixelType() == itk::ImageIOBase::SCALAR && io->GetNumberOfDimensions()==4) { switch (io->GetDimensions(3)) { case 6: return true; break; case 15: return true; break; case 28: return true; break; case 45: return true; break; case 66: return true; break; case 91: return true; break; default : return false; } } } } return false; } -DiffusionCoreIOMimeTypes::SHImageMimeType* DiffusionCoreIOMimeTypes::SHImageMimeType::Clone() const +DiffusionIOMimeTypes::SHImageMimeType* DiffusionIOMimeTypes::SHImageMimeType::Clone() const { return new SHImageMimeType(*this); } -DiffusionCoreIOMimeTypes::SHImageMimeType DiffusionCoreIOMimeTypes::SH_MIMETYPE() +DiffusionIOMimeTypes::SHImageMimeType DiffusionIOMimeTypes::SH_MIMETYPE() { return SHImageMimeType(); } -CustomMimeType DiffusionCoreIOMimeTypes::DTI_MIMETYPE() +CustomMimeType DiffusionIOMimeTypes::DTI_MIMETYPE() { CustomMimeType mimeType(DTI_MIMETYPE_NAME()); std::string category = "Tensor Image"; mimeType.SetComment("Diffusion Tensor Image"); mimeType.SetCategory(category); mimeType.AddExtension("dti"); return mimeType; } -CustomMimeType DiffusionCoreIOMimeTypes::ODF_MIMETYPE() +CustomMimeType DiffusionIOMimeTypes::ODF_MIMETYPE() { CustomMimeType mimeType(ODF_MIMETYPE_NAME()); std::string category = "ODF Image"; mimeType.SetComment("Diffusion ODF Image"); mimeType.SetCategory(category); mimeType.AddExtension("odf"); mimeType.AddExtension("qbi"); // legacy support return mimeType; } // Names -std::string DiffusionCoreIOMimeTypes::PEAK_MIMETYPE_NAME() +std::string DiffusionIOMimeTypes::FIBERBUNDLE_VTK_MIMETYPE_NAME() { - static std::string name ="ODF_PEAKS"; + static std::string name = IOMimeTypes::DEFAULT_BASE_NAME() + ".FiberBundle.vtk"; return name; } -std::string DiffusionCoreIOMimeTypes::DWI_NRRD_MIMETYPE_NAME() +std::string DiffusionIOMimeTypes::FIBERBUNDLE_TCK_MIMETYPE_NAME() { - static std::string name = "DWI_NRRD"; + static std::string name = IOMimeTypes::DEFAULT_BASE_NAME() + ".FiberBundle.tck"; return name; } -std::string DiffusionCoreIOMimeTypes::DWI_NIFTI_MIMETYPE_NAME() +std::string DiffusionIOMimeTypes::FIBERBUNDLE_TRK_MIMETYPE_NAME() { - static std::string name = "DWI_NIFTI"; + static std::string name = IOMimeTypes::DEFAULT_BASE_NAME() + ".FiberBundle.trk"; return name; } -std::string DiffusionCoreIOMimeTypes::DWI_FSL_MIMETYPE_NAME() +std::string DiffusionIOMimeTypes::FIBERBUNDLE_DICOM_MIMETYPE_NAME() { - static std::string name = "DWI_FSL"; + static std::string name = IOMimeTypes::DEFAULT_BASE_NAME() + ".FiberBundle.dcm"; return name; } -std::string DiffusionCoreIOMimeTypes::DWI_DICOM_MIMETYPE_NAME() +std::string DiffusionIOMimeTypes::CONNECTOMICS_MIMETYPE_NAME() +{ + static std::string name = IOMimeTypes::DEFAULT_BASE_NAME() + ".cnf"; + return name; +} + +std::string DiffusionIOMimeTypes::CONNECTOMICS_MATRIX_MIMETYPE_NAME() +{ + static std::string name = IOMimeTypes::DEFAULT_BASE_NAME() + ".mat"; + return name; +} + +std::string DiffusionIOMimeTypes::CONNECTOMICS_LIST_MIMETYPE_NAME() +{ + static std::string name = IOMimeTypes::DEFAULT_BASE_NAME() + ".txt"; + return name; +} + +std::string DiffusionIOMimeTypes::PLANARFIGURECOMPOSITE_MIMETYPE_NAME() +{ + static std::string name = IOMimeTypes::DEFAULT_BASE_NAME() + ".pfc"; + return name; +} + +std::string DiffusionIOMimeTypes::TRACTOGRAPHYFOREST_MIMETYPE_NAME() +{ + static std::string name = IOMimeTypes::DEFAULT_BASE_NAME() + ".rf"; + return name; +} + +std::string DiffusionIOMimeTypes::PEAK_MIMETYPE_NAME() +{ + static std::string name ="ODF_PEAKS"; + return name; +} + +std::string DiffusionIOMimeTypes::DWI_NRRD_MIMETYPE_NAME() +{ + static std::string name = "DWI_NRRD"; + return name; +} + +std::string DiffusionIOMimeTypes::DWI_NIFTI_MIMETYPE_NAME() +{ + static std::string name = "DWI_NIFTI"; + return name; +} + +std::string DiffusionIOMimeTypes::DWI_DICOM_MIMETYPE_NAME() { static std::string name = "DWI_DICOM"; return name; } -std::string DiffusionCoreIOMimeTypes::DTI_MIMETYPE_NAME() +std::string DiffusionIOMimeTypes::DTI_MIMETYPE_NAME() { static std::string name = "DT_IMAGE"; return name; } -std::string DiffusionCoreIOMimeTypes::ODF_MIMETYPE_NAME() +std::string DiffusionIOMimeTypes::ODF_MIMETYPE_NAME() { static std::string name = "ODF_IMAGE"; return name; } -std::string DiffusionCoreIOMimeTypes::SH_MIMETYPE_NAME() +std::string DiffusionIOMimeTypes::SH_MIMETYPE_NAME() { static std::string name = "SH_IMAGE"; return name; } // Descriptions -std::string DiffusionCoreIOMimeTypes::PEAK_MIMETYPE_DESCRIPTION() +std::string DiffusionIOMimeTypes::FIBERBUNDLE_MIMETYPE_DESCRIPTION() { - static std::string description = "Peak Image"; + static std::string description = "Fiberbundles"; return description; } -std::string DiffusionCoreIOMimeTypes::DWI_NRRD_MIMETYPE_DESCRIPTION() +std::string DiffusionIOMimeTypes::CONNECTOMICS_MIMETYPE_DESCRIPTION() { - static std::string description = "Diffusion Weighted Images"; + static std::string description = "Connectomics Networks"; + return description; +} + +std::string DiffusionIOMimeTypes::PLANARFIGURECOMPOSITE_MIMETYPE_DESCRIPTION() +{ + static std::string description = "Planar Figure Composite"; + return description; +} + +std::string DiffusionIOMimeTypes::TRACTOGRAPHYFOREST_MIMETYPE_DESCRIPTION() +{ + static std::string description = "Tractography Forest"; + return description; +} + +std::string DiffusionIOMimeTypes::PEAK_MIMETYPE_DESCRIPTION() +{ + static std::string description = "Peak Image"; return description; } -std::string DiffusionCoreIOMimeTypes::DWI_NIFTI_MIMETYPE_DESCRIPTION() +std::string DiffusionIOMimeTypes::DWI_NRRD_MIMETYPE_DESCRIPTION() { static std::string description = "Diffusion Weighted Images"; return description; } -std::string DiffusionCoreIOMimeTypes::DWI_FSL_MIMETYPE_DESCRIPTION() +std::string DiffusionIOMimeTypes::DWI_NIFTI_MIMETYPE_DESCRIPTION() { static std::string description = "Diffusion Weighted Images"; return description; } -std::string DiffusionCoreIOMimeTypes::DWI_DICOM_MIMETYPE_DESCRIPTION() +std::string DiffusionIOMimeTypes::DWI_DICOM_MIMETYPE_DESCRIPTION() { static std::string description = "Diffusion Weighted Images"; return description; } -std::string DiffusionCoreIOMimeTypes::DTI_MIMETYPE_DESCRIPTION() +std::string DiffusionIOMimeTypes::DTI_MIMETYPE_DESCRIPTION() { static std::string description = "Diffusion Tensor Image"; return description; } -std::string DiffusionCoreIOMimeTypes::ODF_MIMETYPE_DESCRIPTION() +std::string DiffusionIOMimeTypes::ODF_MIMETYPE_DESCRIPTION() { static std::string description = "ODF Image"; return description; } -std::string DiffusionCoreIOMimeTypes::SH_MIMETYPE_DESCRIPTION() +std::string DiffusionIOMimeTypes::SH_MIMETYPE_DESCRIPTION() { static std::string description = "SH Image"; return description; } } diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkDiffusionIOMimeTypes.h b/Modules/DiffusionIO/mitkDiffusionIOMimeTypes.h similarity index 75% rename from Modules/DiffusionImaging/DiffusionIO/mitkDiffusionIOMimeTypes.h rename to Modules/DiffusionIO/mitkDiffusionIOMimeTypes.h index 4868e62..647c593 100644 --- a/Modules/DiffusionImaging/DiffusionIO/mitkDiffusionIOMimeTypes.h +++ b/Modules/DiffusionIO/mitkDiffusionIOMimeTypes.h @@ -1,124 +1,156 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ -#ifndef MITKDIFFUSIONIOMIMETYPES_H -#define MITKDIFFUSIONIOMIMETYPES_H +#ifndef MITKDiffusionIOMimeTypes_H +#define MITKDiffusionIOMimeTypes_H #include "mitkCustomMimeType.h" - #include namespace mitk { class DiffusionIOMimeTypes { public: class DiffusionImageNrrdMimeType : public CustomMimeType { public: DiffusionImageNrrdMimeType(); bool AppliesTo(const std::string &path) const override; DiffusionImageNrrdMimeType* Clone() const override; }; class DiffusionImageNiftiMimeType : public CustomMimeType { public: DiffusionImageNiftiMimeType(); bool AppliesTo(const std::string &path) const override; DiffusionImageNiftiMimeType* Clone() const override; }; // Get all Diffusion Mime Types static std::vector Get(); + class DiffusionImageDicomMimeType : public CustomMimeType + { + public: + DiffusionImageDicomMimeType(); + bool AppliesTo(const std::string &path) const override; + DiffusionImageDicomMimeType* Clone() const override; + }; + + class PeakImageMimeType : public CustomMimeType + { + public: + PeakImageMimeType(); + bool AppliesTo(const std::string &path) const override; + PeakImageMimeType* Clone() const override; + }; + + class SHImageMimeType : public CustomMimeType + { + public: + SHImageMimeType(); + bool AppliesTo(const std::string &path) const override; + SHImageMimeType* Clone() const override; + }; + // ------------------------------ VTK formats ---------------------------------- static CustomMimeType FIBERBUNDLE_VTK_MIMETYPE(); static std::string FIBERBUNDLE_VTK_MIMETYPE_NAME(); static std::string FIBERBUNDLE_MIMETYPE_DESCRIPTION(); // ------------------------------ MRtrix formats ---------------------------------- static CustomMimeType FIBERBUNDLE_TCK_MIMETYPE(); static std::string FIBERBUNDLE_TCK_MIMETYPE_NAME(); // ------------------------------ TrackVis formats ---------------------------------- static CustomMimeType FIBERBUNDLE_TRK_MIMETYPE(); static std::string FIBERBUNDLE_TRK_MIMETYPE_NAME(); // ------------------------------ DICOM formats ---------------------------------- class FiberBundleDicomMimeType : public CustomMimeType { public: FiberBundleDicomMimeType(); bool AppliesTo(const std::string &path) const override; FiberBundleDicomMimeType* Clone() const override; }; static FiberBundleDicomMimeType FIBERBUNDLE_DICOM_MIMETYPE(); static std::string FIBERBUNDLE_DICOM_MIMETYPE_NAME(); // ------------------------- Image formats (ITK based) -------------------------- static DiffusionImageNrrdMimeType DWI_NRRD_MIMETYPE(); static DiffusionImageNiftiMimeType DWI_NIFTI_MIMETYPE(); + static DiffusionImageDicomMimeType DWI_DICOM_MIMETYPE(); + static PeakImageMimeType PEAK_MIMETYPE(); static CustomMimeType DTI_MIMETYPE(); // dti - static CustomMimeType ODF_MIMETYPE(); // qbi, odf + static CustomMimeType ODF_MIMETYPE(); // odf, qbi + static SHImageMimeType SH_MIMETYPE(); // spherical harmonics coefficients + static std::string PEAK_MIMETYPE_NAME(); static std::string DWI_NRRD_MIMETYPE_NAME(); static std::string DWI_NIFTI_MIMETYPE_NAME(); + static std::string DWI_DICOM_MIMETYPE_NAME(); static std::string DTI_MIMETYPE_NAME(); static std::string ODF_MIMETYPE_NAME(); + static std::string SH_MIMETYPE_NAME(); + static std::string PEAK_MIMETYPE_DESCRIPTION(); static std::string DWI_NRRD_MIMETYPE_DESCRIPTION(); static std::string DWI_NIFTI_MIMETYPE_DESCRIPTION(); + static std::string DWI_DICOM_MIMETYPE_DESCRIPTION(); static std::string DTI_MIMETYPE_DESCRIPTION(); static std::string ODF_MIMETYPE_DESCRIPTION(); + static std::string SH_MIMETYPE_DESCRIPTION(); // ------------------------------ MITK formats ---------------------------------- static CustomMimeType CONNECTOMICS_MIMETYPE(); // cnf static CustomMimeType CONNECTOMICS_MATRIX_MIMETYPE(); // mat static CustomMimeType CONNECTOMICS_LIST_MIMETYPE(); // txt static std::string CONNECTOMICS_MIMETYPE_NAME(); static std::string CONNECTOMICS_MATRIX_MIMETYPE_NAME(); static std::string CONNECTOMICS_LIST_MIMETYPE_NAME(); static std::string CONNECTOMICS_MIMETYPE_DESCRIPTION(); static CustomMimeType PLANARFIGURECOMPOSITE_MIMETYPE(); static std::string PLANARFIGURECOMPOSITE_MIMETYPE_NAME(); static std::string PLANARFIGURECOMPOSITE_MIMETYPE_DESCRIPTION(); static CustomMimeType TRACTOGRAPHYFOREST_MIMETYPE(); static std::string TRACTOGRAPHYFOREST_MIMETYPE_NAME(); static std::string TRACTOGRAPHYFOREST_MIMETYPE_DESCRIPTION(); private: // purposely not implemented DiffusionIOMimeTypes(); DiffusionIOMimeTypes(const DiffusionIOMimeTypes&); }; } -#endif // MITKDIFFUSIONIOMIMETYPES_H +#endif // MITKDiffusionIOMimeTypes_H diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkDiffusionModuleActivator.cpp b/Modules/DiffusionIO/mitkDiffusionServiceActivator.cpp similarity index 67% rename from Modules/DiffusionImaging/DiffusionIO/mitkDiffusionModuleActivator.cpp rename to Modules/DiffusionIO/mitkDiffusionServiceActivator.cpp index fac6fb1..30a5824 100644 --- a/Modules/DiffusionImaging/DiffusionIO/mitkDiffusionModuleActivator.cpp +++ b/Modules/DiffusionIO/mitkDiffusionServiceActivator.cpp @@ -1,140 +1,204 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#include + #include #include #include #include "mitkDiffusionIOMimeTypes.h" namespace mitk { /** - \brief Registers services for segmentation module. + \brief Registers reader and writer services. */ - class DiffusionModuleActivator : public us::ModuleActivator + class DiffusionServiceActivator : public us::ModuleActivator { public: void Load(us::ModuleContext* context) override { m_MimeTypes = mitk::DiffusionIOMimeTypes::Get(); for (std::vector::const_iterator mimeTypeIter = m_MimeTypes.begin(), iterEnd = m_MimeTypes.end(); mimeTypeIter != iterEnd; ++mimeTypeIter) { us::ServiceProperties props; mitk::CustomMimeType* mt = *mimeTypeIter; if (mt->GetName()==mitk::DiffusionIOMimeTypes::FIBERBUNDLE_VTK_MIMETYPE_NAME()) props[ us::ServiceConstants::SERVICE_RANKING() ] = -1; else if (mt->GetName()==mitk::DiffusionIOMimeTypes::FIBERBUNDLE_TRK_MIMETYPE_NAME()) props[ us::ServiceConstants::SERVICE_RANKING() ] = -2; else if (mt->GetName()==mitk::DiffusionIOMimeTypes::FIBERBUNDLE_TCK_MIMETYPE_NAME()) props[ us::ServiceConstants::SERVICE_RANKING() ] = -3; else if (mt->GetName()==mitk::DiffusionIOMimeTypes::FIBERBUNDLE_DICOM_MIMETYPE_NAME()) props[ us::ServiceConstants::SERVICE_RANKING() ] = -4; else props[ us::ServiceConstants::SERVICE_RANKING() ] = 10; context->RegisterService(*mimeTypeIter, props); } m_FiberBundleVtkReader = new FiberBundleVtkReader(); + m_FiberBundleVtkWriter = new FiberBundleVtkWriter(); m_FiberBundleTrackVisReader = new FiberBundleTrackVisReader(); + m_FiberBundleTrackVisWriter = new FiberBundleTrackVisWriter(); m_FiberBundleTckReader = new FiberBundleTckReader(); m_FiberBundleDicomReader = new FiberBundleDicomReader(); - m_ConnectomicsNetworkReader = new ConnectomicsNetworkReader(); - m_PlanarFigureCompositeReader = new PlanarFigureCompositeReader(); - m_TractographyForestReader = new TractographyForestReader(); - - m_FiberBundleVtkWriter = new FiberBundleVtkWriter(); - m_FiberBundleTrackVisWriter = new FiberBundleTrackVisWriter(); m_FiberBundleDicomWriter = new FiberBundleDicomWriter(); + + m_ConnectomicsNetworkReader = new ConnectomicsNetworkReader(); m_ConnectomicsNetworkWriter = new ConnectomicsNetworkWriter(); m_ConnectomicsNetworkCSVWriter = new ConnectomicsNetworkCSVWriter(); m_ConnectomicsNetworkMatrixWriter = new ConnectomicsNetworkMatrixWriter(); + + m_PlanarFigureCompositeReader = new PlanarFigureCompositeReader(); m_PlanarFigureCompositeWriter = new PlanarFigureCompositeWriter(); + m_TractographyForestReader = new TractographyForestReader(); m_TractographyForestWriter = new TractographyForestWriter(); + + m_DiffusionImageNrrdReader = new DiffusionImageNrrdReader(); + m_DiffusionImageNrrdWriter = new DiffusionImageNrrdWriter(); + + m_DiffusionImageNiftiReader = new DiffusionImageNiftiReader(); + m_DiffusionImageNiftiWriter = new DiffusionImageNiftiWriter(); + + m_DiffusionImageDicomReader = new DiffusionImageDicomReader(); + + m_NrrdTensorImageReader = new NrrdTensorImageReader(); + m_NrrdOdfImageReader = new NrrdOdfImageReader(); + m_PeakImageReader = new PeakImageReader(); + m_ShImageReader = new ShImageReader(); + + m_NrrdTensorImageWriter = new NrrdTensorImageWriter(); + m_NrrdOdfImageWriter = new NrrdOdfImageWriter(); + m_ShImageWriter = new ShImageWriter(); + + mitk::DiffusionPropertyHelper::SetupProperties(); } void Unload(us::ModuleContext*) override { for (unsigned int loop(0); loop < m_MimeTypes.size(); ++loop) { delete m_MimeTypes.at(loop); } delete m_FiberBundleVtkReader; delete m_FiberBundleTckReader; delete m_FiberBundleTrackVisReader; delete m_ConnectomicsNetworkReader; delete m_PlanarFigureCompositeReader; delete m_TractographyForestReader; delete m_FiberBundleDicomReader; delete m_FiberBundleDicomWriter; delete m_FiberBundleVtkWriter; delete m_FiberBundleTrackVisWriter; delete m_ConnectomicsNetworkWriter; delete m_ConnectomicsNetworkCSVWriter; delete m_ConnectomicsNetworkMatrixWriter; delete m_PlanarFigureCompositeWriter; delete m_TractographyForestWriter; + + delete m_DiffusionImageNrrdReader; + delete m_DiffusionImageNiftiReader; + delete m_DiffusionImageDicomReader; + delete m_NrrdTensorImageReader; + delete m_NrrdOdfImageReader; + delete m_PeakImageReader; + delete m_ShImageReader; + + delete m_DiffusionImageNrrdWriter; + delete m_DiffusionImageNiftiWriter; + delete m_NrrdTensorImageWriter; + delete m_NrrdOdfImageWriter; + delete m_ShImageWriter; } private: FiberBundleVtkReader * m_FiberBundleVtkReader; FiberBundleTckReader * m_FiberBundleTckReader; FiberBundleTrackVisReader * m_FiberBundleTrackVisReader; FiberBundleDicomReader * m_FiberBundleDicomReader; ConnectomicsNetworkReader * m_ConnectomicsNetworkReader; PlanarFigureCompositeReader* m_PlanarFigureCompositeReader; TractographyForestReader* m_TractographyForestReader; FiberBundleDicomWriter * m_FiberBundleDicomWriter; FiberBundleVtkWriter * m_FiberBundleVtkWriter; FiberBundleTrackVisWriter * m_FiberBundleTrackVisWriter; ConnectomicsNetworkWriter * m_ConnectomicsNetworkWriter; ConnectomicsNetworkCSVWriter * m_ConnectomicsNetworkCSVWriter; ConnectomicsNetworkMatrixWriter * m_ConnectomicsNetworkMatrixWriter; PlanarFigureCompositeWriter* m_PlanarFigureCompositeWriter; TractographyForestWriter* m_TractographyForestWriter; + DiffusionImageNrrdReader * m_DiffusionImageNrrdReader; + DiffusionImageNiftiReader * m_DiffusionImageNiftiReader; + DiffusionImageDicomReader * m_DiffusionImageDicomReader; + NrrdTensorImageReader * m_NrrdTensorImageReader; + NrrdOdfImageReader * m_NrrdOdfImageReader; + PeakImageReader * m_PeakImageReader; + ShImageReader * m_ShImageReader; + + DiffusionImageNrrdWriter * m_DiffusionImageNrrdWriter; + DiffusionImageNiftiWriter * m_DiffusionImageNiftiWriter; + NrrdTensorImageWriter * m_NrrdTensorImageWriter; + NrrdOdfImageWriter * m_NrrdOdfImageWriter; + ShImageWriter * m_ShImageWriter; + std::vector m_MimeTypes; }; } -US_EXPORT_MODULE_ACTIVATOR(mitk::DiffusionModuleActivator) +US_EXPORT_MODULE_ACTIVATOR(mitk::DiffusionServiceActivator) diff --git a/Modules/DiffusionImaging/CMakeLists.txt b/Modules/DiffusionImaging/CMakeLists.txt deleted file mode 100644 index 0be1046..0000000 --- a/Modules/DiffusionImaging/CMakeLists.txt +++ /dev/null @@ -1,14 +0,0 @@ -set( diffusion_module_dirs - DiffusionCore - FiberTracking - Connectomics - Quantification - DiffusionIO - DiffusionCmdApps -) - -foreach(diffusion_module_dir ${diffusion_module_dirs}) - add_subdirectory(${diffusion_module_dir}) -endforeach() - -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/mitkDiffusionImagingConfigure.h.in ${CMAKE_CURRENT_BINARY_DIR}/DiffusionCore/mitkDiffusionImagingConfigure.h) diff --git a/Modules/DiffusionImaging/DiffusionCore/CMakeLists.txt b/Modules/DiffusionImaging/DiffusionCore/CMakeLists.txt deleted file mode 100644 index e391570..0000000 --- a/Modules/DiffusionImaging/DiffusionCore/CMakeLists.txt +++ /dev/null @@ -1,24 +0,0 @@ -# With apple gcc 4.2.1 the following waring leads to an build error if boost is enabled -if(APPLE) - mitkFunctionCheckCAndCXXCompilerFlags("-Wno-error=empty-body" CMAKE_C_FLAGS CMAKE_CXX_FLAGS) -endif() - -MITK_CREATE_MODULE( - SUBPROJECTS MITK-Diffusion - INCLUDE_DIRS include/ include/Algorithms include/Algorithms/Reconstruction include/Algorithms/Registration include/Algorithms/Reconstruction/MultishellProcessing include/Algorithms/Reconstruction/FittingFunctions include/DicomImport include/IODataStructures/DiffusionWeightedImages include/IODataStructures/Properties include/IODataStructures/OdfImages include/IODataStructures/TensorImages include/IODataStructures include/Rendering ${CMAKE_CURRENT_BINARY_DIR} - DEPENDS MitkMapperExt MitkPlanarFigure MitkImageExtraction MitkSceneSerializationBase MitkDICOMReader MitkMatchPointRegistration - PACKAGE_DEPENDS - PUBLIC ITK|ITKTestKernel+ITKRegistrationCommon+ITKMetricsv4+ITKRegistrationMethodsv4+ITKDistanceMap+ITKLabelVoting+ITKVTK - PUBLIC VTK|vtkFiltersProgrammable OpenMP|OpenMP_CXX -) - -if(MSVC) - mitkFunctionCheckCAndCXXCompilerFlags("/wd4005" CMAKE_C_FLAGS CMAKE_CXX_FLAGS) -endif() - -add_subdirectory(Testing) -add_subdirectory(autoload/IO) - -if(MITK_USE_Python) -MITK_INSTALL(FILES PythonRequirements.txt) -endif() diff --git a/Modules/DiffusionImaging/DiffusionCore/DicomImport/test.txt b/Modules/DiffusionImaging/DiffusionCore/DicomImport/test.txt deleted file mode 100644 index e69de29..0000000 diff --git a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/CMakeLists.txt b/Modules/DiffusionImaging/DiffusionCore/autoload/IO/CMakeLists.txt deleted file mode 100644 index b400054..0000000 --- a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/CMakeLists.txt +++ /dev/null @@ -1,9 +0,0 @@ -MITK_CREATE_MODULE( DiffusionCoreIO - INCLUDE_DIRS - PRIVATE src/IO - DEPENDS PUBLIC MitkDiffusionCore MitkSceneSerialization - PACKAGE_DEPENDS - PRIVATE tinyxml - AUTOLOAD_WITH MitkCore - SUBPROJECTS MITK-Diffusion -) \ No newline at end of file diff --git a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/files.cmake b/Modules/DiffusionImaging/DiffusionCore/autoload/IO/files.cmake deleted file mode 100644 index a7f7003..0000000 --- a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/files.cmake +++ /dev/null @@ -1,28 +0,0 @@ -set(CPP_FILES - mitkDiffusionCoreIOActivator.cpp - mitkPeakImageReader.cpp - mitkNrrdTensorImageReader.cpp - mitkNrrdTensorImageWriter.cpp - mitkTensorImageSerializer.cpp - mitkTensorImageSource.cpp - mitkDiffusionCoreObjectFactory.cpp - - mitkDiffusionCoreIOMimeTypes.cpp - - mitkDiffusionImageDicomReaderService.cpp - mitkDiffusionImageNrrdReaderService.cpp - mitkDiffusionImageNrrdWriterService.cpp - mitkDiffusionImageNiftiReaderService.cpp - mitkDiffusionImageNiftiWriterService.cpp - - mitkNrrdOdfImageReader.cpp - mitkNrrdOdfImageWriter.cpp - mitkOdfImageSerializer.cpp - mitkPeakImageSerializer.cpp - mitkShImageReader.cpp - mitkShImageWriter.cpp - mitkShImageSerializer.cpp - - mitkCompositeMapper.cpp -) - diff --git a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionCoreIOActivator.cpp b/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionCoreIOActivator.cpp deleted file mode 100644 index 3bc4088..0000000 --- a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionCoreIOActivator.cpp +++ /dev/null @@ -1,128 +0,0 @@ -/*=================================================================== - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center, -Division of Medical and Biological Informatics. -All rights reserved. - -This software is distributed WITHOUT ANY WARRANTY; without -even the implied warranty of MERCHANTABILITY or FITNESS FOR -A PARTICULAR PURPOSE. - -See LICENSE.txt or http://www.mitk.org for details. - -===================================================================*/ -#include -#include - -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include - -#include - -#include -#include -#include - -#include "mitkDiffusionCoreIOMimeTypes.h" - -namespace mitk -{ - /** - \brief Registers services for segmentation module. - */ - class DiffusionCoreIOActivator : public us::ModuleActivator - { - public: - - void Load(us::ModuleContext* context) override - { - m_MimeTypes = mitk::DiffusionCoreIOMimeTypes::Get(); - for (std::vector::const_iterator mimeTypeIter = m_MimeTypes.begin(), - iterEnd = m_MimeTypes.end(); mimeTypeIter != iterEnd; ++mimeTypeIter) - { - us::ServiceProperties props; - mitk::CustomMimeType* mt = *mimeTypeIter; - if (mt->GetName()!=mitk::DiffusionCoreIOMimeTypes::PEAK_MIMETYPE_NAME() && mt->GetName()!=mitk::DiffusionCoreIOMimeTypes::SH_MIMETYPE_NAME()) - props[ us::ServiceConstants::SERVICE_RANKING() ] = 10; - - context->RegisterService(*mimeTypeIter, props); - } - - m_DiffusionImageNrrdReaderService = new DiffusionImageNrrdReaderService(); - m_DiffusionImageNiftiReaderService = new DiffusionImageNiftiReaderService( CustomMimeType( mitk::DiffusionCoreIOMimeTypes::DWI_NIFTI_MIMETYPE() ), mitk::DiffusionCoreIOMimeTypes::DWI_NIFTI_MIMETYPE_DESCRIPTION() ); - m_DiffusionImageFslNiftiReaderService = new DiffusionImageNiftiReaderService( CustomMimeType( mitk::DiffusionCoreIOMimeTypes::DWI_FSL_MIMETYPE() ), mitk::DiffusionCoreIOMimeTypes::DWI_FSL_MIMETYPE_DESCRIPTION() ); - m_DiffusionImageDicomReaderService = new DiffusionImageDicomReaderService(); - - m_NrrdTensorImageReader = new NrrdTensorImageReader(); - m_NrrdOdfImageReader = new NrrdOdfImageReader(); - m_PeakImageReader = new PeakImageReader(); - m_ShImageReader = new ShImageReader(); - - m_DiffusionImageNrrdWriterService = new DiffusionImageNrrdWriterService(); - m_DiffusionImageNiftiWriterService = new DiffusionImageNiftiWriterService(); - m_NrrdTensorImageWriter = new NrrdTensorImageWriter(); - m_NrrdOdfImageWriter = new NrrdOdfImageWriter(); - m_ShImageWriter = new ShImageWriter(); - - mitk::DiffusionPropertyHelper::SetupProperties(); - } - - void Unload(us::ModuleContext*) override - { - for (unsigned int loop(0); loop < m_MimeTypes.size(); ++loop) - { - delete m_MimeTypes.at(loop); - } - - delete m_DiffusionImageNrrdReaderService; - delete m_DiffusionImageNiftiReaderService; - delete m_DiffusionImageFslNiftiReaderService; - delete m_DiffusionImageDicomReaderService; - delete m_NrrdTensorImageReader; - delete m_NrrdOdfImageReader; - delete m_PeakImageReader; - delete m_ShImageReader; - - delete m_DiffusionImageNrrdWriterService; - delete m_DiffusionImageNiftiWriterService; - delete m_NrrdTensorImageWriter; - delete m_NrrdOdfImageWriter; - delete m_ShImageWriter; - } - - private: - - DiffusionImageNrrdReaderService * m_DiffusionImageNrrdReaderService; - DiffusionImageNiftiReaderService * m_DiffusionImageNiftiReaderService; - DiffusionImageNiftiReaderService * m_DiffusionImageFslNiftiReaderService; - DiffusionImageDicomReaderService * m_DiffusionImageDicomReaderService; - NrrdTensorImageReader * m_NrrdTensorImageReader; - NrrdOdfImageReader * m_NrrdOdfImageReader; - PeakImageReader * m_PeakImageReader; - ShImageReader * m_ShImageReader; - - DiffusionImageNrrdWriterService * m_DiffusionImageNrrdWriterService; - DiffusionImageNiftiWriterService * m_DiffusionImageNiftiWriterService; - NrrdTensorImageWriter * m_NrrdTensorImageWriter; - NrrdOdfImageWriter * m_NrrdOdfImageWriter; - ShImageWriter * m_ShImageWriter; - - std::vector m_MimeTypes; - - }; -} - -US_EXPORT_MODULE_ACTIVATOR(mitk::DiffusionCoreIOActivator) diff --git a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionCoreIOMimeTypes.h b/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionCoreIOMimeTypes.h deleted file mode 100644 index 80441a1..0000000 --- a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionCoreIOMimeTypes.h +++ /dev/null @@ -1,118 +0,0 @@ -/*=================================================================== - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center, -Division of Medical and Biological Informatics. -All rights reserved. - -This software is distributed WITHOUT ANY WARRANTY; without -even the implied warranty of MERCHANTABILITY or FITNESS FOR -A PARTICULAR PURPOSE. - -See LICENSE.txt or http://www.mitk.org for details. - -===================================================================*/ - -#ifndef MITKDiffusionCoreIOMimeTypes_H -#define MITKDiffusionCoreIOMimeTypes_H - -#include "mitkCustomMimeType.h" -#include - -namespace mitk { - -class DiffusionCoreIOMimeTypes -{ -public: - - class DiffusionImageNrrdMimeType : public CustomMimeType - { - public: - DiffusionImageNrrdMimeType(); - bool AppliesTo(const std::string &path) const override; - DiffusionImageNrrdMimeType* Clone() const override; - }; - - class DiffusionImageNiftiMimeType : public CustomMimeType - { - public: - DiffusionImageNiftiMimeType(); - bool AppliesTo(const std::string &path) const override; - DiffusionImageNiftiMimeType* Clone() const override; - }; - - class DiffusionImageFslMimeType : public CustomMimeType - { - public: - DiffusionImageFslMimeType(); - bool AppliesTo(const std::string &path) const override; - DiffusionImageFslMimeType* Clone() const override; - }; - - class DiffusionImageDicomMimeType : public CustomMimeType - { - public: - DiffusionImageDicomMimeType(); - bool AppliesTo(const std::string &path) const override; - DiffusionImageDicomMimeType* Clone() const override; - }; - - class PeakImageMimeType : public CustomMimeType - { - public: - PeakImageMimeType(); - bool AppliesTo(const std::string &path) const override; - PeakImageMimeType* Clone() const override; - }; - - class SHImageMimeType : public CustomMimeType - { - public: - SHImageMimeType(); - bool AppliesTo(const std::string &path) const override; - SHImageMimeType* Clone() const override; - }; - - // Get all Diffusion Mime Types - static std::vector Get(); - - // ------------------------- Image formats (ITK based) -------------------------- - - static DiffusionImageNrrdMimeType DWI_NRRD_MIMETYPE(); - static DiffusionImageNiftiMimeType DWI_NIFTI_MIMETYPE(); - static DiffusionImageFslMimeType DWI_FSL_MIMETYPE(); - static DiffusionImageDicomMimeType DWI_DICOM_MIMETYPE(); - static PeakImageMimeType PEAK_MIMETYPE(); - static CustomMimeType DTI_MIMETYPE(); // dti - static CustomMimeType ODF_MIMETYPE(); // odf, qbi - static SHImageMimeType SH_MIMETYPE(); // spherical harmonics coefficients - - static std::string PEAK_MIMETYPE_NAME(); - static std::string DWI_NRRD_MIMETYPE_NAME(); - static std::string DWI_NIFTI_MIMETYPE_NAME(); - static std::string DWI_FSL_MIMETYPE_NAME(); - static std::string DWI_DICOM_MIMETYPE_NAME(); - static std::string DTI_MIMETYPE_NAME(); - static std::string ODF_MIMETYPE_NAME(); - static std::string SH_MIMETYPE_NAME(); - - static std::string PEAK_MIMETYPE_DESCRIPTION(); - static std::string DWI_NRRD_MIMETYPE_DESCRIPTION(); - static std::string DWI_NIFTI_MIMETYPE_DESCRIPTION(); - static std::string DWI_FSL_MIMETYPE_DESCRIPTION(); - static std::string DWI_DICOM_MIMETYPE_DESCRIPTION(); - static std::string DTI_MIMETYPE_DESCRIPTION(); - static std::string ODF_MIMETYPE_DESCRIPTION(); - static std::string SH_MIMETYPE_DESCRIPTION(); - -private: - - // purposely not implemented - DiffusionCoreIOMimeTypes(); - DiffusionCoreIOMimeTypes(const DiffusionCoreIOMimeTypes&); -}; - -} - -#endif // MITKDiffusionCoreIOMimeTypes_H diff --git a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkTensorImageSource.cpp b/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkTensorImageSource.cpp deleted file mode 100644 index 79d0ea5..0000000 --- a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkTensorImageSource.cpp +++ /dev/null @@ -1,45 +0,0 @@ -/*=================================================================== - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center, -Division of Medical and Biological Informatics. -All rights reserved. - -This software is distributed WITHOUT ANY WARRANTY; without -even the implied warranty of MERCHANTABILITY or FITNESS FOR -A PARTICULAR PURPOSE. - -See LICENSE.txt or http://www.mitk.org for details. - -===================================================================*/ - - -#include "mitkTensorImageSource.h" - - -mitk::TensorImageSource::TensorImageSource() -{ - // Create the output. We use static_cast<> here because we know the default - // output must be of type TOutputImage - OutputImageType::Pointer output - = static_cast(this->MakeOutput(0).GetPointer()); - Superclass::SetNumberOfRequiredOutputs(1); - Superclass::SetNthOutput(0, output.GetPointer()); -} - -itk::DataObject::Pointer mitk::TensorImageSource::MakeOutput ( DataObjectPointerArraySizeType /*idx*/ ) -{ - return OutputImageType::New().GetPointer(); -} - - -itk::DataObject::Pointer mitk::TensorImageSource::MakeOutput( const DataObjectIdentifierType & name ) -{ - itkDebugMacro("MakeOutput(" << name << ")"); - if( this->IsIndexedOutputName(name) ) - { - return this->MakeOutput( this->MakeIndexFromOutputName(name) ); - } - return static_cast(OutputImageType::New().GetPointer()); -} diff --git a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkTensorImageSource.h b/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkTensorImageSource.h deleted file mode 100644 index e2443d6..0000000 --- a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkTensorImageSource.h +++ /dev/null @@ -1,63 +0,0 @@ -/*=================================================================== - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center, -Division of Medical and Biological Informatics. -All rights reserved. - -This software is distributed WITHOUT ANY WARRANTY; without -even the implied warranty of MERCHANTABILITY or FITNESS FOR -A PARTICULAR PURPOSE. - -See LICENSE.txt or http://www.mitk.org for details. - -===================================================================*/ - - -#ifndef TensorImageSource_H_HEADER_INCLUDED_C1E7D6EC -#define TensorImageSource_H_HEADER_INCLUDED_C1E7D6EC - -#include "mitkImageSource.h" -#include "mitkTensorImage.h" - -namespace mitk { - -class TensorImageSource : public ImageSource -{ -public: - - typedef mitk::TensorImage OutputImageType; - typedef OutputImageType::Pointer OutputImagePointer; - typedef SlicedData::RegionType OutputImageRegionType; - typedef itk::DataObject::Pointer DataObjectPointer; - - mitkClassMacro(TensorImageSource,ImageSource); - itkFactorylessNewMacro(Self) - itkCloneMacro(Self) - - /** - * Allocates a new output object and returns it. Currently the - * index idx is not evaluated. - * @param idx the index of the output for which an object should be created - * @returns the new object - */ - itk::DataObject::Pointer MakeOutput ( DataObjectPointerArraySizeType idx ) override; - - /** - * This is a default implementation to make sure we have something. - * Once all the subclasses of ProcessObject provide an appopriate - * MakeOutput(), then ProcessObject::MakeOutput() can be made pure - * virtual. - */ - itk::DataObject::Pointer MakeOutput(const DataObjectIdentifierType &name) override; - -protected: - TensorImageSource(); - ~TensorImageSource() override {} - -}; - -} // namespace mitk - -#endif /* TensorImageSource_H_HEADER_INCLUDED_C1E7D6EC */ diff --git a/Modules/DiffusionImaging/DiffusionCore/files.cmake b/Modules/DiffusionImaging/DiffusionCore/files.cmake deleted file mode 100644 index b8972e7..0000000 --- a/Modules/DiffusionImaging/DiffusionCore/files.cmake +++ /dev/null @@ -1,162 +0,0 @@ -set(CPP_FILES - - # DicomImport - # DicomImport/mitkGroupDiffusionHeadersFilter.cpp - DicomImport/mitkDicomDiffusionImageHeaderReader.cpp - DicomImport/mitkGEDicomDiffusionImageHeaderReader.cpp - DicomImport/mitkPhilipsDicomDiffusionImageHeaderReader.cpp - DicomImport/mitkSiemensDicomDiffusionImageHeaderReader.cpp - DicomImport/mitkSiemensMosaicDicomDiffusionImageHeaderReader.cpp - - DicomImport/mitkDiffusionDICOMFileReader.cpp - DicomImport/mitkDiffusionHeaderDICOMFileReader.cpp - DicomImport/mitkDiffusionHeaderSiemensDICOMFileReader.cpp - DicomImport/mitkDiffusionHeaderSiemensDICOMFileHelper.cpp - DicomImport/mitkDiffusionHeaderSiemensMosaicDICOMFileReader.cpp - DicomImport/mitkDiffusionHeaderGEDICOMFileReader.cpp - DicomImport/mitkDiffusionHeaderPhilipsDICOMFileReader.cpp - - # DataStructures -> DWI - IODataStructures/DiffusionWeightedImages/mitkDiffusionImageHeaderInformation.cpp - IODataStructures/DiffusionWeightedImages/mitkDiffusionImageCorrectionFilter.cpp - IODataStructures/DiffusionWeightedImages/mitkDiffusionImageCreationFilter.cpp - - # Properties - IODataStructures/Properties/mitkBValueMapProperty.cpp - IODataStructures/Properties/mitkGradientDirectionsProperty.cpp - IODataStructures/Properties/mitkMeasurementFrameProperty.cpp - IODataStructures/Properties/mitkDiffusionPropertyHelper.cpp - IODataStructures/Properties/mitkNodePredicateIsDWI.cpp - - # Serializer - IODataStructures/Properties/mitkBValueMapPropertySerializer.cpp - IODataStructures/Properties/mitkGradientDirectionsPropertySerializer.cpp - IODataStructures/Properties/mitkMeasurementFramePropertySerializer.cpp - - # DataStructures -> Odf - IODataStructures/OdfImages/mitkOdfImageSource.cpp - IODataStructures/OdfImages/mitkOdfImage.cpp - IODataStructures/mitkShImage.cpp - IODataStructures/mitkShImageSource.cpp - - # DataStructures -> Tensor - IODataStructures/TensorImages/mitkTensorImage.cpp - - # DataStructures -> Peaks - IODataStructures/mitkPeakImage.cpp - - Rendering/vtkMaskedProgrammableGlyphFilter.cpp - Rendering/mitkVectorImageVtkGlyphMapper3D.cpp - Rendering/vtkOdfSource.cxx - Rendering/vtkThickPlane.cxx - Rendering/mitkOdfNormalizationMethodProperty.cpp - Rendering/mitkOdfScaleByProperty.cpp - - # Algorithms - Algorithms/mitkPartialVolumeAnalysisHistogramCalculator.cpp - Algorithms/mitkPartialVolumeAnalysisClusteringCalculator.cpp - Algorithms/itkDwiGradientLengthCorrectionFilter.cpp - - # Registration Algorithms & Co. - Algorithms/Registration/mitkRegistrationWrapper.cpp - Algorithms/Registration/mitkPyramidImageRegistrationMethod.cpp - # Algorithms/Registration/mitkRegistrationMethodITK4.cpp - Algorithms/Registration/mitkDWIHeadMotionCorrectionFilter.cpp - - - # MultishellProcessing - Algorithms/Reconstruction/MultishellProcessing/itkADCAverageFunctor.cpp - Algorithms/Reconstruction/MultishellProcessing/itkADCFitFunctor.cpp - Algorithms/Reconstruction/MultishellProcessing/itkKurtosisFitFunctor.cpp - Algorithms/Reconstruction/MultishellProcessing/itkBiExpFitFunctor.cpp - - # Function Collection - mitkDiffusionFunctionCollection.cpp -) - -set(H_FILES - # function Collection - include/mitkDiffusionFunctionCollection.h - - # Rendering - include/Rendering/mitkOdfVtkMapper2D.h - - # Reconstruction - include/Algorithms/Reconstruction/itkDiffusionQballReconstructionImageFilter.h - include/Algorithms/Reconstruction/mitkTeemDiffusionTensor3DReconstructionImageFilter.h - include/Algorithms/Reconstruction/itkAnalyticalDiffusionQballReconstructionImageFilter.h - include/Algorithms/Reconstruction/itkDiffusionMultiShellQballReconstructionImageFilter.h - include/Algorithms/Reconstruction/itkPointShell.h - include/Algorithms/Reconstruction/itkOrientationDistributionFunction.h - include/Algorithms/Reconstruction/itkDiffusionIntravoxelIncoherentMotionReconstructionImageFilter.h - include/Algorithms/Reconstruction/itkDiffusionKurtosisReconstructionImageFilter.h - include/Algorithms/Reconstruction/itkBallAndSticksImageFilter.h - include/Algorithms/Reconstruction/itkMultiTensorImageFilter.h - - # Fitting functions - include/Algorithms/Reconstruction/FittingFunctions/mitkAbstractFitter.h - include/Algorithms/Reconstruction/FittingFunctions/mitkMultiTensorFitter.h - include/Algorithms/Reconstruction/FittingFunctions/mitkBallStickFitter.h - - - # MultishellProcessing - include/Algorithms/Reconstruction/MultishellProcessing/itkRadialMultishellToSingleshellImageFilter.h - include/Algorithms/Reconstruction/MultishellProcessing/itkDWIVoxelFunctor.h - include/Algorithms/Reconstruction/MultishellProcessing/itkADCAverageFunctor.h - include/Algorithms/Reconstruction/MultishellProcessing/itkKurtosisFitFunctor.h - include/Algorithms/Reconstruction/MultishellProcessing/itkBiExpFitFunctor.h - include/Algorithms/Reconstruction/MultishellProcessing/itkADCFitFunctor.h - - # Properties - include/IODataStructures/Properties/mitkBValueMapProperty.h - include/IODataStructures/Properties/mitkGradientDirectionsProperty.h - include/IODataStructures/Properties/mitkMeasurementFrameProperty.h - include/IODataStructures/Properties/mitkDiffusionPropertyHelper.h - - include/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageTransformedCreationFilter.h - - # Algorithms - include/Algorithms/itkDiffusionOdfGeneralizedFaImageFilter.h - include/Algorithms/itkDiffusionOdfPrepareVisualizationImageFilter.h - include/Algorithms/itkElectrostaticRepulsionDiffusionGradientReductionFilter.h - include/Algorithms/itkTensorDerivedMeasurementsFilter.h - include/Algorithms/itkBrainMaskExtractionImageFilter.h - include/Algorithms/itkB0ImageExtractionImageFilter.h - include/Algorithms/itkB0ImageExtractionToSeparateImageFilter.h - include/Algorithms/itkTensorImageToDiffusionImageFilter.h - include/Algorithms/itkTensorToL2NormImageFilter.h - include/Algorithms/itkGaussianInterpolateImageFunction.h - include/Algorithms/mitkPartialVolumeAnalysisHistogramCalculator.h - include/Algorithms/mitkPartialVolumeAnalysisClusteringCalculator.h - include/Algorithms/itkDiffusionTensorPrincipalDirectionImageFilter.h - include/Algorithms/itkCartesianToPolarVectorImageFilter.h - include/Algorithms/itkPolarToCartesianVectorImageFilter.h - include/Algorithms/itkDistanceMapFilter.h - include/Algorithms/itkProjectionFilter.h - include/Algorithms/itkResidualImageFilter.h - include/Algorithms/itkExtractChannelFromRgbaImageFilter.h - include/Algorithms/itkTensorReconstructionWithEigenvalueCorrectionFilter.h - include/Algorithms/itkMergeDiffusionImagesFilter.h - include/Algorithms/itkShCoefficientImageImporter.h - include/Algorithms/itkShCoefficientImageExporter.h - include/Algorithms/itkOdfMaximaExtractionFilter.h - include/Algorithms/itkResampleDwiImageFilter.h - include/Algorithms/itkDwiGradientLengthCorrectionFilter.h - include/Algorithms/itkAdcImageFilter.h - include/Algorithms/itkDwiNormilzationFilter.h - include/Algorithms/itkSplitDWImageFilter.h - include/Algorithms/itkRemoveDwiChannelFilter.h - include/Algorithms/itkExtractDwiChannelFilter.h - include/Algorithms/itkFlipPeaksFilter.h - include/Algorithms/itkShToOdfImageFilter.h - include/Algorithms/itkFourDToVectorImageFilter.h - include/Algorithms/itkVectorImageToFourDImageFilter.h - include/Algorithms/Registration/mitkDWIHeadMotionCorrectionFilter.h - include/Algorithms/itkNonLocalMeansDenoisingFilter.h - include/Algorithms/itkVectorImageToImageFilter.h - include/Algorithms/itkSplitVectorImageFilter.h -) - -set( TOOL_FILES -) - diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkProjectionFilter.h b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkProjectionFilter.h deleted file mode 100644 index 20db22d..0000000 --- a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkProjectionFilter.h +++ /dev/null @@ -1,159 +0,0 @@ -/*=================================================================== - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center, -Division of Medical and Biological Informatics. -All rights reserved. - -This software is distributed WITHOUT ANY WARRANTY; without -even the implied warranty of MERCHANTABILITY or FITNESS FOR -A PARTICULAR PURPOSE. - -See LICENSE.txt or http://www.mitk.org for details. - -===================================================================*/ - -#ifndef ITKPROJECTIONFILTER_H_ -#define ITKPROJECTIONFILTER_H_ - -#include "itkObject.h" -#include "itkImage.h" -#include "mitkImage.h" -#include "mitkTbssImage.h" - -namespace itk -{ - - -/** - * \brief Projection part of the TBSS pipeline - * - * This class performs the projection step of the TBSS pipeline - * (see Smith et al., 2009. http://dx.doi.org/10.1016/j.neuroimage.2006.02.024 ) - * As input it takes a binary skeleton, a distance map, and a vector image containing the image gradients - * that are typically provided by the itkSkeletonizationFilter and the itkDistanceMapFilter. - * Furthermore it requires a 4d dataset with patient data registered to the same space as the mean FA image. - * This 4D dataset is typically created by the TBSS pipeline (see http://fsl.fmrib.ox.ac.uk/fsl/fsl4.0/tbss/index), - * in which case it is often named all_FA.nii.gz - */ - - -class ProjectionFilter : public Object -{ - -public: - - typedef itk::Image RealImageType; - - typedef itk::CovariantVector VectorType; - - typedef itk::Image VectorImageType; - - typedef itk::Image CharImageType; - - typedef itk::Image Float4DImageType; - typedef itk::Image FloatImageType; - - - -public: - - /** */ - typedef ProjectionFilter Self; - - /** Superclass */ - typedef Object Superclass; - - /** Smart Pointer */ - typedef SmartPointer Pointer; - - /** Smart Pointer */ - typedef SmartPointer ConstPointer; - - /** */ - itkFactorylessNewMacro(Self) - itkCloneMacro(Self) - - - /** \brief Does the actual projection */ - void Project(); - - - /** \brief Set the distance map - * - * Sets the distance map that decodes for every voxel the distance to the nearest point on the skeleton. - */ - itkSetMacro(DistanceMap, RealImageType::Pointer) - - - /** \brief Set the directions - * - * Sets the direction calculated by the TBSS skeletonization algorithm in itkSkeletonizationFilter. - */ - itkSetMacro(Directions, VectorImageType::Pointer) - - - /** \brief Set the binary skeleton - * - * Sets the binary skeleton that defines on which voxels must be projected. - */ - itkSetMacro(Skeleton, CharImageType::Pointer) - - - /** \brief Set the mask defining tubular structures on the skeleton - * - * Sets a binary mask that defines wich part of the white matter skeleton are tubular instead of sheet like. - * This is important because the a different projection method is used for sheet like structues and - * tubular structures. - */ - itkSetMacro(Tube, CharImageType::Pointer) - - - /** \brief Set a 4D image containing the 3D registered FA maps of all study subjects. */ - itkSetMacro(AllFA, Float4DImageType::Pointer) - - - /** \brief Returns a 4D image containing the skeleton projections of all subjects */ - itkGetMacro(Projections, Float4DImageType::Pointer) - - -protected: - - /** Constructor */ - ProjectionFilter(); - - /** Destructor */ - ~ProjectionFilter() override; - - RealImageType::Pointer m_DistanceMap; - - VectorImageType::Pointer m_Directions; - - CharImageType::Pointer m_Skeleton; - - CharImageType::Pointer m_Tube; - - Float4DImageType::Pointer m_Projections; - - Float4DImageType::Pointer m_AllFA; - - int round(float x) - { - if (x>0.0) return ((int) (x+0.5)); - else return ((int) (x-0.5)); - } - -protected: - - - -}; - -} - -#ifndef ITK_MANUAL_INSTANTIATION -#include "itkProjectionFilter.txx" -#endif - -#endif diff --git a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkProjectionFilter.txx b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkProjectionFilter.txx deleted file mode 100644 index 16d9de6..0000000 --- a/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkProjectionFilter.txx +++ /dev/null @@ -1,196 +0,0 @@ -/*=================================================================== - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center, -Division of Medical and Biological Informatics. -All rights reserved. - -This software is distributed WITHOUT ANY WARRANTY; without -even the implied warranty of MERCHANTABILITY or FITNESS FOR -A PARTICULAR PURPOSE. - -See LICENSE.txt or http://www.mitk.org for details. - -===================================================================*/ -#ifndef _itkProjectionFilter_txx -#define _itkProjectionFilter_txx - -#include "itkProjectionFilter.h" - -#include "mitkProgressBar.h" -//#include - -#define SEARCHSIGMA 10 /* length in linear voxel dimensions */ -#define MAXSEARCHLENGTH (3*SEARCHSIGMA) - - -namespace itk -{ - - - ProjectionFilter::ProjectionFilter() - { - - } - - ProjectionFilter::~ProjectionFilter() - { - - - } - - void ProjectionFilter::Project() - { - // Contains only code for the projection of FA data. The original FSL code contains some extra lines - // For projection of other measurements than FA - - mitk::ProgressBar::GetInstance()->AddStepsToDo( 3 ); - - Float4DImageType::Pointer data_4d_projected = Float4DImageType::New(); - data_4d_projected->SetRegions(m_AllFA->GetRequestedRegion()); - data_4d_projected->SetDirection(m_AllFA->GetDirection()); - data_4d_projected->SetSpacing(m_AllFA->GetSpacing()); - data_4d_projected->SetOrigin(m_AllFA->GetOrigin()); - data_4d_projected->Allocate(); - data_4d_projected->FillBuffer(0.0); - - Float4DImageType::SizeType size = m_AllFA->GetRequestedRegion().GetSize(); - long s0 = size[0], s1 = size[1], s2 = size[2], s3 = size[3]; - - for(int t=0; tGetPixel(ix) != 0) - { - VectorImageType::PixelType dir = m_Directions->GetPixel(ix); - - Float4DImageType::IndexType ix4d; - ix4d[0]=x; ix4d[1]=y; ix4d[2]=z; ix4d[3]=t; - float maxval = m_AllFA->GetPixel(ix4d); - float maxval_weighted = maxval; - float exponentfactor = -0.5 * (dir[0]*dir[0]+dir[1]*dir[1]+dir[2]*dir[2]) / (float)(SEARCHSIGMA*SEARCHSIGMA); - - - // No tubular structure here - if(m_Tube->GetPixel(ix) == 0) - { - for(int iters=0;iters<2;iters++) - { - float distance=0; - - for(int d=1;d=s0 && dy<=s1 && dz<=s2)) - { - d=MAXSEARCHLENGTH; - } - else if(m_DistanceMap->GetPixel(ix3d)>=distance) - { - float distanceweight = exp(d * d * exponentfactor); - distance = m_DistanceMap->GetPixel(ix3d); - - ix4d[0]=x+dir[0]*D; ix4d[1]=y+dir[1]*D; ix4d[2]=z+dir[2]*D; ix4d[3]=t; - - if(distanceweight*m_AllFA->GetPixel(ix4d)>maxval_weighted) - { - maxval = m_AllFA->GetPixel(ix4d); - maxval_weighted = maxval*distanceweight; - } - } - else{ - d=MAXSEARCHLENGTH; - } - - - - } - - } - } - - // Tubular structure - else - { - for(int dy=-MAXSEARCHLENGTH; dy<=MAXSEARCHLENGTH;dy++) { - for(int dx=-MAXSEARCHLENGTH; dx<=MAXSEARCHLENGTH; dx++) { - - float distanceweight = exp(-0.5 * (dx*dx+dy*dy) / (float)(SEARCHSIGMA*SEARCHSIGMA) ); - float r=sqrt((float)(dx*dx+dy*dy)); - - if (r>0) - { - int allok=1; - - for(float rr=1; rr<=r+0.1; rr++) /* search outwards from centre to current voxel - test that distancemap always increasing */ - { - - int dx1=round(rr*dx/r); - int dy1=round(rr*dy/r); - int dx2=round((rr+1)*dx/r); - int dy2=round((rr+1)*dy/r); - - RealImageType::IndexType ix1, ix2; - ix1[0]=x+dx1; ix1[1]=y+dy1; ix1[2]=z; - ix2[0]=x+dx2; ix2[1]=y+dy2; ix2[2]=z; - if(m_DistanceMap->GetPixel(ix1) > m_DistanceMap->GetPixel(ix2) ) - { - allok=0; - } - - } - - ix4d[0]=x+dx; ix4d[1]=y+dy, ix4d[2]=z; ix4d[3]=t; - if( allok && (distanceweight * m_AllFA->GetPixel(ix4d) > maxval_weighted) ) - { - maxval = m_AllFA->GetPixel(ix4d); - maxval_weighted = maxval * distanceweight; - } - - - } - - } - } - } - - ix4d[0]=x; ix4d[1]=y; ix4d[2]=z; ix4d[3]=t; - - data_4d_projected->SetPixel(ix4d, maxval); - - } - } - } - } - } - - m_Projections = data_4d_projected; - - - - } - - - - - -} -#endif // _itkProjectionFilter_txx diff --git a/Modules/DiffusionImaging/DiffusionCore/include/IODataStructures/OdfImages/mitkOdfImageSource.h b/Modules/DiffusionImaging/DiffusionCore/include/IODataStructures/OdfImages/mitkOdfImageSource.h deleted file mode 100644 index 072bc57..0000000 --- a/Modules/DiffusionImaging/DiffusionCore/include/IODataStructures/OdfImages/mitkOdfImageSource.h +++ /dev/null @@ -1,64 +0,0 @@ -/*=================================================================== - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center, -Division of Medical and Biological Informatics. -All rights reserved. - -This software is distributed WITHOUT ANY WARRANTY; without -even the implied warranty of MERCHANTABILITY or FITNESS FOR -A PARTICULAR PURPOSE. - -See LICENSE.txt or http://www.mitk.org for details. - -===================================================================*/ - - -#ifndef OdfImageSource_H_HEADER_INCLUDED_C1E7D6EC -#define OdfImageSource_H_HEADER_INCLUDED_C1E7D6EC - -#include "mitkImageSource.h" -#include "mitkOdfImage.h" -#include - -namespace mitk { - -class MITKDIFFUSIONCORE_EXPORT OdfImageSource : public ImageSource -{ -public: - - typedef mitk::OdfImage OutputImageType; - typedef OutputImageType::Pointer OutputImagePointer; - typedef SlicedData::RegionType OutputImageRegionType; - typedef itk::DataObject::Pointer DataObjectPointer; - - mitkClassMacro(OdfImageSource,ImageSource); - itkFactorylessNewMacro(Self) - itkCloneMacro(Self) - - /** - * Allocates a new output object and returns it. Currently the - * index idx is not evaluated. - * @param idx the index of the output for which an object should be created - * @returns the new object - */ - itk::DataObject::Pointer MakeOutput ( DataObjectPointerArraySizeType idx ) override; - - /** - * This is a default implementation to make sure we have something. - * Once all the subclasses of ProcessObject provide an appopriate - * MakeOutput(), then ProcessObject::MakeOutput() can be made pure - * virtual. - */ - itk::DataObject::Pointer MakeOutput(const DataObjectIdentifierType &name) override; - -protected: - OdfImageSource(); - ~OdfImageSource() override {} - -}; - -} // namespace mitk - -#endif /* OdfImageSource_H_HEADER_INCLUDED_C1E7D6EC */ diff --git a/Modules/DiffusionImaging/DiffusionCore/include/IODataStructures/mitkShImageSource.h b/Modules/DiffusionImaging/DiffusionCore/include/IODataStructures/mitkShImageSource.h deleted file mode 100644 index 2db7ea8..0000000 --- a/Modules/DiffusionImaging/DiffusionCore/include/IODataStructures/mitkShImageSource.h +++ /dev/null @@ -1,64 +0,0 @@ -/*=================================================================== - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center, -Division of Medical and Biological Informatics. -All rights reserved. - -This software is distributed WITHOUT ANY WARRANTY; without -even the implied warranty of MERCHANTABILITY or FITNESS FOR -A PARTICULAR PURPOSE. - -See LICENSE.txt or http://www.mitk.org for details. - -===================================================================*/ - - -#ifndef ShImageSource_H_HEADER_INCLUDED_C1E7D6EC -#define ShImageSource_H_HEADER_INCLUDED_C1E7D6EC - -#include "mitkImageSource.h" -#include "mitkShImage.h" -#include - -namespace mitk { - -class MITKDIFFUSIONCORE_EXPORT ShImageSource : public ImageSource -{ -public: - - typedef mitk::ShImage OutputImageType; - typedef OutputImageType::Pointer OutputImagePointer; - typedef SlicedData::RegionType OutputImageRegionType; - typedef itk::DataObject::Pointer DataObjectPointer; - - mitkClassMacro(ShImageSource,ImageSource); - itkFactorylessNewMacro(Self) - itkCloneMacro(Self) - - /** - * Allocates a new output object and returns it. Currently the - * index idx is not evaluated. - * @param idx the index of the output for which an object should be created - * @returns the new object - */ - itk::DataObject::Pointer MakeOutput ( DataObjectPointerArraySizeType idx ) override; - - /** - * This is a default implementation to make sure we have something. - * Once all the subclasses of ProcessObject provide an appopriate - * MakeOutput(), then ProcessObject::MakeOutput() can be made pure - * virtual. - */ - itk::DataObject::Pointer MakeOutput(const DataObjectIdentifierType &name) override; - -protected: - ShImageSource(); - ~ShImageSource() override {} - -}; - -} // namespace mitk - -#endif /* ShImageSource_H_HEADER_INCLUDED_C1E7D6EC */ diff --git a/Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/OdfImages/mitkOdfImageSource.cpp b/Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/OdfImages/mitkOdfImageSource.cpp deleted file mode 100644 index e34cd73..0000000 --- a/Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/OdfImages/mitkOdfImageSource.cpp +++ /dev/null @@ -1,45 +0,0 @@ -/*=================================================================== - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center, -Division of Medical and Biological Informatics. -All rights reserved. - -This software is distributed WITHOUT ANY WARRANTY; without -even the implied warranty of MERCHANTABILITY or FITNESS FOR -A PARTICULAR PURPOSE. - -See LICENSE.txt or http://www.mitk.org for details. - -===================================================================*/ - - -#include "mitkOdfImageSource.h" - - -mitk::OdfImageSource::OdfImageSource() -{ - // Create the output. We use static_cast<> here because we know the default - // output must be of type TOutputImage - OutputImageType::Pointer output - = static_cast(this->MakeOutput(0).GetPointer()); - Superclass::SetNumberOfRequiredOutputs(1); - Superclass::SetNthOutput(0, output.GetPointer()); -} - -itk::DataObject::Pointer mitk::OdfImageSource::MakeOutput ( DataObjectPointerArraySizeType /*idx*/ ) -{ - return OutputImageType::New().GetPointer(); -} - - -itk::DataObject::Pointer mitk::OdfImageSource::MakeOutput( const DataObjectIdentifierType & name ) -{ - itkDebugMacro("MakeOutput(" << name << ")"); - if( this->IsIndexedOutputName(name) ) - { - return this->MakeOutput( this->MakeIndexFromOutputName(name) ); - } - return static_cast(OutputImageType::New().GetPointer()); -} diff --git a/Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/mitkShImageSource.cpp b/Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/mitkShImageSource.cpp deleted file mode 100644 index c3bc718..0000000 --- a/Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/mitkShImageSource.cpp +++ /dev/null @@ -1,45 +0,0 @@ -/*=================================================================== - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center, -Division of Medical and Biological Informatics. -All rights reserved. - -This software is distributed WITHOUT ANY WARRANTY; without -even the implied warranty of MERCHANTABILITY or FITNESS FOR -A PARTICULAR PURPOSE. - -See LICENSE.txt or http://www.mitk.org for details. - -===================================================================*/ - - -#include "mitkShImageSource.h" - - -mitk::ShImageSource::ShImageSource() -{ - // Create the output. We use static_cast<> here because we know the default - // output must be of type TOutputImage - OutputImageType::Pointer output - = static_cast(this->MakeOutput(0).GetPointer()); - Superclass::SetNumberOfRequiredOutputs(1); - Superclass::SetNthOutput(0, output.GetPointer()); -} - -itk::DataObject::Pointer mitk::ShImageSource::MakeOutput ( DataObjectPointerArraySizeType /*idx*/ ) -{ - return OutputImageType::New().GetPointer(); -} - - -itk::DataObject::Pointer mitk::ShImageSource::MakeOutput( const DataObjectIdentifierType & name ) -{ - itkDebugMacro("MakeOutput(" << name << ")"); - if( this->IsIndexedOutputName(name) ) - { - return this->MakeOutput( this->MakeIndexFromOutputName(name) ); - } - return static_cast(OutputImageType::New().GetPointer()); -} diff --git a/Modules/DiffusionImaging/DiffusionIO/CMakeLists.txt b/Modules/DiffusionImaging/DiffusionIO/CMakeLists.txt deleted file mode 100644 index 5723bab..0000000 --- a/Modules/DiffusionImaging/DiffusionIO/CMakeLists.txt +++ /dev/null @@ -1,8 +0,0 @@ -MITK_CREATE_MODULE( - SUBPROJECTS MITK-Diffusion - INCLUDE_DIRS ${CMAKE_CURRENT_BINARY_DIR} - DEPENDS MitkConnectomics MitkQuantification MitkFiberTracking - AUTOLOAD_WITH MitkCore - PACKAGE_DEPENDS PUBLIC DCMTK -) - diff --git a/Modules/DiffusionImaging/DiffusionIO/files.cmake b/Modules/DiffusionImaging/DiffusionIO/files.cmake deleted file mode 100644 index 7af682f..0000000 --- a/Modules/DiffusionImaging/DiffusionIO/files.cmake +++ /dev/null @@ -1,42 +0,0 @@ -set(CPP_FILES - mitkDiffusionModuleActivator.cpp - mitkNrrdTbssImageWriterFactory.cpp - #mitkFiberBundleIOFactory.cpp - mitkConnectomicsNetworkReader.cpp - mitkConnectomicsNetworkWriter.cpp - mitkConnectomicsNetworkCSVWriter.cpp - mitkConnectomicsNetworkMatrixWriter.cpp - mitkConnectomicsNetworkSerializer.cpp - mitkConnectomicsNetworkDefinitions.cpp - mitkNrrdTbssRoiImageIOFactory.cpp - #mitkFiberBundleWriterFactory.cpp - mitkNrrdTbssRoiImageWriterFactory.cpp - mitkFiberTrackingObjectFactory.cpp - mitkConnectomicsObjectFactory.cpp - mitkQuantificationObjectFactory.cpp - mitkNrrdTbssImageIOFactory.cpp - - mitkDiffusionIOMimeTypes.cpp - - mitkFiberBundleDicomReader.cpp - mitkFiberBundleDicomWriter.cpp - mitkFiberBundleTckReader.cpp - mitkFiberBundleTrackVisReader.cpp - mitkFiberBundleTrackVisWriter.cpp - mitkFiberBundleVtkReader.cpp - mitkFiberBundleVtkWriter.cpp - mitkFiberBundleSerializer.cpp - mitkFiberBundleMapper2D.cpp - mitkFiberBundleMapper3D.cpp - mitkPeakImageMapper2D.cpp - mitkPeakImageMapper3D.cpp - - mitkTractographyForestReader.cpp - mitkTractographyForestWriter.cpp - mitkTractographyForestSerializer.cpp - - mitkPlanarFigureCompositeWriter.cpp - mitkPlanarFigureCompositeReader.cpp - mitkPlanarFigureCompositeSerializer.cpp -) - diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkDiffusionIOMimeTypes.cpp b/Modules/DiffusionImaging/DiffusionIO/mitkDiffusionIOMimeTypes.cpp deleted file mode 100644 index f3f367b..0000000 --- a/Modules/DiffusionImaging/DiffusionIO/mitkDiffusionIOMimeTypes.cpp +++ /dev/null @@ -1,291 +0,0 @@ -/*=================================================================== - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center, -Division of Medical and Biological Informatics. -All rights reserved. - -This software is distributed WITHOUT ANY WARRANTY; without -even the implied warranty of MERCHANTABILITY or FITNESS FOR -A PARTICULAR PURPOSE. - -See LICENSE.txt or http://www.mitk.org for details. - -===================================================================*/ - -#include "mitkDiffusionIOMimeTypes.h" -#include "mitkIOMimeTypes.h" -#include -#include -#include -#include -#include -#include -#include -#include - -namespace mitk -{ - -std::vector DiffusionIOMimeTypes::Get() -{ - std::vector mimeTypes; - - // order matters here (descending rank for mime types) - - mimeTypes.push_back(FIBERBUNDLE_VTK_MIMETYPE().Clone()); - mimeTypes.push_back(FIBERBUNDLE_TRK_MIMETYPE().Clone()); - mimeTypes.push_back(FIBERBUNDLE_TCK_MIMETYPE().Clone()); - mimeTypes.push_back(FIBERBUNDLE_DICOM_MIMETYPE().Clone()); - - mimeTypes.push_back(CONNECTOMICS_MIMETYPE().Clone()); - mimeTypes.push_back(TRACTOGRAPHYFOREST_MIMETYPE().Clone()); - - mimeTypes.push_back(PLANARFIGURECOMPOSITE_MIMETYPE().Clone()); - - return mimeTypes; -} - -// Mime Types -CustomMimeType DiffusionIOMimeTypes::PLANARFIGURECOMPOSITE_MIMETYPE() -{ - CustomMimeType mimeType(PLANARFIGURECOMPOSITE_MIMETYPE_NAME()); - std::string category = "Planar Figure Composite"; - mimeType.SetComment("Planar Figure Composite"); - mimeType.SetCategory(category); - mimeType.AddExtension("pfc"); - return mimeType; -} - - -CustomMimeType DiffusionIOMimeTypes::TRACTOGRAPHYFOREST_MIMETYPE() -{ - CustomMimeType mimeType(TRACTOGRAPHYFOREST_MIMETYPE_NAME()); - std::string category = "Tractography Forest"; - mimeType.SetComment("Tractography Forest"); - mimeType.SetCategory(category); - mimeType.AddExtension("rf"); - return mimeType; -} - -CustomMimeType DiffusionIOMimeTypes::FIBERBUNDLE_VTK_MIMETYPE() -{ - CustomMimeType mimeType(FIBERBUNDLE_VTK_MIMETYPE_NAME()); - std::string category = "VTK Fibers"; - mimeType.SetComment("VTK Fibers"); - mimeType.SetCategory(category); - mimeType.AddExtension("fib"); - mimeType.AddExtension("vtk"); - return mimeType; -} - -CustomMimeType DiffusionIOMimeTypes::FIBERBUNDLE_TCK_MIMETYPE() -{ - CustomMimeType mimeType(FIBERBUNDLE_TCK_MIMETYPE_NAME()); - std::string category = "MRtrix Fibers"; - mimeType.SetComment("MRtrix Fibers"); - mimeType.SetCategory(category); - mimeType.AddExtension("tck"); - return mimeType; -} - -CustomMimeType DiffusionIOMimeTypes::FIBERBUNDLE_TRK_MIMETYPE() -{ - CustomMimeType mimeType(FIBERBUNDLE_TRK_MIMETYPE_NAME()); - std::string category = "TrackVis Fibers"; - mimeType.SetComment("TrackVis Fibers"); - mimeType.SetCategory(category); - mimeType.AddExtension("trk"); - return mimeType; -} - -DiffusionIOMimeTypes::FiberBundleDicomMimeType::FiberBundleDicomMimeType() - : CustomMimeType(FIBERBUNDLE_DICOM_MIMETYPE_NAME()) -{ - std::string category = "DICOM Fibers"; - this->SetCategory(category); - this->SetComment("DICOM Fibers"); - - this->AddExtension("dcm"); - this->AddExtension("DCM"); - this->AddExtension("gdcm"); - this->AddExtension("dc3"); - this->AddExtension("DC3"); - this->AddExtension("ima"); - this->AddExtension("img"); -} - -bool DiffusionIOMimeTypes::FiberBundleDicomMimeType::AppliesTo(const std::string &path) const -{ - try - { - std::ifstream myfile; - myfile.open (path, std::ios::binary); -// myfile.seekg (128); - char *buffer = new char [128]; - myfile.read (buffer,128); - myfile.read (buffer,4); - if (std::string(buffer).compare("DICM")!=0) - { - delete[] buffer; - return false; - } - delete[] buffer; - - mitk::DICOMDCMTKTagScanner::Pointer scanner = mitk::DICOMDCMTKTagScanner::New(); - mitk::DICOMTag SOPInstanceUID(0x0008, 0x0016); - - mitk::StringList relevantFiles; - relevantFiles.push_back(path); - - scanner->AddTag(SOPInstanceUID); - scanner->SetInputFiles(relevantFiles); - scanner->Scan(); - mitk::DICOMTagCache::Pointer tagCache = scanner->GetScanCache(); - - mitk::DICOMImageFrameList imageFrameList = mitk::ConvertToDICOMImageFrameList(tagCache->GetFrameInfoList()); - if (imageFrameList.empty()) - return false; - - mitk::DICOMImageFrameInfo *firstFrame = imageFrameList.begin()->GetPointer(); - - std::string tag_value = tagCache->GetTagValue(firstFrame, SOPInstanceUID).value; - if (tag_value.empty()) { - return false; - } - - if (tag_value.compare(UID_TractographyResultsStorage)!=0) - return false; - - return true; - } - catch (std::exception& e) - { - MITK_INFO << e.what(); - } - return false; -} - -DiffusionIOMimeTypes::FiberBundleDicomMimeType* DiffusionIOMimeTypes::FiberBundleDicomMimeType::Clone() const -{ - return new FiberBundleDicomMimeType(*this); -} - - -DiffusionIOMimeTypes::FiberBundleDicomMimeType DiffusionIOMimeTypes::FIBERBUNDLE_DICOM_MIMETYPE() -{ - return FiberBundleDicomMimeType(); -} - -CustomMimeType DiffusionIOMimeTypes::CONNECTOMICS_MIMETYPE() -{ - CustomMimeType mimeType(CONNECTOMICS_MIMETYPE_NAME()); - std::string category = "Connectomics Networks"; - mimeType.SetComment("Connectomics Networks Files"); - mimeType.SetCategory(category); - mimeType.AddExtension("cnf"); - return mimeType; -} - -CustomMimeType DiffusionIOMimeTypes::CONNECTOMICS_MATRIX_MIMETYPE() -{ - CustomMimeType mimeType(CONNECTOMICS_MATRIX_MIMETYPE_NAME()); - std::string category = "Connectomics Networks export"; - mimeType.SetComment("Connectomics Matrix Files"); - mimeType.SetCategory(category); - mimeType.AddExtension("mat"); - return mimeType; -} - -CustomMimeType DiffusionIOMimeTypes::CONNECTOMICS_LIST_MIMETYPE() -{ - CustomMimeType mimeType(CONNECTOMICS_LIST_MIMETYPE_NAME()); - std::string category = "Connectomics Networks export"; - mimeType.SetComment("Connectomics Connection Lists"); - mimeType.SetCategory(category); - mimeType.AddExtension("txt"); - return mimeType; -} - -// Names -std::string DiffusionIOMimeTypes::FIBERBUNDLE_VTK_MIMETYPE_NAME() -{ - static std::string name = IOMimeTypes::DEFAULT_BASE_NAME() + ".FiberBundle.vtk"; - return name; -} - -std::string DiffusionIOMimeTypes::FIBERBUNDLE_TCK_MIMETYPE_NAME() -{ - static std::string name = IOMimeTypes::DEFAULT_BASE_NAME() + ".FiberBundle.tck"; - return name; -} - -std::string DiffusionIOMimeTypes::FIBERBUNDLE_TRK_MIMETYPE_NAME() -{ - static std::string name = IOMimeTypes::DEFAULT_BASE_NAME() + ".FiberBundle.trk"; - return name; -} - -std::string DiffusionIOMimeTypes::FIBERBUNDLE_DICOM_MIMETYPE_NAME() -{ - static std::string name = IOMimeTypes::DEFAULT_BASE_NAME() + ".FiberBundle.dcm"; - return name; -} - -std::string DiffusionIOMimeTypes::CONNECTOMICS_MIMETYPE_NAME() -{ - static std::string name = IOMimeTypes::DEFAULT_BASE_NAME() + ".cnf"; - return name; -} - -std::string DiffusionIOMimeTypes::CONNECTOMICS_MATRIX_MIMETYPE_NAME() -{ - static std::string name = IOMimeTypes::DEFAULT_BASE_NAME() + ".mat"; - return name; -} - -std::string DiffusionIOMimeTypes::CONNECTOMICS_LIST_MIMETYPE_NAME() -{ - static std::string name = IOMimeTypes::DEFAULT_BASE_NAME() + ".txt"; - return name; -} - -std::string DiffusionIOMimeTypes::PLANARFIGURECOMPOSITE_MIMETYPE_NAME() -{ - static std::string name = IOMimeTypes::DEFAULT_BASE_NAME() + ".pfc"; - return name; -} - -std::string DiffusionIOMimeTypes::TRACTOGRAPHYFOREST_MIMETYPE_NAME() -{ - static std::string name = IOMimeTypes::DEFAULT_BASE_NAME() + ".rf"; - return name; -} - -// Descriptions -std::string DiffusionIOMimeTypes::FIBERBUNDLE_MIMETYPE_DESCRIPTION() -{ - static std::string description = "Fiberbundles"; - return description; -} - -std::string DiffusionIOMimeTypes::CONNECTOMICS_MIMETYPE_DESCRIPTION() -{ - static std::string description = "Connectomics Networks"; - return description; -} - -std::string DiffusionIOMimeTypes::PLANARFIGURECOMPOSITE_MIMETYPE_DESCRIPTION() -{ - static std::string description = "Planar Figure Composite"; - return description; -} - -std::string DiffusionIOMimeTypes::TRACTOGRAPHYFOREST_MIMETYPE_DESCRIPTION() -{ - static std::string description = "Tractography Forest"; - return description; -} - -} diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkFiberTrackingObjectFactory.cpp b/Modules/DiffusionImaging/DiffusionIO/mitkFiberTrackingObjectFactory.cpp deleted file mode 100644 index ef3ba90..0000000 --- a/Modules/DiffusionImaging/DiffusionIO/mitkFiberTrackingObjectFactory.cpp +++ /dev/null @@ -1,129 +0,0 @@ -/*=================================================================== - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center, -Division of Medical and Biological Informatics. -All rights reserved. - -This software is distributed WITHOUT ANY WARRANTY; without -even the implied warranty of MERCHANTABILITY or FITNESS FOR -A PARTICULAR PURPOSE. - -See LICENSE.txt or http://www.mitk.org for details. - -===================================================================*/ - -#include "mitkFiberTrackingObjectFactory.h" - - -mitk::FiberTrackingObjectFactory::FiberTrackingObjectFactory() - : CoreObjectFactoryBase() -{ -} - -mitk::FiberTrackingObjectFactory::~FiberTrackingObjectFactory() -{ -} - -mitk::Mapper::Pointer mitk::FiberTrackingObjectFactory::CreateMapper(mitk::DataNode* node, MapperSlotId id) -{ - mitk::Mapper::Pointer newMapper=nullptr; - - if ( id == mitk::BaseRenderer::Standard2D ) - { - std::string classname("FiberBundle"); - if(node->GetData() && classname.compare(node->GetData()->GetNameOfClass())==0) - { - newMapper = mitk::FiberBundleMapper2D::New(); - newMapper->SetDataNode(node); - } - else if(node->GetData() && std::string("PeakImage").compare(node->GetData()->GetNameOfClass())==0) - { - newMapper = mitk::PeakImageMapper2D::New(); - newMapper->SetDataNode(node); - } - - } - else if ( id == mitk::BaseRenderer::Standard3D ) - { - std::string classname("FiberBundle"); - if(node->GetData() && classname.compare(node->GetData()->GetNameOfClass())==0) - { - newMapper = mitk::FiberBundleMapper3D::New(); - newMapper->SetDataNode(node); - } - else if(node->GetData() && std::string("PeakImage").compare(node->GetData()->GetNameOfClass())==0) - { - newMapper = mitk::PeakImageMapper3D::New(); - newMapper->SetDataNode(node); - } - } - - return newMapper; -} - -void mitk::FiberTrackingObjectFactory::SetDefaultProperties(mitk::DataNode* node) -{ - std::string classname("FiberBundle"); - if(node->GetData() && classname.compare(node->GetData()->GetNameOfClass())==0) - { - mitk::FiberBundleMapper3D::SetDefaultProperties(node); - mitk::FiberBundleMapper2D::SetDefaultProperties(node); - } - else if (node->GetData() && std::string("PeakImage").compare(node->GetData()->GetNameOfClass())==0) - { - mitk::PeakImageMapper3D::SetDefaultProperties(node); - mitk::PeakImageMapper2D::SetDefaultProperties(node); - } -} - -const char* mitk::FiberTrackingObjectFactory::GetFileExtensions() -{ - std::string fileExtension; - this->CreateFileExtensions(m_FileExtensionsMap, fileExtension); - return fileExtension.c_str(); -} - -mitk::CoreObjectFactoryBase::MultimapType mitk::FiberTrackingObjectFactory::GetFileExtensionsMap() -{ - return m_FileExtensionsMap; -} - -const char* mitk::FiberTrackingObjectFactory::GetSaveFileExtensions() -{ - std::string fileExtension; - this->CreateFileExtensions(m_SaveFileExtensionsMap, fileExtension); - return fileExtension.c_str(); -} - -mitk::CoreObjectFactoryBase::MultimapType mitk::FiberTrackingObjectFactory::GetSaveFileExtensionsMap() -{ - return m_SaveFileExtensionsMap; -} - -void mitk::FiberTrackingObjectFactory::CreateFileExtensionsMap() -{ - -} - -void mitk::FiberTrackingObjectFactory::RegisterIOFactories() -{ -} - -struct RegisterFiberTrackingObjectFactory{ - RegisterFiberTrackingObjectFactory() - : m_Factory( mitk::FiberTrackingObjectFactory::New() ) - { - mitk::CoreObjectFactory::GetInstance()->RegisterExtraFactory( m_Factory ); - } - - ~RegisterFiberTrackingObjectFactory() - { - mitk::CoreObjectFactory::GetInstance()->UnRegisterExtraFactory( m_Factory ); - } - - mitk::FiberTrackingObjectFactory::Pointer m_Factory; -}; - -static RegisterFiberTrackingObjectFactory registerFiberTrackingObjectFactory; diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkFiberTrackingObjectFactory.h b/Modules/DiffusionImaging/DiffusionIO/mitkFiberTrackingObjectFactory.h deleted file mode 100644 index d761bf9..0000000 --- a/Modules/DiffusionImaging/DiffusionIO/mitkFiberTrackingObjectFactory.h +++ /dev/null @@ -1,68 +0,0 @@ -/*=================================================================== - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center, -Division of Medical and Biological Informatics. -All rights reserved. - -This software is distributed WITHOUT ANY WARRANTY; without -even the implied warranty of MERCHANTABILITY or FITNESS FOR -A PARTICULAR PURPOSE. - -See LICENSE.txt or http://www.mitk.org for details. - -===================================================================*/ - -#ifndef MITKFIBERTRACKINGOBJECTFACTORY_H -#define MITKFIBERTRACKINGOBJECTFACTORY_H - -#include "mitkCoreObjectFactory.h" - -#include -#include -#include -#include -#include - -namespace mitk { - -class FiberTrackingObjectFactory : public CoreObjectFactoryBase -{ - public: - mitkClassMacro(FiberTrackingObjectFactory,CoreObjectFactoryBase) - itkFactorylessNewMacro(Self) - itkCloneMacro(Self) - - ~FiberTrackingObjectFactory() override; - - Mapper::Pointer CreateMapper(mitk::DataNode* node, MapperSlotId slotId) override; - - void SetDefaultProperties(mitk::DataNode* node) override; - - const char* GetFileExtensions() override; - - mitk::CoreObjectFactoryBase::MultimapType GetFileExtensionsMap() override; - - const char* GetSaveFileExtensions() override; - - mitk::CoreObjectFactoryBase::MultimapType GetSaveFileExtensionsMap() override; - - void RegisterIOFactories(); - -protected: - FiberTrackingObjectFactory(); - private: - void CreateFileExtensionsMap(); - std::string m_ExternalFileExtensions; - std::string m_InternalFileExtensions; - std::string m_SaveFileExtensions; - MultimapType m_FileExtensionsMap; - MultimapType m_SaveFileExtensionsMap; - -}; - -} - - -#endif // MITKFIBERTRACKINGOBJECTFACTORY_H diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkNrrdTbssImageIOFactory.cpp b/Modules/DiffusionImaging/DiffusionIO/mitkNrrdTbssImageIOFactory.cpp deleted file mode 100644 index f54b946..0000000 --- a/Modules/DiffusionImaging/DiffusionIO/mitkNrrdTbssImageIOFactory.cpp +++ /dev/null @@ -1,51 +0,0 @@ -/*=================================================================== - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center, -Division of Medical and Biological Informatics. -All rights reserved. - -This software is distributed WITHOUT ANY WARRANTY; without -even the implied warranty of MERCHANTABILITY or FITNESS FOR -A PARTICULAR PURPOSE. - -See LICENSE.txt or http://www.mitk.org for details. - -===================================================================*/ - -#include "mitkNrrdTbssImageIOFactory.h" -#include "mitkIOAdapter.h" -#include "mitkNrrdTbssImageReader.h" - -#include "itkVersion.h" - - -namespace mitk -{ - -NrrdTbssImageIOFactory::NrrdTbssImageIOFactory() -{ - typedef NrrdTbssImageReader NrrdTbssVolReaderType; - this->RegisterOverride("mitkIOAdapter", - "mitkNrrdTbssImageReader", - "mitk Tbss Image IO", - true, - itk::CreateObjectFunction >::New()); -} - -NrrdTbssImageIOFactory::~NrrdTbssImageIOFactory() -{ -} - -const char* NrrdTbssImageIOFactory::GetITKSourceVersion() const -{ - return ITK_SOURCE_VERSION; -} - -const char* NrrdTbssImageIOFactory::GetDescription() const -{ - return "NrrdTbssImage IO Factory, allows the loading of NRRD Tbss data"; -} - -} // end namespace mitk diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkNrrdTbssImageIOFactory.h b/Modules/DiffusionImaging/DiffusionIO/mitkNrrdTbssImageIOFactory.h deleted file mode 100644 index 8808d92..0000000 --- a/Modules/DiffusionImaging/DiffusionIO/mitkNrrdTbssImageIOFactory.h +++ /dev/null @@ -1,63 +0,0 @@ -/*=================================================================== - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center, -Division of Medical and Biological Informatics. -All rights reserved. - -This software is distributed WITHOUT ANY WARRANTY; without -even the implied warranty of MERCHANTABILITY or FITNESS FOR -A PARTICULAR PURPOSE. - -See LICENSE.txt or http://www.mitk.org for details. - -===================================================================*/ -#ifndef __MITK_NRRD_TBSS_VOULMES_IO_FACTORY_H_HEADER__ -#define __MITK_NRRD_TBSS_VOULMES_IO_FACTORY_H_HEADER__ - -#ifdef _MSC_VER -#pragma warning ( disable : 4786 ) -#endif - -#include "itkObjectFactoryBase.h" -#include "mitkBaseData.h" - -namespace mitk -{ -//##Documentation -//## @brief Create instances of NrrdDiffusionImageReader objects using an object factory. -//## -class NrrdTbssImageIOFactory : public itk::ObjectFactoryBase -{ -public: - /** Standard class typedefs. */ - typedef NrrdTbssImageIOFactory Self; - typedef itk::ObjectFactoryBase Superclass; - typedef itk::SmartPointer Pointer; - typedef itk::SmartPointer ConstPointer; - - /** Class methods used to interface with the registered factories. */ - const char* GetITKSourceVersion(void) const override; - const char* GetDescription(void) const override; - - /** Method for class instantiation. */ - itkFactorylessNewMacro(Self); - static NrrdTbssImageIOFactory* FactoryNew() { return new NrrdTbssImageIOFactory;} - /** Run-time type information (and related methods). */ - itkTypeMacro(NrrdTbssImageIOFactory, ObjectFactoryBase); - -protected: - NrrdTbssImageIOFactory(); - ~NrrdTbssImageIOFactory() override; - -private: - NrrdTbssImageIOFactory(const Self&); //purposely not implemented - void operator=(const Self&); //purposely not implemented - -}; - - -} // end namespace mitk - -#endif // __MITK_NRRD_TBSS_VOULMES_IO_FACTORY_H_HEADER__ diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkNrrdTbssImageWriterFactory.cpp b/Modules/DiffusionImaging/DiffusionIO/mitkNrrdTbssImageWriterFactory.cpp deleted file mode 100644 index 50515ff..0000000 --- a/Modules/DiffusionImaging/DiffusionIO/mitkNrrdTbssImageWriterFactory.cpp +++ /dev/null @@ -1,50 +0,0 @@ -/*=================================================================== - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center, -Division of Medical and Biological Informatics. -All rights reserved. - -This software is distributed WITHOUT ANY WARRANTY; without -even the implied warranty of MERCHANTABILITY or FITNESS FOR -A PARTICULAR PURPOSE. - -See LICENSE.txt or http://www.mitk.org for details. - -===================================================================*/ - -#include "mitkNrrdTbssImageWriterFactory.h" - -#include "itkCreateObjectFunction.h" -#include "itkVersion.h" - -#include - -namespace mitk -{ - -NrrdTbssImageWriterFactory::NrrdTbssImageWriterFactory() -{ - this->RegisterOverride("IOWriter", - "NrrdTbssImageWriter", - "NrrdTbssImage Writer", - true, - itk::CreateObjectFunction< mitk::NrrdTbssImageWriter >::New()); -} - -NrrdTbssImageWriterFactory::~NrrdTbssImageWriterFactory() -{ -} - -const char* NrrdTbssImageWriterFactory::GetITKSourceVersion() const -{ - return ITK_SOURCE_VERSION; -} - -const char* NrrdTbssImageWriterFactory::GetDescription() const -{ - return "NrrdTbssImageWriterFactory"; -} - -} // end namespace mitk diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkNrrdTbssImageWriterFactory.h b/Modules/DiffusionImaging/DiffusionIO/mitkNrrdTbssImageWriterFactory.h deleted file mode 100644 index a9189dd..0000000 --- a/Modules/DiffusionImaging/DiffusionIO/mitkNrrdTbssImageWriterFactory.h +++ /dev/null @@ -1,54 +0,0 @@ -/*=================================================================== - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center, -Division of Medical and Biological Informatics. -All rights reserved. - -This software is distributed WITHOUT ANY WARRANTY; without -even the implied warranty of MERCHANTABILITY or FITNESS FOR -A PARTICULAR PURPOSE. - -See LICENSE.txt or http://www.mitk.org for details. - -===================================================================*/ - -#ifndef NRRDTBSSIMAGE_WRITERFACTORY_H_HEADER_INCLUDED -#define NRRDTBSSIMAGE_WRITERFACTORY_H_HEADER_INCLUDED - -#include "itkObjectFactoryBase.h" -#include "mitkBaseData.h" - -namespace mitk -{ - -class NrrdTbssImageWriterFactory : public itk::ObjectFactoryBase -{ -public: - - mitkClassMacroItkParent( mitk::NrrdTbssImageWriterFactory, itk::ObjectFactoryBase ) - - /** Class methods used to interface with the registered factories. */ - const char* GetITKSourceVersion(void) const override; - const char* GetDescription(void) const override; - - /** Method for class instantiation. */ - itkFactorylessNewMacro(Self); - -protected: - NrrdTbssImageWriterFactory(); - ~NrrdTbssImageWriterFactory() override; - -private: - NrrdTbssImageWriterFactory(const Self&); //purposely not implemented - void operator=(const Self&); //purposely not implemented - -}; - -} // end namespace mitk - -#endif // NRRDTBSSIMAGE_WRITERFACTORY_H_HEADER_INCLUDED - - - diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkNrrdTbssRoiImageIOFactory.cpp b/Modules/DiffusionImaging/DiffusionIO/mitkNrrdTbssRoiImageIOFactory.cpp deleted file mode 100644 index 7d81733..0000000 --- a/Modules/DiffusionImaging/DiffusionIO/mitkNrrdTbssRoiImageIOFactory.cpp +++ /dev/null @@ -1,51 +0,0 @@ -/*=================================================================== - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center, -Division of Medical and Biological Informatics. -All rights reserved. - -This software is distributed WITHOUT ANY WARRANTY; without -even the implied warranty of MERCHANTABILITY or FITNESS FOR -A PARTICULAR PURPOSE. - -See LICENSE.txt or http://www.mitk.org for details. - -===================================================================*/ - -#include "mitkNrrdTbssRoiImageIOFactory.h" -#include "mitkIOAdapter.h" -#include "mitkNrrdTbssRoiImageReader.h" - -#include "itkVersion.h" - - -namespace mitk -{ - -NrrdTbssRoiImageIOFactory::NrrdTbssRoiImageIOFactory() -{ - typedef NrrdTbssRoiImageReader NrrdTbssRoiVolReaderType; - this->RegisterOverride("mitkIOAdapter", - "mitkNrrdTbssRoiImageReader", - "mitk Tbss Image IO", - true, - itk::CreateObjectFunction >::New()); -} - -NrrdTbssRoiImageIOFactory::~NrrdTbssRoiImageIOFactory() -{ -} - -const char* NrrdTbssRoiImageIOFactory::GetITKSourceVersion() const -{ - return ITK_SOURCE_VERSION; -} - -const char* NrrdTbssRoiImageIOFactory::GetDescription() const -{ - return "NrrdTbssImage IO Factory, allows the loading of NRRD Tbss data"; -} - -} // end namespace mitk diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkNrrdTbssRoiImageIOFactory.h b/Modules/DiffusionImaging/DiffusionIO/mitkNrrdTbssRoiImageIOFactory.h deleted file mode 100644 index 07bcdf3..0000000 --- a/Modules/DiffusionImaging/DiffusionIO/mitkNrrdTbssRoiImageIOFactory.h +++ /dev/null @@ -1,63 +0,0 @@ -/*=================================================================== - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center, -Division of Medical and Biological Informatics. -All rights reserved. - -This software is distributed WITHOUT ANY WARRANTY; without -even the implied warranty of MERCHANTABILITY or FITNESS FOR -A PARTICULAR PURPOSE. - -See LICENSE.txt or http://www.mitk.org for details. - -===================================================================*/ -#ifndef __MITK_NRRD_TBSSROI_VOLUMES_IO_FACTORY_H_HEADER__ -#define __MITK_NRRD_TBSSROI_VOLUMES_IO_FACTORY_H_HEADER__ - -#ifdef _MSC_VER -#pragma warning ( disable : 4786 ) -#endif - -#include "itkObjectFactoryBase.h" -#include "mitkBaseData.h" - -namespace mitk -{ -//##Documentation -//## @brief Create instances of NrrdDiffusionImageReader objects using an object factory. -//## -class NrrdTbssRoiImageIOFactory : public itk::ObjectFactoryBase -{ -public: - /** Standard class typedefs. */ - typedef NrrdTbssRoiImageIOFactory Self; - typedef itk::ObjectFactoryBase Superclass; - typedef itk::SmartPointer Pointer; - typedef itk::SmartPointer ConstPointer; - - /** Class methods used to interface with the registered factories. */ - const char* GetITKSourceVersion(void) const override; - const char* GetDescription(void) const override; - - /** Method for class instantiation. */ - itkFactorylessNewMacro(Self); - static NrrdTbssRoiImageIOFactory* FactoryNew() { return new NrrdTbssRoiImageIOFactory;} - /** Run-time type information (and related methods). */ - itkTypeMacro(NrrdTbssRoiImageIOFactory, ObjectFactoryBase); - -protected: - NrrdTbssRoiImageIOFactory(); - ~NrrdTbssRoiImageIOFactory() override; - -private: - NrrdTbssRoiImageIOFactory(const Self&); //purposely not implemented - void operator=(const Self&); //purposely not implemented - -}; - - -} // end namespace mitk - -#endif // __MITK_NRRD_TBSS_VOULMES_IO_FACTORY_H_HEADER__ diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkNrrdTbssRoiImageWriterFactory.cpp b/Modules/DiffusionImaging/DiffusionIO/mitkNrrdTbssRoiImageWriterFactory.cpp deleted file mode 100644 index 348267d..0000000 --- a/Modules/DiffusionImaging/DiffusionIO/mitkNrrdTbssRoiImageWriterFactory.cpp +++ /dev/null @@ -1,50 +0,0 @@ -/*=================================================================== - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center, -Division of Medical and Biological Informatics. -All rights reserved. - -This software is distributed WITHOUT ANY WARRANTY; without -even the implied warranty of MERCHANTABILITY or FITNESS FOR -A PARTICULAR PURPOSE. - -See LICENSE.txt or http://www.mitk.org for details. - -===================================================================*/ - -#include "mitkNrrdTbssRoiImageWriterFactory.h" - -#include "itkCreateObjectFunction.h" -#include "itkVersion.h" - -#include - -namespace mitk -{ - -NrrdTbssRoiImageWriterFactory::NrrdTbssRoiImageWriterFactory() -{ - this->RegisterOverride("IOWriter", - "NrrdTbssRoiImageWriter", - "NrrdTbssRoiImage ROI Writer", - true, - itk::CreateObjectFunction< mitk::NrrdTbssRoiImageWriter >::New()); -} - -NrrdTbssRoiImageWriterFactory::~NrrdTbssRoiImageWriterFactory() -{ -} - -const char* NrrdTbssRoiImageWriterFactory::GetITKSourceVersion() const -{ - return ITK_SOURCE_VERSION; -} - -const char* NrrdTbssRoiImageWriterFactory::GetDescription() const -{ - return "NrrdTbssRoiImageWriterFactory"; -} - -} // end namespace mitk diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkNrrdTbssRoiImageWriterFactory.h b/Modules/DiffusionImaging/DiffusionIO/mitkNrrdTbssRoiImageWriterFactory.h deleted file mode 100644 index 665b034..0000000 --- a/Modules/DiffusionImaging/DiffusionIO/mitkNrrdTbssRoiImageWriterFactory.h +++ /dev/null @@ -1,54 +0,0 @@ -/*=================================================================== - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center, -Division of Medical and Biological Informatics. -All rights reserved. - -This software is distributed WITHOUT ANY WARRANTY; without -even the implied warranty of MERCHANTABILITY or FITNESS FOR -A PARTICULAR PURPOSE. - -See LICENSE.txt or http://www.mitk.org for details. - -===================================================================*/ - -#ifndef NRRDTBSSROIIMAGE_WRITERFACTORY_H_HEADER_INCLUDED -#define NRRDTBSSROIIMAGE_WRITERFACTORY_H_HEADER_INCLUDED - -#include "itkObjectFactoryBase.h" -#include "mitkBaseData.h" - -namespace mitk -{ - -class NrrdTbssRoiImageWriterFactory : public itk::ObjectFactoryBase -{ -public: - - mitkClassMacroItkParent( mitk::NrrdTbssRoiImageWriterFactory, itk::ObjectFactoryBase ) - - /** Class methods used to interface with the registered factories. */ - const char* GetITKSourceVersion(void) const override; - const char* GetDescription(void) const override; - - /** Method for class instantiation. */ - itkFactorylessNewMacro(Self) - -protected: - NrrdTbssRoiImageWriterFactory(); - ~NrrdTbssRoiImageWriterFactory() override; - -private: - NrrdTbssRoiImageWriterFactory(const Self&); //purposely not implemented - void operator=(const Self&); //purposely not implemented - -}; - -} // end namespace mitk - -#endif // NRRDTBSSIMAGE_WRITERFACTORY_H_HEADER_INCLUDED - - - diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkQuantificationObjectFactory.cpp b/Modules/DiffusionImaging/DiffusionIO/mitkQuantificationObjectFactory.cpp deleted file mode 100644 index e1679ec..0000000 --- a/Modules/DiffusionImaging/DiffusionIO/mitkQuantificationObjectFactory.cpp +++ /dev/null @@ -1,172 +0,0 @@ -/*=================================================================== - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center, -Division of Medical and Biological Informatics. -All rights reserved. - -This software is distributed WITHOUT ANY WARRANTY; without -even the implied warranty of MERCHANTABILITY or FITNESS FOR -A PARTICULAR PURPOSE. - -See LICENSE.txt or http://www.mitk.org for details. - -===================================================================*/ - -#include "mitkQuantificationObjectFactory.h" - -#include "mitkTbssImageMapper.h" - -#include "mitkNrrdTbssImageIOFactory.h" -#include "mitkNrrdTbssImageWriterFactory.h" -#include "mitkNrrdTbssImageWriter.h" - -#include "mitkNrrdTbssRoiImageIOFactory.h" -#include "mitkNrrdTbssRoiImageWriterFactory.h" -#include "mitkNrrdTbssRoiImageWriter.h" - -#include "mitkGPUVolumeMapper3D.h" - -typedef char TbssRoiPixelType; -typedef float TbssPixelType; -typedef int TbssGradientPixelType; - -mitk::QuantificationObjectFactory::QuantificationObjectFactory() - : CoreObjectFactoryBase() - , m_NrrdTbssImageIOFactory(mitk::NrrdTbssImageIOFactory::New().GetPointer()) - , m_NrrdTbssRoiImageIOFactory(mitk::NrrdTbssRoiImageIOFactory::New().GetPointer()) - , m_NrrdTbssImageWriterFactory(mitk::NrrdTbssImageWriterFactory::New().GetPointer()) - , m_NrrdTbssRoiImageWriterFactory(mitk::NrrdTbssRoiImageWriterFactory::New().GetPointer()) -{ - - static bool alreadyDone = false; - if (!alreadyDone) - { - MITK_DEBUG << "QuantificationObjectFactory c'tor" << std::endl; - - itk::ObjectFactoryBase::RegisterFactory(m_NrrdTbssImageIOFactory); - itk::ObjectFactoryBase::RegisterFactory(m_NrrdTbssRoiImageIOFactory); - - itk::ObjectFactoryBase::RegisterFactory(m_NrrdTbssImageWriterFactory); - itk::ObjectFactoryBase::RegisterFactory(m_NrrdTbssRoiImageWriterFactory); - - m_FileWriters.push_back( NrrdTbssImageWriter::New().GetPointer() ); - m_FileWriters.push_back( NrrdTbssRoiImageWriter::New().GetPointer() ); - - CreateFileExtensionsMap(); - - alreadyDone = true; - } - -} - -mitk::QuantificationObjectFactory::~QuantificationObjectFactory() -{ - itk::ObjectFactoryBase::UnRegisterFactory(m_NrrdTbssImageIOFactory); - itk::ObjectFactoryBase::RegisterFactory(m_NrrdTbssRoiImageIOFactory); - - itk::ObjectFactoryBase::UnRegisterFactory(m_NrrdTbssImageWriterFactory); - itk::ObjectFactoryBase::UnRegisterFactory(m_NrrdTbssRoiImageWriterFactory); -} - -mitk::Mapper::Pointer mitk::QuantificationObjectFactory::CreateMapper(mitk::DataNode* node, MapperSlotId id) -{ - mitk::Mapper::Pointer newMapper=nullptr; - - if ( id == mitk::BaseRenderer::Standard2D ) - { - std::string classname = "TbssRoiImage"; - if(node->GetData() && classname.compare(node->GetData()->GetNameOfClass())==0) - { - newMapper = mitk::ImageVtkMapper2D::New(); - newMapper->SetDataNode(node); - } - - classname = "TbssImage"; - if(node->GetData() && classname.compare(node->GetData()->GetNameOfClass())==0) - { - newMapper = mitk::TbssImageMapper::New(); - newMapper->SetDataNode(node); - } - - } - else if ( id == mitk::BaseRenderer::Standard3D ) - { - std::string classname = "TbssImage"; - if(node->GetData() && classname.compare(node->GetData()->GetNameOfClass())==0) - { - newMapper = mitk::TbssImageMapper::New(); - newMapper->SetDataNode(node); - } - - } - - return newMapper; -} - -void mitk::QuantificationObjectFactory::SetDefaultProperties(mitk::DataNode* node) -{ - std::string classname = "TbssRoiImage"; - if(node->GetData() && classname.compare(node->GetData()->GetNameOfClass())==0) - { - mitk::ImageVtkMapper2D::SetDefaultProperties(node); - } - - classname = "TbssImage"; - if(node->GetData() && classname.compare(node->GetData()->GetNameOfClass())==0) - { - mitk::TbssImageMapper::SetDefaultProperties(node); - mitk::GPUVolumeMapper3D::SetDefaultProperties(node); - } -} - -const char* mitk::QuantificationObjectFactory::GetFileExtensions() -{ - std::string fileExtension; - this->CreateFileExtensions(m_FileExtensionsMap, fileExtension); - return fileExtension.c_str(); -}; - -mitk::CoreObjectFactoryBase::MultimapType mitk::QuantificationObjectFactory::GetFileExtensionsMap() -{ - return m_FileExtensionsMap; -} - -const char* mitk::QuantificationObjectFactory::GetSaveFileExtensions() -{ - std::string fileExtension; - this->CreateFileExtensions(m_SaveFileExtensionsMap, fileExtension); - return fileExtension.c_str(); -}; - -mitk::CoreObjectFactoryBase::MultimapType mitk::QuantificationObjectFactory::GetSaveFileExtensionsMap() -{ - return m_SaveFileExtensionsMap; -} - -void mitk::QuantificationObjectFactory::CreateFileExtensionsMap() -{ - m_FileExtensionsMap.insert(std::pair("*.tbss", "TBSS data")); - m_FileExtensionsMap.insert(std::pair("*.roi", "TBSS ROI data")); - - m_SaveFileExtensionsMap.insert(std::pair("*.tbss", "TBSS data")); - m_SaveFileExtensionsMap.insert(std::pair("*.roi", "TBSS ROI data")); -} - -struct RegisterQuantificationObjectFactory{ - RegisterQuantificationObjectFactory() - : m_Factory( mitk::QuantificationObjectFactory::New() ) - { - mitk::CoreObjectFactory::GetInstance()->RegisterExtraFactory( m_Factory ); - } - - ~RegisterQuantificationObjectFactory() - { - mitk::CoreObjectFactory::GetInstance()->UnRegisterExtraFactory( m_Factory ); - } - - mitk::QuantificationObjectFactory::Pointer m_Factory; -}; - -static RegisterQuantificationObjectFactory registerQuantificationObjectFactory; diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkQuantificationObjectFactory.h b/Modules/DiffusionImaging/DiffusionIO/mitkQuantificationObjectFactory.h deleted file mode 100644 index 382adf4..0000000 --- a/Modules/DiffusionImaging/DiffusionIO/mitkQuantificationObjectFactory.h +++ /dev/null @@ -1,49 +0,0 @@ -#ifndef MITKQUANTIFICATIONOBJECTFACTORY_H -#define MITKQUANTIFICATIONOBJECTFACTORY_H - - -#include "mitkCoreObjectFactory.h" - -namespace mitk { - -class QuantificationObjectFactory : public CoreObjectFactoryBase -{ - public: - mitkClassMacro(QuantificationObjectFactory,CoreObjectFactoryBase) - itkFactorylessNewMacro(Self) - itkCloneMacro(Self) - - ~QuantificationObjectFactory() override; - - Mapper::Pointer CreateMapper(mitk::DataNode* node, MapperSlotId slotId) override; - - void SetDefaultProperties(mitk::DataNode* node) override; - - const char* GetFileExtensions() override; - - mitk::CoreObjectFactoryBase::MultimapType GetFileExtensionsMap() override; - - const char* GetSaveFileExtensions() override; - - mitk::CoreObjectFactoryBase::MultimapType GetSaveFileExtensionsMap() override; - -protected: - QuantificationObjectFactory(); - private: - void CreateFileExtensionsMap(); - std::string m_ExternalFileExtensions; - std::string m_InternalFileExtensions; - std::string m_SaveFileExtensions; - MultimapType m_FileExtensionsMap; - MultimapType m_SaveFileExtensionsMap; - - itk::ObjectFactoryBase::Pointer m_NrrdTbssImageIOFactory; - itk::ObjectFactoryBase::Pointer m_NrrdTbssRoiImageIOFactory; - - itk::ObjectFactoryBase::Pointer m_NrrdTbssImageWriterFactory; - itk::ObjectFactoryBase::Pointer m_NrrdTbssRoiImageWriterFactory; -}; - -} - -#endif // MITKQUANTIFICATIONOBJECTFACTORY_H diff --git a/Modules/DiffusionImaging/FiberTracking/IODataStructures/FiberBundle/mitkFiberBundleSource.cpp b/Modules/DiffusionImaging/FiberTracking/IODataStructures/FiberBundle/mitkFiberBundleSource.cpp deleted file mode 100644 index 15dbbee..0000000 --- a/Modules/DiffusionImaging/FiberTracking/IODataStructures/FiberBundle/mitkFiberBundleSource.cpp +++ /dev/null @@ -1,34 +0,0 @@ -/*=================================================================== - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center, -Division of Medical and Biological Informatics. -All rights reserved. - -This software is distributed WITHOUT ANY WARRANTY; without -even the implied warranty of MERCHANTABILITY or FITNESS FOR -A PARTICULAR PURPOSE. - -See LICENSE.txt or http://www.mitk.org for details. - -===================================================================*/ - - -#include "mitkOdfImageSource.h" - - -mitk::OdfImageSource::OdfImageSource() -{ - // Create the output. We use static_cast<> here because we know the default - // output must be of type TOutputImage - OutputImageType::Pointer output - = static_cast(this->MakeOutput(0).GetPointer()); - Superclass::SetNumberOfRequiredOutputs(1); - Superclass::SetNthOutput(0, output.GetPointer()); -} - -mitk::OdfImageSource::DataObjectPointer mitk::OdfImageSource::MakeOutput( unsigned int /*idx*/ ) -{ - return static_cast(OutputImageType::New().GetPointer()); -} diff --git a/Modules/DiffusionImaging/FiberTracking/IODataStructures/FiberBundle/mitkFiberBundleSource.h b/Modules/DiffusionImaging/FiberTracking/IODataStructures/FiberBundle/mitkFiberBundleSource.h deleted file mode 100644 index 7993aa5..0000000 --- a/Modules/DiffusionImaging/FiberTracking/IODataStructures/FiberBundle/mitkFiberBundleSource.h +++ /dev/null @@ -1,52 +0,0 @@ -/*=================================================================== - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center, -Division of Medical and Biological Informatics. -All rights reserved. - -This software is distributed WITHOUT ANY WARRANTY; without -even the implied warranty of MERCHANTABILITY or FITNESS FOR -A PARTICULAR PURPOSE. - -See LICENSE.txt or http://www.mitk.org for details. - -===================================================================*/ - - -#ifndef OdfImageSource_H_HEADER_INCLUDED_C1E7D6EC -#define OdfImageSource_H_HEADER_INCLUDED_C1E7D6EC - -#include "mitkImageSource.h" -#include "mitkOdfImage.h" - -//NOTE>umbenennen .. ableiten von DataSource - - -namespace mitk { - -class OdfImageSource : public ImageSource -{ -public: - - typedef mitk::OdfImage OutputImageType; - typedef OutputImageType::Pointer OutputImagePointer; - typedef SlicedData::RegionType OutputImageRegionType; - typedef itk::DataObject::Pointer DataObjectPointer; - - mitkClassMacro(OdfImageSource,ImageSource); - itkFactorylessNewMacro(Self) - itkCloneMacro(Self) - - virtual DataObjectPointer MakeOutput(DataObjectPointerArraySizeType idx); - -protected: - OdfImageSource(); - virtual ~OdfImageSource() {} - -}; - -} // namespace mitk - -#endif /* OdfImageSource_H_HEADER_INCLUDED_C1E7D6EC */ diff --git a/Modules/DiffusionImaging/FiberTracking/IODataStructures/FiberBundle/mitkFiberBundleThreadMonitor.cpp b/Modules/DiffusionImaging/FiberTracking/IODataStructures/FiberBundle/mitkFiberBundleThreadMonitor.cpp deleted file mode 100644 index 3aa3cbf..0000000 --- a/Modules/DiffusionImaging/FiberTracking/IODataStructures/FiberBundle/mitkFiberBundleThreadMonitor.cpp +++ /dev/null @@ -1,254 +0,0 @@ -/*=================================================================== - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center, -Division of Medical and Biological Informatics. -All rights reserved. - -This software is distributed WITHOUT ANY WARRANTY; without -even the implied warranty of MERCHANTABILITY or FITNESS FOR -A PARTICULAR PURPOSE. - -See LICENSE.txt or http://www.mitk.org for details. - -===================================================================*/ - - -#include "mitkFiberBundleThreadMonitor.h" - - - -mitk::FiberBundleThreadMonitor::FiberBundleThreadMonitor() -: m_monitorBracketOpen("[") -, m_monitorBracketClose("]") -, m_monitorHeading("Monitoring Fiberprocessing Threads") -, m_monitorMask("Thread Status:\nStarted: Finished: Terminated:") -, m_monitorStatus("_initialized") -, m_monitorStarted(0) -, m_monitorFinished(0) -, m_monitorTerminated(0) -{ - m_monitorBracketOpenPosition[0] = 0; - m_monitorBracketOpenPosition[1] = 0; - m_monitorBracketClosePosition[0] = 0; - m_monitorBracketClosePosition[1] = 0; - m_monitorHeadingPosition[0] = 0; - m_monitorHeadingPosition[1] = 0; - m_monitorMaskPosition[0] = 0; - m_monitorMaskPosition[1] = 0; - m_monitorStatusPosition[0] = 0; - m_monitorStatusPosition[1] = 0; - m_monitorStartedPosition[0] = 0; - m_monitorStartedPosition[1] = 0; - m_monitorFinishedPosition[0] = 0; - m_monitorFinishedPosition[1] = 0; - m_monitorTerminatedPosition[0] = 0; - m_monitorTerminatedPosition[1] = 0; - - - m_monitorHeadingOpacity = 0; - m_monitorMaskOpacity = 0; - m_monitorTerminatedOpacity = 0; - m_monitorFinishedOpacity = 0; - m_monitorStartedOpacity = 0; - m_monitorStatusOpacity = 0; -} - -mitk::FiberBundleThreadMonitor::~FiberBundleThreadMonitor() -{ - -} - - -QString mitk::FiberBundleThreadMonitor::getBracketOpen(){ - return m_monitorBracketOpen; -} -mitk::Point2D mitk::FiberBundleThreadMonitor::getBracketOpenPosition(){ - return m_monitorBracketOpenPosition; -} -void mitk::FiberBundleThreadMonitor::setBracketOpenPosition(mitk::Point2D pnt){ - m_monitorBracketOpenPosition[0] = pnt[0]; - m_monitorBracketOpenPosition[1] = pnt[1]; -} - - - - -QString mitk::FiberBundleThreadMonitor::getBracketClose(){ - return m_monitorBracketClose; -} -mitk::Point2D mitk::FiberBundleThreadMonitor::getBracketClosePosition(){ - return m_monitorBracketClosePosition; -} -void mitk::FiberBundleThreadMonitor::setBracketClosePosition(mitk::Point2D pnt){ - m_monitorBracketClosePosition[0] = pnt[0]; - m_monitorBracketClosePosition[1] = pnt[1]; -} - - - -QString mitk::FiberBundleThreadMonitor::getHeading(){ - return m_monitorHeading; -} -mitk::Point2D mitk::FiberBundleThreadMonitor::getHeadingPosition(){ - return m_monitorHeadingPosition; -} -void mitk::FiberBundleThreadMonitor::setHeadingPosition(mitk::Point2D pnt){ - m_monitorHeadingPosition[0] = pnt[0]; - m_monitorHeadingPosition[1] = pnt[1]; -} -int mitk::FiberBundleThreadMonitor::getHeadingOpacity(){ - return m_monitorHeadingOpacity; -} -void mitk::FiberBundleThreadMonitor::setHeadingOpacity(int opacity){ - m_monitorHeadingOpacity = opacity; -} - - - - -QString mitk::FiberBundleThreadMonitor::getMask(){ - return m_monitorMask; -} -mitk::Point2D mitk::FiberBundleThreadMonitor::getMaskPosition(){ - return m_monitorMaskPosition; -} -void mitk::FiberBundleThreadMonitor::setMaskPosition(mitk::Point2D pnt){ - m_monitorMaskPosition[0] = pnt[0]; - m_monitorMaskPosition[1] = pnt[1]; -} -int mitk::FiberBundleThreadMonitor::getMaskOpacity(){ - return m_monitorMaskOpacity; -} -void mitk::FiberBundleThreadMonitor::setMaskOpacity(int opacity){ - m_monitorMaskOpacity = opacity; -} - - - - - -QString mitk::FiberBundleThreadMonitor::getStatus(){ - return m_monitorStatus; -} -void mitk::FiberBundleThreadMonitor::setStatus(QString status){ - m_statusMutex.lock(); - m_monitorStatus = status; - m_statusMutex.unlock(); -} -mitk::Point2D mitk::FiberBundleThreadMonitor::getStatusPosition(){ - return m_monitorStatusPosition; -} -void mitk::FiberBundleThreadMonitor::setStatusPosition(mitk::Point2D pnt){ - m_monitorStatusPosition[0] = pnt[0]; - m_monitorStatusPosition[1] = pnt[1]; -} -int mitk::FiberBundleThreadMonitor::getStatusOpacity(){ - return m_monitorStatusOpacity; -} -void mitk::FiberBundleThreadMonitor::setStatusOpacity(int opacity){ - m_monitorStatusOpacity = opacity; -} - - -int mitk::FiberBundleThreadMonitor::getStarted(){ - return m_monitorStarted; -} -/* is thread safe :) */ -void mitk::FiberBundleThreadMonitor::setStarted(int val) -{ - m_startedMutex.lock(); - m_monitorStarted = val; - m_startedMutex.unlock(); -} -mitk::Point2D mitk::FiberBundleThreadMonitor::getStartedPosition(){ - return m_monitorStartedPosition; -} -void mitk::FiberBundleThreadMonitor::setStartedPosition(mitk::Point2D pnt){ - m_monitorStartedPosition[0] = pnt[0]; - m_monitorStartedPosition[1] = pnt[1]; -} -int mitk::FiberBundleThreadMonitor::getStartedOpacity(){ - return m_monitorStartedOpacity; -} -void mitk::FiberBundleThreadMonitor::setStartedOpacity(int opacity){ - m_monitorStartedOpacity = opacity; -} - - - - -int mitk::FiberBundleThreadMonitor::getFinished(){ - return m_monitorFinished; -} -void mitk::FiberBundleThreadMonitor::setFinished(int val) -{ - m_finishedMutex.lock(); - m_monitorFinished = val; - m_finishedMutex.unlock(); -} -mitk::Point2D mitk::FiberBundleThreadMonitor::getFinishedPosition(){ - return m_monitorFinishedPosition; -} -void mitk::FiberBundleThreadMonitor::setFinishedPosition(mitk::Point2D pnt){ - m_monitorFinishedPosition[0] = pnt[0]; - m_monitorFinishedPosition[1] = pnt[1]; -} -int mitk::FiberBundleThreadMonitor::getFinishedOpacity(){ - return m_monitorFinishedOpacity; -} -void mitk::FiberBundleThreadMonitor::setFinishedOpacity(int opacity){ - m_monitorFinishedOpacity = opacity; -} - - - - -int mitk::FiberBundleThreadMonitor::getTerminated(){ - return m_monitorTerminated; -} -void mitk::FiberBundleThreadMonitor::setTerminated(int val) -{ - m_terminatedMutex.lock(); - m_monitorTerminated = val; - m_terminatedMutex.unlock(); -} -mitk::Point2D mitk::FiberBundleThreadMonitor::getTerminatedPosition(){ - return m_monitorTerminatedPosition; -} -void mitk::FiberBundleThreadMonitor::setTerminatedPosition(mitk::Point2D pnt){ - m_monitorTerminatedPosition[0] = pnt[0]; - m_monitorTerminatedPosition[1] = pnt[1]; -} -int mitk::FiberBundleThreadMonitor::getTerminatedOpacity(){ - return m_monitorTerminatedOpacity; -} -void mitk::FiberBundleThreadMonitor::setTerminatedOpacity(int opacity){ - m_monitorTerminatedOpacity = opacity; -} - - - -/* ESSENTIAL IMPLEMENTATION OF SUPERCLASS METHODS */ -void mitk::FiberBundleThreadMonitor::UpdateOutputInformation() -{ - -} -void mitk::FiberBundleThreadMonitor::SetRequestedRegionToLargestPossibleRegion() -{ - -} -bool mitk::FiberBundleThreadMonitor::RequestedRegionIsOutsideOfTheBufferedRegion() -{ - return false; -} -bool mitk::FiberBundleThreadMonitor::VerifyRequestedRegion() -{ - return true; -} -void mitk::FiberBundleThreadMonitor::SetRequestedRegion(const itk::DataObject *data ) -{ - -} - diff --git a/Modules/DiffusionImaging/FiberTracking/IODataStructures/FiberBundle/mitkFiberBundleThreadMonitor.h b/Modules/DiffusionImaging/FiberTracking/IODataStructures/FiberBundle/mitkFiberBundleThreadMonitor.h deleted file mode 100644 index ba718a9..0000000 --- a/Modules/DiffusionImaging/FiberTracking/IODataStructures/FiberBundle/mitkFiberBundleThreadMonitor.h +++ /dev/null @@ -1,154 +0,0 @@ - -/*=================================================================== - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center, -Division of Medical and Biological Informatics. -All rights reserved. - -This software is distributed WITHOUT ANY WARRANTY; without -even the implied warranty of MERCHANTABILITY or FITNESS FOR -A PARTICULAR PURPOSE. - -See LICENSE.txt or http://www.mitk.org for details. - -===================================================================*/ - -#ifndef _MITK_FiberBundleThreadMonitor_H -#define _MITK_FiberBundleThreadMonitor_H - -//includes for MITK datastructure -#include "mitkBaseData.h" -#include -#include - -#include - - -namespace mitk { - - /** - * \brief Base Class for Fiber Bundles; */ - class MITKFIBERTRACKING_EXPORT FiberBundleThreadMonitor : public BaseData - { - - public: - - // ======virtual methods must have====== - virtual void UpdateOutputInformation(); - virtual void SetRequestedRegionToLargestPossibleRegion(); - virtual bool RequestedRegionIsOutsideOfTheBufferedRegion(); - virtual bool VerifyRequestedRegion(); - virtual void SetRequestedRegion(const itk::DataObject *data ); - //======================================= - - mitkClassMacro( FiberBundleThreadMonitor, BaseData ); - itkFactorylessNewMacro(Self) - itkCloneMacro(Self) - - - void setTextL1(QString); - QString getTextL1(); - - QString getBracketOpen(); - mitk::Point2D getBracketOpenPosition(); - void setBracketOpenPosition(mitk::Point2D); - int getBracketOpenOpacity(); // range 0 - 10, multiplicationfactor 0.1 (in mapper) - - QString getBracketClose(); - mitk::Point2D getBracketClosePosition(); - void setBracketClosePosition(mitk::Point2D); - int getBracketCloseOpacity(); // range 0 - 10, multiplicationfactor 0.1 (in mapper) - - QString getHeading(); - mitk::Point2D getHeadingPosition(); - void setHeadingPosition(mitk::Point2D); - int getHeadingOpacity(); // range 0 - 10, multiplicationfactor 0.1 (in mapper) - void setHeadingOpacity(int); - - QString getMask(); - mitk::Point2D getMaskPosition(); - void setMaskPosition(mitk::Point2D); - int getMaskOpacity(); // multiplicationfactor 0.1 (in mapper) - void setMaskOpacity(int); - - QString getStatus(); - void setStatus(QString); - mitk::Point2D getStatusPosition(); - void setStatusPosition(mitk::Point2D); - int getStatusOpacity(); // multiplicationfactor 0.1 (in mapper) - void setStatusOpacity(int); - - int getStarted(); - void setStarted(int); - mitk::Point2D getStartedPosition(); - void setStartedPosition(mitk::Point2D); - int getStartedOpacity(); // multiplicationfactor 0.1 (in mapper) - void setStartedOpacity(int); - - int getFinished(); - void setFinished(int); - mitk::Point2D getFinishedPosition(); - void setFinishedPosition(mitk::Point2D); - int getFinishedOpacity(); // multiplicationfactor 0.1 (in mapper) - void setFinishedOpacity(int); - - int getTerminated(); - void setTerminated(int); - mitk::Point2D getTerminatedPosition(); - void setTerminatedPosition(mitk::Point2D); - int getTerminatedOpacity(); // multiplicationfactor 0.1 (in mapper) - void setTerminatedOpacity(int); - - - protected: - FiberBundleThreadMonitor(); - virtual ~FiberBundleThreadMonitor(); - - - private: - QString m_monitorBracketOpen; - mitk::Point2D m_monitorBracketOpenPosition; - - QString m_monitorBracketClose; - mitk::Point2D m_monitorBracketClosePosition; - - QString m_monitorHeading; - mitk::Point2D m_monitorHeadingPosition; - int m_monitorHeadingOpacity; - - QString m_monitorMask; - mitk::Point2D m_monitorMaskPosition; - int m_monitorMaskOpacity; - - QString m_monitorStatus; - mitk::Point2D m_monitorStatusPosition; - int m_monitorStatusOpacity; - - int m_monitorStarted; - mitk::Point2D m_monitorStartedPosition; - int m_monitorStartedOpacity; - - int m_monitorFinished; - mitk::Point2D m_monitorFinishedPosition; - int m_monitorFinishedOpacity; - - int m_monitorTerminated; - mitk::Point2D m_monitorTerminatedPosition; - int m_monitorTerminatedOpacity; - - QMutex m_startedMutex; - QMutex m_finishedMutex; - QMutex m_terminatedMutex; - QMutex m_statusMutex; - - - - - - }; - -} // namespace mitk - -#endif /* _MITK_FiberBundle_H */ diff --git a/Modules/DiffusionImaging/FiberTracking/Rendering/mitkFiberBundleThreadMonitorMapper3D.cpp b/Modules/DiffusionImaging/FiberTracking/Rendering/mitkFiberBundleThreadMonitorMapper3D.cpp deleted file mode 100644 index 9dc5a40..0000000 --- a/Modules/DiffusionImaging/FiberTracking/Rendering/mitkFiberBundleThreadMonitorMapper3D.cpp +++ /dev/null @@ -1,196 +0,0 @@ -/*=================================================================== - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center, -Division of Medical and Biological Informatics. -All rights reserved. - -This software is distributed WITHOUT ANY WARRANTY; without -even the implied warranty of MERCHANTABILITY or FITNESS FOR -A PARTICULAR PURPOSE. - -See LICENSE.txt or http://www.mitk.org for details. - -===================================================================*/ - - - -#include "mitkFiberBundleThreadMonitorMapper3D.h" -#include -#include -//#include -#include - - - - -mitk::FiberBundleThreadMonitorMapper3D::FiberBundleThreadMonitorMapper3D() -: m_FiberMonitorMapper(vtkSmartPointer::New()) -, m_TextActorClose(vtkSmartPointer::New()) -, m_TextActorOpen(vtkSmartPointer::New()) -, m_TextActorHeading(vtkSmartPointer::New()) -, m_TextActorMask(vtkSmartPointer::New()) -, m_TextActorStatus(vtkSmartPointer::New()) -, m_TextActorStarted(vtkSmartPointer::New()) -, m_TextActorFinished(vtkSmartPointer::New()) -, m_TextActorTerminated(vtkSmartPointer::New()) -, m_FiberAssembly(vtkPropAssembly::New()) -, m_lastModifiedMonitorNodeTime(-1) -{ - m_FiberAssembly->AddPart(m_TextActorClose); - m_FiberAssembly->AddPart(m_TextActorOpen); - m_FiberAssembly->AddPart(m_TextActorHeading); - m_FiberAssembly->AddPart(m_TextActorMask); - m_FiberAssembly->AddPart(m_TextActorStatus); - m_FiberAssembly->AddPart(m_TextActorStarted); - m_FiberAssembly->AddPart(m_TextActorFinished); - m_FiberAssembly->AddPart(m_TextActorTerminated); - -} - - -mitk::FiberBundleThreadMonitorMapper3D::~FiberBundleThreadMonitorMapper3D() -{ - m_FiberAssembly->Delete(); -} - - -const mitk::FiberBundleThreadMonitor* mitk::FiberBundleThreadMonitorMapper3D::GetInput() -{ - return static_cast ( GetDataNode()->GetData() ); -} - - -/* - This method is called once the mapper gets new input, - for UI rotation or changes in colorcoding this method is NOT called - */ -void mitk::FiberBundleThreadMonitorMapper3D::GenerateDataForRenderer( mitk::BaseRenderer *renderer ) -{ - bool visible = true; - GetDataNode()->GetVisibility(visible, renderer, "visible"); - - if ( !visible ) return; - - const DataNode *node = this->GetDataNode(); - - if (m_lastModifiedMonitorNodeTime >= node->GetMTime()) - return; - - m_lastModifiedMonitorNodeTime = node->GetMTime(); - - // MITK_INFO << m_LastUpdateTime; - FiberBundleThreadMonitor* monitor = dynamic_cast ( GetDataNode()->GetData() ); - -// m_TextActor->SetInput( monitor->getTextL1().toStdString().c_str() ); - m_TextActorClose->SetInput( monitor->getBracketClose().toStdString().c_str() ); - vtkTextProperty* tpropClose = m_TextActorClose->GetTextProperty(); - //tprop->SetFontFamilyToArial (); - //tprop->SetLineSpacing(1.0); - tpropClose->SetFontSize(16); - tpropClose->SetColor(0.85,0.8,0.8); - m_TextActorClose->SetDisplayPosition( monitor->getBracketClosePosition()[0], monitor->getBracketClosePosition()[1] ); - //m_TextActorClose->Modified(); - - - m_TextActorOpen->SetInput( monitor->getBracketOpen().toStdString().c_str() ); - vtkTextProperty* tpropOpen = m_TextActorOpen->GetTextProperty(); - //tprop->SetFontFamilyToArial (); - //tprop->SetLineSpacing(1.0); - tpropOpen->SetFontSize(16); - tpropOpen->SetColor(0.85,0.8,0.8); - m_TextActorOpen->SetDisplayPosition( monitor->getBracketOpenPosition()[0], monitor->getBracketOpenPosition()[1] ); - //m_TextActorOpen->Modified(); - - - m_TextActorHeading->SetInput( monitor->getHeading().toStdString().c_str() ); - vtkTextProperty* tpropHeading = m_TextActorHeading->GetTextProperty(); - tpropHeading->SetFontSize(12); - tpropHeading->SetOpacity( monitor->getHeadingOpacity() * 0.1 ); - tpropHeading->SetColor(0.85,0.8,0.8); - m_TextActorHeading->SetDisplayPosition( monitor->getHeadingPosition()[0], monitor->getHeadingPosition()[1] ); - //m_TextActorHeading->Modified(); - - - m_TextActorMask->SetInput( monitor->getMask().toStdString().c_str() ); - vtkTextProperty* tpropMask = m_TextActorMask->GetTextProperty(); - tpropMask->SetFontSize(12); - tpropMask->SetOpacity( monitor->getMaskOpacity() * 0.1 ); - tpropMask->SetColor(1.0,1.0,1.0); - m_TextActorMask->SetDisplayPosition( monitor->getMaskPosition()[0], monitor->getMaskPosition()[1] ); - //m_TextActorHeading->Modified(); - - - m_TextActorStatus->SetInput(monitor->getStatus().toStdString().c_str()); - vtkTextProperty* tpropStatus = m_TextActorStatus->GetTextProperty(); - tpropStatus->SetFontSize(10); - tpropStatus->SetOpacity( monitor->getStatusOpacity() * 0.1 ); - tpropStatus->SetColor(0.85,0.8,0.8); - m_TextActorStatus->SetDisplayPosition( monitor->getStatusPosition()[0], monitor->getStatusPosition()[1] ); - //m_TextActorStatus->Modified(); - - m_TextActorStarted->SetInput(QString::number(monitor->getStarted()).toStdString().c_str()); - vtkTextProperty* tpropStarted = m_TextActorStarted->GetTextProperty(); - tpropStarted->SetFontSize(12); - tpropStarted->SetOpacity( monitor->getStartedOpacity() * 0.1 ); - tpropStarted->SetColor(0.0,1.0,0.0); - m_TextActorStarted->SetDisplayPosition( monitor->getStartedPosition()[0], monitor->getStartedPosition()[1] ); - //m_TextActorStarted->Modified(); - - m_TextActorFinished->SetInput(QString::number(monitor->getFinished()).toStdString().c_str()); - vtkTextProperty* tpropFinished = m_TextActorFinished->GetTextProperty(); - tpropFinished->SetFontSize(12); - tpropFinished->SetOpacity( monitor->getFinishedOpacity() * 0.1 ); - tpropFinished->SetColor(1.0,1.0,1.0); - m_TextActorFinished->SetDisplayPosition( monitor->getFinishedPosition()[0], monitor->getFinishedPosition()[1] ); - //m_TextActorFinished->Modified(); - - m_TextActorTerminated->SetInput(QString::number(monitor->getTerminated()).toStdString().c_str()); - vtkTextProperty* tpropTerminated = m_TextActorTerminated->GetTextProperty(); - tpropTerminated->SetFontSize(12); - tpropTerminated->SetOpacity( monitor->getTerminatedOpacity() * 0.1 ); - tpropTerminated->SetColor(1.0,1.0,1.0); - m_TextActorTerminated->SetDisplayPosition( monitor->getTerminatedPosition()[0], monitor->getTerminatedPosition()[1] ); - //m_TextActorTerminated->Modified(); - - - // Calculate time step of the input data for the specified renderer (integer value) - // this method is implemented in mitkMapper -// this->CalculateTimeStep( renderer ); - - -} - - -void mitk::FiberBundleThreadMonitorMapper3D::SetDefaultProperties(mitk::DataNode* node, mitk::BaseRenderer* renderer, bool overwrite) -{ - -// MITK_INFO << "FiberBundlexXXMapper3D()SetDefaultProperties"; - - - Superclass::SetDefaultProperties(node, renderer, overwrite); - - - -} - -vtkProp* mitk::FiberBundleThreadMonitorMapper3D::GetVtkProp(mitk::BaseRenderer *renderer) -{ - //MITK_INFO << "FiberBundlexXXMapper3D()GetVTKProp"; - //this->GenerateData(); - return m_FiberAssembly; - -} - -void mitk::FiberBundleThreadMonitorMapper3D::ApplyProperties(mitk::BaseRenderer* renderer) -{ -// MITK_INFO << "FiberBundleXXXMapper3D ApplyProperties(renderer)"; -} - -void mitk::FiberBundleThreadMonitorMapper3D::UpdateVtkObjects() -{ -// MITK_INFO << "FiberBundlexxXMapper3D UpdateVtkObjects()"; - - -} diff --git a/Modules/DiffusionImaging/FiberTracking/Rendering/mitkFiberBundleThreadMonitorMapper3D.h b/Modules/DiffusionImaging/FiberTracking/Rendering/mitkFiberBundleThreadMonitorMapper3D.h deleted file mode 100644 index 9e4ed51..0000000 --- a/Modules/DiffusionImaging/FiberTracking/Rendering/mitkFiberBundleThreadMonitorMapper3D.h +++ /dev/null @@ -1,89 +0,0 @@ -/*=================================================================== - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center, -Division of Medical and Biological Informatics. -All rights reserved. - -This software is distributed WITHOUT ANY WARRANTY; without -even the implied warranty of MERCHANTABILITY or FITNESS FOR -A PARTICULAR PURPOSE. - -See LICENSE.txt or http://www.mitk.org for details. - -===================================================================*/ - - -#ifndef FiberBundleThreadMonitorMapper3D_H_HEADER_INCLUDED -#define FiberBundleThreadMonitorMapper3D_H_HEADER_INCLUDED - -//#include //?? necessary -#include -#include -#include - -#include -#include -#include - - - -class vtkPropAssembly; - - - - -namespace mitk { - - //##Documentation - //## @brief Mapper for FiberBundle - //## @ingroup Mapper - - class MITKFIBERTRACKING_EXPORT FiberBundleThreadMonitorMapper3D : public VtkMapper - { - public: - - mitkClassMacro(FiberBundleThreadMonitorMapper3D, VtkMapper); - itkFactorylessNewMacro(Self) - itkCloneMacro(Self) - - //========== essential implementation for 3D mapper ======== - const FiberBundleThreadMonitor* GetInput(); - virtual vtkProp *GetVtkProp(mitk::BaseRenderer *renderer); //looks like depricated.. should be replaced bz GetViewProp() - static void SetDefaultProperties(DataNode* node, BaseRenderer* renderer = nullptr, bool overwrite = false ); - virtual void ApplyProperties(mitk::BaseRenderer* renderer); - virtual void GenerateDataForRenderer(mitk::BaseRenderer* renderer); - //========================================================= - - protected: - - FiberBundleThreadMonitorMapper3D(); - virtual ~FiberBundleThreadMonitorMapper3D(); - - void UpdateVtkObjects(); //?? - - - vtkSmartPointer m_FiberMonitorMapper; - vtkSmartPointer m_TextActorClose; - vtkSmartPointer m_TextActorOpen; - vtkSmartPointer m_TextActorHeading; - vtkSmartPointer m_TextActorMask; - vtkSmartPointer m_TextActorStatus; - vtkSmartPointer m_TextActorStarted; - vtkSmartPointer m_TextActorFinished; - vtkSmartPointer m_TextActorTerminated; - vtkPropAssembly* m_FiberAssembly; - - private: - double m_lastModifiedMonitorNodeTime; - - }; - -} // end namespace mitk - - - - -#endif /* FiberBundleMapper3D_H_HEADER_INCLUDED */ - diff --git a/Modules/DiffusionImaging/FiberTracking/mitkFiberTrackingModuleActivator.cpp b/Modules/DiffusionImaging/FiberTracking/mitkFiberTrackingModuleActivator.cpp deleted file mode 100644 index 87579cf..0000000 --- a/Modules/DiffusionImaging/FiberTracking/mitkFiberTrackingModuleActivator.cpp +++ /dev/null @@ -1,43 +0,0 @@ -/*=================================================================== - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center, -Division of Medical and Biological Informatics. -All rights reserved. - -This software is distributed WITHOUT ANY WARRANTY; without -even the implied warranty of MERCHANTABILITY or FITNESS FOR -A PARTICULAR PURPOSE. - -See LICENSE.txt or http://www.mitk.org for details. - -===================================================================*/ -#include - -namespace mitk -{ - /** - \brief Registers services for segmentation module. - */ - class FiberTrackingModuleActivator : public us::ModuleActivator - { - public: - - void Load(us::ModuleContext* /*context*/) override - { - - } - - void Unload(us::ModuleContext*) override - { - - } - - private: - - - }; -} - -US_EXPORT_MODULE_ACTIVATOR(mitk::FiberTrackingModuleActivator) diff --git a/Modules/DiffusionImaging/Quantification/Algorithms/itkSkeletonizationFilter.h b/Modules/DiffusionImaging/Quantification/Algorithms/itkSkeletonizationFilter.h deleted file mode 100644 index 5b479f9..0000000 --- a/Modules/DiffusionImaging/Quantification/Algorithms/itkSkeletonizationFilter.h +++ /dev/null @@ -1,119 +0,0 @@ -/*=================================================================== - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center, -Division of Medical and Biological Informatics. -All rights reserved. - -This software is distributed WITHOUT ANY WARRANTY; without -even the implied warranty of MERCHANTABILITY or FITNESS FOR -A PARTICULAR PURPOSE. - -See LICENSE.txt or http://www.mitk.org for details. - -===================================================================*/ - -#ifndef ITKSKELETONIZATIONFILTER_H_ -#define ITKSKELETONIZATIONFILTER_H_ - -#include "itkImageToImageFilter.h" -#include "itkImage.h" -#include "mitkImage.h" -#include - -namespace itk -{ - -/** - * \brief Skeletonization part of the TBSS pipeline - * - * This class takes a 3D image which is typically the mean FA image that is calculated after registration by the FSL TBSS pipeline (see - * http://fsl.fmrib.ox.ac.uk/fsl/fsl4.0/tbss/index for the user manual) and performs the non-maximum-suppression to create a white matter skeleton. - * - * - * The skeletonization algorithm is described in Smith et al., 2009. http://dx.doi.org/10.1016/j.neuroimage.2006.02.024 ) - */ - - -template < class TInputImage, class TOutputImage > -class SkeletonizationFilter : public ImageToImageFilter -{ - - -public: - - /** Typedef for input ImageType. */ - typedef TInputImage InputImageType; - - typedef itk::CovariantVector VectorType; - - typedef itk::Image VectorImageType; - - - /** Typedef for output ImageType. */ - typedef TOutputImage OutputImageType; - - typedef itk::VectorImage GradientImageType; - - - /** */ - typedef SkeletonizationFilter Self; - - /** Superclass */ - typedef ImageToImageFilter Superclass; - - typedef SmartPointer Pointer; - - typedef SmartPointer ConstPointer; - - itkFactorylessNewMacro(Self) - itkCloneMacro(Self) - - /** \brief Performs the work */ - void GenerateData() override; - - - /** \brief Output the gradient image as itkVectorImage - * - * Output the gradient image by first converting it to an itk vector image - */ - GradientImageType::Pointer GetGradientImage(); - - /** \brief Output the gradient image as an itkImage containing vector */ - VectorImageType::Pointer GetVectorImage() - { - return m_DirectionImage; - } - - - - -protected: - - SkeletonizationFilter(); - - ~SkeletonizationFilter() override; - - VectorImageType::Pointer m_DirectionImage; - - int round(float x) - { - if (x>0.0) return ((int) (x+0.5)); - else return ((int) (x-0.5)); - } - - -protected: - - - -}; - -} - -#ifndef ITK_MANUAL_INSTANTIATION -#include "itkSkeletonizationFilter.txx" -#endif - -#endif diff --git a/Modules/DiffusionImaging/Quantification/Algorithms/itkSkeletonizationFilter.txx b/Modules/DiffusionImaging/Quantification/Algorithms/itkSkeletonizationFilter.txx deleted file mode 100644 index 1933a12..0000000 --- a/Modules/DiffusionImaging/Quantification/Algorithms/itkSkeletonizationFilter.txx +++ /dev/null @@ -1,306 +0,0 @@ -/*=================================================================== - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center, -Division of Medical and Biological Informatics. -All rights reserved. - -This software is distributed WITHOUT ANY WARRANTY; without -even the implied warranty of MERCHANTABILITY or FITNESS FOR -A PARTICULAR PURPOSE. - -See LICENSE.txt or http://www.mitk.org for details. - -===================================================================*/ -#ifndef _itkSkeletonizationFilter_txx -#define _itkSkeletonizationFilter_txx - -#include "itkSkeletonizationFilter.h" -#include "mitkProgressBar.h" -#include -#include - -namespace itk -{ - - template< class TInputImage, class TOutputImage > - SkeletonizationFilter::SkeletonizationFilter() - { - m_DirectionImage = VectorImageType::New(); - } - - template< class TInputImage, class TOutputImage > - SkeletonizationFilter::~SkeletonizationFilter() - { - - } - - - - - template< class TInputImage, class TOutputImage > - void SkeletonizationFilter::GenerateData() - { - //----------------------------------------------------------------------// - // Progress bar // - //----------------------------------------------------------------------// - mitk::ProgressBar::GetInstance()->AddStepsToDo( 3 ); - - std::cout << "Skeletonize" << std::endl; - - - const InputImageType* faImage = this->GetInput(); - typename InputImageType::SizeType size = faImage->GetRequestedRegion().GetSize(); - - //typename RealImageType::SizeType size = m_FaImage->GetRequestedRegion().GetSize(); - - m_DirectionImage->SetRegions(faImage->GetRequestedRegion()); - m_DirectionImage->SetDirection(faImage->GetDirection()); - m_DirectionImage->SetSpacing(faImage->GetSpacing()); - m_DirectionImage->SetOrigin(faImage->GetOrigin()); - m_DirectionImage->Allocate(); - m_DirectionImage->FillBuffer(0.0); - - - for(unsigned int z=1; zGetPixel(ix); - - if(theval != 0) - { - - /* Calculate point of gravity. We will consider each 3x3x3 neighbourhood as a unit cube. The center - * point of each voxel will be a multiplicative of 1/6. The center of the unit cube is 3/6 = 1/2/ - */ - - float cogX = 0.0; float cogY = 0.0; float cogZ = 0.0; float sum = 0.0; float l; - int vecX = 0; int vecY = 0; int vecZ = 0; - - for(int dz=-1; dz<=1; dz++) for(int dy=-1; dy<=1; dy++) for(int dx=-1; dx<=1;dx++) - { - typename InputImageType::IndexType p; - p[0] = x+dx; p[1] = y+dy; p[2] = z+dz; - float mass = faImage->GetPixel(p); - - sum += mass; - cogX += (float)dx*mass; cogY += (float)dy*mass; cogZ += (float)dz*mass; - } - - cogX /= sum; cogY /= sum; cogZ /= sum; - l = sqrt(cogX*cogX + cogY*cogY + cogZ*cogZ); - - if (l > 0.1) /* is CofG far enough away from centre voxel? */ - { - vecX = std::max(std::min(round(cogX/l),1),-1); - vecY = std::max(std::min(round(cogY/l),1),-1); - vecZ = std::max(std::min(round(cogZ/l),1),-1); - } - else - // Find direction of max curvature - { - - float maxcost=0, centreval=2*theval; - for(int zz=0; zz<=1; zz++) // note - starts at zero as we're only searching half the voxels - { - for(int yy=-1; yy<=1; yy++) - { - for(int xx=-1; xx<=1; xx++) - { - if ( (zz==1) || (yy==1) || ((yy==0)&&(xx==1)) ) - { - float weighting = pow( (float)(xx*xx+yy*yy+zz*zz) , (float)-0.7 ); // power is arbitrary: maybe test other functions here - - - typename InputImageType::IndexType i,j; - i[0] = x+xx; i[1] = y+yy; i[2] = z+zz; - j[0] = x-xx; j[1] = y-yy; j[2] = z-zz; - float cost = weighting * ( centreval - - (float)faImage->GetPixel(i) - - (float)faImage->GetPixel(j)); - - if (cost>maxcost) - { - maxcost=cost; - vecX=xx; - vecY=yy; - vecZ=zz; - } - } - } - } - } - } - - VectorType vec; - vec[0] = vecX; vec[1] = vecY; vec[2]=vecZ; - m_DirectionImage->SetPixel(ix, vec); - - } - } - - mitk::ProgressBar::GetInstance()->Progress(); - - - // Smooth m_DirectionImage and store in directionSmoothed by finding the - // mode in a 3*3 neighbourhoud - VectorImageType::Pointer directionSmoothed = VectorImageType::New(); - directionSmoothed->SetRegions(faImage->GetRequestedRegion()); - directionSmoothed->SetDirection(faImage->GetDirection()); - directionSmoothed->SetSpacing(faImage->GetSpacing()); - directionSmoothed->SetOrigin(faImage->GetOrigin()); - directionSmoothed->Allocate(); - - VectorImageType::PixelType p; - p[0]=0; p[1]=0; p[2]=0; - directionSmoothed->FillBuffer(p); - - - - for(unsigned int z=1; zGetPixel(i); - xxx = v[0]; - yyy = v[1]; - zzz = v[2]; - - localsum[(1+zzz)*9+(1+yyy)*3+1+xxx]++; - localsum[(1-zzz)*9+(1-yyy)*3+1-xxx]++; - } - - for(int zz=-1; zz<=1; zz++) for(int yy=-1; yy<=1; yy++) for(int xx=-1; xx<=1; xx++) - { - if (localsum[(1+zz)*9+(1+yy)*3+1+xx]>localmax) - { - localmax=localsum[(1+zz)*9+(1+yy)*3+1+xx]; - VectorType v; - v[0] = xx; v[1] = yy; v[2] = zz; - directionSmoothed->SetPixel(ix, v); - } - } - - delete[] localsum; - - } - - m_DirectionImage = directionSmoothed; - - mitk::ProgressBar::GetInstance()->Progress(); - - // Do non-max-suppression in the direction of perp and set as output of the filter - typename OutputImageType::Pointer outputImg = OutputImageType::New(); - outputImg->SetRegions(faImage->GetRequestedRegion()); - outputImg->SetDirection(faImage->GetDirection()); - outputImg->SetSpacing(faImage->GetSpacing()); - outputImg->SetOrigin(faImage->GetOrigin()); - outputImg->Allocate(); - outputImg->FillBuffer(0.0); - - for(unsigned int z=1; zGetPixel(ix); - VectorType v = directionSmoothed->GetPixel(ix); - - typename VectorImageType::IndexType i; - - i[0] = x-v[0]; i[1] = y-v[1]; i[2] = z-v[2]; - float min = faImage->GetPixel(i); - - i[0] = x+v[0]; i[1] = y+v[1]; i[2] = z+v[2]; - float plus = faImage->GetPixel(i); - - i[0] = x-2*v[0]; i[1] = y-2*v[1]; i[2] = z-2*v[2]; - float minmin = faImage->GetPixel(i); - - i[0] = x+2*v[0]; i[1] = y+2*v[1]; i[2] = z+2*v[2]; - float plusplus = faImage->GetPixel(i); - - if( ((v[0]!=0) || (v[1]!=0) || (v[2]!=0)) && - theval >= plus && theval > min && theval >= plusplus && theval > minmin ) - { - outputImg->SetPixel(ix, theval); - } - - } - - - - Superclass::SetNthOutput( 0, outputImg ); - mitk::ProgressBar::GetInstance()->Progress(); - - } - - - - // Can provide a vector image to visualize the gradient image used in the search for local maxima. - template< class TInputImage, class TOutputImage > - itk::VectorImage::Pointer SkeletonizationFilter::GetGradientImage() - { - GradientImageType::Pointer gradImg = GradientImageType::New(); - - if(m_DirectionImage.IsNotNull()) - { - gradImg->SetSpacing(m_DirectionImage->GetSpacing()); - gradImg->SetOrigin(m_DirectionImage->GetOrigin()); - gradImg->SetDirection(m_DirectionImage->GetDirection()); - gradImg->SetRegions(m_DirectionImage->GetLargestPossibleRegion().GetSize()); - gradImg->SetVectorLength(3); - gradImg->Allocate(); - - - VectorImageType::SizeType size = m_DirectionImage->GetLargestPossibleRegion().GetSize(); - - for(std::size_t i=0; i ix; - ix[0] = i; - ix[1] = j; - ix[2] = k; - - VectorType vec = m_DirectionImage->GetPixel(ix); - - itk::VariableLengthVector pixel; - pixel.SetSize(3); - pixel.SetElement(0, vec.GetElement(0)); - pixel.SetElement(1, vec.GetElement(1)); - pixel.SetElement(2, vec.GetElement(2)); - - gradImg->SetPixel(ix, pixel); - - } - } - } - - } - - - - - return gradImg; - } - -} -#endif // _itkSkeletonizationFilter_txx diff --git a/Modules/DiffusionImaging/Quantification/Algorithms/mitkTractAnalyzer.cpp b/Modules/DiffusionImaging/Quantification/Algorithms/mitkTractAnalyzer.cpp deleted file mode 100644 index 7d0b7b9..0000000 --- a/Modules/DiffusionImaging/Quantification/Algorithms/mitkTractAnalyzer.cpp +++ /dev/null @@ -1,216 +0,0 @@ -/*=================================================================== - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center, -Division of Medical and Biological Informatics. -All rights reserved. - -This software is distributed WITHOUT ANY WARRANTY; without -even the implied warranty of MERCHANTABILITY or FITNESS FOR -A PARTICULAR PURPOSE. - -See LICENSE.txt or http://www.mitk.org for details. - -===================================================================*/ - -#ifndef __mitkTractAnalyzer_cpp -#define __mitkTractAnalyzer_cpp - - -#include -#include -#include - -#include - - -#include -#include - -#include -#include - -namespace mitk { - - TractAnalyzer::TractAnalyzer() { } - - - void TractAnalyzer::MakeRoi() - { - - m_CostSum = 0.0; - - int n = 0; - if(m_PointSetNode.IsNotNull()) - { - n = m_PointSetNode->GetSize(); - if(n==0) - { - mitkThrow() << "No points have been set yet."; - } - } - else{ - mitkThrow() << "No points have been set yet."; - } - - std::string pathDescription = ""; - std::vector< itk::Index<3> > totalPath; - - if(n>0) - { - for(int i=0; iProgress(); - - mitk::Point3D p = m_PointSetNode->GetPoint(i); - mitk::Point3D p2 = m_PointSetNode->GetPoint(i+1); - - - itk::Index<3> startPoint; - itk::Index<3> endPoint; - - m_InputImage->GetGeometry()->WorldToIndex(p,startPoint); - m_InputImage->GetGeometry()->WorldToIndex(p2,endPoint); - - MITK_INFO << "create roi"; - - std::vector< itk::Index<3> > path = CreateSegment(startPoint, endPoint); - - for(auto it = path.begin(); - it != path.end(); it++) - { - itk::Index<3> ix = *it; - - if (!(ix==endPoint)) - { - mitk::ProgressBar::GetInstance()->Progress(); - - totalPath.push_back(ix); - std::stringstream ss; - ss << ix[0] << " " << ix[1] << " " << ix[2] << "\n"; - pathDescription += ss.str(); - } - else - { - // Only when dealing with the last segment the last point should be added. This one will not occur - // as the first point of the next roi segment. - if(i == (n-2)) - { - totalPath.push_back(endPoint); - std::stringstream ss; - ss << endPoint[0] << " " << endPoint[1] << " " << endPoint[2] << "\n"; - pathDescription += ss.str(); - } - - } - - } - - } - - - // save pathDescription to m_PathDescription - m_PathDescription = pathDescription; - - FloatImageType::Pointer itkImg = FloatImageType::New(); - mitk::CastToItkImage(m_InputImage, itkImg); - - CharImageType::Pointer roiImg = CharImageType::New(); - roiImg->SetRegions(itkImg->GetLargestPossibleRegion().GetSize()); - roiImg->SetOrigin(itkImg->GetOrigin()); - roiImg->SetSpacing(itkImg->GetSpacing()); - roiImg->SetDirection(itkImg->GetDirection()); - roiImg->Allocate(); - roiImg->FillBuffer(0); - - - std::vector< itk::Index<3> > roi; - - std::vector< itk::Index<3> >::iterator it; - for(it = totalPath.begin(); - it != totalPath.end(); - it++) - { - itk::Index<3> ix = *it; - roiImg->SetPixel(ix, 1); - roi.push_back(ix); - } - - - m_TbssRoi = mitk::TbssRoiImage::New(); - - m_TbssRoi->SetRoi(roi); - - m_TbssRoi->SetImage(roiImg); - - m_TbssRoi->InitializeFromImage(); - - - - } - - - - } - - - - std::vector< itk::Index<3> > TractAnalyzer::CreateSegment(itk::Index<3> startPoint, itk::Index<3> endPoint) - { - - typedef itk::ShortestPathImageFilter ShortestPathFilterType; - typedef itk::ShortestPathCostFunctionTbss CostFunctionType; - - - FloatImageType::Pointer meanSkeleton; - - mitk::CastToItkImage(m_InputImage, meanSkeleton); - - // Only use the mitk image - - - - if(meanSkeleton) - { - CostFunctionType::Pointer costFunction = CostFunctionType::New(); - costFunction->SetImage(meanSkeleton); - costFunction->SetStartIndex(startPoint); - costFunction->SetEndIndex(endPoint); - costFunction->SetThreshold(m_Threshold); - - ShortestPathFilterType::Pointer pathFinder = ShortestPathFilterType::New(); - pathFinder->SetCostFunction(costFunction); - pathFinder->SetFullNeighborsMode(true); - pathFinder->SetGraph_fullNeighbors(true); - //pathFinder->SetCalcMode(ShortestPathFilterType::A_STAR); - pathFinder->SetInput(meanSkeleton); - pathFinder->SetStartIndex(startPoint); - pathFinder->SetEndIndex(endPoint); - pathFinder->Update(); - - double segmentCost = 0.0; - std::vector< itk::Index<3> > path = pathFinder->GetVectorPath(); - - for(unsigned int i=0; i ix1 = path[i]; - itk::Index<3> ix2 = path[i+1]; - - segmentCost += costFunction->GetCost(ix1, ix2); - } - - m_CostSum += segmentCost; - - - return pathFinder->GetVectorPath(); - - - } - return std::vector< itk::Index<3> >(); - } - - -} -#endif diff --git a/Modules/DiffusionImaging/Quantification/Algorithms/mitkTractAnalyzer.h b/Modules/DiffusionImaging/Quantification/Algorithms/mitkTractAnalyzer.h deleted file mode 100644 index 6abdbea..0000000 --- a/Modules/DiffusionImaging/Quantification/Algorithms/mitkTractAnalyzer.h +++ /dev/null @@ -1,155 +0,0 @@ -/*=================================================================== - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center, -Division of Medical and Biological Informatics. -All rights reserved. - -This software is distributed WITHOUT ANY WARRANTY; without -even the implied warranty of MERCHANTABILITY or FITNESS FOR -A PARTICULAR PURPOSE. - -See LICENSE.txt or http://www.mitk.org for details. - -===================================================================*/ - - -#ifndef __mitkTractAnalyzer_h_ -#define __mitkTractAnalyzer_h_ - -#include "MitkQuantificationExports.h" -#include -#include "mitkImage.h" -#include "mitkImageCast.h" - -#include -#include - - -namespace mitk{ -/** - * \brief Creates a region of interest for tract-specific analysis of existing TBSS data - * - * This class needs a 3D image, which is the mean FA skeleton as produced by the standard TBSS pipeline of FSL. - * How this dataset can be obtained can be found in the TBSS user manual: http://fsl.fmrib.ox.ac.uk/fsl/fsl4.0/tbss/index - * Furthermore, this class requires a user-defined point set defining the points through which the region of interest should pass. - * The output is a TBSS roi image, which is a binary images defining the roi and metadata containing indices - * that can be used for plotting graphs using the QmitkTbssRoiAnalysisWidget - */ - - -class MITKQUANTIFICATION_EXPORT TractAnalyzer -{ - -public: - - - TractAnalyzer(); - ~TractAnalyzer() {} - - - /** Image type definitions */ - typedef itk::Image CharImageType; - typedef itk::Image FloatImageType; - - - /** \brief Main method for region of interest calculation - * - * A region of interest is calculated adding the segments between the points on the ROI - * that was specified by the user. - */ - void MakeRoi(); - - - - /** \brief Returns the TbssRoiImage **/ - mitk::TbssRoiImage::Pointer GetRoiImage() - { - return m_TbssRoi; - } - - - /** \brief Sets the input image - * - * The region of interest is calculated on a 3D image. This is generally the mean FA skeleton as calculated - * in the standard TBSS pipeline (see http://fsl.fmrib.ox.ac.uk/fsl/fslwiki/TBSS). - */ - void SetInputImage(mitk::Image::Pointer inputImage) - { - m_InputImage = inputImage; - } - - - /** \brief Sets the user-defined point set - * - * Set the user-defined point sets. The region of interest must pass through these points. - */ - void SetPointSet(mitk::PointSet::Pointer pointSet) - { - m_PointSetNode = pointSet; - } - - - /** \brief Sets a lower bound for the threshold. - * - * Low fractional anisotropy values can indicate partial volume of non white matter tissue. - * This thresholds limits the search for a region of interest to voxels with a minimum value. - */ - void SetThreshold(double threshold) - { - m_Threshold = threshold; - } - - - - /** \brief Returns a string with the indices of points on the region of interest - * - * The region of interest calculated by the TractAnalyzer contains a list of ITK indices. - * This method returns a string containing these indices for display in the GUI - */ - std::string GetPathDescription() - { - return m_PathDescription; - } - - itkGetMacro(CostSum, double) - -protected: - - - - /** \brief Calculates a segment of the region of interest - * - * The region of interest is calculated on a 3D image. This is generally the mean FA skeleton as calculated - * in the standard TBSS pipeline (see http://fsl.fmrib.ox.ac.uk/fsl/fslwiki/TBSS). - */ - std::vector< itk::Index<3> > CreateSegment(itk::Index<3> startPoint, itk::Index<3> endPoint); - - - /** \brief Output TbssRoiImage */ - mitk::TbssRoiImage::Pointer m_TbssRoi; - - /** \brief Inputimage */ - mitk::Image::Pointer m_InputImage; - - /** \brief Threshold for ROI search */ - double m_Threshold; - - /** \brief User defined point set */ - mitk::PointSet::Pointer m_PointSetNode; - - /** \brief Path description in as string for display in GUI */ - std::string m_PathDescription; - - /** \brief Total cost of the path */ - double m_CostSum; - - -private: - -}; - -} - -#endif //__itkTractAnalyzer_h_ diff --git a/Modules/DiffusionImaging/Quantification/CMakeLists.txt b/Modules/DiffusionImaging/Quantification/CMakeLists.txt deleted file mode 100644 index 67367c3..0000000 --- a/Modules/DiffusionImaging/Quantification/CMakeLists.txt +++ /dev/null @@ -1,14 +0,0 @@ -# With apple gcc 4.2.1 the following waring leads to an build error if boost is enabled -if(APPLE) - mitkFunctionCheckCAndCXXCompilerFlags("-Wno-error=empty-body" CMAKE_C_FLAGS CMAKE_CXX_FLAGS) -endif() - -#DiffusionImaging/Quantification -MITK_CREATE_MODULE( - SUBPROJECTS MITK-Diffusion - INCLUDE_DIRS Algorithms IODataStructures IODataStructures/TbssImages Rendering ${CMAKE_CURRENT_BINARY_DIR} - DEPENDS MitkDiffusionCore MitkFiberTracking MitkGraphAlgorithms - PACKAGE_DEPENDS ITK|ITKThresholding -) - -add_subdirectory(Testing) diff --git a/Modules/DiffusionImaging/Quantification/IODataStructures/TbssImages/mitkNrrdTbssImageReader.cpp b/Modules/DiffusionImaging/Quantification/IODataStructures/TbssImages/mitkNrrdTbssImageReader.cpp deleted file mode 100644 index e276c48..0000000 --- a/Modules/DiffusionImaging/Quantification/IODataStructures/TbssImages/mitkNrrdTbssImageReader.cpp +++ /dev/null @@ -1,295 +0,0 @@ -/*=================================================================== - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center, -Division of Medical and Biological Informatics. -All rights reserved. - -This software is distributed WITHOUT ANY WARRANTY; without -even the implied warranty of MERCHANTABILITY or FITNESS FOR -A PARTICULAR PURPOSE. - -See LICENSE.txt or http://www.mitk.org for details. - -===================================================================*/ - -#ifndef __mitkNrrdTbssImageReader_cpp -#define __mitkNrrdTbssImageReader_cpp - -#include "mitkNrrdTbssImageReader.h" - -#include "itkImageFileReader.h" -#include "itkMetaDataObject.h" -#include "itkNrrdImageIO.h" -#include "itkNiftiImageIO.h" - -#include - -#include -#include - -#include "itksys/SystemTools.hxx" - - -namespace mitk -{ - void NrrdTbssImageReader - ::GenerateData() - { - - // Since everything is completely read in GenerateOutputInformation() it is stored - // in a cache variable. A timestamp is associated. - // If the timestamp of the cache variable is newer than the MTime, we only need to - // assign the cache variable to the DataObject. - // Otherwise, the tree must be read again from the file and OuputInformation must - // be updated! - if ( ( ! m_OutputCache ) || ( this->GetMTime( ) > m_CacheTime.GetMTime( ) ) ) - { - this->GenerateOutputInformation(); - itkWarningMacro("Cache regenerated!"); - } - - if (!m_OutputCache) - { - itkWarningMacro("Tree cache is empty!") - } - - - static_cast(this->GetPrimaryOutput()) - ->SetImage(m_OutputCache->GetImage()); - static_cast(this->GetPrimaryOutput()) - ->SetGroupInfo(m_OutputCache->GetGroupInfo()); - - static_cast(this->GetPrimaryOutput()) - ->InitializeFromVectorImage(); - - } - - void NrrdTbssImageReader - ::GenerateOutputInformation() - { - OutputType::Pointer outputForCache = OutputType::New(); - - if ( m_FileName == "") - { - throw itk::ImageFileReaderException(__FILE__, __LINE__, "Sorry, the filename to be read is empty!"); - } - else - { - try - { - const std::string& locale = "C"; - const std::string& currLocale = setlocale( LC_ALL, nullptr ); - - if ( locale.compare(currLocale)!=0 ) - { - try - { - MITK_INFO << " ** Changing locale from " << setlocale(LC_ALL, nullptr) << " to '" << locale << "'"; - setlocale(LC_ALL, locale.c_str()); - } - catch(...) - { - MITK_INFO << "Could not set locale " << locale; - } - } - - - MITK_INFO << "NrrdTbssImageReader READING IMAGE INFORMATION"; - ImageType::Pointer img; - - std::string ext = itksys::SystemTools::GetFilenameLastExtension(m_FileName); - ext = itksys::SystemTools::LowerCase(ext); - if (ext == ".tbss") - { - typedef itk::ImageFileReader FileReaderType; - FileReaderType::Pointer reader = FileReaderType::New(); - reader->SetFileName(this->m_FileName); - itk::NrrdImageIO::Pointer io = itk::NrrdImageIO::New(); - reader->SetImageIO(io); - - reader->Update(); - img = reader->GetOutput(); - - - MITK_INFO << "NrrdTbssImageReader READING HEADER INFORMATION"; - - - itk::MetaDataDictionary imgMetaDictionary = img->GetMetaDataDictionary(); - std::vector imgMetaKeys = imgMetaDictionary.GetKeys(); - std::vector::const_iterator itKey = imgMetaKeys.begin(); - std::string metaString; - - - - std::string measurementInfo; - - - std::vector< std::pair > groups; - - for (; itKey != imgMetaKeys.end(); itKey ++) - { - itk::ExposeMetaData (imgMetaDictionary, *itKey, metaString); - - MITK_INFO << *itKey << " ---> " << metaString; - - if (itKey->find("Group_index") != std::string::npos) - { - - std::vector tokens; - this->Tokenize(metaString, tokens, " "); - - - std::pair< std::string, int > p; - - p.first=""; - for (unsigned int i=0; ifind("Measurement info") != std::string::npos) - { - measurementInfo = metaString; - } - - - - - } - - - outputForCache->SetGroupInfo(groups); - outputForCache->SetMeasurementInfo(measurementInfo); - - - } - - - - // This call updates the output information of the associated VesselTreeData - outputForCache->SetImage(img); - - - // Since we have already read the tree, we can store it in a cache variable - // so that it can be assigned to the DataObject in GenerateData(); - m_OutputCache = outputForCache; - m_CacheTime.Modified(); - - try - { - MITK_INFO << " ** Changing locale back from " << setlocale(LC_ALL, nullptr) << " to '" << currLocale << "'"; - setlocale(LC_ALL, currLocale.c_str()); - } - catch(...) - { - MITK_INFO << "Could not reset locale " << currLocale; - } - } - catch(std::exception& e) - { - MITK_INFO << "Std::Exception while reading file!!"; - MITK_INFO << e.what(); - throw itk::ImageFileReaderException(__FILE__, __LINE__, e.what()); - } - catch(...) - { - MITK_INFO << "Exception while reading file!!"; - throw itk::ImageFileReaderException(__FILE__, __LINE__, "Sorry, an error occurred while reading the requested vessel tree file!"); - } - } - } - - - - const char* NrrdTbssImageReader - ::GetFileName() const - { - return m_FileName.c_str(); - } - - void NrrdTbssImageReader - ::SetFileName(const char* aFileName) - { - m_FileName = aFileName; - } - - const char* NrrdTbssImageReader - ::GetFilePrefix() const - { - return m_FilePrefix.c_str(); - } - - void NrrdTbssImageReader - ::SetFilePrefix(const char* aFilePrefix) - { - m_FilePrefix = aFilePrefix; - } - - const char* NrrdTbssImageReader - ::GetFilePattern() const - { - return m_FilePattern.c_str(); - } - - void NrrdTbssImageReader - ::SetFilePattern(const char* aFilePattern) - { - m_FilePattern = aFilePattern; - } - - bool NrrdTbssImageReader - ::CanReadFile(const std::string filename, const std::string filePrefix, const std::string filePattern) - { - - // First check the extension - if( filename == "" ) - return false; - - // check if image is serie - if( filePattern != "" && filePrefix != "" ) - return false; - - - std::string ext = itksys::SystemTools::GetFilenameLastExtension(filename); - ext = itksys::SystemTools::LowerCase(ext); - - if (ext == ".tbss") - { - itk::NrrdImageIO::Pointer io = itk::NrrdImageIO::New(); - - typedef itk::ImageFileReader FileReaderType; - FileReaderType::Pointer reader = FileReaderType::New(); - reader->SetImageIO(io); - reader->SetFileName(filename); - - try - { - reader->Update(); - } - catch(itk::ExceptionObject e) - { - MITK_INFO << e.GetDescription(); - return false; - } - - - return true; - } - return false; - } - -} //namespace MITK - -#endif diff --git a/Modules/DiffusionImaging/Quantification/IODataStructures/TbssImages/mitkNrrdTbssImageReader.h b/Modules/DiffusionImaging/Quantification/IODataStructures/TbssImages/mitkNrrdTbssImageReader.h deleted file mode 100644 index 8198306..0000000 --- a/Modules/DiffusionImaging/Quantification/IODataStructures/TbssImages/mitkNrrdTbssImageReader.h +++ /dev/null @@ -1,103 +0,0 @@ -/*=================================================================== - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center, -Division of Medical and Biological Informatics. -All rights reserved. - -This software is distributed WITHOUT ANY WARRANTY; without -even the implied warranty of MERCHANTABILITY or FITNESS FOR -A PARTICULAR PURPOSE. - -See LICENSE.txt or http://www.mitk.org for details. - -===================================================================*/ - -#ifndef __mitkNrrdTbssImageReader_h -#define __mitkNrrdTbssImageReader_h - -#include "mitkCommon.h" -#include "mitkFileReader.h" -#include "mitkTbssImageSource.h" -#include "itkImage.h" -#include "itkVectorImage.h" -#include "mitkTbssImage.h" - -namespace mitk -{ - - /** \brief - */ - - - class MITKQUANTIFICATION_EXPORT NrrdTbssImageReader : public mitk::TbssImageSource, public FileReader - { - public: - - typedef mitk::TbssImage OutputType; - typedef itk::VectorImage ImageType; - typedef TbssImageSource TbssVolSourceType; - - - - mitkClassMacro( NrrdTbssImageReader, TbssVolSourceType ) - itkFactorylessNewMacro(Self) - itkCloneMacro(Self) - - const char* GetFileName() const override; - void SetFileName(const char* aFileName) override; - const char* GetFilePrefix() const override; - void SetFilePrefix(const char* aFilePrefix) override; - const char* GetFilePattern() const override; - void SetFilePattern(const char* aFilePattern) override; - - static bool CanReadFile(const std::string filename, const std::string filePrefix, const std::string filePattern); - - protected: - - /** Does the real work. */ - void GenerateData() override; - void GenerateOutputInformation() override; - - - std::string m_FileName; - std::string m_FilePrefix; - std::string m_FilePattern; - - std::vector< std::pair > m_GroupInfo; - - OutputType::Pointer m_OutputCache; - itk::TimeStamp m_CacheTime; - - - void Tokenize(const std::string& str, - std::vector& tokens, - const std::string& delimiters = " ") - { - // Skip delimiters at beginning. - std::string::size_type lastPos = str.find_first_not_of(delimiters, 0); - // Find first "non-delimiter". - std::string::size_type pos = str.find_first_of(delimiters, lastPos); - - while (std::string::npos != pos || std::string::npos != lastPos) - { - // Found a token, add it to the vector. - tokens.push_back(str.substr(lastPos, pos - lastPos)); - // Skip delimiters. Note the "not_of" - lastPos = str.find_first_not_of(delimiters, pos); - // Find next "non-delimiter" - pos = str.find_first_of(delimiters, lastPos); - } - } - - - - private: - void operator=(const Self&); //purposely not implemented - }; - -} //namespace MITK - - -#endif // __mitkNrrdTbssImageReader_h diff --git a/Modules/DiffusionImaging/Quantification/IODataStructures/TbssImages/mitkNrrdTbssImageWriter.cpp b/Modules/DiffusionImaging/Quantification/IODataStructures/TbssImages/mitkNrrdTbssImageWriter.cpp deleted file mode 100644 index 0396e6a..0000000 --- a/Modules/DiffusionImaging/Quantification/IODataStructures/TbssImages/mitkNrrdTbssImageWriter.cpp +++ /dev/null @@ -1,165 +0,0 @@ -/*=================================================================== - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center, -Division of Medical and Biological Informatics. -All rights reserved. - -This software is distributed WITHOUT ANY WARRANTY; without -even the implied warranty of MERCHANTABILITY or FITNESS FOR -A PARTICULAR PURPOSE. - -See LICENSE.txt or http://www.mitk.org for details. - -===================================================================*/ - -#ifndef __mitkNrrdTbssImageWriter__cpp -#define __mitkNrrdTbssImageWriter__cpp - -#include "mitkNrrdTbssImageWriter.h" -#include "itkMetaDataDictionary.h" -#include "itkMetaDataObject.h" -#include "itkNrrdImageIO.h" -//#include "itkNiftiImageIO.h" -#include "itkImageFileWriter.h" -#include "itksys/SystemTools.hxx" -#include "mitkLexicalCast.h" - -#include -#include - - -mitk::NrrdTbssImageWriter::NrrdTbssImageWriter() - : m_FileName(""), m_FilePrefix(""), m_FilePattern(""), m_Success(false) -{ - this->SetNumberOfRequiredInputs( 1 ); -} - -mitk::NrrdTbssImageWriter::~NrrdTbssImageWriter() -{} - - -void mitk::NrrdTbssImageWriter::GenerateData() -{ - m_Success = false; - InputType* input = this->GetInput(); - if (input == nullptr) - { - itkWarningMacro(<<"Sorry, input to NrrdTbssImageWriter is nullptr!"); - return; - } - if ( m_FileName == "" ) - { - itkWarningMacro( << "Sorry, filename has not been set!" ); - return ; - } - - - - itk::VectorImage::Pointer img = input->GetImage(); - - - - - std::string key; - std::string val; - - - /* For the case of a tbss image containing data of the patients: - Save info about the groups and the type of measurement */ - - - - - std::vector< std::pair > groups = input->GetGroupInfo(); - auto it = groups.begin(); - - int i=0; - while(it != groups.end()) - { - std::pair p = *it; - - key = "Group_index_" + boost::lexical_cast(i); - val = " " + p.first + " " + boost::lexical_cast(p.second); - //sprintf( keybuffer, "Group_index_%04d", std::string(i) ); - // sprintf( valbuffer, "%1d %1d", p.first, p.second); - - //std::cout << valbuffer << std::endl; - - //itk::EncapsulateMetaData< std::string >(input->GetImage()->GetMetaDataDictionary(),std::string(keybuffer),std::string(valbuffer)); - itk::EncapsulateMetaData< std::string >(input->GetImage()->GetMetaDataDictionary(),key,val); - it++; - ++i; - } - - key = "Measurement info"; - val = input->GetMeasurementInfo(); - itk::EncapsulateMetaData< std::string >(input->GetImage()->GetMetaDataDictionary(),key,val); - - - - - - typedef itk::VectorImage ImageType; - - itk::NrrdImageIO::Pointer io = itk::NrrdImageIO::New(); - io->SetFileType( itk::ImageIOBase::Binary ); - io->UseCompressionOn(); - - - typedef itk::ImageFileWriter WriterType; - WriterType::Pointer nrrdWriter = WriterType::New(); - nrrdWriter->UseInputMetaDataDictionaryOn(); - nrrdWriter->SetInput( img ); - nrrdWriter->SetImageIO(io); - nrrdWriter->SetFileName(m_FileName); - nrrdWriter->UseCompressionOn(); - nrrdWriter->SetImageIO(io); - try - { - nrrdWriter->Update(); - } - catch (const itk::ExceptionObject& e) - { - std::cout << e.GetDescription() << std::endl; - } - - m_Success = true; -} - - - - -void mitk::NrrdTbssImageWriter::SetInput( InputType* tbssVol ) -{ - this->ProcessObject::SetNthInput( 0, tbssVol ); -} - - -mitk::TbssImage* mitk::NrrdTbssImageWriter::GetInput() -{ - if ( this->GetNumberOfInputs() < 1 ) - { - return nullptr; - } - else - { - return dynamic_cast ( this->ProcessObject::GetInput( 0 ) ); - } -} - - -std::vector mitk::NrrdTbssImageWriter::GetPossibleFileExtensions() -{ - std::vector possibleFileExtensions; - possibleFileExtensions.push_back(".tbss"); - return possibleFileExtensions; -} - -std::string mitk::NrrdTbssImageWriter::GetSupportedBaseData() const -{ - return TbssImage::GetStaticNameOfClass(); -} - -#endif //__mitkNrrdTbssImageWriter__cpp diff --git a/Modules/DiffusionImaging/Quantification/IODataStructures/TbssImages/mitkNrrdTbssImageWriter.h b/Modules/DiffusionImaging/Quantification/IODataStructures/TbssImages/mitkNrrdTbssImageWriter.h deleted file mode 100644 index fb5e950..0000000 --- a/Modules/DiffusionImaging/Quantification/IODataStructures/TbssImages/mitkNrrdTbssImageWriter.h +++ /dev/null @@ -1,143 +0,0 @@ -/*=================================================================== - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center, -Division of Medical and Biological Informatics. -All rights reserved. - -This software is distributed WITHOUT ANY WARRANTY; without -even the implied warranty of MERCHANTABILITY or FITNESS FOR -A PARTICULAR PURPOSE. - -See LICENSE.txt or http://www.mitk.org for details. - -===================================================================*/ - -#ifndef _MITK_NRRDTBSSVOL_WRITER__H_ -#define _MITK_NRRDTBSSVOL_WRITER__H_ - -#include -#include -#include -#include "MitkQuantificationExports.h" - -namespace mitk -{ - -/** - * Writes diffusion volumes to a file - * @ingroup Process - */ - -class MITKQUANTIFICATION_EXPORT NrrdTbssImageWriter : public mitk::FileWriterWithInformation -{ -public: - - mitkClassMacro( NrrdTbssImageWriter, mitk::FileWriterWithInformation ) - - mitkWriterMacro - - itkFactorylessNewMacro(Self) - itkCloneMacro(Self) - - typedef mitk::TbssImage InputType; - - /** - * Sets the filename of the file to write. - * @param FileName the nameInputType of the file to write. - */ - itkSetStringMacro( FileName ) - - /** - * @returns the name of the file to be written to disk. - */ - itkGetStringMacro( FileName ) - - /** - * @warning multiple write not (yet) supported - */ - itkSetStringMacro( FilePrefix ) - - /** - * @warning multiple write not (yet) supported - */ - itkGetStringMacro( FilePrefix ) - - /** - * @warning multiple write not (yet) supported - */ - itkSetStringMacro( FilePattern ) - - /** - * @warning multiple write not (yet) supported - */ - itkGetStringMacro( FilePattern ) - - /**image - * Sets the input object for the filter. - * @param input the diffusion volumes to write to file. - */ - using ProcessObject::SetInput; - void SetInput( InputType* input ); - /**itk::VectorImage - * @returns the 0'th input object of the filter. - */ - InputType* GetInput(); - - /** - * Returns false if an error happened during writing - */ - itkGetMacro( Success, bool ) - - /** - * @return possible file extensions for the data type associated with the writer - */ - std::vector GetPossibleFileExtensions() override; - - std::string GetSupportedBaseData() const override; - - // FileWriterWithInformation methods - const char * GetDefaultFilename() override { return "TbssImage.tbss"; } - const char * GetFileDialogPattern() override { return "Tbss Images (*.tbss)"; } - const char * GetDefaultExtension() override { return ".tbss"; } - bool CanWriteBaseDataType(BaseData::Pointer data) override - { - return (dynamic_cast(data.GetPointer()) != nullptr); - } - - - void DoWrite(BaseData::Pointer data) override { - if (CanWriteBaseDataType(data)) { - this->SetInput(dynamic_cast(data.GetPointer())); - this->Update(); - } - } - -protected: - - NrrdTbssImageWriter(); - - ~NrrdTbssImageWriter() override; - - void GenerateData() override; - - std::string m_FileName; - - std::string m_FilePrefix; - - std::string m_FilePattern; - - bool m_Success; - - - - -}; - - -} // end of namespace mitk - - - -#endif diff --git a/Modules/DiffusionImaging/Quantification/IODataStructures/TbssImages/mitkNrrdTbssRoiImageReader.cpp b/Modules/DiffusionImaging/Quantification/IODataStructures/TbssImages/mitkNrrdTbssRoiImageReader.cpp deleted file mode 100644 index f3ee7f3..0000000 --- a/Modules/DiffusionImaging/Quantification/IODataStructures/TbssImages/mitkNrrdTbssRoiImageReader.cpp +++ /dev/null @@ -1,356 +0,0 @@ -/*=================================================================== - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center, -Division of Medical and Biological Informatics. -All rights reserved. - -This software is distributed WITHOUT ANY WARRANTY; without -even the implied warranty of MERCHANTABILITY or FITNESS FOR -A PARTICULAR PURPOSE. - -See LICENSE.txt or http://www.mitk.org for details. - -===================================================================*/ - -#ifndef __mitkNrrdTbssRoiReader_cpp -#define __mitkNrrdTbssRoiReader_cpp - -#include "mitkNrrdTbssRoiImageReader.h" - -#include "itkImageFileReader.h" -#include "itkMetaDataObject.h" -#include "itkNrrdImageIO.h" -#include "itkNiftiImageIO.h" - -#include - -#include -#include - -#include "itksys/SystemTools.hxx" - -namespace mitk -{ - - - void NrrdTbssRoiImageReader - ::GenerateData() - { - - try - { - - // Change locale if needed - const std::string& locale = "C"; - const std::string& currLocale = setlocale( LC_ALL, nullptr ); - - if ( locale.compare(currLocale)!=0 ) - { - try - { - MITK_INFO << " ** Changing locale from " << setlocale(LC_ALL, nullptr) << " to '" << locale << "'"; - setlocale(LC_ALL, locale.c_str()); - } - catch(...) - { - MITK_INFO << "Could not set locale " << locale; - } - } - - - - // READ IMAGE INFORMATION - const unsigned int MINDIM = 3; - const unsigned int MAXDIM = 4; - - MITK_INFO << "loading " << m_FileName << " via mitk::NrrdTbssImageReader... " << std::endl; - - // Check to see if we can read the file given the name or prefix - if ( m_FileName == "" ) - { - itkWarningMacro( << "Filename is empty!" ) - return; - } - - itk::NrrdImageIO::Pointer imageIO = itk::NrrdImageIO::New(); - imageIO->SetFileName( m_FileName.c_str() ); - imageIO->ReadImageInformation(); - - unsigned int ndim = imageIO->GetNumberOfDimensions(); - - if ( ndim < MINDIM || ndim > MAXDIM ) - { - itkWarningMacro( << "Sorry, only dimensions 3 is supported. The given file has " << ndim << " dimensions!" ) - return; - } - - - itk::ImageIORegion ioRegion( ndim ); - itk::ImageIORegion::SizeType ioSize = ioRegion.GetSize(); - itk::ImageIORegion::IndexType ioStart = ioRegion.GetIndex(); - - unsigned int dimensions[ MAXDIM ]; - dimensions[ 0 ] = 0; - dimensions[ 1 ] = 0; - dimensions[ 2 ] = 0; - dimensions[ 3 ] = 0; - - ScalarType spacing[ MAXDIM ]; - spacing[ 0 ] = 1.0f; - spacing[ 1 ] = 1.0f; - spacing[ 2 ] = 1.0f; - spacing[ 3 ] = 1.0f; - - - Point3D origin; - origin.Fill(0); - - unsigned int i; - for ( i = 0; i < ndim ; ++i ) - { - ioStart[ i ] = 0; - ioSize[ i ] = imageIO->GetDimensions( i ); - if(iGetDimensions( i ); - spacing[ i ] = imageIO->GetSpacing( i ); - if(spacing[ i ] <= 0) - spacing[ i ] = 1.0f; - } - if(i<3) - { - origin[ i ] = imageIO->GetOrigin( i ); - } - } - - ioRegion.SetSize( ioSize ); - ioRegion.SetIndex( ioStart ); - - MITK_INFO << "ioRegion: " << ioRegion << std::endl; - imageIO->SetIORegion( ioRegion ); - void* buffer = new unsigned char[imageIO->GetImageSizeInBytes()]; - imageIO->Read( buffer ); - //mitk::Image::Pointer static_cast(this->GetOutput())image = mitk::Image::New(); - if((ndim==4) && (dimensions[3]<=1)) - ndim = 3; - if((ndim==3) && (dimensions[2]<=1)) - ndim = 2; - - static_cast(this->GetPrimaryOutput())->Initialize( MakePixelType(imageIO), ndim, dimensions ); - static_cast(this->GetPrimaryOutput())->SetImportChannel( buffer, 0, Image::ManageMemory ); - - // access direction of itk::Image and include spacing - mitk::Matrix3D matrix; - matrix.SetIdentity(); - unsigned int j, itkDimMax3 = (ndim >= 3? 3 : ndim); - for ( i=0; i < itkDimMax3; ++i) - for( j=0; j < itkDimMax3; ++j ) - matrix[i][j] = imageIO->GetDirection(j)[i]; - - // re-initialize PlaneGeometry with origin and direction - PlaneGeometry* planeGeometry = static_cast - (static_cast - (this->GetPrimaryOutput())->GetSlicedGeometry(0)->GetPlaneGeometry(0)); - planeGeometry->SetOrigin(origin); - planeGeometry->GetIndexToWorldTransform()->SetMatrix(matrix); - - // re-initialize SlicedGeometry3D - SlicedGeometry3D* slicedGeometry = static_cast(this->GetPrimaryOutput())->GetSlicedGeometry(0); - slicedGeometry->InitializeEvenlySpaced(planeGeometry, static_cast(this->GetPrimaryOutput())->GetDimension(2)); - slicedGeometry->SetSpacing(spacing); - - // re-initialize TimeGeometry - dynamic_cast(static_cast(this->GetPrimaryOutput())->GetTimeGeometry())->Initialize(slicedGeometry, static_cast(this->GetOutput(0))->GetDimension(3)); - - buffer = nullptr; - MITK_INFO << "number of image components: "<< static_cast(this->GetPrimaryOutput())->GetPixelType().GetNumberOfComponents() << std::endl; - - - - // READ TBSS HEADER INFORMATION - ImageType::Pointer img; - - std::string ext = itksys::SystemTools::GetFilenameLastExtension(m_FileName); - ext = itksys::SystemTools::LowerCase(ext); - if (ext == ".roi") - { - typedef itk::ImageFileReader FileReaderType; - FileReaderType::Pointer reader = FileReaderType::New(); - reader->SetFileName(this->m_FileName); - - reader->SetImageIO(imageIO); - reader->Update(); - - img = reader->GetOutput(); - - static_cast(this->GetPrimaryOutput())->SetImage(img); - - itk::MetaDataDictionary imgMetaDictionary = img->GetMetaDataDictionary(); - ReadRoiInfo(imgMetaDictionary); - - - - } - - - // RESET LOCALE - try - { - MITK_INFO << " ** Changing locale back from " << setlocale(LC_ALL, nullptr) << " to '" << currLocale << "'"; - setlocale(LC_ALL, currLocale.c_str()); - } - catch(...) - { - MITK_INFO << "Could not reset locale " << currLocale; - } - - MITK_INFO << "...finished!" << std::endl; - - } - catch(std::exception& e) - { - MITK_INFO << "Std::Exception while reading file!!"; - MITK_INFO << e.what(); - throw itk::ImageFileReaderException(__FILE__, __LINE__, e.what()); - } - catch(...) - { - MITK_INFO << "Exception while reading file!!"; - throw itk::ImageFileReaderException(__FILE__, __LINE__, "Sorry, an error occurred while reading the requested vessel tree file!"); - } - - - } - - - - void NrrdTbssRoiImageReader - ::ReadRoiInfo(itk::MetaDataDictionary dict) - { - std::vector imgMetaKeys = dict.GetKeys(); - std::vector::const_iterator itKey = imgMetaKeys.begin(); - std::string metaString; - std::vector< itk::Index<3> > roi; - - for (; itKey != imgMetaKeys.end(); itKey ++) - { - double x,y,z; - itk::Index<3> ix; - itk::ExposeMetaData (dict, *itKey, metaString); - - if (itKey->find("ROI_index") != std::string::npos) - { - MITK_INFO << *itKey << " ---> " << metaString; - sscanf(metaString.c_str(), "%lf %lf %lf\n", &x, &y, &z); - ix[0] = x; ix[1] = y; ix[2] = z; - roi.push_back(ix); - } - else if(itKey->find("preprocessed FA") != std::string::npos) - { - MITK_INFO << *itKey << " ---> " << metaString; - static_cast(this->GetPrimaryOutput())->SetPreprocessedFA(true); - static_cast(this->GetPrimaryOutput())->SetPreprocessedFAFile(metaString); - } - - // Name of structure - if (itKey->find("structure") != std::string::npos) - { - MITK_INFO << *itKey << " ---> " << metaString; - static_cast(this->GetPrimaryOutput())->SetStructure(metaString); - } - } - static_cast(this->GetPrimaryOutput())->SetRoi(roi); - - } - - - const char* NrrdTbssRoiImageReader - ::GetFileName() const - { - return m_FileName.c_str(); - } - - - void NrrdTbssRoiImageReader - ::SetFileName(const char* aFileName) - { - m_FileName = aFileName; - } - - - const char* NrrdTbssRoiImageReader - ::GetFilePrefix() const - { - return m_FilePrefix.c_str(); - } - - - void NrrdTbssRoiImageReader - ::SetFilePrefix(const char* aFilePrefix) - { - m_FilePrefix = aFilePrefix; - } - - - const char* NrrdTbssRoiImageReader - ::GetFilePattern() const - { - return m_FilePattern.c_str(); - } - - - void NrrdTbssRoiImageReader - ::SetFilePattern(const char* aFilePattern) - { - m_FilePattern = aFilePattern; - } - - - bool NrrdTbssRoiImageReader - ::CanReadFile(const std::string filename, const std::string filePrefix, const std::string filePattern) - { - - // First check the extension - if( filename == "" ) - return false; - - // check if image is serie - if( filePattern != "" && filePrefix != "" ) - return false; - - - std::string ext = itksys::SystemTools::GetFilenameLastExtension(filename); - ext = itksys::SystemTools::LowerCase(ext); - - if (ext == ".roi") - { - itk::NrrdImageIO::Pointer io = itk::NrrdImageIO::New(); - - typedef itk::ImageFileReader FileReaderType; - FileReaderType::Pointer reader = FileReaderType::New(); - reader->SetImageIO(io); - reader->SetFileName(filename); - - try - { - reader->Update(); - } - catch(itk::ExceptionObject e) - { - MITK_INFO << e.GetDescription(); - return false; - } - - return true; - - - } - - return false; - } - -} //namespace MITK - -#endif diff --git a/Modules/DiffusionImaging/Quantification/IODataStructures/TbssImages/mitkNrrdTbssRoiImageReader.h b/Modules/DiffusionImaging/Quantification/IODataStructures/TbssImages/mitkNrrdTbssRoiImageReader.h deleted file mode 100644 index d2705dd..0000000 --- a/Modules/DiffusionImaging/Quantification/IODataStructures/TbssImages/mitkNrrdTbssRoiImageReader.h +++ /dev/null @@ -1,80 +0,0 @@ -/*=================================================================== - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center, -Division of Medical and Biological Informatics. -All rights reserved. - -This software is distributed WITHOUT ANY WARRANTY; without -even the implied warranty of MERCHANTABILITY or FITNESS FOR -A PARTICULAR PURPOSE. - -See LICENSE.txt or http://www.mitk.org for details. - -===================================================================*/ - -#ifndef __mitkNrrdTbssRoiImageReader_h -#define __mitkNrrdTbssRoiImageReader_h - -#include "mitkCommon.h" -#include "mitkFileReader.h" -#include "mitkTbssRoiImageSource.h" -#include "itkImage.h" -#include "mitkTbssRoiImage.h" - -namespace mitk -{ - - /** \brief - */ - - - class MITKQUANTIFICATION_EXPORT NrrdTbssRoiImageReader : public mitk::TbssRoiImageSource, public FileReader - { - public: - - typedef mitk::TbssRoiImage OutputType; - typedef itk::Image ImageType; - typedef TbssRoiImageSource TbssVolSourceType; - - - - mitkClassMacro( NrrdTbssRoiImageReader, TbssVolSourceType ) - itkFactorylessNewMacro(Self) - itkCloneMacro(Self) - - const char* GetFileName() const override; - void SetFileName(const char* aFileName) override; - const char* GetFilePrefix() const override; - void SetFilePrefix(const char* aFilePrefix) override; - const char* GetFilePattern() const override; - void SetFilePattern(const char* aFilePattern) override; - - static bool CanReadFile(const std::string filename, const std::string filePrefix, const std::string filePattern); - - protected: - - /** Does the real work. */ - void GenerateData() override; - - void ReadRoiInfo(itk::MetaDataDictionary dict); - - std::string m_FileName; - std::string m_FilePrefix; - std::string m_FilePattern; - - OutputType::Pointer m_OutputCache; - itk::TimeStamp m_CacheTime; - - - - private: - void operator=(const Self&); //purposely not implemented - }; - -} //namespace MITK - -//#include "mitkNrrdTbssRoiImageReader.cpp" - -#endif // __mitkNrrdTbssImageReader_h diff --git a/Modules/DiffusionImaging/Quantification/IODataStructures/TbssImages/mitkNrrdTbssRoiImageWriter.cpp b/Modules/DiffusionImaging/Quantification/IODataStructures/TbssImages/mitkNrrdTbssRoiImageWriter.cpp deleted file mode 100644 index 51ca992..0000000 --- a/Modules/DiffusionImaging/Quantification/IODataStructures/TbssImages/mitkNrrdTbssRoiImageWriter.cpp +++ /dev/null @@ -1,147 +0,0 @@ -/*=================================================================== - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center, -Division of Medical and Biological Informatics. -All rights reserved. - -This software is distributed WITHOUT ANY WARRANTY; without -even the implied warranty of MERCHANTABILITY or FITNESS FOR -A PARTICULAR PURPOSE. - -See LICENSE.txt or http://www.mitk.org for details. - -===================================================================*/ - -#ifndef __mitkNrrdTbssRoiImageWriter__cpp -#define __mitkNrrdTbssRoiImageWriter__cpp - -#include "mitkNrrdTbssRoiImageWriter.h" -#include "itkMetaDataDictionary.h" -#include "itkMetaDataObject.h" -#include "itkNrrdImageIO.h" -//#include "itkNiftiImageIO.h" -#include "itkImageFileWriter.h" -#include "itksys/SystemTools.hxx" - -#include -#include - - -mitk::NrrdTbssRoiImageWriter::NrrdTbssRoiImageWriter() - : m_FileName(""), m_FilePrefix(""), m_FilePattern(""), m_Success(false) -{ - this->SetNumberOfRequiredInputs( 1 ); -} - - -mitk::NrrdTbssRoiImageWriter::~NrrdTbssRoiImageWriter() -{} - -void mitk::NrrdTbssRoiImageWriter::GenerateData() -{ - m_Success = false; - InputType* input = this->GetInput(); - - if (input == nullptr) - { - itkWarningMacro(<<"Sorry, input to NrrdTbssImageWriter is nullptr!") - return; - } - if ( m_FileName == "" ) - { - itkWarningMacro( << "Sorry, filename has not been set!" ) - return ; - } - - - char keybuffer[512]; - std::stringstream valbuffer; - - std::vector< itk::Index<3> > roi = input->GetRoi(); - - auto it = roi.begin(); - - int i=0; - while(it != roi.end()) - { - itk::Index<3> ix = *it; - - sprintf( keybuffer, "ROI_index_%04d", i ); - valbuffer << ix[0] << " " << ix[1] << " " << ix[2]; - - std::cout << valbuffer.str() << std::endl; - - //input->GetImage()->GetMetaDataDictionary(); - - itk::EncapsulateMetaData< std::string >(input->GetImage()->GetMetaDataDictionary(), std::string(keybuffer), valbuffer.str()); - - it++; - ++i; - } - - std::string structure = input->GetStructure(); - itk::EncapsulateMetaData< std::string >(input->GetImage()->GetMetaDataDictionary(), "structure", structure); - - typedef itk::Image ImageType; - ImageType::Pointer img = input->GetImage(); - - itk::NrrdImageIO::Pointer io = itk::NrrdImageIO::New(); - io->SetFileType( itk::ImageIOBase::Binary ); - io->UseCompressionOn(); - - - typedef itk::ImageFileWriter WriterType; - WriterType::Pointer nrrdWriter = WriterType::New(); - nrrdWriter->UseInputMetaDataDictionaryOn(); - nrrdWriter->SetInput( img ); - nrrdWriter->SetImageIO(io); - nrrdWriter->SetFileName(m_FileName); - // nrrdWriter->UseCompressionOn(); - nrrdWriter->SetImageIO(io); - try - { - nrrdWriter->Update(); - } - catch (const itk::ExceptionObject& e) - { - std::cout << e.GetDescription() << std::endl; - } - - m_Success = true; -} - - -void mitk::NrrdTbssRoiImageWriter::SetInput( InputType* tbssVol ) -{ - this->ProcessObject::SetNthInput( 0, tbssVol ); -} - - -mitk::TbssRoiImage* mitk::NrrdTbssRoiImageWriter::GetInput() -{ - if ( this->GetNumberOfInputs() < 1 ) - { - return nullptr; - } - else - { - return dynamic_cast ( this->ProcessObject::GetInput( 0 ) ); - } -} - - -std::vector mitk::NrrdTbssRoiImageWriter::GetPossibleFileExtensions() -{ - std::vector possibleFileExtensions; - possibleFileExtensions.push_back(".roi"); - return possibleFileExtensions; -} - -std::string mitk::NrrdTbssRoiImageWriter::GetSupportedBaseData() const -{ - return TbssRoiImage::GetStaticNameOfClass(); -} - -#endif //__mitkNrrdTbssRoiImageWriter__cpp diff --git a/Modules/DiffusionImaging/Quantification/IODataStructures/TbssImages/mitkNrrdTbssRoiImageWriter.h b/Modules/DiffusionImaging/Quantification/IODataStructures/TbssImages/mitkNrrdTbssRoiImageWriter.h deleted file mode 100644 index f879e00..0000000 --- a/Modules/DiffusionImaging/Quantification/IODataStructures/TbssImages/mitkNrrdTbssRoiImageWriter.h +++ /dev/null @@ -1,141 +0,0 @@ -/*=================================================================== - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center, -Division of Medical and Biological Informatics. -All rights reserved. - -This software is distributed WITHOUT ANY WARRANTY; without -even the implied warranty of MERCHANTABILITY or FITNESS FOR -A PARTICULAR PURPOSE. - -See LICENSE.txt or http://www.mitk.org for details. - -===================================================================*/ - -#ifndef _MITK_NRRDTBSSROIVOL_WRITER__H_ -#define _MITK_NRRDTBSSROIVOL_WRITER__H_ - -#include -#include -#include -#include "MitkQuantificationExports.h" - -namespace mitk -{ - -/** - * Writes diffusion volumes to a file - * @ingroup Process - */ - -class MITKQUANTIFICATION_EXPORT NrrdTbssRoiImageWriter : public mitk::FileWriterWithInformation -{ -public: - - typedef itk::Image ImageType; - - mitkClassMacro( NrrdTbssRoiImageWriter, mitk::FileWriterWithInformation ) - - mitkWriterMacro - - itkFactorylessNewMacro(Self) - itkCloneMacro(Self) - - typedef mitk::TbssRoiImage InputType; - - /** - * Sets the filename of the file to write. - * @param FileName the nameInputType of the file to write. - */ - itkSetStringMacro( FileName ); - - /** - * @returns the name of the file to be written to disk. - */ - itkGetStringMacro( FileName ); - - /** - * @warning multiple write not (yet) supported - */ - itkSetStringMacro( FilePrefix ); - - /** - * @warning multiple write not (yet) supported - */ - itkGetStringMacro( FilePrefix ); - - /** - * @warning multiple write not (yet) supported - */ - itkSetStringMacro( FilePattern ); - - /** - * @warning multiple write not (yet) supported - */ - itkGetStringMacro( FilePattern ); - - /**image - * Sets the input object for the filter. - * @param input the diffusion volumes to write to file. - */ - using ProcessObject::SetInput; - void SetInput( InputType* input ); - - /** - * @returns the 0'th input object of the filter. - */ - InputType* GetInput(); - - /** - * Returns false if an error happened during writing - */ - itkGetMacro( Success, bool ); - - /** - * @return possible file extensions for the data type associated with the writer - */ - std::vector GetPossibleFileExtensions() override; - - std::string GetSupportedBaseData() const override; - - // FileWriterWithInformation methods - const char * GetDefaultFilename() override { return "TbssRoiImage.roi"; } - const char * GetFileDialogPattern() override { return "Tbss Roi Images (*.roi)"; } - const char * GetDefaultExtension() override { return ".roi"; } - bool CanWriteBaseDataType(BaseData::Pointer data) override - { - return (dynamic_cast(data.GetPointer()) != nullptr); - } - - - void DoWrite(BaseData::Pointer data) override { - if (CanWriteBaseDataType(data)) { - this->SetInput(dynamic_cast(data.GetPointer())); - this->Update(); - } - } - -protected: - - NrrdTbssRoiImageWriter(); - - ~NrrdTbssRoiImageWriter() override; - - void GenerateData() override; - - std::string m_FileName; - - std::string m_FilePrefix; - - std::string m_FilePattern; - - bool m_Success; - -}; - - -} // end of namespace mitk - -#endif diff --git a/Modules/DiffusionImaging/Quantification/IODataStructures/TbssImages/mitkTbssImage.cpp b/Modules/DiffusionImaging/Quantification/IODataStructures/TbssImages/mitkTbssImage.cpp deleted file mode 100644 index 30a2d31..0000000 --- a/Modules/DiffusionImaging/Quantification/IODataStructures/TbssImages/mitkTbssImage.cpp +++ /dev/null @@ -1,114 +0,0 @@ -/*=================================================================== - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center, -Division of Medical and Biological Informatics. -All rights reserved. - -This software is distributed WITHOUT ANY WARRANTY; without -even the implied warranty of MERCHANTABILITY or FITNESS FOR -A PARTICULAR PURPOSE. - -See LICENSE.txt or http://www.mitk.org for details. - -===================================================================*/ - -#ifndef __mitkTbssImage__cpp -#define __mitkTbssImage__cpp - - -#include "mitkTbssImage.h" -#include "itkImageRegionIterator.h" -#include "itkImageRegionConstIterator.h" -#include "mitkImageCast.h" - - - - -mitk::TbssImage::TbssImage() -{ - -} - - -void mitk::TbssImage::InitializeFromVectorImage() -{ - if(!m_Image) - { - MITK_INFO << "TBSS Image could not be initialized. Set all members first!" << std::endl; - return; - } - - - typedef itk::Image ImgType; - ImgType::Pointer img = ImgType::New(); - img->SetSpacing( m_Image->GetSpacing() ); // Set the image spacing - img->SetOrigin( m_Image->GetOrigin() ); // Set the image origin - img->SetDirection( m_Image->GetDirection() ); // Set the image direction - img->SetLargestPossibleRegion( m_Image->GetLargestPossibleRegion()); - img->SetBufferedRegion( m_Image->GetLargestPossibleRegion() ); - img->Allocate(); - - int vecLength = m_Image->GetVectorLength(); - InitializeByItk( img.GetPointer(), 1, vecLength ); - - //for(int i=0; i itw (img, img->GetLargestPossibleRegion() ); - itw.GoToBegin(); - - itk::ImageRegionConstIterator itr (m_Image, m_Image->GetLargestPossibleRegion() ); - itr.GoToBegin(); - - while(!itr.IsAtEnd()) - { - itw.Set(itr.Get().GetElement(0)); - ++itr; - ++itw; - } - - // init - SetImportVolume(img->GetBufferPointer());//, 0, 0, CopyMemory); - //SetVolume( img->GetBufferPointer(), i ); - //}:: - - m_DisplayIndex = 0; - MITK_INFO << "Tbss-Image successfully initialized."; - -} - -void mitk::TbssImage::SetDisplayIndexForRendering(int displayIndex) -{ - MITK_INFO << "displayindex: " << displayIndex; - int index = displayIndex; - int vecLength = m_Image->GetVectorLength(); - index = index > vecLength-1 ? vecLength-1 : index; - if( m_DisplayIndex != index ) - { - typedef itk::Image ImgType; - ImgType::Pointer img = ImgType::New(); - CastToItkImage(this, img); - - itk::ImageRegionIterator itw (img, img->GetLargestPossibleRegion() ); - itw.GoToBegin(); - - itk::ImageRegionConstIterator itr (m_Image, m_Image->GetLargestPossibleRegion() ); - itr.GoToBegin(); - - while(!itr.IsAtEnd()) - { - itw.Set(itr.Get().GetElement(index)); - ++itr; - ++itw; - } - } - - m_DisplayIndex = index; -} - - - -#endif /* __mitkTbssImage__cpp */ diff --git a/Modules/DiffusionImaging/Quantification/IODataStructures/TbssImages/mitkTbssImage.h b/Modules/DiffusionImaging/Quantification/IODataStructures/TbssImages/mitkTbssImage.h deleted file mode 100644 index 571f8e8..0000000 --- a/Modules/DiffusionImaging/Quantification/IODataStructures/TbssImages/mitkTbssImage.h +++ /dev/null @@ -1,117 +0,0 @@ -/*=================================================================== - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center, -Division of Medical and Biological Informatics. -All rights reserved. - -This software is distributed WITHOUT ANY WARRANTY; without -even the implied warranty of MERCHANTABILITY or FITNESS FOR -A PARTICULAR PURPOSE. - -See LICENSE.txt or http://www.mitk.org for details. - -===================================================================*/ - - -#ifndef __mitkTbssImage__h -#define __mitkTbssImage__h - -#include "mitkImage.h" -#include "itkVectorImage.h" -#include "mitkImageCast.h" -#include "MitkQuantificationExports.h" - -namespace mitk -{ - - /** - * \brief this class encapsulates diffusion volumes (vectorimages not - * yet supported by mitkImage) - */ - - class MITKQUANTIFICATION_EXPORT TbssImage : public Image - { - - public: - - typedef itk::VectorImage ImageType; - - - typedef itk::Index<3> IndexType; - //typedef typename std::vector > RoiType; - - mitkClassMacro( TbssImage, Image ) - itkFactorylessNewMacro(Self) - itkCloneMacro(Self) - - - ImageType::Pointer GetImage() - { - return m_Image; - } - void SetImage(ImageType::Pointer image ) - { - this->m_Image = image; - } - - - void InitializeFromImage() - { - MITK_INFO << "make an mitk image that can be shown by mitk"; - this->InitializeByItk(m_Image.GetPointer(),1,1); - } - - void SetGroupInfo( std::vector< std::pair > info) - { - m_GroupInfo = info; - } - - std::vector< std::pair > GetGroupInfo() - { - return m_GroupInfo; - } - - - void SetMeasurementInfo(std::string s) - { - m_MeasurementInfo = s; - } - - std::string GetMeasurementInfo() - { - return m_MeasurementInfo; - } - - void InitializeFromVectorImage(); - - void SetDisplayIndexForRendering(int displayIndex); - - - - - - protected: - - TbssImage(); - - ~TbssImage() override{} - - ImageType::Pointer m_Image; - - - std::vector< std::pair > m_GroupInfo; - - int m_DisplayIndex; - - std::string m_MeasurementInfo; - - - - }; - - -} // namespace mitk -//#include "mitkTbssImage.cpp" -#endif /* __mitkTbssImage__h */ diff --git a/Modules/DiffusionImaging/Quantification/IODataStructures/TbssImages/mitkTbssImageSource.cpp b/Modules/DiffusionImaging/Quantification/IODataStructures/TbssImages/mitkTbssImageSource.cpp deleted file mode 100644 index c428943..0000000 --- a/Modules/DiffusionImaging/Quantification/IODataStructures/TbssImages/mitkTbssImageSource.cpp +++ /dev/null @@ -1,61 +0,0 @@ -/*=================================================================== - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center, -Division of Medical and Biological Informatics. -All rights reserved. - -This software is distributed WITHOUT ANY WARRANTY; without -even the implied warranty of MERCHANTABILITY or FITNESS FOR -A PARTICULAR PURPOSE. - -See LICENSE.txt or http://www.mitk.org for details. - -===================================================================*/ - -#ifndef __MITK_NRRD_TBSS_VOULMES_IO_FACTORY_CPP__ -#define __MITK_NRRD_TBSS_VOULMES_IO_FACTORY_CPP__ - -#include "mitkTbssImageSource.h" -#include "mitkTbssImage.h" - - -mitk::TbssImageSource::TbssImageSource() -{ - // Create the output. We use static_cast<> here because we know the default - // output must be of type DiffusionImage - mitk::TbssImage::Pointer output - = static_cast(this->MakeOutput(0).GetPointer()); - - Superclass::SetNumberOfRequiredOutputs(1); - Superclass::SetNthOutput(0, output.GetPointer()); -} - -itk::DataObject::Pointer mitk::TbssImageSource::MakeOutput ( DataObjectPointerArraySizeType /*idx*/ ) -{ - return OutputType::New().GetPointer(); -} - - -itk::DataObject::Pointer mitk::TbssImageSource::MakeOutput( const DataObjectIdentifierType & name ) -{ - itkDebugMacro("MakeOutput(" << name << ")"); - if( this->IsIndexedOutputName(name) ) - { - return this->MakeOutput( this->MakeIndexFromOutputName(name) ); - } - return static_cast(OutputType::New().GetPointer()); -} - - - -mitk::TbssImageSource::OutputType* mitk::TbssImageSource::GetOutput(unsigned int idx) -{ - return static_cast - (this->ProcessObject::GetOutput(idx)); -} - - - -#endif //__MITK_NRRD_TBSS_VOULMES_IO_FACTORY_CPP__ diff --git a/Modules/DiffusionImaging/Quantification/IODataStructures/TbssImages/mitkTbssImageSource.h b/Modules/DiffusionImaging/Quantification/IODataStructures/TbssImages/mitkTbssImageSource.h deleted file mode 100644 index d07f8d2..0000000 --- a/Modules/DiffusionImaging/Quantification/IODataStructures/TbssImages/mitkTbssImageSource.h +++ /dev/null @@ -1,94 +0,0 @@ -/*=================================================================== - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center, -Division of Medical and Biological Informatics. -All rights reserved. - -This software is distributed WITHOUT ANY WARRANTY; without -even the implied warranty of MERCHANTABILITY or FITNESS FOR -A PARTICULAR PURPOSE. - -See LICENSE.txt or http://www.mitk.org for details. - -===================================================================*/ - - -#ifndef _MITK_TBSS_IMAGE_DATA_SOURCE_H_HEADER_ -#define _MITK_TBSS_IMAGE_DATA_SOURCE_H_HEADER_ - - -// Should be changed in a new type for TBSS -#include "mitkImageSource.h" -#include "MitkQuantificationExports.h" - - -namespace mitk { - - - - class TbssImage; - - -//##Documentation -//## @brief Superclass of all classes generating diffusion volumes (instances -//## of class DiffusionImage) as output. -//## -//## @ingroup Process - -class MITKQUANTIFICATION_EXPORT TbssImageSource : public ImageSource -{ -public: - mitkClassMacro(TbssImageSource, BaseDataSource) - itkFactorylessNewMacro(Self) - itkCloneMacro(Self) - - typedef TbssImage OutputType; - typedef itk::DataObject::Pointer DataObjectPointer; - - /** - * Allocates a new output object and returns it. Currently the - * index idx is not evaluated. - * @param idx the index of the output for which an object should be created - * @returns the new object - */ - itk::DataObject::Pointer MakeOutput ( DataObjectPointerArraySizeType idx ) override; - - /** - * This is a default implementation to make sure we have something. - * Once all the subclasses of ProcessObject provide an appopriate - * MakeOutput(), then ProcessObject::MakeOutput() can be made pure - * virtual. - */ - itk::DataObject::Pointer MakeOutput(const DataObjectIdentifierType &name) override; - - OutputType* GetOutput() - { - return itkDynamicCastInDebugMode( this->GetPrimaryOutput() ); - } - - //OutputType * GetOutput(unsigned int idx); - - //void SetOutput(OutputType* output); - - //{return Superclass::GetOutput();} - - OutputType* GetOutput(unsigned int idx); - - //virtual void GraftOutput(OutputType* graft); - - //virtual void GraftNthOutput(unsigned int idx, OutputType *graft); - -protected: - TbssImageSource(); - - ~TbssImageSource() override{} -}; - -} // namespace mitk - -//#include "mitkTbssImageSource.cpp" - - -#endif /* _MITK_DIFFUSION_IMAGE_DATA_SOURCE_H_HEADER_ */ diff --git a/Modules/DiffusionImaging/Quantification/IODataStructures/TbssImages/mitkTbssImporter.cpp b/Modules/DiffusionImaging/Quantification/IODataStructures/TbssImages/mitkTbssImporter.cpp deleted file mode 100644 index 7fb007e..0000000 --- a/Modules/DiffusionImaging/Quantification/IODataStructures/TbssImages/mitkTbssImporter.cpp +++ /dev/null @@ -1,137 +0,0 @@ -/*=================================================================== - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center, -Division of Medical and Biological Informatics. -All rights reserved. - -This software is distributed WITHOUT ANY WARRANTY; without -even the implied warranty of MERCHANTABILITY or FITNESS FOR -A PARTICULAR PURPOSE. - -See LICENSE.txt or http://www.mitk.org for details. - -===================================================================*/ - -#ifndef __mitkTbssImporter_cpp -#define __mitkTbssImporter_cpp - -#include "mitkTbssImporter.h" -#include -#include "mitkImagePixelReadAccessor.h" - -namespace mitk -{ - -TbssImage::Pointer TbssImporter::Import() -{ - mitk::TbssImage::Pointer tbssImg = mitk::TbssImage::New(); - mitkPixelTypeMultiplex1( Import, m_InputVolume->GetPixelType(), tbssImg); - return tbssImg; -} - -template -void TbssImporter::Import(const mitk::PixelType , mitk::TbssImage::Pointer tbssImg) -{ - // read all images with all_*.nii.gz - MITK_INFO << "called import ..."; - m_Data = DataImageType::New(); - - mitk::BaseGeometry* geo = m_InputVolume->GetGeometry(); - mitk::Vector3D spacing = geo->GetSpacing(); - mitk::Point3D origin = geo->GetOrigin(); - - //Size size - DataImageType::SizeType dataSize; - dataSize[0] = m_InputVolume->GetDimension(0); - dataSize[1] = m_InputVolume->GetDimension(1); - dataSize[2] = m_InputVolume->GetDimension(2); - - m_Data->SetRegions(dataSize); - - // Set spacing - DataImageType::SpacingType dataSpacing; - dataSpacing[0] = spacing[0]; - dataSpacing[1] = spacing[1]; - dataSpacing[2] = spacing[2]; - m_Data->SetSpacing(dataSpacing); - - DataImageType::PointType dataOrigin; - dataOrigin[0] = origin[0]; - dataOrigin[1] = origin[1]; - dataOrigin[2] = origin[2]; - m_Data->SetOrigin(dataOrigin); - - //Direction must be set - DataImageType::DirectionType dir; - const itk::Transform* transform3D = geo->GetIndexToWorldTransform(); - itk::Transform::ParametersType p = transform3D->GetParameters(); - int t=0; - for(int i=0; i<3; i++) - { - for(int j=0; j<3; j++) - { - dir[i][j] = p[t]; // row-major order (where the column index varies the fastest) - t++; - } - } - - m_Data->SetDirection(dir); - - // Set the length to one because otherwise allocate fails. Should be changed when groups/measurements are added - m_Data->SetVectorLength(m_InputVolume->GetDimension(3)); - m_Data->Allocate(); - - // Determine vector size of m_Data - - int vecSize = m_Data->GetVectorLength(); - - MITK_INFO << "vecsize " < readTbss( m_InputVolume ); - - for(unsigned int i=0; i pixel; - itk::Index<3> id; - itk::Index<4> ix; - - ix[0] = id[0] = i; - ix[1] = id[1] = j; - ix[2] = id[2] = k; - - pixel = m_Data->GetPixel(id); - - for(int z=0; zSetPixel(id, pixel); - } - } - } - } - catch ( mitk::Exception& e ) - { - MITK_ERROR << "TbssImporter::Import: No read access to tbss image: " << e.what() ; - } - - tbssImg->SetGroupInfo(m_Groups); - tbssImg->SetMeasurementInfo(m_MeasurementInfo); - tbssImg->SetImage(m_Data); - - tbssImg->InitializeFromVectorImage(); - -} - - -} -#endif // __mitkTbssImporter_cpp diff --git a/Modules/DiffusionImaging/Quantification/IODataStructures/TbssImages/mitkTbssImporter.h b/Modules/DiffusionImaging/Quantification/IODataStructures/TbssImages/mitkTbssImporter.h deleted file mode 100644 index 1e183db..0000000 --- a/Modules/DiffusionImaging/Quantification/IODataStructures/TbssImages/mitkTbssImporter.h +++ /dev/null @@ -1,91 +0,0 @@ -/*=================================================================== - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center, -Division of Medical and Biological Informatics. -All rights reserved. - -This software is distributed WITHOUT ANY WARRANTY; without -even the implied warranty of MERCHANTABILITY or FITNESS FOR -A PARTICULAR PURPOSE. - -See LICENSE.txt or http://www.mitk.org for details. - -===================================================================*/ - -#ifndef __mitkTbssImporter_h -#define __mitkTbssImporter_h - -#include "mitkCommon.h" -#include "mitkFileReader.h" - -#include "itkImage.h" -#include "itkVectorImage.h" - -#include "mitkTbssImage.h" -#include "MitkQuantificationExports.h" - - -namespace mitk -{ - -/** - * \brief Converts FSL TBSS data (4D skeleton projection images) to a NRRD image with meta data. - * - * The TBSS pipeline of FSL produces a 4D image containing the 3D skeleton projections of all individuals. - * This class converts the FSL Nifty image to NRRD and adds information about the type of measurement and the study groups. - */ - - class MITKQUANTIFICATION_EXPORT TbssImporter : public itk::Object { - - public: - - // type of the 3d vector image containing the skeletonized images - typedef itk::VectorImage DataImageType; - - mitkClassMacroItkParent( TbssImporter, itk::Object ) - itkFactorylessNewMacro(Self) - itkCloneMacro(Self) - - /** \brief Converts the FSL Nifty to NRRD and adds the meta data */ - mitk::TbssImage::Pointer Import(); - - template - void Import(const mitk::PixelType pixelType, mitk::TbssImage::Pointer tbssImg); - - /** \brief Group info is set by providing a vector with pairs of group name and number*/ - void SetGroupInfo(std::vector< std::pair > groups) - { - m_Groups = groups; - } - - /** \brief Used to indicate the type of measurement */ - void SetMeasurementInfo(std::string s) - { - m_MeasurementInfo = s; - } - - /** \brief Sets the FSL import volume */ - void SetImportVolume(mitk::Image::Pointer inputVolume) - { - m_InputVolume = inputVolume; - } - - protected: - - TbssImporter(){} - - ~TbssImporter() override{} - - DataImageType::Pointer m_Data; - - std::vector< std::pair > m_Groups; - - std::string m_MeasurementInfo; - - mitk::Image::Pointer m_InputVolume; - - }; -} -#endif // __mitkTbssImporter_h diff --git a/Modules/DiffusionImaging/Quantification/IODataStructures/TbssImages/mitkTbssRoiImage.cpp b/Modules/DiffusionImaging/Quantification/IODataStructures/TbssImages/mitkTbssRoiImage.cpp deleted file mode 100644 index 1e42061..0000000 --- a/Modules/DiffusionImaging/Quantification/IODataStructures/TbssImages/mitkTbssRoiImage.cpp +++ /dev/null @@ -1,51 +0,0 @@ -/*=================================================================== - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center, -Division of Medical and Biological Informatics. -All rights reserved. - -This software is distributed WITHOUT ANY WARRANTY; without -even the implied warranty of MERCHANTABILITY or FITNESS FOR -A PARTICULAR PURPOSE. - -See LICENSE.txt or http://www.mitk.org for details. - -===================================================================*/ - -#ifndef __mitkTbssRoiImage__cpp -#define __mitkTbssRoiImage__cpp - - -#include "mitkTbssRoiImage.h" -#include "itkImageRegionIterator.h" -#include "itkImageRegionConstIterator.h" -#include "mitkImageCast.h" - - - - -mitk::TbssRoiImage::TbssRoiImage() -{ - m_PreprocessedFA = false; -} - - -/* - -mitk::TbssRoiImage::~TbssImage() -{ - -} - - - -void mitk::TbssRoiImage::InitializeFromImage() -{ - -} - -*/ - -#endif /* __mitkTbssImage__cpp */ diff --git a/Modules/DiffusionImaging/Quantification/IODataStructures/TbssImages/mitkTbssRoiImage.h b/Modules/DiffusionImaging/Quantification/IODataStructures/TbssImages/mitkTbssRoiImage.h deleted file mode 100644 index 32617cf..0000000 --- a/Modules/DiffusionImaging/Quantification/IODataStructures/TbssImages/mitkTbssRoiImage.h +++ /dev/null @@ -1,133 +0,0 @@ -/*=================================================================== - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center, -Division of Medical and Biological Informatics. -All rights reserved. - -This software is distributed WITHOUT ANY WARRANTY; without -even the implied warranty of MERCHANTABILITY or FITNESS FOR -A PARTICULAR PURPOSE. - -See LICENSE.txt or http://www.mitk.org for details. - -===================================================================*/ - - -#ifndef __mitkTbssRoiImage__h -#define __mitkTbssRoiImage__h - -#include "mitkImage.h" -#include "itkImage.h" -#include "mitkImageCast.h" -#include "MitkQuantificationExports.h" - -namespace mitk -{ - - /** - * \brief this class encapsulates diffusion volumes (vectorimages not - * yet supported by mitkImage) - */ - - class MITKQUANTIFICATION_EXPORT TbssRoiImage : public Image - { - - public: - - typedef itk::Image ImageType; - typedef itk::Index<3> IndexType; - //typedef typename std::vector > RoiType; - - mitkClassMacro( TbssRoiImage, Image ) - itkFactorylessNewMacro(Self) - itkCloneMacro(Self) - - - //void SetRequestedRegionToLargestPossibleRegion(); - //bool RequestedRegionIsOutsideOfTheBufferedRegion(); - //virtual bool VerifyRequestedRegion(); - //void SetRequestedRegion( const itk::DataObject *data); - - ImageType::Pointer GetImage() - { - return m_Image; - } - void SetImage(ImageType::Pointer image ) - { - this->m_Image = image; - } - - itkGetMacro(PreprocessedFA, bool) - itkSetMacro(PreprocessedFA, bool) - itkGetMacro(PreprocessedFAFile, std::string) - itkSetMacro(PreprocessedFAFile, std::string) - itkGetMacro(Structure, std::string) - itkSetMacro(Structure, std::string) - - void SetRoi(std::vector< itk::Index<3> > roi) - { - m_Roi = roi; - } - - - // depricated - std::vector< itk::Index<3> > GetRoi() - { - return m_Roi; - } - - - void InitializeFromImage() - { - MITK_INFO << "make an mitk image that can be shown by mitk"; - this->InitializeByItk(m_Image.GetPointer()); - - this->SetChannel(m_Image->GetBufferPointer()); - } - - - - - protected: - - TbssRoiImage(); - - ~TbssRoiImage() override{} - - ImageType::Pointer m_Image; - - std::vector< itk::Index<3> > m_Roi; - - bool m_PreprocessedFA; - std::string m_PreprocessedFAFile; - - std::string m_Structure; - - - }; - - - // Does the same es the normal CastToMitkImage, but needed to reimplemented due to the templatet pixeltype - /* - template - void CastToTbssImage(const ItkOutputImageType* itkimage, itk::SmartPointer< mitk::TbssRoiImage >& tbssoutputimage) - { - if(tbssoutputimage.IsNull()) - { - tbssoutputimage = mitk::TbssRoiImage::New(); - } - tbssoutputimage->InitializeByItk(itkimage); - tbssoutputimage->SetChannel(itkimage->GetBufferPointer()); - } -*/ - - - - - -} // namespace mitk - -//#include "mitkTbssRoiImage.cpp" -#endif /* __mitkTbssRoiImage__h */ diff --git a/Modules/DiffusionImaging/Quantification/IODataStructures/TbssImages/mitkTbssRoiImageSource.cpp b/Modules/DiffusionImaging/Quantification/IODataStructures/TbssImages/mitkTbssRoiImageSource.cpp deleted file mode 100644 index 1b16532..0000000 --- a/Modules/DiffusionImaging/Quantification/IODataStructures/TbssImages/mitkTbssRoiImageSource.cpp +++ /dev/null @@ -1,60 +0,0 @@ -/*=================================================================== - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center, -Division of Medical and Biological Informatics. -All rights reserved. - -This software is distributed WITHOUT ANY WARRANTY; without -even the implied warranty of MERCHANTABILITY or FITNESS FOR -A PARTICULAR PURPOSE. - -See LICENSE.txt or http://www.mitk.org for details. - -===================================================================*/ - -#ifndef __MITK_NRRD_TBSSROI_VOLUMES_IO_FACTORY_CPP__ -#define __MITK_NRRD_TBSSROI_VOLUMES_IO_FACTORY_CPP__ - -#include "mitkTbssRoiImageSource.h" -#include "mitkTbssRoiImage.h" - - -mitk::TbssRoiImageSource::TbssRoiImageSource() -{ - // Create the output. We use static_cast<> here because we know the default - // output must be of type DiffusionImage - mitk::TbssRoiImage::Pointer output - = static_cast(this->MakeOutput(0).GetPointer()); - - Superclass::SetNumberOfRequiredOutputs(1); - Superclass::SetNthOutput(0, output.GetPointer()); -} - - -itk::DataObject::Pointer mitk::TbssRoiImageSource::MakeOutput ( DataObjectPointerArraySizeType /*idx*/ ) -{ - return OutputType::New().GetPointer(); -} - - -itk::DataObject::Pointer mitk::TbssRoiImageSource::MakeOutput( const DataObjectIdentifierType & name ) -{ - itkDebugMacro("MakeOutput(" << name << ")"); - if( this->IsIndexedOutputName(name) ) - { - return this->MakeOutput( this->MakeIndexFromOutputName(name) ); - } - return static_cast(OutputType::New().GetPointer()); -} - - - -mitk::TbssRoiImageSource::OutputType* mitk::TbssRoiImageSource::GetOutput(unsigned int idx) -{ - return static_cast - (this->ProcessObject::GetOutput(idx)); -} - -#endif //__MITK_NRRD_TBSS_VOULMES_IO_FACTORY_CPP__ diff --git a/Modules/DiffusionImaging/Quantification/IODataStructures/TbssImages/mitkTbssRoiImageSource.h b/Modules/DiffusionImaging/Quantification/IODataStructures/TbssImages/mitkTbssRoiImageSource.h deleted file mode 100644 index 913073c..0000000 --- a/Modules/DiffusionImaging/Quantification/IODataStructures/TbssImages/mitkTbssRoiImageSource.h +++ /dev/null @@ -1,77 +0,0 @@ -/*=================================================================== - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center, -Division of Medical and Biological Informatics. -All rights reserved. - -This software is distributed WITHOUT ANY WARRANTY; without -even the implied warranty of MERCHANTABILITY or FITNESS FOR -A PARTICULAR PURPOSE. - -See LICENSE.txt or http://www.mitk.org for details. - -===================================================================*/ - - -#ifndef _MITK_TBSS_ROI_IMAGE_DATA_SOURCE_H_HEADER_ -#define _MITK_TBSS_ROI_IMAGE_DATA_SOURCE_H_HEADER_ - - -// Should be changed in a new type for TBSS -#include "mitkImageSource.h" -#include "MitkQuantificationExports.h" - - -namespace mitk { - - - - class TbssRoiImage; - - -//##Documentation -//## @brief Superclass of all classes generating diffusion volumes (instances -//## of class DiffusionImage) as output. -//## -//## @ingroup Process - -class MITKQUANTIFICATION_EXPORT TbssRoiImageSource : public ImageSource -{ -public: - mitkClassMacro(TbssRoiImageSource, BaseDataSource) - itkFactorylessNewMacro(Self) - itkCloneMacro(Self) - - typedef TbssRoiImage OutputType; - typedef itk::DataObject::Pointer DataObjectPointer; - - /** - * Allocates a new output object and returns it. Currently the - * index idx is not evaluated. - * @param idx the index of the output for which an object should be created - * @returns the new object - */ - itk::DataObject::Pointer MakeOutput ( DataObjectPointerArraySizeType idx ) override; - - /** - * This is a default implementation to make sure we have something. - * Once all the subclasses of ProcessObject provide an appopriate - * MakeOutput(), then ProcessObject::MakeOutput() can be made pure - * virtual. - */ - itk::DataObject::Pointer MakeOutput(const DataObjectIdentifierType &name) override; - - OutputType* GetOutput(unsigned int idx); - -protected: - TbssRoiImageSource(); - - ~TbssRoiImageSource() override{} -}; - -} // namespace mitk - - -#endif /* _MITK_DIFFUSION_IMAGE_DATA_SOURCE_H_HEADER_ */ diff --git a/Modules/DiffusionImaging/Quantification/Rendering/mitkTbssImageMapper.cpp b/Modules/DiffusionImaging/Quantification/Rendering/mitkTbssImageMapper.cpp deleted file mode 100644 index 4e2bef9..0000000 --- a/Modules/DiffusionImaging/Quantification/Rendering/mitkTbssImageMapper.cpp +++ /dev/null @@ -1,65 +0,0 @@ -/*=================================================================== - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center, -Division of Medical and Biological Informatics. -All rights reserved. - -This software is distributed WITHOUT ANY WARRANTY; without -even the implied warranty of MERCHANTABILITY or FITNESS FOR -A PARTICULAR PURPOSE. - -See LICENSE.txt or http://www.mitk.org for details. - -===================================================================*/ - - -#ifndef TbssImageMapper__cpp -#define TbssImageMapper__cpp - -#include "mitkTbssImageMapper.h" - -#include "mitkProperties.h" -#include "mitkTbssImage.h" - - - -mitk::TbssImageMapper::TbssImageMapper() -{ -} - - -mitk::TbssImageMapper::~TbssImageMapper() -{ -} - - -void mitk::TbssImageMapper::GenerateDataForRenderer( mitk::BaseRenderer *renderer ) -{ - int displayIndex(0); - - - this->GetDataNode()->GetIntProperty( "DisplayChannel", displayIndex, renderer ); - mitk::Image *input = const_cast< mitk::Image* >( - this->GetInput() - ); - mitk::TbssImage *input2 = dynamic_cast< mitk::TbssImage* >( - input - ); - - MITK_INFO << "displayindex: " << displayIndex; - - - input2->SetDisplayIndexForRendering(displayIndex); - Superclass::GenerateDataForRenderer(renderer); -} - - -void mitk::TbssImageMapper::SetDefaultProperties(mitk::DataNode* node, mitk::BaseRenderer* renderer, bool overwrite) -{ - node->AddProperty( "DisplayChannel", mitk::IntProperty::New( 0 ), renderer, overwrite ); - Superclass::SetDefaultProperties(node, renderer, overwrite); -} - -#endif diff --git a/Modules/DiffusionImaging/Quantification/Rendering/mitkTbssImageMapper.h b/Modules/DiffusionImaging/Quantification/Rendering/mitkTbssImageMapper.h deleted file mode 100644 index dd319e8..0000000 --- a/Modules/DiffusionImaging/Quantification/Rendering/mitkTbssImageMapper.h +++ /dev/null @@ -1,55 +0,0 @@ -/*=================================================================== - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center, -Division of Medical and Biological Informatics. -All rights reserved. - -This software is distributed WITHOUT ANY WARRANTY; without -even the implied warranty of MERCHANTABILITY or FITNESS FOR -A PARTICULAR PURPOSE. - -See LICENSE.txt or http://www.mitk.org for details. - -===================================================================*/ - - -#ifndef TbssImageMapper_H_HEADER_INCLUDED -#define TbssImageMapper_H_HEADER_INCLUDED - -#include "mitkImageVtkMapper2D.h" -#include "MitkQuantificationExports.h" - -namespace mitk { - - //##Documentation - //## @brief Mapper for raw diffusion weighted images - //## @ingroup Mapper - - class MITKQUANTIFICATION_EXPORT TbssImageMapper : public ImageVtkMapper2D - { - public: - - mitkClassMacro(TbssImageMapper,ImageVtkMapper2D); - itkFactorylessNewMacro(Self) - itkCloneMacro(Self) - - void GenerateDataForRenderer( mitk::BaseRenderer *renderer ) override; - - static void SetDefaultProperties(DataNode* node, BaseRenderer* renderer = nullptr, bool overwrite = false ); - - protected: - - TbssImageMapper(); - ~TbssImageMapper() override; - - }; - -} // namespace mitk - -//#include "mitkTbssImageMapper.cpp" - - -#endif /* TbssImageMapper_H_HEADER_INCLUDED */ - diff --git a/Modules/DiffusionImaging/Quantification/Testing/CMakeLists.txt b/Modules/DiffusionImaging/Quantification/Testing/CMakeLists.txt deleted file mode 100644 index a8460a2..0000000 --- a/Modules/DiffusionImaging/Quantification/Testing/CMakeLists.txt +++ /dev/null @@ -1,15 +0,0 @@ -MITK_CREATE_MODULE_TESTS() - -mitkAddCustomModuleTest(mitkTbssNrrdImageReaderTest mitkTbssNrrdImageReaderTest ${MITK_DATA_DIR}/DiffusionImaging/tbss.tbss) -#mitkAddCustomModuleTest(mitkTbssRoiNrrdImageReaderTest mitkTbssRoiNrrdImageReaderTest ${MITK_DATA_DIR}/DiffusionImaging/bodyfornix.roi) -mitkAddCustomModuleTest(mitkTbssNrrdImageWriterTest mitkTbssNrrdImageWriterTest ${MITK_DATA_DIR}/DiffusionImaging/tbss.tbss ${MITK_DATA_DIR}/DiffusionImaging/tbss2.tbss) -mitkAddCustomModuleTest(mitkTbssSkeletonizationTest mitkTbssSkeletonizationTest ${MITK_DATA_DIR}/DiffusionImaging/mean_FA.nii.gz - ${MITK_DATA_DIR}/DiffusionImaging/mean_FA_skeleton.nii.gz - ${MITK_DATA_DIR}/DiffusionImaging/LowerCingulum_1mm.nii.gz - ${MITK_DATA_DIR}/DiffusionImaging/single_subject4d.nhdr - ${MITK_DATA_DIR}/DiffusionImaging/single_subject_projected.nrrd) - - -mitkAddCustomModuleTest(mitkTractAnalyzerTest mitkTractAnalyzerTest ${MITK_DATA_DIR}/DiffusionImaging/mean_FA_skeleton.nii.gz - ${MITK_DATA_DIR}/DiffusionImaging/tbssRoiPointset.mps - ${MITK_DATA_DIR}/DiffusionImaging/roi_cc.roi) diff --git a/Modules/DiffusionImaging/Quantification/Testing/files.cmake b/Modules/DiffusionImaging/Quantification/Testing/files.cmake deleted file mode 100644 index 18fe4ba..0000000 --- a/Modules/DiffusionImaging/Quantification/Testing/files.cmake +++ /dev/null @@ -1,8 +0,0 @@ -SET(MODULE_CUSTOM_TESTS - mitkTbssNrrdImageReaderTest.cpp - #mitkTbssRoiNrrdImageReaderTest.cpp - mitkTbssNrrdImageWriterTest.cpp - mitkTbssSkeletonizationTest.cpp - mitkTractAnalyzerTest.cpp -) - diff --git a/Modules/DiffusionImaging/Quantification/Testing/mitkTbssNrrdImageReaderTest.cpp b/Modules/DiffusionImaging/Quantification/Testing/mitkTbssNrrdImageReaderTest.cpp deleted file mode 100644 index 9aa78a8..0000000 --- a/Modules/DiffusionImaging/Quantification/Testing/mitkTbssNrrdImageReaderTest.cpp +++ /dev/null @@ -1,60 +0,0 @@ -/*=================================================================== - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center, -Division of Medical and Biological Informatics. -All rights reserved. - -This software is distributed WITHOUT ANY WARRANTY; without -even the implied warranty of MERCHANTABILITY or FITNESS FOR -A PARTICULAR PURPOSE. - -See LICENSE.txt or http://www.mitk.org for details. - -===================================================================*/ - -#include -#include -#include "mitkCoreObjectFactory.h" - - -/**Documentation - * test for the class "mitkNrrdTbssImageReader". - */ -int mitkTbssNrrdImageReaderTest(int , char* argv[]) -{ - MITK_TEST_BEGIN("TbssNrrdImageReaderTest"); - - mitk::NrrdTbssImageReader::Pointer tbssNrrdReader = mitk::NrrdTbssImageReader::New(); - - MITK_TEST_CONDITION_REQUIRED(tbssNrrdReader.GetPointer(), "Testing initialization of test object!"); - - tbssNrrdReader->SetFileName(argv[1]); - MITK_TEST_CONDITION_REQUIRED( tbssNrrdReader->CanReadFile(argv[1], "", ""), "Testing CanReadFile() method with valid input file name!"); - tbssNrrdReader->Update(); - - mitk::TbssImage* tbssImg = tbssNrrdReader->GetOutput(); - - MITK_TEST_CONDITION_REQUIRED(tbssImg != nullptr, "Testing that tbssImg is not null"); - - mitk::TbssImage::SizeType size = tbssImg->GetLargestPossibleRegion().GetSize(); - - MITK_TEST_CONDITION_REQUIRED(size[0]==2 && size[1]==2 && size[2]==2, "Test size of tbss image"); - - // Test groups - std::vector< std::pair > groups = tbssImg->GetGroupInfo(); - - std::pair group1 = groups.at(0); - std::pair group2 = groups.at(1); - - - - MITK_TEST_CONDITION_REQUIRED(group1.first.compare("group1") && group1.second==1, "Test group 1 info"); - - MITK_TEST_CONDITION_REQUIRED(group2.first.compare("group2") && group2.second==1, "Test group 2 info"); - - - - MITK_TEST_END(); -} diff --git a/Modules/DiffusionImaging/Quantification/Testing/mitkTbssNrrdImageWriterTest.cpp b/Modules/DiffusionImaging/Quantification/Testing/mitkTbssNrrdImageWriterTest.cpp deleted file mode 100644 index 92b4d05..0000000 --- a/Modules/DiffusionImaging/Quantification/Testing/mitkTbssNrrdImageWriterTest.cpp +++ /dev/null @@ -1,76 +0,0 @@ -/*=================================================================== - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center, -Division of Medical and Biological Informatics. -All rights reserved. - -This software is distributed WITHOUT ANY WARRANTY; without -even the implied warranty of MERCHANTABILITY or FITNESS FOR -A PARTICULAR PURPOSE. - -See LICENSE.txt or http://www.mitk.org for details. - -===================================================================*/ - -#include -#include -#include -#include "mitkCoreObjectFactory.h" - - -/**Documentation - * test for the class "mitkNrrdTbssImageWriter". - */ -int mitkTbssNrrdImageWriterTest(int, char* argv[]) -{ - MITK_TEST_BEGIN("TbssNrrdImageWriterTest"); - - mitk::NrrdTbssImageReader::Pointer tbssNrrdReader = mitk::NrrdTbssImageReader::New(); - - MITK_TEST_CONDITION_REQUIRED(tbssNrrdReader.GetPointer(), "Testing initialization of test object!"); - - tbssNrrdReader->SetFileName(argv[1]); - MITK_TEST_CONDITION_REQUIRED( tbssNrrdReader->CanReadFile(argv[1], "", ""), "Testing CanReadFile() method with valid input file name!"); - tbssNrrdReader->Update(); - - mitk::TbssImage* tbssImg = tbssNrrdReader->GetOutput(); - - MITK_TEST_CONDITION_REQUIRED(tbssImg != nullptr, "Testing that tbssImg is not null"); - - mitk::NrrdTbssImageWriter::Pointer tbssNrrdWriter = mitk::NrrdTbssImageWriter::New(); - - - try{ - tbssNrrdWriter->SetFileName(argv[2]); - tbssNrrdWriter->SetInput(tbssImg); - tbssNrrdWriter->Update(); - } - catch(...) { - std::cout << "Writing failed" << std::endl; - return EXIT_FAILURE; - } - - mitk::NrrdTbssImageReader::Pointer tbssNrrdReader2 = mitk::NrrdTbssImageReader::New(); - tbssNrrdReader2->SetFileName(argv[1]); - MITK_TEST_CONDITION_REQUIRED( tbssNrrdReader2->CanReadFile(argv[1], "", ""), "Testing CanReadFile() method with previously saved file!"); - - tbssNrrdReader2->Update(); - mitk::TbssImage* tbssImg2 = tbssNrrdReader2->GetOutput(); - - - std::vector< std::pair > groups = tbssImg->GetGroupInfo(); - std::vector< std::pair > groups2 = tbssImg2->GetGroupInfo(); - - MITK_TEST_CONDITION(groups == groups2, "Check that group information is identical"); - - - mitk::TbssImage::SizeType size = tbssImg->GetLargestPossibleRegion().GetSize(); - mitk::TbssImage::SizeType size2 = tbssImg2->GetLargestPossibleRegion().GetSize(); - - MITK_TEST_CONDITION(size == size2, "Check that sizes are equal"); - - - MITK_TEST_END(); -} diff --git a/Modules/DiffusionImaging/Quantification/Testing/mitkTbssRoiNrrdImageReaderTest.cpp b/Modules/DiffusionImaging/Quantification/Testing/mitkTbssRoiNrrdImageReaderTest.cpp deleted file mode 100644 index 55057f9..0000000 --- a/Modules/DiffusionImaging/Quantification/Testing/mitkTbssRoiNrrdImageReaderTest.cpp +++ /dev/null @@ -1,69 +0,0 @@ -/*=================================================================== - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center, -Division of Medical and Biological Informatics. -All rights reserved. - -This software is distributed WITHOUT ANY WARRANTY; without -even the implied warranty of MERCHANTABILITY or FITNESS FOR -A PARTICULAR PURPOSE. - -See LICENSE.txt or http://www.mitk.org for details. - -===================================================================*/ - -#include - -#include -#include "mitkDiffusionImagingObjectFactory.h" -#include "mitkCoreObjectFactory.h" - - -/**Documentation - * test for the class "mitkNrrdTbssImageReader". - */ -int mitkTbssRoiNrrdImageReaderTest(int, char* argv[]) -{ - MITK_TEST_BEGIN("NrrdTbssRoiImageReaderTest"); - - - mitk::NrrdTbssRoiImageReader::Pointer roiReader = mitk::NrrdTbssRoiImageReader::New(); - - MITK_TEST_CONDITION_REQUIRED(roiReader.GetPointer(), "Testing initialization of test object!"); - - RegisterDiffusionImagingObjectFactory(); - - - roiReader->SetFileName(argv[1]); - MITK_TEST_CONDITION_REQUIRED( roiReader->CanReadFile(argv[1], "", ""), "Testing CanReadFile() method with valid input file name!"); - roiReader->Update(); - - mitk::TbssRoiImage* roiImg = roiReader->GetOutput(); - - MITK_TEST_CONDITION_REQUIRED(roiImg != nullptr, "Testing that roiImg is not null"); - - mitk::TbssRoiImage::SizeType size = roiImg->GetLargestPossibleRegion().GetSize(); - - MITK_TEST_CONDITION_REQUIRED(size[0]==182 && size[1]==218 && size[2]==182, "Test size of ROI image"); - - - // Test indices of the roi - std::vector< itk::Index<3> > indices = roiImg->GetRoi(); - - MITK_TEST_CONDITION(indices.size() == 24, "Test the number of indices belonging to the Roi"); - - itk::Index<3> ix = indices.at(0); - - MITK_TEST_CONDITION(ix[0]==90 && ix[1]==132 && ix[2]==74, "Test whether first index is correct"); - - ix = indices.at(23); - - MITK_TEST_CONDITION(ix[0]==90 && ix[1]==117 && ix[2]==88, "Test whether last index is correct"); - - - - - MITK_TEST_END(); -} diff --git a/Modules/DiffusionImaging/Quantification/Testing/mitkTbssSkeletonizationTest.cpp b/Modules/DiffusionImaging/Quantification/Testing/mitkTbssSkeletonizationTest.cpp deleted file mode 100644 index 51610a7..0000000 --- a/Modules/DiffusionImaging/Quantification/Testing/mitkTbssSkeletonizationTest.cpp +++ /dev/null @@ -1,167 +0,0 @@ -/*=================================================================== - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center, -Division of Medical and Biological Informatics. -All rights reserved. - -This software is distributed WITHOUT ANY WARRANTY; without -even the implied warranty of MERCHANTABILITY or FITNESS FOR -A PARTICULAR PURPOSE. - -See LICENSE.txt or http://www.mitk.org for details. - -===================================================================*/ - -#include -#include -#include -#include -#include -#include -#include - -/**Documentation - * test for the class "itkSkeletonizationFilter". - */ -int mitkTbssSkeletonizationTest(int, char* argv[]) -{ - - MITK_TEST_BEGIN("TbssSkeletonizationTest"); - - - // Load images - typedef itk::Image FloatImageType; - typedef itk::ImageFileReader ImageReaderType; - - ImageReaderType::Pointer reader = ImageReaderType::New(); - reader->SetFileName(argv[1]); - - // Initialize skeletonization filter and feed it with the mean_FA.nii.gz - - typedef itk::SkeletonizationFilter SkeletonisationFilterType; - SkeletonisationFilterType::Pointer skeletonizer = SkeletonisationFilterType::New(); - skeletonizer->SetInput(reader->GetOutput()); - skeletonizer->Update(); - - - // Create a new image so the skeletonizaton won't be performed every time the skeleton is needed. - FloatImageType::Pointer skeleton = skeletonizer->GetOutput(); - - // Check whether the skeleton is correct - reader->SetFileName(argv[2]); - reader->Update(); - - FloatImageType::Pointer controlSkeleton = reader->GetOutput(); - - - // Convert itk images to mitk images and use the mitk::Equal method to compare the result with the reference skeleton. - - mitk::Image::Pointer mitkSkeleton = mitk::Image::New(); - mitkSkeleton->InitializeByItk(skeleton.GetPointer()); - - mitk::Image::Pointer mitkRefSkeleton = mitk::Image::New(); - mitkRefSkeleton->InitializeByItk(controlSkeleton.GetPointer()); - - - MITK_TEST_CONDITION(mitk::Equal(*mitkSkeleton, *mitkRefSkeleton, 0.001, true), "Check correctness of the skeleton"); - - - // Test the projection filter - - typedef itk::CovariantVector VectorType; - typedef itk::Image DirectionImageType; - - // Retrieve direction image needed later by the projection filter - DirectionImageType::Pointer directionImg = skeletonizer->GetVectorImage(); - - // Define a distance map filter that creates a distance map to limit the projection search - typedef itk::DistanceMapFilter DistanceMapFilterType; - - DistanceMapFilterType::Pointer distanceMapFilter = DistanceMapFilterType::New(); - distanceMapFilter->SetInput(controlSkeleton); //use controlSkeleton to prevent updating the skeletonfilter, which is time consuming - distanceMapFilter->Update(); - - FloatImageType::Pointer distanceMap = distanceMapFilter->GetOutput(); - - - - - // Threshold the skeleton on FA=0.2 to create a binary skeleton mask - typedef itk::Image CharImageType; - typedef itk::BinaryThresholdImageFilter ThresholdFilterType; - ThresholdFilterType::Pointer thresholder = ThresholdFilterType::New(); - thresholder->SetInput(controlSkeleton); //use controlSkeleton to prevent updating the skeletonfilter, which is time consuming - thresholder->SetLowerThreshold(0.2); - thresholder->SetUpperThreshold(std::numeric_limits::max()); - thresholder->SetOutsideValue(0); - thresholder->SetInsideValue(1); - thresholder->Update(); - - - CharImageType::Pointer thresholdedImg = thresholder->GetOutput(); - - - // Load the cingulum mask that defines the region where a tubular structure must be searched for - typedef itk::ImageFileReader< CharImageType > CharReaderType; - CharReaderType::Pointer charReader = CharReaderType::New(); - charReader->SetFileName(argv[3]); - charReader->Update(); - CharImageType::Pointer cingulum = charReader->GetOutput(); - - - - // Define projection filter - typedef itk::ProjectionFilter ProjectionFilterType; - - // Read the 4d test image containing the registered FA data of one subject - typedef itk::Image Float4DImageType; - typedef itk::ImageFileReader ImageReader4DType; - - - - ImageReader4DType::Pointer reader4d = ImageReader4DType::New(); - reader4d->SetFileName(argv[4]); - reader4d->Update(); - - - - ProjectionFilterType::Pointer projectionFilter = ProjectionFilterType::New(); - projectionFilter->SetDistanceMap(distanceMap); - projectionFilter->SetDirections(directionImg); - projectionFilter->SetAllFA(reader4d->GetOutput()); - projectionFilter->SetTube(cingulum); - projectionFilter->SetSkeleton(thresholdedImg); - projectionFilter->Project(); - - - - Float4DImageType::Pointer projected = projectionFilter->GetProjections(); - - - - // Open control projection image - reader4d->SetFileName(argv[5]); - reader4d->Update(); - Float4DImageType::Pointer controlProjection = reader4d->GetOutput(); - - // control dimensions - Float4DImageType::SizeType pSize = projected->GetLargestPossibleRegion().GetSize(); - Float4DImageType::SizeType pControlSize = controlProjection->GetLargestPossibleRegion().GetSize(); - - typedef itk::Testing::ComparisonImageFilter ComparisonFilterType; - ComparisonFilterType::Pointer comparisonFilter = ComparisonFilterType::New(); - comparisonFilter->SetTestInput(projected); - comparisonFilter->SetValidInput(controlProjection); - comparisonFilter->Update(); - float diff = comparisonFilter->GetTotalDifference(); - - - MITK_TEST_CONDITION(pSize == pControlSize, "Size of projection image and control projection image are the same"); - - MITK_TEST_CONDITION(diff < 0.001, "Check correctness of the projections"); - - - MITK_TEST_END(); -} diff --git a/Modules/DiffusionImaging/Quantification/Testing/mitkTractAnalyzerTest.cpp b/Modules/DiffusionImaging/Quantification/Testing/mitkTractAnalyzerTest.cpp deleted file mode 100644 index e913d84..0000000 --- a/Modules/DiffusionImaging/Quantification/Testing/mitkTractAnalyzerTest.cpp +++ /dev/null @@ -1,82 +0,0 @@ -/*=================================================================== - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center, -Division of Medical and Biological Informatics. -All rights reserved. - -This software is distributed WITHOUT ANY WARRANTY; without -even the implied warranty of MERCHANTABILITY or FITNESS FOR -A PARTICULAR PURPOSE. - -See LICENSE.txt or http://www.mitk.org for details. - -===================================================================*/ - -#include -#include -#include -#include -#include - -/**Documentation - * test for the class "mitkTractAnalyzer". - */ -int mitkTractAnalyzerTest(int, char* argv[]) -{ - - MITK_TEST_BEGIN("TractAnalyzer"); - - // Load image - typedef itk::Image FloatImageType; - typedef itk::ImageFileReader ImageReaderType; - - ImageReaderType::Pointer reader = ImageReaderType::New(); - - reader->SetFileName(argv[1]); - reader->Update(); - FloatImageType::Pointer itkImage = reader->GetOutput(); - mitk::Image::Pointer mitkImage = mitk::Image::New(); - - mitk::CastToMitkImage(itkImage, mitkImage); - - // load point set - mitk::PointSet::Pointer pointSet = mitk::IOUtil::Load(argv[2]); - - mitk::TractAnalyzer analyzer; - - analyzer.SetInputImage(mitkImage); - analyzer.SetThreshold(0.2); - analyzer.SetPointSet(pointSet); - analyzer.MakeRoi(); - - mitk::TbssRoiImage::Pointer tbssRoi = analyzer.GetRoiImage(); - - std::vector< itk::Index<3> > roi = tbssRoi->GetRoi(); - - - - // Output roi for debug purposes - std::cout << "ROI\n"; - for(unsigned int t=0; t ix = roi.at(t); - std::cout << ix[0] << ", " << ix[1] << ", " << ix[2] << "\n"; - } - - - std::cout << std::endl; - - // check the cost of the roi - double cost = analyzer.GetCostSum(); - - std::cout << "Cost: " << cost << std::endl; - - bool equal = mitk::Equal(cost, 5162.854, 0.001); - - MITK_TEST_CONDITION(equal, "Checking cost of found ROI"); - - - MITK_TEST_END(); -} diff --git a/Modules/DiffusionImaging/Quantification/files.cmake b/Modules/DiffusionImaging/Quantification/files.cmake deleted file mode 100644 index 9477511..0000000 --- a/Modules/DiffusionImaging/Quantification/files.cmake +++ /dev/null @@ -1,31 +0,0 @@ -set(CPP_FILES - - # DataStructures -> Tbss - IODataStructures/TbssImages/mitkTbssImageSource.cpp - IODataStructures/TbssImages/mitkTbssRoiImageSource.cpp - IODataStructures/TbssImages/mitkNrrdTbssImageReader.cpp - IODataStructures/TbssImages/mitkNrrdTbssRoiImageReader.cpp - IODataStructures/TbssImages/mitkTbssImage.cpp - IODataStructures/TbssImages/mitkTbssRoiImage.cpp - IODataStructures/TbssImages/mitkNrrdTbssImageWriter.cpp - IODataStructures/TbssImages/mitkNrrdTbssRoiImageWriter.cpp - IODataStructures/TbssImages/mitkTbssImporter.cpp - - # Rendering - Rendering/mitkTbssImageMapper.cpp - - #Algorithms - Algorithms/mitkTractAnalyzer.cpp -) - -set(H_FILES - # DataStructures - IODataStructures/TbssImages/mitkTbssImporter.h - - # Rendering - Rendering/mitkTbssImageMapper.h - - Algorithms/itkRegularizedIVIMLocalVariationImageFilter.h - Algorithms/itkRegularizedIVIMReconstructionFilter.h - Algorithms/itkRegularizedIVIMReconstructionSingleIteration.h -) diff --git a/Modules/DiffusionImaging/FiberTracking/Algorithms/ClusteringMetrics/mitkClusteringMetric.h b/Modules/FiberTracking/Algorithms/ClusteringMetrics/mitkClusteringMetric.h similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Algorithms/ClusteringMetrics/mitkClusteringMetric.h rename to Modules/FiberTracking/Algorithms/ClusteringMetrics/mitkClusteringMetric.h diff --git a/Modules/DiffusionImaging/FiberTracking/Algorithms/ClusteringMetrics/mitkClusteringMetricAnatomic.h b/Modules/FiberTracking/Algorithms/ClusteringMetrics/mitkClusteringMetricAnatomic.h similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Algorithms/ClusteringMetrics/mitkClusteringMetricAnatomic.h rename to Modules/FiberTracking/Algorithms/ClusteringMetrics/mitkClusteringMetricAnatomic.h diff --git a/Modules/DiffusionImaging/FiberTracking/Algorithms/ClusteringMetrics/mitkClusteringMetricEuclideanMax.h b/Modules/FiberTracking/Algorithms/ClusteringMetrics/mitkClusteringMetricEuclideanMax.h similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Algorithms/ClusteringMetrics/mitkClusteringMetricEuclideanMax.h rename to Modules/FiberTracking/Algorithms/ClusteringMetrics/mitkClusteringMetricEuclideanMax.h diff --git a/Modules/DiffusionImaging/FiberTracking/Algorithms/ClusteringMetrics/mitkClusteringMetricEuclideanMean.h b/Modules/FiberTracking/Algorithms/ClusteringMetrics/mitkClusteringMetricEuclideanMean.h similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Algorithms/ClusteringMetrics/mitkClusteringMetricEuclideanMean.h rename to Modules/FiberTracking/Algorithms/ClusteringMetrics/mitkClusteringMetricEuclideanMean.h diff --git a/Modules/DiffusionImaging/FiberTracking/Algorithms/ClusteringMetrics/mitkClusteringMetricEuclideanStd.h b/Modules/FiberTracking/Algorithms/ClusteringMetrics/mitkClusteringMetricEuclideanStd.h similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Algorithms/ClusteringMetrics/mitkClusteringMetricEuclideanStd.h rename to Modules/FiberTracking/Algorithms/ClusteringMetrics/mitkClusteringMetricEuclideanStd.h diff --git a/Modules/DiffusionImaging/FiberTracking/Algorithms/ClusteringMetrics/mitkClusteringMetricInnerAngles.h b/Modules/FiberTracking/Algorithms/ClusteringMetrics/mitkClusteringMetricInnerAngles.h similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Algorithms/ClusteringMetrics/mitkClusteringMetricInnerAngles.h rename to Modules/FiberTracking/Algorithms/ClusteringMetrics/mitkClusteringMetricInnerAngles.h diff --git a/Modules/DiffusionImaging/FiberTracking/Algorithms/ClusteringMetrics/mitkClusteringMetricLength.h b/Modules/FiberTracking/Algorithms/ClusteringMetrics/mitkClusteringMetricLength.h similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Algorithms/ClusteringMetrics/mitkClusteringMetricLength.h rename to Modules/FiberTracking/Algorithms/ClusteringMetrics/mitkClusteringMetricLength.h diff --git a/Modules/DiffusionImaging/FiberTracking/Algorithms/ClusteringMetrics/mitkClusteringMetricScalarMap.h b/Modules/FiberTracking/Algorithms/ClusteringMetrics/mitkClusteringMetricScalarMap.h similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Algorithms/ClusteringMetrics/mitkClusteringMetricScalarMap.h rename to Modules/FiberTracking/Algorithms/ClusteringMetrics/mitkClusteringMetricScalarMap.h diff --git a/Modules/DiffusionImaging/FiberTracking/Algorithms/GibbsTracking/mitkEnergyComputer.cpp b/Modules/FiberTracking/Algorithms/GibbsTracking/mitkEnergyComputer.cpp similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Algorithms/GibbsTracking/mitkEnergyComputer.cpp rename to Modules/FiberTracking/Algorithms/GibbsTracking/mitkEnergyComputer.cpp diff --git a/Modules/DiffusionImaging/FiberTracking/Algorithms/GibbsTracking/mitkEnergyComputer.h b/Modules/FiberTracking/Algorithms/GibbsTracking/mitkEnergyComputer.h similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Algorithms/GibbsTracking/mitkEnergyComputer.h rename to Modules/FiberTracking/Algorithms/GibbsTracking/mitkEnergyComputer.h diff --git a/Modules/DiffusionImaging/FiberTracking/Algorithms/GibbsTracking/mitkFiberBuilder.cpp b/Modules/FiberTracking/Algorithms/GibbsTracking/mitkFiberBuilder.cpp similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Algorithms/GibbsTracking/mitkFiberBuilder.cpp rename to Modules/FiberTracking/Algorithms/GibbsTracking/mitkFiberBuilder.cpp diff --git a/Modules/DiffusionImaging/FiberTracking/Algorithms/GibbsTracking/mitkFiberBuilder.h b/Modules/FiberTracking/Algorithms/GibbsTracking/mitkFiberBuilder.h similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Algorithms/GibbsTracking/mitkFiberBuilder.h rename to Modules/FiberTracking/Algorithms/GibbsTracking/mitkFiberBuilder.h diff --git a/Modules/DiffusionImaging/FiberTracking/Algorithms/GibbsTracking/mitkGibbsEnergyComputer.cpp b/Modules/FiberTracking/Algorithms/GibbsTracking/mitkGibbsEnergyComputer.cpp similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Algorithms/GibbsTracking/mitkGibbsEnergyComputer.cpp rename to Modules/FiberTracking/Algorithms/GibbsTracking/mitkGibbsEnergyComputer.cpp diff --git a/Modules/DiffusionImaging/FiberTracking/Algorithms/GibbsTracking/mitkGibbsEnergyComputer.h b/Modules/FiberTracking/Algorithms/GibbsTracking/mitkGibbsEnergyComputer.h similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Algorithms/GibbsTracking/mitkGibbsEnergyComputer.h rename to Modules/FiberTracking/Algorithms/GibbsTracking/mitkGibbsEnergyComputer.h diff --git a/Modules/DiffusionImaging/FiberTracking/Algorithms/GibbsTracking/mitkMetropolisHastingsSampler.cpp b/Modules/FiberTracking/Algorithms/GibbsTracking/mitkMetropolisHastingsSampler.cpp similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Algorithms/GibbsTracking/mitkMetropolisHastingsSampler.cpp rename to Modules/FiberTracking/Algorithms/GibbsTracking/mitkMetropolisHastingsSampler.cpp diff --git a/Modules/DiffusionImaging/FiberTracking/Algorithms/GibbsTracking/mitkMetropolisHastingsSampler.h b/Modules/FiberTracking/Algorithms/GibbsTracking/mitkMetropolisHastingsSampler.h similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Algorithms/GibbsTracking/mitkMetropolisHastingsSampler.h rename to Modules/FiberTracking/Algorithms/GibbsTracking/mitkMetropolisHastingsSampler.h diff --git a/Modules/DiffusionImaging/FiberTracking/Algorithms/GibbsTracking/mitkParticle.h b/Modules/FiberTracking/Algorithms/GibbsTracking/mitkParticle.h similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Algorithms/GibbsTracking/mitkParticle.h rename to Modules/FiberTracking/Algorithms/GibbsTracking/mitkParticle.h diff --git a/Modules/DiffusionImaging/FiberTracking/Algorithms/GibbsTracking/mitkParticleGrid.cpp b/Modules/FiberTracking/Algorithms/GibbsTracking/mitkParticleGrid.cpp similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Algorithms/GibbsTracking/mitkParticleGrid.cpp rename to Modules/FiberTracking/Algorithms/GibbsTracking/mitkParticleGrid.cpp diff --git a/Modules/DiffusionImaging/FiberTracking/Algorithms/GibbsTracking/mitkParticleGrid.h b/Modules/FiberTracking/Algorithms/GibbsTracking/mitkParticleGrid.h similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Algorithms/GibbsTracking/mitkParticleGrid.h rename to Modules/FiberTracking/Algorithms/GibbsTracking/mitkParticleGrid.h diff --git a/Modules/DiffusionImaging/FiberTracking/Algorithms/GibbsTracking/mitkSimpSamp.h b/Modules/FiberTracking/Algorithms/GibbsTracking/mitkSimpSamp.h similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Algorithms/GibbsTracking/mitkSimpSamp.h rename to Modules/FiberTracking/Algorithms/GibbsTracking/mitkSimpSamp.h diff --git a/Modules/DiffusionImaging/FiberTracking/Algorithms/GibbsTracking/mitkSphereInterpolator.cpp b/Modules/FiberTracking/Algorithms/GibbsTracking/mitkSphereInterpolator.cpp similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Algorithms/GibbsTracking/mitkSphereInterpolator.cpp rename to Modules/FiberTracking/Algorithms/GibbsTracking/mitkSphereInterpolator.cpp diff --git a/Modules/DiffusionImaging/FiberTracking/Algorithms/GibbsTracking/mitkSphereInterpolator.h b/Modules/FiberTracking/Algorithms/GibbsTracking/mitkSphereInterpolator.h similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Algorithms/GibbsTracking/mitkSphereInterpolator.h rename to Modules/FiberTracking/Algorithms/GibbsTracking/mitkSphereInterpolator.h diff --git a/Modules/DiffusionImaging/FiberTracking/Algorithms/StochasticTracking/StochasticTractographyFilter.cxx b/Modules/FiberTracking/Algorithms/StochasticTracking/StochasticTractographyFilter.cxx similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Algorithms/StochasticTracking/StochasticTractographyFilter.cxx rename to Modules/FiberTracking/Algorithms/StochasticTracking/StochasticTractographyFilter.cxx diff --git a/Modules/DiffusionImaging/FiberTracking/Algorithms/StochasticTracking/StochasticTractographyFilter.xml b/Modules/FiberTracking/Algorithms/StochasticTracking/StochasticTractographyFilter.xml similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Algorithms/StochasticTracking/StochasticTractographyFilter.xml rename to Modules/FiberTracking/Algorithms/StochasticTracking/StochasticTractographyFilter.xml diff --git a/Modules/DiffusionImaging/FiberTracking/Algorithms/StochasticTracking/itkSlowPolyLineParametricPath.h b/Modules/FiberTracking/Algorithms/StochasticTracking/itkSlowPolyLineParametricPath.h similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Algorithms/StochasticTracking/itkSlowPolyLineParametricPath.h rename to Modules/FiberTracking/Algorithms/StochasticTracking/itkSlowPolyLineParametricPath.h diff --git a/Modules/DiffusionImaging/FiberTracking/Algorithms/StochasticTracking/itkSlowPolyLineParametricPath.txx b/Modules/FiberTracking/Algorithms/StochasticTracking/itkSlowPolyLineParametricPath.txx similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Algorithms/StochasticTracking/itkSlowPolyLineParametricPath.txx rename to Modules/FiberTracking/Algorithms/StochasticTracking/itkSlowPolyLineParametricPath.txx diff --git a/Modules/DiffusionImaging/FiberTracking/Algorithms/StochasticTracking/itkStochasticTractographyFilter_SD.txx b/Modules/FiberTracking/Algorithms/StochasticTracking/itkStochasticTractographyFilter_SD.txx similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Algorithms/StochasticTracking/itkStochasticTractographyFilter_SD.txx rename to Modules/FiberTracking/Algorithms/StochasticTracking/itkStochasticTractographyFilter_SD.txx diff --git a/Modules/DiffusionImaging/FiberTracking/Algorithms/TrackingHandlers/mitkTrackingDataHandler.cpp b/Modules/FiberTracking/Algorithms/TrackingHandlers/mitkTrackingDataHandler.cpp similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Algorithms/TrackingHandlers/mitkTrackingDataHandler.cpp rename to Modules/FiberTracking/Algorithms/TrackingHandlers/mitkTrackingDataHandler.cpp diff --git a/Modules/DiffusionImaging/FiberTracking/Algorithms/TrackingHandlers/mitkTrackingDataHandler.h b/Modules/FiberTracking/Algorithms/TrackingHandlers/mitkTrackingDataHandler.h similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Algorithms/TrackingHandlers/mitkTrackingDataHandler.h rename to Modules/FiberTracking/Algorithms/TrackingHandlers/mitkTrackingDataHandler.h diff --git a/Modules/DiffusionImaging/FiberTracking/Algorithms/TrackingHandlers/mitkTrackingHandlerOdf.cpp b/Modules/FiberTracking/Algorithms/TrackingHandlers/mitkTrackingHandlerOdf.cpp similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Algorithms/TrackingHandlers/mitkTrackingHandlerOdf.cpp rename to Modules/FiberTracking/Algorithms/TrackingHandlers/mitkTrackingHandlerOdf.cpp diff --git a/Modules/DiffusionImaging/FiberTracking/Algorithms/TrackingHandlers/mitkTrackingHandlerOdf.h b/Modules/FiberTracking/Algorithms/TrackingHandlers/mitkTrackingHandlerOdf.h similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Algorithms/TrackingHandlers/mitkTrackingHandlerOdf.h rename to Modules/FiberTracking/Algorithms/TrackingHandlers/mitkTrackingHandlerOdf.h diff --git a/Modules/DiffusionImaging/FiberTracking/Algorithms/TrackingHandlers/mitkTrackingHandlerPeaks.cpp b/Modules/FiberTracking/Algorithms/TrackingHandlers/mitkTrackingHandlerPeaks.cpp similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Algorithms/TrackingHandlers/mitkTrackingHandlerPeaks.cpp rename to Modules/FiberTracking/Algorithms/TrackingHandlers/mitkTrackingHandlerPeaks.cpp diff --git a/Modules/DiffusionImaging/FiberTracking/Algorithms/TrackingHandlers/mitkTrackingHandlerPeaks.h b/Modules/FiberTracking/Algorithms/TrackingHandlers/mitkTrackingHandlerPeaks.h similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Algorithms/TrackingHandlers/mitkTrackingHandlerPeaks.h rename to Modules/FiberTracking/Algorithms/TrackingHandlers/mitkTrackingHandlerPeaks.h diff --git a/Modules/DiffusionImaging/FiberTracking/Algorithms/TrackingHandlers/mitkTrackingHandlerRandomForest.cpp b/Modules/FiberTracking/Algorithms/TrackingHandlers/mitkTrackingHandlerRandomForest.cpp similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Algorithms/TrackingHandlers/mitkTrackingHandlerRandomForest.cpp rename to Modules/FiberTracking/Algorithms/TrackingHandlers/mitkTrackingHandlerRandomForest.cpp diff --git a/Modules/DiffusionImaging/FiberTracking/Algorithms/TrackingHandlers/mitkTrackingHandlerRandomForest.h b/Modules/FiberTracking/Algorithms/TrackingHandlers/mitkTrackingHandlerRandomForest.h similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Algorithms/TrackingHandlers/mitkTrackingHandlerRandomForest.h rename to Modules/FiberTracking/Algorithms/TrackingHandlers/mitkTrackingHandlerRandomForest.h diff --git a/Modules/DiffusionImaging/FiberTracking/Algorithms/TrackingHandlers/mitkTrackingHandlerTensor.cpp b/Modules/FiberTracking/Algorithms/TrackingHandlers/mitkTrackingHandlerTensor.cpp similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Algorithms/TrackingHandlers/mitkTrackingHandlerTensor.cpp rename to Modules/FiberTracking/Algorithms/TrackingHandlers/mitkTrackingHandlerTensor.cpp diff --git a/Modules/DiffusionImaging/FiberTracking/Algorithms/TrackingHandlers/mitkTrackingHandlerTensor.h b/Modules/FiberTracking/Algorithms/TrackingHandlers/mitkTrackingHandlerTensor.h similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Algorithms/TrackingHandlers/mitkTrackingHandlerTensor.h rename to Modules/FiberTracking/Algorithms/TrackingHandlers/mitkTrackingHandlerTensor.h diff --git a/Modules/DiffusionImaging/FiberTracking/Algorithms/itkEvaluateDirectionImagesFilter.cpp b/Modules/FiberTracking/Algorithms/itkEvaluateDirectionImagesFilter.cpp similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Algorithms/itkEvaluateDirectionImagesFilter.cpp rename to Modules/FiberTracking/Algorithms/itkEvaluateDirectionImagesFilter.cpp diff --git a/Modules/DiffusionImaging/FiberTracking/Algorithms/itkEvaluateDirectionImagesFilter.h b/Modules/FiberTracking/Algorithms/itkEvaluateDirectionImagesFilter.h similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Algorithms/itkEvaluateDirectionImagesFilter.h rename to Modules/FiberTracking/Algorithms/itkEvaluateDirectionImagesFilter.h diff --git a/Modules/DiffusionImaging/FiberTracking/Algorithms/itkEvaluateTractogramDirectionsFilter.cpp b/Modules/FiberTracking/Algorithms/itkEvaluateTractogramDirectionsFilter.cpp similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Algorithms/itkEvaluateTractogramDirectionsFilter.cpp rename to Modules/FiberTracking/Algorithms/itkEvaluateTractogramDirectionsFilter.cpp diff --git a/Modules/DiffusionImaging/FiberTracking/Algorithms/itkEvaluateTractogramDirectionsFilter.h b/Modules/FiberTracking/Algorithms/itkEvaluateTractogramDirectionsFilter.h similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Algorithms/itkEvaluateTractogramDirectionsFilter.h rename to Modules/FiberTracking/Algorithms/itkEvaluateTractogramDirectionsFilter.h diff --git a/Modules/DiffusionImaging/FiberTracking/Algorithms/itkFiberCurvatureFilter.cpp b/Modules/FiberTracking/Algorithms/itkFiberCurvatureFilter.cpp similarity index 98% rename from Modules/DiffusionImaging/FiberTracking/Algorithms/itkFiberCurvatureFilter.cpp rename to Modules/FiberTracking/Algorithms/itkFiberCurvatureFilter.cpp index 1437b8e..6ed4255 100644 --- a/Modules/DiffusionImaging/FiberTracking/Algorithms/itkFiberCurvatureFilter.cpp +++ b/Modules/FiberTracking/Algorithms/itkFiberCurvatureFilter.cpp @@ -1,166 +1,166 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ #include "itkFiberCurvatureFilter.h" #include #include #include namespace itk{ FiberCurvatureFilter::FiberCurvatureFilter() : m_AngularDeviation(30) , m_Distance(10.0) , m_RemoveFibers(false) , m_UseMedian(false) { } FiberCurvatureFilter::~FiberCurvatureFilter() { } void FiberCurvatureFilter::GenerateData() { vtkSmartPointer inputPoly = m_InputFiberBundle->GetFiberPolyData(); vtkSmartPointer vtkNewPoints = vtkSmartPointer::New(); vtkSmartPointer vtkNewCells = vtkSmartPointer::New(); MITK_INFO << "Applying curvature threshold"; boost::progress_display disp(inputPoly->GetNumberOfCells()); #pragma omp parallel for for (int i=0; iGetNumberOfCells(); i++) { std::vector< vnl_vector_fixed< double, 3 > > vertices; #pragma omp critical { ++disp; vtkCell* cell = inputPoly->GetCell(i); int numPoints = cell->GetNumberOfPoints(); vtkPoints* points = cell->GetPoints(); for (int j=0; jGetPoint(j, p); vnl_vector_fixed< double, 3 > p_vec; p_vec[0]=p[0]; p_vec[1]=p[1]; p_vec[2]=p[2]; vertices.push_back(p_vec); } } // calculate curvatures int numPoints = vertices.size(); vtkSmartPointer container = vtkSmartPointer::New(); for (int j=0; j > vectors; vnl_vector_fixed< double, 3 > meanV; meanV.fill(0.0); while(dist1) { vnl_vector_fixed< double, 3 > p1 = vertices.at(c-1); vnl_vector_fixed< double, 3 > p2 = vertices.at(c); vnl_vector_fixed< double, 3 > v = p2-p1; dist += v.magnitude(); v.normalize(); vectors.push_back(v); if (m_UseMedian && c==j) meanV += v; else if (!m_UseMedian) meanV += v; c--; } c = j; dist = 0; while(dist p1 = vertices.at(c); vnl_vector_fixed< double, 3 > p2 = vertices.at(c+1); vnl_vector_fixed< double, 3 > v = p2-p1; dist += v.magnitude(); v.normalize(); vectors.push_back(v); if (m_UseMedian && c==j) meanV += v; else if (!m_UseMedian) meanV += v; c++; } meanV.normalize(); double dev = 0; for (auto vec : vectors) { double angle = dot_product(meanV, vec); if (angle>1.0) angle = 1.0; if (angle<-1.0) angle = -1.0; dev += acos(angle)*180/itk::Math::pi; } if (vectors.size()>0) dev /= vectors.size(); if (devInsertNextPoint(vertices.at(j).data_block()); container->GetPointIds()->InsertNextId(id); } } else { if (m_RemoveFibers) { container = vtkSmartPointer::New(); break; } if (container->GetNumberOfPoints()>0) { #pragma omp critical vtkNewCells->InsertNextCell(container); } container = vtkSmartPointer::New(); } } #pragma omp critical { if (container->GetNumberOfPoints()>0) vtkNewCells->InsertNextCell(container); } } vtkSmartPointer outputPoly = vtkSmartPointer::New(); outputPoly->SetPoints(vtkNewPoints); outputPoly->SetLines(vtkNewCells); - m_OutputFiberBundle = FiberBundle::New(outputPoly); + m_OutputFiberBundle = mitk::FiberBundle::New(outputPoly); } } diff --git a/Modules/DiffusionImaging/FiberTracking/Algorithms/itkFiberCurvatureFilter.h b/Modules/FiberTracking/Algorithms/itkFiberCurvatureFilter.h similarity index 88% rename from Modules/DiffusionImaging/FiberTracking/Algorithms/itkFiberCurvatureFilter.h rename to Modules/FiberTracking/Algorithms/itkFiberCurvatureFilter.h index c6c8ed9..40c788d 100644 --- a/Modules/DiffusionImaging/FiberTracking/Algorithms/itkFiberCurvatureFilter.h +++ b/Modules/FiberTracking/Algorithms/itkFiberCurvatureFilter.h @@ -1,83 +1,82 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ #ifndef itkFiberCurvatureFilter_h #define itkFiberCurvatureFilter_h // MITK #include #include -#include // ITK #include // VTK #include #include #include #include #include namespace itk{ /** * \brief */ class FiberCurvatureFilter : public ProcessObject { public: typedef FiberCurvatureFilter Self; typedef ProcessObject Superclass; typedef SmartPointer< Self > Pointer; typedef SmartPointer< const Self > ConstPointer; itkFactorylessNewMacro(Self) itkCloneMacro(Self) itkTypeMacro( FiberCurvatureFilter, ProcessObject ) void Update() override{ this->GenerateData(); } itkSetMacro( Distance, double ) itkSetMacro( AngularDeviation, double ) itkSetMacro( RemoveFibers, bool ) itkSetMacro( UseMedian, bool ) - itkSetMacro( InputFiberBundle, FiberBundle::Pointer ) - itkGetMacro( OutputFiberBundle, FiberBundle::Pointer ) + itkSetMacro( InputFiberBundle, mitk::FiberBundle::Pointer ) + itkGetMacro( OutputFiberBundle, mitk::FiberBundle::Pointer ) protected: void GenerateData() override; FiberCurvatureFilter(); ~FiberCurvatureFilter() override; - FiberBundle::Pointer m_InputFiberBundle; - FiberBundle::Pointer m_OutputFiberBundle; + mitk::FiberBundle::Pointer m_InputFiberBundle; + mitk::FiberBundle::Pointer m_OutputFiberBundle; double m_AngularDeviation; double m_Distance; bool m_RemoveFibers; bool m_UseMedian; }; } #ifndef ITK_MANUAL_INSTANTIATION #include "itkFiberCurvatureFilter.cpp" #endif #endif diff --git a/Modules/DiffusionImaging/FiberTracking/Algorithms/itkFiberExtractionFilter.cpp b/Modules/FiberTracking/Algorithms/itkFiberExtractionFilter.cpp similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Algorithms/itkFiberExtractionFilter.cpp rename to Modules/FiberTracking/Algorithms/itkFiberExtractionFilter.cpp diff --git a/Modules/DiffusionImaging/FiberTracking/Algorithms/itkFiberExtractionFilter.h b/Modules/FiberTracking/Algorithms/itkFiberExtractionFilter.h similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Algorithms/itkFiberExtractionFilter.h rename to Modules/FiberTracking/Algorithms/itkFiberExtractionFilter.h diff --git a/Modules/DiffusionImaging/FiberTracking/Algorithms/itkGibbsTrackingFilter.cpp b/Modules/FiberTracking/Algorithms/itkGibbsTrackingFilter.cpp similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Algorithms/itkGibbsTrackingFilter.cpp rename to Modules/FiberTracking/Algorithms/itkGibbsTrackingFilter.cpp diff --git a/Modules/DiffusionImaging/FiberTracking/Algorithms/itkGibbsTrackingFilter.h b/Modules/FiberTracking/Algorithms/itkGibbsTrackingFilter.h similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Algorithms/itkGibbsTrackingFilter.h rename to Modules/FiberTracking/Algorithms/itkGibbsTrackingFilter.h diff --git a/Modules/DiffusionImaging/FiberTracking/Algorithms/itkStochasticTractographyFilter.h b/Modules/FiberTracking/Algorithms/itkStochasticTractographyFilter.h similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Algorithms/itkStochasticTractographyFilter.h rename to Modules/FiberTracking/Algorithms/itkStochasticTractographyFilter.h diff --git a/Modules/DiffusionImaging/FiberTracking/Algorithms/itkStochasticTractographyFilter.txx b/Modules/FiberTracking/Algorithms/itkStochasticTractographyFilter.txx similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Algorithms/itkStochasticTractographyFilter.txx rename to Modules/FiberTracking/Algorithms/itkStochasticTractographyFilter.txx diff --git a/Modules/DiffusionImaging/FiberTracking/Algorithms/itkStreamlineTrackingFilter.cpp b/Modules/FiberTracking/Algorithms/itkStreamlineTrackingFilter.cpp similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Algorithms/itkStreamlineTrackingFilter.cpp rename to Modules/FiberTracking/Algorithms/itkStreamlineTrackingFilter.cpp diff --git a/Modules/DiffusionImaging/FiberTracking/Algorithms/itkStreamlineTrackingFilter.h b/Modules/FiberTracking/Algorithms/itkStreamlineTrackingFilter.h similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Algorithms/itkStreamlineTrackingFilter.h rename to Modules/FiberTracking/Algorithms/itkStreamlineTrackingFilter.h diff --git a/Modules/DiffusionImaging/FiberTracking/Algorithms/itkTdiToVolumeFractionFilter.cpp b/Modules/FiberTracking/Algorithms/itkTdiToVolumeFractionFilter.cpp similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Algorithms/itkTdiToVolumeFractionFilter.cpp rename to Modules/FiberTracking/Algorithms/itkTdiToVolumeFractionFilter.cpp diff --git a/Modules/DiffusionImaging/FiberTracking/Algorithms/itkTdiToVolumeFractionFilter.h b/Modules/FiberTracking/Algorithms/itkTdiToVolumeFractionFilter.h similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Algorithms/itkTdiToVolumeFractionFilter.h rename to Modules/FiberTracking/Algorithms/itkTdiToVolumeFractionFilter.h diff --git a/Modules/DiffusionImaging/FiberTracking/Algorithms/itkTractClusteringFilter.cpp b/Modules/FiberTracking/Algorithms/itkTractClusteringFilter.cpp similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Algorithms/itkTractClusteringFilter.cpp rename to Modules/FiberTracking/Algorithms/itkTractClusteringFilter.cpp diff --git a/Modules/DiffusionImaging/FiberTracking/Algorithms/itkTractClusteringFilter.h b/Modules/FiberTracking/Algorithms/itkTractClusteringFilter.h similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Algorithms/itkTractClusteringFilter.h rename to Modules/FiberTracking/Algorithms/itkTractClusteringFilter.h diff --git a/Modules/DiffusionImaging/FiberTracking/Algorithms/itkTractDensityImageFilter.cpp b/Modules/FiberTracking/Algorithms/itkTractDensityImageFilter.cpp similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Algorithms/itkTractDensityImageFilter.cpp rename to Modules/FiberTracking/Algorithms/itkTractDensityImageFilter.cpp diff --git a/Modules/DiffusionImaging/FiberTracking/Algorithms/itkTractDensityImageFilter.h b/Modules/FiberTracking/Algorithms/itkTractDensityImageFilter.h similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Algorithms/itkTractDensityImageFilter.h rename to Modules/FiberTracking/Algorithms/itkTractDensityImageFilter.h diff --git a/Modules/DiffusionImaging/FiberTracking/Algorithms/itkTractDistanceFilter.cpp b/Modules/FiberTracking/Algorithms/itkTractDistanceFilter.cpp similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Algorithms/itkTractDistanceFilter.cpp rename to Modules/FiberTracking/Algorithms/itkTractDistanceFilter.cpp diff --git a/Modules/DiffusionImaging/FiberTracking/Algorithms/itkTractDistanceFilter.h b/Modules/FiberTracking/Algorithms/itkTractDistanceFilter.h similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Algorithms/itkTractDistanceFilter.h rename to Modules/FiberTracking/Algorithms/itkTractDistanceFilter.h diff --git a/Modules/DiffusionImaging/FiberTracking/Algorithms/itkTractsToFiberEndingsImageFilter.cpp b/Modules/FiberTracking/Algorithms/itkTractsToFiberEndingsImageFilter.cpp similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Algorithms/itkTractsToFiberEndingsImageFilter.cpp rename to Modules/FiberTracking/Algorithms/itkTractsToFiberEndingsImageFilter.cpp diff --git a/Modules/DiffusionImaging/FiberTracking/Algorithms/itkTractsToFiberEndingsImageFilter.h b/Modules/FiberTracking/Algorithms/itkTractsToFiberEndingsImageFilter.h similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Algorithms/itkTractsToFiberEndingsImageFilter.h rename to Modules/FiberTracking/Algorithms/itkTractsToFiberEndingsImageFilter.h diff --git a/Modules/DiffusionImaging/FiberTracking/Algorithms/itkTractsToRgbaImageFilter.cpp b/Modules/FiberTracking/Algorithms/itkTractsToRgbaImageFilter.cpp similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Algorithms/itkTractsToRgbaImageFilter.cpp rename to Modules/FiberTracking/Algorithms/itkTractsToRgbaImageFilter.cpp diff --git a/Modules/DiffusionImaging/FiberTracking/Algorithms/itkTractsToRgbaImageFilter.h b/Modules/FiberTracking/Algorithms/itkTractsToRgbaImageFilter.h similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Algorithms/itkTractsToRgbaImageFilter.h rename to Modules/FiberTracking/Algorithms/itkTractsToRgbaImageFilter.h diff --git a/Modules/DiffusionImaging/FiberTracking/Algorithms/itkTractsToVectorImageFilter.cpp b/Modules/FiberTracking/Algorithms/itkTractsToVectorImageFilter.cpp similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Algorithms/itkTractsToVectorImageFilter.cpp rename to Modules/FiberTracking/Algorithms/itkTractsToVectorImageFilter.cpp diff --git a/Modules/DiffusionImaging/FiberTracking/Algorithms/itkTractsToVectorImageFilter.h b/Modules/FiberTracking/Algorithms/itkTractsToVectorImageFilter.h similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Algorithms/itkTractsToVectorImageFilter.h rename to Modules/FiberTracking/Algorithms/itkTractsToVectorImageFilter.h diff --git a/Modules/DiffusionImaging/FiberTracking/CMakeLists.txt b/Modules/FiberTracking/CMakeLists.txt similarity index 70% rename from Modules/DiffusionImaging/FiberTracking/CMakeLists.txt rename to Modules/FiberTracking/CMakeLists.txt index 53893cf..5f79ccf 100644 --- a/Modules/DiffusionImaging/FiberTracking/CMakeLists.txt +++ b/Modules/FiberTracking/CMakeLists.txt @@ -1,47 +1,46 @@ -set(_module_deps MitkDiffusionCore MitkGraphAlgorithms MitkCLVigraRandomForest) +set(_module_deps MitkDiffusionCore MitkCLVigraRandomForest) mitk_check_module_dependencies( MODULES ${_module_deps} MISSING_DEPENDENCIES_VAR _missing_deps ) if(NOT _missing_deps) set(lut_url http://mitk.org/download/data/FibertrackingLUT.tar.gz) set(lut_tarball ${CMAKE_CURRENT_BINARY_DIR}/FibertrackingLUT.tar.gz) file(DOWNLOAD ${lut_url} ${lut_tarball} EXPECTED_MD5 38ecb6d4a826c9ebb0f4965eb9aeee44 TIMEOUT 60 STATUS status SHOW_PROGRESS ) list(GET status 0 status_code) list(GET status 1 status_msg) if(NOT status_code EQUAL 0) message(SEND_ERROR "${status_msg} (error code ${status_code})") endif() file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/Resources) execute_process(COMMAND ${CMAKE_COMMAND} -E tar xzf ../FibertrackingLUT.tar.gz WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/Resources RESULT_VARIABLE result ERROR_VARIABLE err_msg) if(result) message(SEND_ERROR "Unpacking FibertrackingLUT.tar.gz failed: ${err_msg}") endif() endif() MITK_CREATE_MODULE( SUBPROJECTS MITK-Diffusion - INCLUDE_DIRS Fiberfox Fiberfox/SignalModels Fiberfox/Sequences Algorithms Algorithms/TrackingHandlers Algorithms/ClusteringMetrics Algorithms/GibbsTracking Algorithms/StochasticTracking IODataStructures IODataStructures/FiberBundle IODataStructures/PlanarFigureComposite Rendering ${CMAKE_CURRENT_BINARY_DIR} + INCLUDE_DIRS Algorithms Algorithms/TrackingHandlers Algorithms/ClusteringMetrics Algorithms/GibbsTracking Algorithms/StochasticTracking ${CMAKE_CURRENT_BINARY_DIR} DEPENDS ${_module_deps} - PACKAGE_DEPENDS PUBLIC ITK|ITKFFT ITK|ITKDiffusionTensorImage Vigra HDF5 OpenMP|OpenMP_CXX ) if(MODULE_IS_ENABLED) add_subdirectory(Testing) endif() diff --git a/Modules/DiffusionImaging/FiberTracking/Resources/empty b/Modules/FiberTracking/Resources/empty similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Resources/empty rename to Modules/FiberTracking/Resources/empty diff --git a/Modules/DiffusionImaging/FiberTracking/Testing/CMakeLists.txt b/Modules/FiberTracking/Testing/CMakeLists.txt similarity index 76% rename from Modules/DiffusionImaging/FiberTracking/Testing/CMakeLists.txt rename to Modules/FiberTracking/Testing/CMakeLists.txt index 28d176e..45606b7 100644 --- a/Modules/DiffusionImaging/FiberTracking/Testing/CMakeLists.txt +++ b/Modules/FiberTracking/Testing/CMakeLists.txt @@ -1,25 +1,21 @@ MITK_CREATE_MODULE_TESTS() if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8") mitkAddCustomModuleTest(mitkFiberBundleReaderWriterTest mitkFiberBundleReaderWriterTest) # Temporarily disabled. Since method relies on random numbers, the behaviour is not consistent across different systems. Solution? #mitkAddCustomModuleTest(mitkGibbsTrackingTest mitkGibbsTrackingTest ${MITK_DATA_DIR}/DiffusionImaging/qBallImage.qbi ${MITK_DATA_DIR}/DiffusionImaging/diffusionImageMask.nrrd ${MITK_DATA_DIR}/DiffusionImaging/gibbsTrackingParameters.gtp ${MITK_DATA_DIR}/DiffusionImaging/gibbsTractogram.fib) mitkAddCustomModuleTest(mitkFiberTransformationTest mitkFiberTransformationTest ${MITK_DATA_DIR}/DiffusionImaging/fiberBundleX.fib ${MITK_DATA_DIR}/DiffusionImaging/fiberBundleX_transformed.fib) mitkAddCustomModuleTest(mitkFiberExtractionTest mitkFiberExtractionTest ${MITK_DATA_DIR}/DiffusionImaging/fiberBundleX.fib ${MITK_DATA_DIR}/DiffusionImaging/fiberBundleX_extracted.fib ${MITK_DATA_DIR}/DiffusionImaging/ROI1.pf ${MITK_DATA_DIR}/DiffusionImaging/ROI2.pf ${MITK_DATA_DIR}/DiffusionImaging/ROI3.pf ${MITK_DATA_DIR}/DiffusionImaging/ROIIMAGE.nrrd ${MITK_DATA_DIR}/DiffusionImaging/fiberBundleX_inside.fib ${MITK_DATA_DIR}/DiffusionImaging/fiberBundleX_outside.fib ${MITK_DATA_DIR}/DiffusionImaging/fiberBundleX_passing-mask.fib ${MITK_DATA_DIR}/DiffusionImaging/fiberBundleX_ending-in-mask.fib ${MITK_DATA_DIR}/DiffusionImaging/fiberBundleX_subtracted.fib ${MITK_DATA_DIR}/DiffusionImaging/fiberBundleX_added.fib) -mitkAddCustomModuleTest(mitkFiberGenerationTest mitkFiberGenerationTest ${MITK_DATA_DIR}/DiffusionImaging/Fiberfox/Fiducial_0.pf ${MITK_DATA_DIR}/DiffusionImaging/Fiberfox/Fiducial_1.pf ${MITK_DATA_DIR}/DiffusionImaging/Fiberfox/Fiducial_2.pf ${MITK_DATA_DIR}/DiffusionImaging/Fiberfox/uniform.fib ${MITK_DATA_DIR}/DiffusionImaging/Fiberfox/gaussian.fib) -mitkAddCustomModuleTest(mitkFiberfoxSignalGenerationBrainSliceTest mitkFiberfoxSignalGenerationBrainSliceTest) -mitkAddCustomModuleTest(mitkFiberfoxSignalGenerationTest mitkFiberfoxSignalGenerationTest) mitkAddCustomModuleTest(mitkMachineLearningTrackingTest mitkMachineLearningTrackingTest) mitkAddCustomModuleTest(mitkStreamlineTractographyTest mitkStreamlineTractographyTest) mitkAddCustomModuleTest(mitkFiberProcessingTest mitkFiberProcessingTest) -mitkAddCustomModuleTest(mitkFiberFitTest mitkFiberFitTest) mitkAddCustomModuleTest(mitkPeakShImageReaderTest mitkPeakShImageReaderTest) if(MITK_ENABLE_RENDERING_TESTING) # apparently does not work on ubuntu mitkAddCustomModuleTest(mitkFiberMapper3DTest mitkFiberMapper3DTest) ENDIF() ENDIF() diff --git a/Modules/DiffusionImaging/FiberTracking/Testing/files.cmake b/Modules/FiberTracking/Testing/files.cmake similarity index 69% rename from Modules/DiffusionImaging/FiberTracking/Testing/files.cmake rename to Modules/FiberTracking/Testing/files.cmake index 3d06aa5..e90b3bf 100644 --- a/Modules/DiffusionImaging/FiberTracking/Testing/files.cmake +++ b/Modules/FiberTracking/Testing/files.cmake @@ -1,17 +1,13 @@ SET(MODULE_CUSTOM_TESTS mitkFiberBundleReaderWriterTest.cpp mitkGibbsTrackingTest.cpp mitkStreamlineTractographyTest.cpp mitkFiberTransformationTest.cpp mitkFiberExtractionTest.cpp - mitkFiberGenerationTest.cpp - mitkFiberfoxSignalGenerationTest.cpp - mitkFiberfoxSignalGenerationBrainSliceTest.cpp mitkMachineLearningTrackingTest.cpp mitkFiberProcessingTest.cpp - mitkFiberFitTest.cpp mitkFiberMapper3DTest.cpp mitkPeakShImageReaderTest.cpp ) diff --git a/Modules/DiffusionImaging/FiberTracking/Testing/mitkFiberBundleReaderWriterTest.cpp b/Modules/FiberTracking/Testing/mitkFiberBundleReaderWriterTest.cpp similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Testing/mitkFiberBundleReaderWriterTest.cpp rename to Modules/FiberTracking/Testing/mitkFiberBundleReaderWriterTest.cpp diff --git a/Modules/DiffusionImaging/FiberTracking/Testing/mitkFiberExtractionTest.cpp b/Modules/FiberTracking/Testing/mitkFiberExtractionTest.cpp similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Testing/mitkFiberExtractionTest.cpp rename to Modules/FiberTracking/Testing/mitkFiberExtractionTest.cpp diff --git a/Modules/DiffusionImaging/FiberTracking/Testing/mitkFiberMapper3DTest.cpp b/Modules/FiberTracking/Testing/mitkFiberMapper3DTest.cpp similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Testing/mitkFiberMapper3DTest.cpp rename to Modules/FiberTracking/Testing/mitkFiberMapper3DTest.cpp diff --git a/Modules/DiffusionImaging/FiberTracking/Testing/mitkFiberProcessingTest.cpp b/Modules/FiberTracking/Testing/mitkFiberProcessingTest.cpp similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Testing/mitkFiberProcessingTest.cpp rename to Modules/FiberTracking/Testing/mitkFiberProcessingTest.cpp diff --git a/Modules/DiffusionImaging/FiberTracking/Testing/mitkFiberTransformationTest.cpp b/Modules/FiberTracking/Testing/mitkFiberTransformationTest.cpp similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Testing/mitkFiberTransformationTest.cpp rename to Modules/FiberTracking/Testing/mitkFiberTransformationTest.cpp diff --git a/Modules/DiffusionImaging/FiberTracking/Testing/mitkGibbsTrackingTest.cpp b/Modules/FiberTracking/Testing/mitkGibbsTrackingTest.cpp similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Testing/mitkGibbsTrackingTest.cpp rename to Modules/FiberTracking/Testing/mitkGibbsTrackingTest.cpp diff --git a/Modules/DiffusionImaging/FiberTracking/Testing/mitkMachineLearningTrackingTest.cpp b/Modules/FiberTracking/Testing/mitkMachineLearningTrackingTest.cpp similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Testing/mitkMachineLearningTrackingTest.cpp rename to Modules/FiberTracking/Testing/mitkMachineLearningTrackingTest.cpp diff --git a/Modules/DiffusionImaging/FiberTracking/Testing/mitkPeakShImageReaderTest.cpp b/Modules/FiberTracking/Testing/mitkPeakShImageReaderTest.cpp similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Testing/mitkPeakShImageReaderTest.cpp rename to Modules/FiberTracking/Testing/mitkPeakShImageReaderTest.cpp diff --git a/Modules/DiffusionImaging/FiberTracking/Testing/mitkStreamlineTractographyTest.cpp b/Modules/FiberTracking/Testing/mitkStreamlineTractographyTest.cpp similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Testing/mitkStreamlineTractographyTest.cpp rename to Modules/FiberTracking/Testing/mitkStreamlineTractographyTest.cpp diff --git a/Modules/DiffusionImaging/FiberTracking/files.cmake b/Modules/FiberTracking/files.cmake similarity index 62% rename from Modules/DiffusionImaging/FiberTracking/files.cmake rename to Modules/FiberTracking/files.cmake index 39210be..be71c70 100644 --- a/Modules/DiffusionImaging/FiberTracking/files.cmake +++ b/Modules/FiberTracking/files.cmake @@ -1,111 +1,70 @@ set(CPP_FILES - - mitkFiberTrackingModuleActivator.cpp - - ## IO datastructures - IODataStructures/FiberBundle/mitkFiberBundle.cpp - IODataStructures/FiberBundle/mitkTrackvis.cpp - IODataStructures/PlanarFigureComposite/mitkPlanarFigureComposite.cpp - IODataStructures/mitkTractographyForest.cpp - IODataStructures/mitkFiberfoxParameters.cpp - IODataStructures/mitkStreamlineTractographyParameters.cpp - - # Interactions + mitkStreamlineTractographyParameters.cpp # Tractography Algorithms/GibbsTracking/mitkParticleGrid.cpp Algorithms/GibbsTracking/mitkMetropolisHastingsSampler.cpp Algorithms/GibbsTracking/mitkEnergyComputer.cpp Algorithms/GibbsTracking/mitkGibbsEnergyComputer.cpp Algorithms/GibbsTracking/mitkFiberBuilder.cpp Algorithms/GibbsTracking/mitkSphereInterpolator.cpp Algorithms/itkStreamlineTrackingFilter.cpp Algorithms/TrackingHandlers/mitkTrackingDataHandler.cpp Algorithms/TrackingHandlers/mitkTrackingHandlerTensor.cpp Algorithms/TrackingHandlers/mitkTrackingHandlerPeaks.cpp Algorithms/TrackingHandlers/mitkTrackingHandlerOdf.cpp ) set(H_FILES - # DataStructures -> FiberBundle - IODataStructures/FiberBundle/mitkFiberBundle.h - IODataStructures/FiberBundle/mitkTrackvis.h - IODataStructures/mitkFiberfoxParameters.h - IODataStructures/mitkTractographyForest.h - IODataStructures/mitkStreamlineTractographyParameters.h + mitkStreamlineTractographyParameters.h # Algorithms Algorithms/itkTractDensityImageFilter.h Algorithms/itkTractsToFiberEndingsImageFilter.h Algorithms/itkTractsToRgbaImageFilter.h Algorithms/itkTractsToVectorImageFilter.h Algorithms/itkEvaluateDirectionImagesFilter.h Algorithms/itkEvaluateTractogramDirectionsFilter.h Algorithms/itkFiberCurvatureFilter.h - Algorithms/itkFitFibersToImageFilter.h Algorithms/itkTractClusteringFilter.h Algorithms/itkTractDistanceFilter.h Algorithms/itkFiberExtractionFilter.h Algorithms/itkTdiToVolumeFractionFilter.h # Tractography Algorithms/TrackingHandlers/mitkTrackingDataHandler.h Algorithms/TrackingHandlers/mitkTrackingHandlerRandomForest.h Algorithms/TrackingHandlers/mitkTrackingHandlerTensor.h Algorithms/TrackingHandlers/mitkTrackingHandlerPeaks.h Algorithms/TrackingHandlers/mitkTrackingHandlerOdf.h Algorithms/itkGibbsTrackingFilter.h Algorithms/itkStochasticTractographyFilter.h Algorithms/GibbsTracking/mitkParticle.h Algorithms/GibbsTracking/mitkParticleGrid.h Algorithms/GibbsTracking/mitkMetropolisHastingsSampler.h Algorithms/GibbsTracking/mitkSimpSamp.h Algorithms/GibbsTracking/mitkEnergyComputer.h Algorithms/GibbsTracking/mitkGibbsEnergyComputer.h Algorithms/GibbsTracking/mitkSphereInterpolator.h Algorithms/GibbsTracking/mitkFiberBuilder.h Algorithms/itkStreamlineTrackingFilter.h # Clustering Algorithms/ClusteringMetrics/mitkClusteringMetric.h Algorithms/ClusteringMetrics/mitkClusteringMetricEuclideanMean.h Algorithms/ClusteringMetrics/mitkClusteringMetricEuclideanMax.h Algorithms/ClusteringMetrics/mitkClusteringMetricEuclideanStd.h Algorithms/ClusteringMetrics/mitkClusteringMetricAnatomic.h Algorithms/ClusteringMetrics/mitkClusteringMetricScalarMap.h Algorithms/ClusteringMetrics/mitkClusteringMetricInnerAngles.h Algorithms/ClusteringMetrics/mitkClusteringMetricLength.h - - # Fiberfox - Fiberfox/itkFibersFromPlanarFiguresFilter.h - Fiberfox/itkTractsToDWIImageFilter.h - Fiberfox/itkKspaceImageFilter.h - Fiberfox/itkDftImageFilter.h - Fiberfox/itkFieldmapGeneratorFilter.h - Fiberfox/itkRandomPhantomFilter.h - - Fiberfox/SignalModels/mitkDiffusionSignalModel.h - Fiberfox/SignalModels/mitkTensorModel.h - Fiberfox/SignalModels/mitkBallModel.h - Fiberfox/SignalModels/mitkDotModel.h - Fiberfox/SignalModels/mitkAstroStickModel.h - Fiberfox/SignalModels/mitkStickModel.h - Fiberfox/SignalModels/mitkRawShModel.h - Fiberfox/SignalModels/mitkDiffusionNoiseModel.h - Fiberfox/SignalModels/mitkRicianNoiseModel.h - Fiberfox/SignalModels/mitkChiSquareNoiseModel.h - - Fiberfox/Sequences/mitkAcquisitionType.h - Fiberfox/Sequences/mitkSingleShotEpi.h - Fiberfox/Sequences/mitkConventionalSpinEcho.h - Fiberfox/Sequences/mitkFastSpinEcho.h ) set(RESOURCE_FILES # Binary directory resources FiberTrackingLUTBaryCoords.bin FiberTrackingLUTIndices.bin ) diff --git a/Modules/DiffusionImaging/FiberTracking/IODataStructures/mitkStreamlineTractographyParameters.cpp b/Modules/FiberTracking/mitkStreamlineTractographyParameters.cpp similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/IODataStructures/mitkStreamlineTractographyParameters.cpp rename to Modules/FiberTracking/mitkStreamlineTractographyParameters.cpp diff --git a/Modules/DiffusionImaging/FiberTracking/IODataStructures/mitkStreamlineTractographyParameters.h b/Modules/FiberTracking/mitkStreamlineTractographyParameters.h similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/IODataStructures/mitkStreamlineTractographyParameters.h rename to Modules/FiberTracking/mitkStreamlineTractographyParameters.h diff --git a/Modules/ModuleList.cmake b/Modules/ModuleList.cmake index 23942d2..ac97051 100644 --- a/Modules/ModuleList.cmake +++ b/Modules/ModuleList.cmake @@ -1,3 +1,8 @@ set(MITK_MODULES - DiffusionImaging + DiffusionCore + FiberTracking + Connectomics + MriSimulation + DiffusionIO + DiffusionCmdApps ) diff --git a/Modules/DiffusionImaging/FiberTracking/Fiberfox/itkDftImageFilter.cpp b/Modules/MriSimulation/Algorithms/itkDftImageFilter.cpp similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Fiberfox/itkDftImageFilter.cpp rename to Modules/MriSimulation/Algorithms/itkDftImageFilter.cpp diff --git a/Modules/DiffusionImaging/FiberTracking/Fiberfox/itkDftImageFilter.h b/Modules/MriSimulation/Algorithms/itkDftImageFilter.h similarity index 98% rename from Modules/DiffusionImaging/FiberTracking/Fiberfox/itkDftImageFilter.h rename to Modules/MriSimulation/Algorithms/itkDftImageFilter.h index 2960a60..a5aa373 100644 --- a/Modules/DiffusionImaging/FiberTracking/Fiberfox/itkDftImageFilter.h +++ b/Modules/MriSimulation/Algorithms/itkDftImageFilter.h @@ -1,80 +1,79 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ /*=================================================================== This file is based heavily on a corresponding ITK filter. ===================================================================*/ #ifndef __itkDftImageFilter_h_ #define __itkDftImageFilter_h_ -#include #include #include #include #include namespace itk{ /** * \brief 2D Discrete Fourier Transform Filter (complex to real). Special issue for Fiberfox -> rearranges slice. */ template< class TPixelType > class DftImageFilter : public ImageToImageFilter< Image< vcl_complex< TPixelType > >, Image< vcl_complex< TPixelType > > > { public: typedef DftImageFilter Self; typedef SmartPointer Pointer; typedef SmartPointer ConstPointer; typedef ImageToImageFilter< Image< vcl_complex< TPixelType > >, Image< vcl_complex< TPixelType > > > Superclass; /** Method for creation through the object factory. */ itkFactorylessNewMacro(Self) itkCloneMacro(Self) /** Runtime information support. */ itkTypeMacro(DftImageFilter, ImageToImageFilter) typedef typename Superclass::InputImageType InputImageType; typedef typename Superclass::OutputImageType OutputImageType; typedef typename Superclass::OutputImageRegionType OutputImageRegionType; void SetParameters( FiberfoxParameters& param ){ m_Parameters = param; } protected: DftImageFilter(); ~DftImageFilter() override {} void BeforeThreadedGenerateData() override; void ThreadedGenerateData( const OutputImageRegionType &outputRegionForThread, ThreadIdType threadId) override; private: FiberfoxParameters m_Parameters; }; } #ifndef ITK_MANUAL_INSTANTIATION #include "itkDftImageFilter.cpp" #endif #endif //__itkDftImageFilter_h_ diff --git a/Modules/DiffusionImaging/FiberTracking/Fiberfox/itkFibersFromPlanarFiguresFilter.cpp b/Modules/MriSimulation/Algorithms/itkFibersFromPlanarFiguresFilter.cpp similarity index 98% rename from Modules/DiffusionImaging/FiberTracking/Fiberfox/itkFibersFromPlanarFiguresFilter.cpp rename to Modules/MriSimulation/Algorithms/itkFibersFromPlanarFiguresFilter.cpp index a96514f..67a9c19 100644 --- a/Modules/DiffusionImaging/FiberTracking/Fiberfox/itkFibersFromPlanarFiguresFilter.cpp +++ b/Modules/MriSimulation/Algorithms/itkFibersFromPlanarFiguresFilter.cpp @@ -1,248 +1,245 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ #ifndef __itkibersFromPlanarFiguresFilter_cpp #define __itkibersFromPlanarFiguresFilter_cpp #include "itkFibersFromPlanarFiguresFilter.h" #include #include #include -#include -#include #include -#include #include #include #include #include #include #include #include namespace itk{ FibersFromPlanarFiguresFilter::FibersFromPlanarFiguresFilter() : m_FixSeed(false) { } FibersFromPlanarFiguresFilter::~FibersFromPlanarFiguresFilter() { } void FibersFromPlanarFiguresFilter::GeneratePoints() { Statistics::MersenneTwisterRandomVariateGenerator::Pointer randGen = Statistics::MersenneTwisterRandomVariateGenerator::New(); if (m_FixSeed) randGen->SetSeed(0); else randGen->SetSeed(); m_2DPoints.clear(); unsigned int count = 0; while (count < m_Parameters.m_Density) { mitk::Vector2D p; switch (m_Parameters.m_Distribution) { case FiberGenerationParameters::DISTRIBUTE_GAUSSIAN: p[0] = randGen->GetNormalVariate(0, m_Parameters.m_Variance); p[1] = randGen->GetNormalVariate(0, m_Parameters.m_Variance); break; default: p[0] = randGen->GetUniformVariate(-1, 1); p[1] = randGen->GetUniformVariate(-1, 1); } if (sqrt(p[0]*p[0]+p[1]*p[1]) <= 1) { m_2DPoints.push_back(p); count++; } } } void FibersFromPlanarFiguresFilter::SetFixSeed(bool FixSeed) { m_FixSeed = FixSeed; } void FibersFromPlanarFiguresFilter::GenerateData() { // check if enough fiducials are available for (unsigned int i=0; i m_VtkCellArray = vtkSmartPointer::New(); vtkSmartPointer m_VtkPoints = vtkSmartPointer::New(); std::vector< mitk::PlanarEllipse::Pointer > bundle = m_Parameters.m_Fiducials.at(i); std::vector< unsigned int > fliplist; if (i container = vtkSmartPointer::New(); mitk::PlanarEllipse::Pointer figure = bundle.at(0); mitk::Point2D p0 = figure->GetControlPoint(0); mitk::Point2D p1 = figure->GetControlPoint(1); mitk::Point2D p2 = figure->GetControlPoint(2); mitk::Point2D p3 = figure->GetControlPoint(3); double r1 = p0.EuclideanDistanceTo(p1); double r2 = p0.EuclideanDistanceTo(p2); mitk::Vector2D eDir = p1-p0; eDir.Normalize(); mitk::Vector2D tDir = p3-p0; tDir.Normalize(); // apply twist vnl_matrix_fixed tRot; tRot[0][0] = tDir[0]; tRot[1][1] = tRot[0][0]; tRot[1][0] = sin(acos(tRot[0][0])); tRot[0][1] = -tRot[1][0]; if (tDir[1]<0) tRot.inplace_transpose(); m_2DPoints[j].SetVnlVector(tRot*m_2DPoints[j].GetVnlVector()); // apply new ellipse shape vnl_vector_fixed< double, 2 > newP; newP[0] = m_2DPoints.at(j)[0]; newP[1] = m_2DPoints.at(j)[1]; double alpha = acos(eDir[0]); if (eDir[1]>0) alpha = 2*itk::Math::pi-alpha; vnl_matrix_fixed eRot; eRot[0][0] = cos(alpha); eRot[1][1] = eRot[0][0]; eRot[1][0] = sin(alpha); eRot[0][1] = -eRot[1][0]; newP = eRot*newP; newP[0] *= r1; newP[1] *= r2; newP = eRot.transpose()*newP; p0[0] += newP[0]; p0[1] += newP[1]; const mitk::PlaneGeometry* planeGeo = figure->GetPlaneGeometry(); mitk::Point3D w, wc; planeGeo->Map(p0, w); wc = figure->GetWorldControlPoint(0); vtkIdType id = m_VtkPoints->InsertNextPoint(w.GetDataPointer()); container->GetPointIds()->InsertNextId(id); vnl_vector_fixed< double, 3 > n = planeGeo->GetNormalVnl(); for (unsigned int k=1; kGetControlPoint(0); p1 = figure->GetControlPoint(1); p2 = figure->GetControlPoint(2); p3 = figure->GetControlPoint(3); r1 = p0.EuclideanDistanceTo(p1); r2 = p0.EuclideanDistanceTo(p2); eDir = p1-p0; eDir.Normalize(); mitk::Vector2D tDir2 = p3-p0; tDir2.Normalize(); mitk::Vector2D temp; temp.Fill(0); temp.SetVnlVector(tRot.transpose() * tDir2.GetVnlVector()); // apply twist tRot[0][0] = tDir[0]*tDir2[0] + tDir[1]*tDir2[1]; if (tRot[0][0]>1.0) tRot[0][0] = 1.0; tRot[1][1] = tRot[0][0]; tRot[1][0] = sin(acos(tRot[0][0])); tRot[0][1] = -tRot[1][0]; if (temp[1]<0) tRot.inplace_transpose(); m_2DPoints[j].SetVnlVector(tRot*m_2DPoints[j].GetVnlVector()); tDir = tDir2; // apply new ellipse shape newP[0] = m_2DPoints.at(j)[0]; newP[1] = m_2DPoints.at(j)[1]; // calculate normal mitk::PlaneGeometry* planeGeo = const_cast(figure->GetPlaneGeometry()); mitk::Vector3D perp = wc-planeGeo->ProjectPointOntoPlane(wc); perp.Normalize(); vnl_vector_fixed< double, 3 > n2 = planeGeo->GetNormalVnl(); wc = figure->GetWorldControlPoint(0); // is flip needed? if (dot_product(perp.GetVnlVector(),n2)>0 && dot_product(n,n2)<=0.00001) newP[0] *= -1; if (fliplist.at(k)>0) newP[0] *= -1; n = n2; alpha = acos(eDir[0]); if (eDir[1]>0) alpha = 2*itk::Math::pi-alpha; eRot[0][0] = cos(alpha); eRot[1][1] = eRot[0][0]; eRot[1][0] = sin(alpha); eRot[0][1] = -eRot[1][0]; newP = eRot*newP; newP[0] *= r1; newP[1] *= r2; newP = eRot.transpose()*newP; p0[0] += newP[0]; p0[1] += newP[1]; mitk::Point3D w; planeGeo->Map(p0, w); vtkIdType id = m_VtkPoints->InsertNextPoint(w.GetDataPointer()); container->GetPointIds()->InsertNextId(id); } m_VtkCellArray->InsertNextCell(container); } vtkSmartPointer fiberPolyData = vtkSmartPointer::New(); fiberPolyData->SetPoints(m_VtkPoints); fiberPolyData->SetLines(m_VtkCellArray); mitk::FiberBundle::Pointer mitkFiberBundle = mitk::FiberBundle::New(fiberPolyData); mitkFiberBundle->ResampleSpline(m_Parameters.m_Sampling, m_Parameters.m_Tension, m_Parameters.m_Continuity, m_Parameters.m_Bias); m_FiberBundles.push_back(mitkFiberBundle); } } } #endif // __itkFibersFromPlanarFiguresFilter_cpp diff --git a/Modules/DiffusionImaging/FiberTracking/Fiberfox/itkFibersFromPlanarFiguresFilter.h b/Modules/MriSimulation/Algorithms/itkFibersFromPlanarFiguresFilter.h similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Fiberfox/itkFibersFromPlanarFiguresFilter.h rename to Modules/MriSimulation/Algorithms/itkFibersFromPlanarFiguresFilter.h diff --git a/Modules/DiffusionImaging/FiberTracking/Fiberfox/itkFieldmapGeneratorFilter.cpp b/Modules/MriSimulation/Algorithms/itkFieldmapGeneratorFilter.cpp similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Fiberfox/itkFieldmapGeneratorFilter.cpp rename to Modules/MriSimulation/Algorithms/itkFieldmapGeneratorFilter.cpp diff --git a/Modules/DiffusionImaging/FiberTracking/Fiberfox/itkFieldmapGeneratorFilter.h b/Modules/MriSimulation/Algorithms/itkFieldmapGeneratorFilter.h similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Fiberfox/itkFieldmapGeneratorFilter.h rename to Modules/MriSimulation/Algorithms/itkFieldmapGeneratorFilter.h diff --git a/Modules/DiffusionImaging/FiberTracking/Algorithms/itkFitFibersToImageFilter.cpp b/Modules/MriSimulation/Algorithms/itkFitFibersToImageFilter.cpp similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Algorithms/itkFitFibersToImageFilter.cpp rename to Modules/MriSimulation/Algorithms/itkFitFibersToImageFilter.cpp diff --git a/Modules/DiffusionImaging/FiberTracking/Algorithms/itkFitFibersToImageFilter.h b/Modules/MriSimulation/Algorithms/itkFitFibersToImageFilter.h similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Algorithms/itkFitFibersToImageFilter.h rename to Modules/MriSimulation/Algorithms/itkFitFibersToImageFilter.h diff --git a/Modules/DiffusionImaging/FiberTracking/Fiberfox/itkKspaceImageFilter.cpp b/Modules/MriSimulation/Algorithms/itkKspaceImageFilter.cpp similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Fiberfox/itkKspaceImageFilter.cpp rename to Modules/MriSimulation/Algorithms/itkKspaceImageFilter.cpp diff --git a/Modules/DiffusionImaging/FiberTracking/Fiberfox/itkKspaceImageFilter.h b/Modules/MriSimulation/Algorithms/itkKspaceImageFilter.h similarity index 99% rename from Modules/DiffusionImaging/FiberTracking/Fiberfox/itkKspaceImageFilter.h rename to Modules/MriSimulation/Algorithms/itkKspaceImageFilter.h index 471eec3..2f007d6 100644 --- a/Modules/DiffusionImaging/FiberTracking/Fiberfox/itkKspaceImageFilter.h +++ b/Modules/MriSimulation/Algorithms/itkKspaceImageFilter.h @@ -1,161 +1,160 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ /*=================================================================== This file is based heavily on a corresponding ITK filter. ===================================================================*/ #ifndef __itkKspaceImageFilter_h_ #define __itkKspaceImageFilter_h_ -#include #include #include #include #include #include #include #include namespace itk{ /** * \brief Simulates k-space acquisition of one slice with a single shot EPI sequence. Enables the simulation of various effects occuring during real MR acquisitions: * - T2 signal relaxation * - Spikes * - N/2 Ghosts * - Aliasing (wrap around) * - Image distortions (off-frequency effects) * - Gibbs ringing * - Eddy current effects * Based on a discrete fourier transformation. * See "Fiberfox: Facilitating the creation of realistic white matter software phantoms" (DOI: 10.1002/mrm.25045) for details. */ template< class ScalarType > class KspaceImageFilter : public ImageSource< Image< vcl_complex< ScalarType >, 2 > > { public: typedef KspaceImageFilter Self; typedef SmartPointer Pointer; typedef SmartPointer ConstPointer; typedef ImageSource< Image< vcl_complex< ScalarType >, 2 > > Superclass; /** Method for creation through the object factory. */ itkFactorylessNewMacro(Self) itkCloneMacro(Self) /** Runtime information support. */ itkTypeMacro(KspaceImageFilter, ImageToImageFilter) typedef typename itk::Image< ScalarType, 2 > InputImageType; typedef typename InputImageType::Pointer InputImagePointerType; typedef typename Superclass::OutputImageType OutputImageType; typedef typename Superclass::OutputImageRegionType OutputImageRegionType; typedef itk::Matrix MatrixType; typedef itk::Point Point2D; typedef itk::Vector< float,3> VectorType; itkSetMacro( SpikesPerSlice, unsigned int ) ///< Number of spikes per slice. Corresponding parameter in fiberfox parameter object specifies the number of spikes for the whole image and can thus not be used here. itkSetMacro( Z, double ) ///< Slice position, necessary for eddy current simulation. itkSetMacro( RandSeed, int ) ///< Use constant seed for random generator for reproducible results. itkSetMacro( Translation, VectorType ) itkSetMacro( RotationMatrix, MatrixType ) itkSetMacro( Zidx, int ) itkSetMacro( StoreTimings, bool ) itkSetMacro( FiberBundle, FiberBundle::Pointer ) itkSetMacro( CoilPosition, VectorType ) itkGetMacro( KSpaceImage, typename InputImageType::Pointer ) ///< k-space magnitude image itkGetMacro( TickImage, typename InputImageType::Pointer ) ///< k-space readout ordering encoded in the voxels itkGetMacro( RfImage, typename InputImageType::Pointer ) ///< time passed since last RF pulse encoded per voxel itkGetMacro( SpikeLog, std::string ) void SetParameters( FiberfoxParameters* param ){ m_Parameters = param; } void SetCompartmentImages( std::vector< InputImagePointerType > cImgs ) { m_CompartmentImages=cImgs; } ///< One signal image per compartment. void SetT2( std::vector< float > t2Vector ) { m_T2=t2Vector; } ///< One T2 relaxation constant per compartment image. void SetT1( std::vector< float > t1Vector ) { m_T1=t1Vector; } ///< One T1 relaxation constant per compartment image. void SetDiffusionGradientDirection(itk::Vector g) { m_DiffusionGradientDirection=g; } ///< Gradient direction is needed for eddy current simulation. protected: KspaceImageFilter(); ~KspaceImageFilter() override {} float CoilSensitivity(VectorType& pos); void BeforeThreadedGenerateData() override; void ThreadedGenerateData( const OutputImageRegionType &outputRegionForThread, ThreadIdType threadID) override; void AfterThreadedGenerateData() override; VectorType m_CoilPosition; FiberfoxParameters* m_Parameters; std::vector< float > m_T2; std::vector< float > m_T1; std::vector< float > m_T1Relax; std::vector< InputImagePointerType > m_CompartmentImages; itk::Vector m_DiffusionGradientDirection; float m_Z; int m_Zidx; int m_RandSeed; itk::Statistics::MersenneTwisterRandomVariateGenerator::Pointer m_RandGen; unsigned int m_SpikesPerSlice; FiberBundle::Pointer m_FiberBundle; float m_Gamma; VectorType m_Translation; ///< used to find correct point in frequency map (head motion) MatrixType m_RotationMatrix; float m_TransX; float m_TransY; float m_TransZ; bool m_IsBaseline; vcl_complex m_Spike; MatrixType m_Transform; std::string m_SpikeLog; float m_CoilSensitivityFactor; typename InputImageType::Pointer m_KSpaceImage; typename InputImageType::Pointer m_TickImage; typename InputImageType::Pointer m_RfImage; AcquisitionType* m_ReadoutScheme; typename itk::Image< ScalarType, 2 >::Pointer m_MovedFmap; int ringing_lines_x; int ringing_lines_y; float kxMax; float kyMax; float xMax; float yMax; float yMaxFov; float yMaxFov_half; float numPix; bool m_StoreTimings; private: }; } #ifndef ITK_MANUAL_INSTANTIATION #include "itkKspaceImageFilter.cpp" #endif #endif //__itkKspaceImageFilter_h_ diff --git a/Modules/DiffusionImaging/FiberTracking/Fiberfox/itkRandomPhantomFilter.cpp b/Modules/MriSimulation/Algorithms/itkRandomPhantomFilter.cpp similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Fiberfox/itkRandomPhantomFilter.cpp rename to Modules/MriSimulation/Algorithms/itkRandomPhantomFilter.cpp diff --git a/Modules/DiffusionImaging/FiberTracking/Fiberfox/itkRandomPhantomFilter.h b/Modules/MriSimulation/Algorithms/itkRandomPhantomFilter.h similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Fiberfox/itkRandomPhantomFilter.h rename to Modules/MriSimulation/Algorithms/itkRandomPhantomFilter.h diff --git a/Modules/DiffusionImaging/FiberTracking/Fiberfox/itkTractsToDWIImageFilter.cpp b/Modules/MriSimulation/Algorithms/itkTractsToDWIImageFilter.cpp similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Fiberfox/itkTractsToDWIImageFilter.cpp rename to Modules/MriSimulation/Algorithms/itkTractsToDWIImageFilter.cpp diff --git a/Modules/DiffusionImaging/FiberTracking/Fiberfox/itkTractsToDWIImageFilter.h b/Modules/MriSimulation/Algorithms/itkTractsToDWIImageFilter.h similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Fiberfox/itkTractsToDWIImageFilter.h rename to Modules/MriSimulation/Algorithms/itkTractsToDWIImageFilter.h diff --git a/Modules/MriSimulation/CMakeLists.txt b/Modules/MriSimulation/CMakeLists.txt new file mode 100644 index 0000000..f8349f8 --- /dev/null +++ b/Modules/MriSimulation/CMakeLists.txt @@ -0,0 +1,11 @@ + + +MITK_CREATE_MODULE( + SUBPROJECTS MITK-Diffusion + INCLUDE_DIRS SignalModels Sequences Algorithms ${CMAKE_CURRENT_BINARY_DIR} + DEPENDS MitkFiberTracking +) + +if(MODULE_IS_ENABLED) + add_subdirectory(Testing) +endif() diff --git a/Modules/DiffusionImaging/FiberTracking/Fiberfox/Sequences/mitkAcquisitionType.h b/Modules/MriSimulation/Sequences/mitkAcquisitionType.h similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Fiberfox/Sequences/mitkAcquisitionType.h rename to Modules/MriSimulation/Sequences/mitkAcquisitionType.h diff --git a/Modules/DiffusionImaging/FiberTracking/Fiberfox/Sequences/mitkConventionalSpinEcho.h b/Modules/MriSimulation/Sequences/mitkConventionalSpinEcho.h similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Fiberfox/Sequences/mitkConventionalSpinEcho.h rename to Modules/MriSimulation/Sequences/mitkConventionalSpinEcho.h diff --git a/Modules/DiffusionImaging/FiberTracking/Fiberfox/Sequences/mitkFastSpinEcho.h b/Modules/MriSimulation/Sequences/mitkFastSpinEcho.h similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Fiberfox/Sequences/mitkFastSpinEcho.h rename to Modules/MriSimulation/Sequences/mitkFastSpinEcho.h diff --git a/Modules/DiffusionImaging/FiberTracking/Fiberfox/Sequences/mitkSingleShotEpi.h b/Modules/MriSimulation/Sequences/mitkSingleShotEpi.h similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Fiberfox/Sequences/mitkSingleShotEpi.h rename to Modules/MriSimulation/Sequences/mitkSingleShotEpi.h diff --git a/Modules/DiffusionImaging/FiberTracking/Fiberfox/SignalModels/mitkAstroStickModel.cpp b/Modules/MriSimulation/SignalModels/mitkAstroStickModel.cpp similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Fiberfox/SignalModels/mitkAstroStickModel.cpp rename to Modules/MriSimulation/SignalModels/mitkAstroStickModel.cpp diff --git a/Modules/DiffusionImaging/FiberTracking/Fiberfox/SignalModels/mitkAstroStickModel.h b/Modules/MriSimulation/SignalModels/mitkAstroStickModel.h similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Fiberfox/SignalModels/mitkAstroStickModel.h rename to Modules/MriSimulation/SignalModels/mitkAstroStickModel.h diff --git a/Modules/DiffusionImaging/FiberTracking/Fiberfox/SignalModels/mitkBallModel.cpp b/Modules/MriSimulation/SignalModels/mitkBallModel.cpp similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Fiberfox/SignalModels/mitkBallModel.cpp rename to Modules/MriSimulation/SignalModels/mitkBallModel.cpp diff --git a/Modules/DiffusionImaging/FiberTracking/Fiberfox/SignalModels/mitkBallModel.h b/Modules/MriSimulation/SignalModels/mitkBallModel.h similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Fiberfox/SignalModels/mitkBallModel.h rename to Modules/MriSimulation/SignalModels/mitkBallModel.h diff --git a/Modules/DiffusionImaging/FiberTracking/Fiberfox/SignalModels/mitkChiSquareNoiseModel.cpp b/Modules/MriSimulation/SignalModels/mitkChiSquareNoiseModel.cpp similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Fiberfox/SignalModels/mitkChiSquareNoiseModel.cpp rename to Modules/MriSimulation/SignalModels/mitkChiSquareNoiseModel.cpp diff --git a/Modules/DiffusionImaging/FiberTracking/Fiberfox/SignalModels/mitkChiSquareNoiseModel.h b/Modules/MriSimulation/SignalModels/mitkChiSquareNoiseModel.h similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Fiberfox/SignalModels/mitkChiSquareNoiseModel.h rename to Modules/MriSimulation/SignalModels/mitkChiSquareNoiseModel.h diff --git a/Modules/DiffusionImaging/FiberTracking/Fiberfox/SignalModels/mitkDiffusionNoiseModel.h b/Modules/MriSimulation/SignalModels/mitkDiffusionNoiseModel.h similarity index 97% rename from Modules/DiffusionImaging/FiberTracking/Fiberfox/SignalModels/mitkDiffusionNoiseModel.h rename to Modules/MriSimulation/SignalModels/mitkDiffusionNoiseModel.h index ae7ecd7..80e1cce 100644 --- a/Modules/DiffusionImaging/FiberTracking/Fiberfox/SignalModels/mitkDiffusionNoiseModel.h +++ b/Modules/MriSimulation/SignalModels/mitkDiffusionNoiseModel.h @@ -1,59 +1,58 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ #ifndef _MITK_DiffusionNoiseModel_H #define _MITK_DiffusionNoiseModel_H -#include #include #include #include #include namespace mitk { /** * \brief Abstract class for diffusion noise models * */ template< class ScalarType = double > class DiffusionNoiseModel { public: DiffusionNoiseModel(){} virtual ~DiffusionNoiseModel(){} typedef itk::VariableLengthVector< ScalarType > PixelType; /** Adds noise according to model to the input pixel. Has to be implemented in subclass. **/ virtual void AddNoise(PixelType& pixel) = 0; /** Seed for random generator. Has to be implemented in subclass. **/ virtual void SetSeed(int seed) = 0; virtual double GetNoiseVariance() = 0; virtual void SetNoiseVariance(double var) = 0; protected: }; } #endif diff --git a/Modules/DiffusionImaging/FiberTracking/Fiberfox/SignalModels/mitkDiffusionSignalModel.h b/Modules/MriSimulation/SignalModels/mitkDiffusionSignalModel.h similarity index 99% rename from Modules/DiffusionImaging/FiberTracking/Fiberfox/SignalModels/mitkDiffusionSignalModel.h rename to Modules/MriSimulation/SignalModels/mitkDiffusionSignalModel.h index c180960..42f22aa 100644 --- a/Modules/DiffusionImaging/FiberTracking/Fiberfox/SignalModels/mitkDiffusionSignalModel.h +++ b/Modules/MriSimulation/SignalModels/mitkDiffusionSignalModel.h @@ -1,113 +1,112 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ #ifndef _MITK_DiffusionSignalModel_H #define _MITK_DiffusionSignalModel_H -#include #include #include #include #include #include #include namespace mitk { /** * \brief Abstract class for diffusion signal models * */ template< class ScalarType = double > class DiffusionSignalModel { public: DiffusionSignalModel() : m_T2(100) , m_T1(0) , m_BValue(1000) {} ~DiffusionSignalModel(){} typedef itk::Image ItkDoubleImgType; typedef itk::VariableLengthVector< ScalarType > PixelType; typedef itk::Vector GradientType; typedef std::vector GradientListType; typedef itk::Statistics::MersenneTwisterRandomVariateGenerator ItkRandGenType; typedef mitk::DiffusionPropertyHelper DPH; /** Realizes actual signal generation. Has to be implemented in subclass. **/ virtual PixelType SimulateMeasurement(GradientType& fiberDirection) = 0; virtual ScalarType SimulateMeasurement(unsigned int dir, GradientType& fiberDirection) = 0; void SetGradientList(DPH::GradientDirectionsContainerType* gradients) { m_GradientList.clear(); for ( unsigned int i=0; iSize(); ++i ) { DPH::GradientDirectionType g_vnl = gradients->GetElement(i); GradientType g_itk; g_itk[0] = g_vnl[0]; g_itk[1] = g_vnl[1]; g_itk[2] = g_vnl[2]; m_GradientList.push_back(g_itk); } } void SetGradientList(GradientListType gradientList) { this->m_GradientList = gradientList; } GradientListType GetGradientList(){ return m_GradientList; } GradientType GetGradientDirection(int i) { return m_GradientList.at(i); } void SetT2(double T2) { m_T2 = T2; } double GetT2() { return m_T2; } void SetT1(double T1) { m_T1 = T1; } double GetT1() { return m_T1; } void SetVolumeFractionImage(ItkDoubleImgType::Pointer img){ m_VolumeFractionImage = img; } ItkDoubleImgType::Pointer GetVolumeFractionImage(){ return m_VolumeFractionImage; } void SetRandomGenerator(ItkRandGenType::Pointer randgen){ m_RandGen = randgen; } ItkRandGenType::Pointer GetRandomGenerator(){ return m_RandGen; } void SetSeed(int s) ///< set seed for random generator { if (m_RandGen.IsNull()) m_RandGen = itk::Statistics::MersenneTwisterRandomVariateGenerator::New(); m_RandGen->SetSeed(s); } void SetBvalue(double bValue) { m_BValue = bValue; } ///< b-value used to generate the artificial signal double GetBvalue() { return m_BValue; } unsigned int m_CompartmentId; ///< GUI flag. Which compartment is this model assigned to? protected: GradientListType m_GradientList; ///< Diffusion gradient direction container double m_T2; ///< Tissue specific transversal relaxation time double m_T1; ///< Tissue specific longitudinal relaxation time ItkDoubleImgType::Pointer m_VolumeFractionImage; ///< Tissue specific volume fraction for each voxel (only relevant for non fiber compartments) ItkRandGenType::Pointer m_RandGen; ///< Random number generator double m_BValue; }; } #endif diff --git a/Modules/DiffusionImaging/FiberTracking/Fiberfox/SignalModels/mitkDotModel.cpp b/Modules/MriSimulation/SignalModels/mitkDotModel.cpp similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Fiberfox/SignalModels/mitkDotModel.cpp rename to Modules/MriSimulation/SignalModels/mitkDotModel.cpp diff --git a/Modules/DiffusionImaging/FiberTracking/Fiberfox/SignalModels/mitkDotModel.h b/Modules/MriSimulation/SignalModels/mitkDotModel.h similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Fiberfox/SignalModels/mitkDotModel.h rename to Modules/MriSimulation/SignalModels/mitkDotModel.h diff --git a/Modules/DiffusionImaging/FiberTracking/Fiberfox/SignalModels/mitkRawShModel.cpp b/Modules/MriSimulation/SignalModels/mitkRawShModel.cpp similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Fiberfox/SignalModels/mitkRawShModel.cpp rename to Modules/MriSimulation/SignalModels/mitkRawShModel.cpp diff --git a/Modules/DiffusionImaging/FiberTracking/Fiberfox/SignalModels/mitkRawShModel.h b/Modules/MriSimulation/SignalModels/mitkRawShModel.h similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Fiberfox/SignalModels/mitkRawShModel.h rename to Modules/MriSimulation/SignalModels/mitkRawShModel.h diff --git a/Modules/DiffusionImaging/FiberTracking/Fiberfox/SignalModels/mitkRicianNoiseModel.cpp b/Modules/MriSimulation/SignalModels/mitkRicianNoiseModel.cpp similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Fiberfox/SignalModels/mitkRicianNoiseModel.cpp rename to Modules/MriSimulation/SignalModels/mitkRicianNoiseModel.cpp diff --git a/Modules/DiffusionImaging/FiberTracking/Fiberfox/SignalModels/mitkRicianNoiseModel.h b/Modules/MriSimulation/SignalModels/mitkRicianNoiseModel.h similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Fiberfox/SignalModels/mitkRicianNoiseModel.h rename to Modules/MriSimulation/SignalModels/mitkRicianNoiseModel.h diff --git a/Modules/DiffusionImaging/FiberTracking/Fiberfox/SignalModels/mitkStickModel.cpp b/Modules/MriSimulation/SignalModels/mitkStickModel.cpp similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Fiberfox/SignalModels/mitkStickModel.cpp rename to Modules/MriSimulation/SignalModels/mitkStickModel.cpp diff --git a/Modules/DiffusionImaging/FiberTracking/Fiberfox/SignalModels/mitkStickModel.h b/Modules/MriSimulation/SignalModels/mitkStickModel.h similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Fiberfox/SignalModels/mitkStickModel.h rename to Modules/MriSimulation/SignalModels/mitkStickModel.h diff --git a/Modules/DiffusionImaging/FiberTracking/Fiberfox/SignalModels/mitkTensorModel.cpp b/Modules/MriSimulation/SignalModels/mitkTensorModel.cpp similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Fiberfox/SignalModels/mitkTensorModel.cpp rename to Modules/MriSimulation/SignalModels/mitkTensorModel.cpp diff --git a/Modules/DiffusionImaging/FiberTracking/Fiberfox/SignalModels/mitkTensorModel.h b/Modules/MriSimulation/SignalModels/mitkTensorModel.h similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Fiberfox/SignalModels/mitkTensorModel.h rename to Modules/MriSimulation/SignalModels/mitkTensorModel.h diff --git a/Modules/MriSimulation/Testing/CMakeLists.txt b/Modules/MriSimulation/Testing/CMakeLists.txt new file mode 100644 index 0000000..edb6c7b --- /dev/null +++ b/Modules/MriSimulation/Testing/CMakeLists.txt @@ -0,0 +1,7 @@ +MITK_CREATE_MODULE_TESTS() + +mitkAddCustomModuleTest(mitkFiberGenerationTest mitkFiberGenerationTest ${MITK_DATA_DIR}/DiffusionImaging/Fiberfox/Fiducial_0.pf ${MITK_DATA_DIR}/DiffusionImaging/Fiberfox/Fiducial_1.pf ${MITK_DATA_DIR}/DiffusionImaging/Fiberfox/Fiducial_2.pf ${MITK_DATA_DIR}/DiffusionImaging/Fiberfox/uniform.fib ${MITK_DATA_DIR}/DiffusionImaging/Fiberfox/gaussian.fib) + +mitkAddCustomModuleTest(mitkFiberfoxSignalGenerationBrainSliceTest mitkFiberfoxSignalGenerationBrainSliceTest) +mitkAddCustomModuleTest(mitkFiberfoxSignalGenerationTest mitkFiberfoxSignalGenerationTest) +mitkAddCustomModuleTest(mitkFiberFitTest mitkFiberFitTest) diff --git a/Modules/MriSimulation/Testing/files.cmake b/Modules/MriSimulation/Testing/files.cmake new file mode 100644 index 0000000..f2e9bff --- /dev/null +++ b/Modules/MriSimulation/Testing/files.cmake @@ -0,0 +1,8 @@ +SET(MODULE_CUSTOM_TESTS + mitkFiberGenerationTest.cpp + mitkFiberfoxSignalGenerationTest.cpp + mitkFiberfoxSignalGenerationBrainSliceTest.cpp + mitkFiberFitTest.cpp +) + + diff --git a/Modules/DiffusionImaging/FiberTracking/Testing/mitkFiberFitTest.cpp b/Modules/MriSimulation/Testing/mitkFiberFitTest.cpp similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Testing/mitkFiberFitTest.cpp rename to Modules/MriSimulation/Testing/mitkFiberFitTest.cpp diff --git a/Modules/DiffusionImaging/FiberTracking/Testing/mitkFiberGenerationTest.cpp b/Modules/MriSimulation/Testing/mitkFiberGenerationTest.cpp similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Testing/mitkFiberGenerationTest.cpp rename to Modules/MriSimulation/Testing/mitkFiberGenerationTest.cpp diff --git a/Modules/DiffusionImaging/FiberTracking/Testing/mitkFiberfoxSignalGenerationBrainSliceTest.cpp b/Modules/MriSimulation/Testing/mitkFiberfoxSignalGenerationBrainSliceTest.cpp similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Testing/mitkFiberfoxSignalGenerationBrainSliceTest.cpp rename to Modules/MriSimulation/Testing/mitkFiberfoxSignalGenerationBrainSliceTest.cpp diff --git a/Modules/DiffusionImaging/FiberTracking/Testing/mitkFiberfoxSignalGenerationTest.cpp b/Modules/MriSimulation/Testing/mitkFiberfoxSignalGenerationTest.cpp similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/Testing/mitkFiberfoxSignalGenerationTest.cpp rename to Modules/MriSimulation/Testing/mitkFiberfoxSignalGenerationTest.cpp diff --git a/Modules/MriSimulation/files.cmake b/Modules/MriSimulation/files.cmake new file mode 100644 index 0000000..1af1c9e --- /dev/null +++ b/Modules/MriSimulation/files.cmake @@ -0,0 +1,32 @@ +set(CPP_FILES + + mitkFiberfoxParameters.cpp +) + +set(H_FILES + mitkFiberfoxParameters.h + + Algorithms/itkFitFibersToImageFilter.h + Algorithms/itkFibersFromPlanarFiguresFilter.h + Algorithms/itkTractsToDWIImageFilter.h + Algorithms/itkKspaceImageFilter.h + Algorithms/itkDftImageFilter.h + Algorithms/itkFieldmapGeneratorFilter.h + Algorithms/itkRandomPhantomFilter.h + + SignalModels/mitkDiffusionSignalModel.h + SignalModels/mitkTensorModel.h + SignalModels/mitkBallModel.h + SignalModels/mitkDotModel.h + SignalModels/mitkAstroStickModel.h + SignalModels/mitkStickModel.h + SignalModels/mitkRawShModel.h + SignalModels/mitkDiffusionNoiseModel.h + SignalModels/mitkRicianNoiseModel.h + SignalModels/mitkChiSquareNoiseModel.h + + Sequences/mitkAcquisitionType.h + Sequences/mitkSingleShotEpi.h + Sequences/mitkConventionalSpinEcho.h + Sequences/mitkFastSpinEcho.h +) diff --git a/Modules/DiffusionImaging/FiberTracking/IODataStructures/mitkFiberfoxParameters.cpp b/Modules/MriSimulation/mitkFiberfoxParameters.cpp similarity index 100% rename from Modules/DiffusionImaging/FiberTracking/IODataStructures/mitkFiberfoxParameters.cpp rename to Modules/MriSimulation/mitkFiberfoxParameters.cpp diff --git a/Modules/DiffusionImaging/FiberTracking/IODataStructures/mitkFiberfoxParameters.h b/Modules/MriSimulation/mitkFiberfoxParameters.h similarity index 98% rename from Modules/DiffusionImaging/FiberTracking/IODataStructures/mitkFiberfoxParameters.h rename to Modules/MriSimulation/mitkFiberfoxParameters.h index 0aa0e29..144f7e5 100644 --- a/Modules/DiffusionImaging/FiberTracking/IODataStructures/mitkFiberfoxParameters.h +++ b/Modules/MriSimulation/mitkFiberfoxParameters.h @@ -1,339 +1,339 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ #ifndef _MITK_FiberfoxParameters_H #define _MITK_FiberfoxParameters_H #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include -#include +#include #include namespace mitk { - class MITKFIBERTRACKING_EXPORT FiberfoxParameters; + class MITKMRISIMULATION_EXPORT FiberfoxParameters; /** Signal generation */ - class MITKFIBERTRACKING_EXPORT SignalGenerationParameters + class MITKMRISIMULATION_EXPORT SignalGenerationParameters { friend FiberfoxParameters; public: typedef itk::Image ItkFloatImgType; typedef itk::Image ItkUcharImgType; typedef itk::Vector GradientType; typedef std::vector GradientListType; enum CoilSensitivityProfile : int { COIL_CONSTANT, COIL_LINEAR, COIL_EXPONENTIAL }; enum AcquisitionType : int { SingleShotEpi, ConventionalSpinEcho, FastSpinEcho, }; SignalGenerationParameters() : m_AcquisitionType(SignalGenerationParameters::SingleShotEpi) , m_SignalScale(100) , m_tEcho(100) , m_tRep(4000) , m_tInv(0) , m_tLine(1) , m_tInhom(50) , m_EchoTrainLength(8) , m_ReversePhase(false) , m_PartialFourier(1.0) , m_NoiseVariance(0.001f) , m_NumberOfCoils(1) , m_CoilSensitivityProfile(SignalGenerationParameters::COIL_CONSTANT) , m_CoilSensitivity(0.3f) , m_SimulateKspaceAcquisition(false) , m_AxonRadius(0) , m_DoDisablePartialVolume(false) , m_Spikes(0) , m_SpikeAmplitude(1) , m_KspaceLineOffset(0) , m_EddyStrength(0.002f) , m_Tau(70) , m_CroppingFactor(1) , m_Drift(0.06) , m_DoAddGibbsRinging(false) , m_ZeroRinging(0) , m_DoSimulateRelaxation(true) , m_DoAddMotion(false) , m_DoRandomizeMotion(true) , m_DoAddDrift(false) , m_FrequencyMap(nullptr) , m_MaskImage(nullptr) , m_Bvalue(1000) { m_ImageRegion.SetSize(0, 12); m_ImageRegion.SetSize(1, 12); m_ImageRegion.SetSize(2, 3); m_ImageSpacing.Fill(2.0); m_ImageOrigin.Fill(0.0); m_ImageDirection.SetIdentity(); m_Translation.Fill(0.0); m_Rotation.Fill(0.0); SetNumWeightedVolumes(6); } /** input/output image specifications */ itk::ImageRegion<3> m_CroppedRegion; ///< Image size with reduced FOV. itk::ImageRegion<3> m_ImageRegion; ///< Image size. itk::Vector m_ImageSpacing; ///< Image voxel size. itk::Point m_ImageOrigin; ///< Image origin. itk::Matrix m_ImageDirection; ///< Image rotation matrix. /** Other acquisitions parameters */ AcquisitionType m_AcquisitionType; ///< determines k-space trajectory and maximum echo position(s) float m_SignalScale; ///< Scaling factor for output signal (before noise is added). float m_tEcho; ///< Echo time TE. float m_tRep; ///< Echo time TR. float m_tInv; ///< Inversion time float m_tLine; ///< k-space line readout time (dwell time). float m_tInhom; ///< T2' unsigned int m_EchoTrainLength; ///< Only relevant for Fast Spin Echo sequence (number of k-space lines acquired with one RF pulse) bool m_ReversePhase; ///< If true, the phase readout direction will be inverted (-y instead of y) float m_PartialFourier; ///< Partial fourier factor (0.5-1) float m_NoiseVariance; ///< Variance of complex gaussian noise unsigned int m_NumberOfCoils; ///< Number of coils in multi-coil acquisition CoilSensitivityProfile m_CoilSensitivityProfile; ///< Choose between constant, linear or exponential sensitivity profile of the used coils float m_CoilSensitivity; ///< signal remaining in slice center bool m_SimulateKspaceAcquisition;///< Flag to enable/disable k-space acquisition simulation double m_AxonRadius; ///< Determines compartment volume fractions (0 == automatic axon radius estimation) bool m_DoDisablePartialVolume; ///< Disable partial volume effects. Each voxel is either all fiber or all non-fiber. /** Artifacts and other effects */ unsigned int m_Spikes; ///< Number of spikes randomly appearing in the image float m_SpikeAmplitude; ///< amplitude of spikes relative to the largest signal intensity (magnitude of complex) float m_KspaceLineOffset; ///< Causes N/2 ghosts. Larger offset means stronger ghost. float m_EddyStrength; ///< Strength of eddy current induced gradients in mT/m. float m_Tau; ///< Eddy current decay constant (in ms) float m_CroppingFactor; ///< FOV size in y-direction is multiplied by this factor. Causes aliasing artifacts. float m_Drift; ///< Global signal decrease by the end of the acquisition. bool m_DoAddGibbsRinging; ///< Add Gibbs ringing artifact int m_ZeroRinging; ///< If > 0, ringing is simulated by by setting the defined percentage of higher frequencies to 0 in k-space. Otherwise, the input to the k-space simulation is generated with twice the resolution and cropped during k-space simulation (much slower). bool m_DoSimulateRelaxation; ///< Add T2 relaxation effects bool m_DoAddMotion; ///< Enable motion artifacts. bool m_DoRandomizeMotion; ///< Toggles between random and linear motion. bool m_DoAddDrift; ///< Add quadratic signal drift. std::vector< bool > m_MotionVolumes; ///< Indicates the image volumes that are affected by motion ///< with positive numbers, inverted logic with negative numbers. itk::Vector m_Translation; ///< Maximum translational motion. itk::Vector m_Rotation; ///< Maximum rotational motion. ItkFloatImgType::Pointer m_FrequencyMap; ///< If != nullptr, distortions are added to the image using this frequency map. ItkUcharImgType::Pointer m_MaskImage; ///< Signal is only genrated inside of the mask image. std::vector< int > GetBaselineIndices(); ///< Returns list of nun-diffusion-weighted image volume indices unsigned int GetFirstBaselineIndex(); ///< Returns index of first non-diffusion-weighted image volume bool IsBaselineIndex(unsigned int idx); ///< Checks if image volume with given index is non-diffusion-weighted volume or not. unsigned int GetNumWeightedVolumes(); ///< Get number of diffusion-weighted image volumes unsigned int GetNumBaselineVolumes(); ///< Get number of non-diffusion-weighted image volumes unsigned int GetNumVolumes(); ///< Get number of baseline and diffusion-weighted image volumes GradientListType GetGradientDirections(); ///< Return gradient direction container mitk::DiffusionPropertyHelper::GradientDirectionsContainerType::Pointer GetItkGradientContainer(); GradientType GetGradientDirection(unsigned int i); std::vector< int > GetBvalues(); ///< Returns a vector with all unique b-values (determined by the gradient magnitudes) double GetBvalue(); void ApplyDirectionMatrix(); protected: unsigned int m_NumGradients; ///< Number of diffusion-weighted image volumes. unsigned int m_NumBaseline; ///< Number of non-diffusion-weighted image volumes. GradientListType m_GradientDirections; ///< Total number of image volumes. double m_Bvalue; ///< Acquisition b-value void SetNumWeightedVolumes(int numGradients); ///< Automaticall calls GenerateGradientHalfShell() afterwards. void SetGradienDirections(GradientListType gradientList); void SetGradienDirections(mitk::DiffusionPropertyHelper::GradientDirectionsContainerType::Pointer gradientList); void GenerateGradientHalfShell(); ///< Generates half shell of gradient directions (with m_NumGradients non-zero directions) }; /** Fiber generation */ - class MITKFIBERTRACKING_EXPORT FiberGenerationParameters + class MITKMRISIMULATION_EXPORT FiberGenerationParameters { public: enum FiberDistribution { DISTRIBUTE_UNIFORM, // distribute fibers uniformly in the ROIs DISTRIBUTE_GAUSSIAN // distribute fibers using a 2D gaussian }; typedef std::vector< std::vector< mitk::PlanarEllipse::Pointer > > FiducialListType; typedef std::vector< std::vector< unsigned int > > FlipListType; FiberGenerationParameters() : m_Distribution(DISTRIBUTE_UNIFORM) , m_Density(100) , m_Variance(100) , m_Sampling(1) , m_Tension(0) , m_Continuity(0) , m_Bias(0) { m_Rotation.Fill(0.0); m_Translation.Fill(0.0); m_Scale.Fill(1.0); } FiberDistribution m_Distribution; unsigned int m_Density; double m_Variance; double m_Sampling; double m_Tension; double m_Continuity; double m_Bias; mitk::Vector3D m_Rotation; mitk::Vector3D m_Translation; mitk::Vector3D m_Scale; FlipListType m_FlipList; ///< contains flags indicating a flip of the 2D fiber x-coordinates (needed to resolve some unwanted fiber twisting) FiducialListType m_Fiducials; ///< container of the planar ellipses used as fiducials for the fiber generation process }; /** GUI persistence, input, output, ... */ - class MITKFIBERTRACKING_EXPORT MiscFiberfoxParameters + class MITKMRISIMULATION_EXPORT MiscFiberfoxParameters { public: MiscFiberfoxParameters() : m_ResultNode(DataNode::New()) , m_ParentNode(nullptr) , m_SignalModelString("") , m_ArtifactModelString("") , m_OutputPath("/tmp/") , m_OutputPrefix("fiberfox") , m_AfterSimulationMessage("") , m_BvalsFile("") , m_BvecsFile("") , m_OutputAdditionalImages(false) , m_CheckAdvancedSignalOptionsBox(false) , m_DoAddNoise(false) , m_DoAddGhosts(false) , m_DoAddAliasing(false) , m_DoAddSpikes(false) , m_DoAddEddyCurrents(false) , m_DoAddDistortions(false) , m_MotionVolumesBox("random") , m_CheckRealTimeFibersBox(true) , m_CheckAdvancedFiberOptionsBox(false) , m_CheckConstantRadiusBox(false) , m_CheckIncludeFiducialsBox(true) {} DataNode::Pointer m_ResultNode; ///< Stores resulting image. DataNode::Pointer m_ParentNode; ///< Parent node of result node. std::string m_SignalModelString; ///< Appendet to the name of the result node std::string m_ArtifactModelString; ///< Appendet to the name of the result node std::string m_OutputPath; ///< Image is automatically saved to the specified folder after simulation is finished. std::string m_OutputPrefix; /** Prefix for filename of output files and logfile. */ std::string m_AfterSimulationMessage; ///< Store messages that are displayed after the simulation has finished (e.g. warnings, automatic parameter adjustments etc.) std::string m_BvalsFile; std::string m_BvecsFile; /** member variables that store the check-state of GUI checkboxes */ // image generation bool m_OutputAdditionalImages; bool m_CheckAdvancedSignalOptionsBox; bool m_DoAddNoise; bool m_DoAddGhosts; bool m_DoAddAliasing; bool m_DoAddSpikes; bool m_DoAddEddyCurrents; bool m_DoAddDistortions; std::string m_MotionVolumesBox; // fiber generation bool m_CheckRealTimeFibersBox; bool m_CheckAdvancedFiberOptionsBox; bool m_CheckConstantRadiusBox; bool m_CheckIncludeFiducialsBox; }; /** * \brief Datastructure to manage the Fiberfox signal generation parameters. * */ - class MITKFIBERTRACKING_EXPORT FiberfoxParameters + class MITKMRISIMULATION_EXPORT FiberfoxParameters { public: typedef itk::Image ItkFloatImgType; typedef itk::Image ItkDoubleImgType; typedef itk::Image ItkUcharImgType; typedef DiffusionSignalModel DiffusionModelType; typedef std::vector< DiffusionModelType* > DiffusionModelListType; typedef DiffusionNoiseModel NoiseModelType; FiberfoxParameters(); FiberfoxParameters(const FiberfoxParameters ¶ms); ~FiberfoxParameters(); /** Not templated parameters */ FiberGenerationParameters m_FiberGen; ///< Fiber generation parameters SignalGenerationParameters m_SignalGen; ///< Signal generation parameters MiscFiberfoxParameters m_Misc; ///< GUI realted and I/O parameters /** Templated parameters */ DiffusionModelListType m_FiberModelList; ///< Intra- and inter-axonal compartments. DiffusionModelListType m_NonFiberModelList; ///< Extra-axonal compartments. std::shared_ptr< NoiseModelType > m_NoiseModel; ///< If != nullptr, noise is added to the image. void GenerateGradientHalfShell(); void SetNumWeightedVolumes(int numGradients); ///< Automaticall calls GenerateGradientHalfShell() afterwards. void SetGradienDirections(mitk::SignalGenerationParameters::GradientListType gradientList); void SetGradienDirections(mitk::DiffusionPropertyHelper::GradientDirectionsContainerType::Pointer gradientList); void SetBvalue(double Bvalue); void UpdateSignalModels(); void ClearFiberParameters(); void ClearSignalParameters(); void ApplyDirectionMatrix(); void PrintSelf(); ///< Print parameters to stdout. void SaveParameters(std::string filename); ///< Save image generation parameters to .ffp file. void LoadParameters(std::string filename, bool fix_seed=false); ///< Load image generation parameters from .ffp file. template< class ParameterType > ParameterType ReadVal(boost::property_tree::ptree::value_type const& v, std::string tag, ParameterType defaultValue, bool essential=false); std::string m_MissingTags; }; } #endif diff --git a/Plugins/org.mitk.gui.qt.diffusionimaging.fiberfox/CMakeLists.txt b/Plugins/org.mitk.gui.qt.diffusionimaging.fiberfox/CMakeLists.txt index ffd3375..6632ab4 100644 --- a/Plugins/org.mitk.gui.qt.diffusionimaging.fiberfox/CMakeLists.txt +++ b/Plugins/org.mitk.gui.qt.diffusionimaging.fiberfox/CMakeLists.txt @@ -1,10 +1,10 @@ # The project name must correspond to the directory name of your plug-in # and must not contain periods. project(org_mitk_gui_qt_diffusionimaging_fiberfox) mitk_create_plugin( SUBPROJECTS MITK-Diffusion EXPORT_DIRECTIVE DIFFUSIONIMAGING_FIBERFOX_EXPORT EXPORTED_INCLUDE_SUFFIXES src - MODULE_DEPENDS MitkFiberTracking + MODULE_DEPENDS MitkFiberTracking MitkMriSimulation ) diff --git a/Plugins/org.mitk.gui.qt.diffusionimaging.fiberprocessing/CMakeLists.txt b/Plugins/org.mitk.gui.qt.diffusionimaging.fiberprocessing/CMakeLists.txt index c06c70a..1b4e8a5 100644 --- a/Plugins/org.mitk.gui.qt.diffusionimaging.fiberprocessing/CMakeLists.txt +++ b/Plugins/org.mitk.gui.qt.diffusionimaging.fiberprocessing/CMakeLists.txt @@ -1,10 +1,10 @@ # The project name must correspond to the directory name of your plug-in # and must not contain periods. project(org_mitk_gui_qt_diffusionimaging_fiberprocessing) mitk_create_plugin( SUBPROJECTS MITK-Diffusion EXPORT_DIRECTIVE DIFFUSIONIMAGING_FIBERPROCESSING_EXPORT EXPORTED_INCLUDE_SUFFIXES src - MODULE_DEPENDS MitkFiberTracking MitkChart MitkMultilabel + MODULE_DEPENDS MitkFiberTracking MitkMriSimulation MitkChart MitkMultilabel ) diff --git a/Plugins/org.mitk.gui.qt.diffusionimaging.ivim/CMakeLists.txt b/Plugins/org.mitk.gui.qt.diffusionimaging.ivim/CMakeLists.txt index e64c95d..03cd599 100644 --- a/Plugins/org.mitk.gui.qt.diffusionimaging.ivim/CMakeLists.txt +++ b/Plugins/org.mitk.gui.qt.diffusionimaging.ivim/CMakeLists.txt @@ -1,10 +1,10 @@ # The project name must correspond to the directory name of your plug-in # and must not contain periods. project(org_mitk_gui_qt_diffusionimaging_ivim) mitk_create_plugin( SUBPROJECTS MITK-Diffusion EXPORT_DIRECTIVE DIFFUSIONIMAGING_IVIM_EXPORT EXPORTED_INCLUDE_SUFFIXES src - MODULE_DEPENDS MitkQtWidgetsExt MitkQuantification + MODULE_DEPENDS MitkQtWidgetsExt MitkDiffusionCore ) diff --git a/Plugins/org.mitk.gui.qt.diffusionimaging.reconstruction/CMakeLists.txt b/Plugins/org.mitk.gui.qt.diffusionimaging.reconstruction/CMakeLists.txt index b4491df..600104b 100644 --- a/Plugins/org.mitk.gui.qt.diffusionimaging.reconstruction/CMakeLists.txt +++ b/Plugins/org.mitk.gui.qt.diffusionimaging.reconstruction/CMakeLists.txt @@ -1,10 +1,10 @@ # The project name must correspond to the directory name of your plug-in # and must not contain periods. project(org_mitk_gui_qt_diffusionimaging_reconstruction) mitk_create_plugin( SUBPROJECTS MITK-Diffusion EXPORT_DIRECTIVE DIFFUSIONIMAGING_RECONSTRUCTION_EXPORT EXPORTED_INCLUDE_SUFFIXES src - MODULE_DEPENDS MitkQtWidgetsExt MitkQuantification + MODULE_DEPENDS MitkQtWidgetsExt MitkDiffusionCore ) diff --git a/Plugins/org.mitk.gui.qt.diffusionimaging.reconstruction/src/internal/Perspectives/QmitkQuantificationPerspective.cpp b/Plugins/org.mitk.gui.qt.diffusionimaging.reconstruction/src/internal/Perspectives/QmitkQuantificationPerspective.cpp index f99d4ca..26929f0 100644 --- a/Plugins/org.mitk.gui.qt.diffusionimaging.reconstruction/src/internal/Perspectives/QmitkQuantificationPerspective.cpp +++ b/Plugins/org.mitk.gui.qt.diffusionimaging.reconstruction/src/internal/Perspectives/QmitkQuantificationPerspective.cpp @@ -1,51 +1,51 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ #include "QmitkQuantificationPerspective.h" #include "berryIViewLayout.h" void QmitkQuantificationPerspective::CreateInitialLayout(berry::IPageLayout::Pointer layout) { ///////////////////////////////////////////////////// // all di-app perspectives should have the following: ///////////////////////////////////////////////////// QString editorArea = layout->GetEditorArea(); layout->AddStandaloneViewPlaceholder("org.mitk.views.viewnavigatorview", berry::IPageLayout::LEFT, 0.3f, editorArea, false); layout->AddStandaloneView("org.mitk.views.datamanager", false, berry::IPageLayout::LEFT, 0.3f, editorArea); layout->AddStandaloneView("org.mitk.views.controlvisualizationpropertiesview", false, berry::IPageLayout::BOTTOM, .15f, "org.mitk.views.datamanager"); berry::IFolderLayout::Pointer left = layout->CreateFolder("org.mbi.diffusionimaginginternal.leftcontrols", berry::IPageLayout::BOTTOM, 0.15f, "org.mitk.views.controlvisualizationpropertiesview"); layout->AddStandaloneViewPlaceholder("org.mitk.views.imagenavigator", berry::IPageLayout::BOTTOM, .7f, "org.mbi.diffusionimaginginternal.leftcontrols", false); ///////////////////////////////////////////// // here goes the perspective specific stuff ///////////////////////////////////////////// left->AddView("org.mitk.views.diffusionquantification"); - left->AddView("org.mitk.views.imagestatisticsReloaded"); + left->AddView("org.mitk.views.imagestatistics"); left->AddView("org.mitk.views.segmentation"); left->AddView("org.mitk.views.odfdetails"); } diff --git a/Plugins/org.mitk.gui.qt.diffusionimaging.tbss/CMakeLists.txt b/Plugins/org.mitk.gui.qt.diffusionimaging.tbss/CMakeLists.txt index f3e90a3..47a92cd 100644 --- a/Plugins/org.mitk.gui.qt.diffusionimaging.tbss/CMakeLists.txt +++ b/Plugins/org.mitk.gui.qt.diffusionimaging.tbss/CMakeLists.txt @@ -1,10 +1,10 @@ # The project name must correspond to the directory name of your plug-in # and must not contain periods. project(org_mitk_gui_qt_diffusionimaging_tbss) mitk_create_plugin( SUBPROJECTS MITK-Diffusion EXPORT_DIRECTIVE DIFFUSIONIMAGING_TBSS_EXPORT EXPORTED_INCLUDE_SUFFIXES src - MODULE_DEPENDS MitkQtWidgetsExt MitkFiberTracking MitkQuantification + MODULE_DEPENDS MitkQtWidgetsExt MitkFiberTracking ) diff --git a/Plugins/org.mitk.gui.qt.diffusionimaging/CMakeLists.txt b/Plugins/org.mitk.gui.qt.diffusionimaging/CMakeLists.txt index 4cab76a..08a6c66 100644 --- a/Plugins/org.mitk.gui.qt.diffusionimaging/CMakeLists.txt +++ b/Plugins/org.mitk.gui.qt.diffusionimaging/CMakeLists.txt @@ -1,8 +1,8 @@ project(org_mitk_gui_qt_diffusionimaging) mitk_create_plugin( SUBPROJECTS MITK-Diffusion EXPORT_DIRECTIVE DIFFUSIONIMAGING_EXPORT EXPORTED_INCLUDE_SUFFIXES src - MODULE_DEPENDS MitkDiffusionCore MitkQuantification MitkConnectomics + MODULE_DEPENDS MitkFiberTracking MitkConnectomics ) diff --git a/README.md b/README.md index 35dd97b..1b3d082 100644 --- a/README.md +++ b/README.md @@ -1,243 +1,246 @@ MITK Diffusion ============== The MITK Diffusion application [[1,2]](#References) offers a selection of image analysis algorithms for the processing of diffusion-weighted MR images. It encompasses the research of the Division [Medical Image Computing](https://www.dkfz.de/en/mic/index.php) at the German Cancer Research Center (DKFZ). * [Downloads](#Downloads) * [Requirements](#Requirements) * [Features](#Features) * [Related Links](#Related) * [Image Gallery](#Image) * [Building MITK Diffusion from source](#Building) * [User Manual](http://docs.mitk.org/nightly/org_mitk_gui_qt_diffusionimaging.html) * [Report a Bug](https://phabricator.mitk.org/maniphest/task/edit/form/29/) * [References](#References) * [Contact](#Contact) ## Downloads **Nightly Ubuntu and Windows installers: [ftp://ftp.dkfz-heidelberg.de/outgoing/MitkDiffusion](https://bit.ly/2S1QfC8)** Please also have a look at the [requirements](#Requirements) for running MITK Diffusion with all its features successfully! The installers come as executable setup wizards that install MITK Diffusion on your system or alternatively as simple .tar.gz or .zip archive where you can execute MITK Diffusion and the command line apps "manually". Should there be no new installer for a while, please [contact](#Contact) us and report the issue. If you encounter any bugs, please report them in our [bugtracking](https://phabricator.mitk.org/maniphest/task/edit/form/29/) system or use the [MITK-users mailing list](http://mitk.org/wiki/MITK_Mailinglist). We are grateful for any feedback! ### Requirements * **For Ubuntu users**: * Install Python 3.X: `sudo apt install python3 python3-pip` * Download Python requirements file: [PythonRequirements.txt](https://raw.githubusercontent.com/MITK/MITK/master/Modules/DiffusionImaging/DiffusionCore/PythonRequirements.txt) * Install Python requirements: `pip3 install -r PythonRequirements.txt` * If your are behind a proxy use `pip3 --proxy install -r PythonRequirements.txt` * **Requirements for all deep-learning based functionalities**: * Affected functionalities: * Brain extraction * TractSeg * Pytorch: https://pytorch.org/ (version 0.4.0) * CUDA: https://developer.nvidia.com/cuda-downloads * (optional) cuDNN: https://developer.nvidia.com/cudnn * **For Windows users**: * MITK Diffusion requires the Microsoft Visual C++ 2017 Redistributable to be installed on the system. The MITK Diffusion installer automatically installs this redistributable for you if not already present on the system, but it needs administrative privileges to do so. So to install the redistributable, **run the MITK Diffusion installer as administrator**. * **Python modules are disabled under Windows!** ## Features **Support for most established image formats** * Images: DICOM, NIFTI, NRRD (peak and SH images compatible with MRtrix) * Tractograms: fib/vtk, tck and trk. **Image preprocessing** * Registration * Head-motion correction * Denoising * Skull stripping and brain mask segmentation (Linux only) * Resampling, cropping, flipping and merging * Header modifications * Single volume extraction **Diffusion gradient/b-value processing** * b-value rounding * Gradient direction flipping * Gradient direction subsampling * Averaging of gradient directions/volumes * Gradient direction and b-value visualization **ODF reconstruction and signal modelling** * Tensor and Q-ball reconstruction * Other reconstructions via Dipy wrapping (CSD, 3D SHORE, SFM) (Linux only) * ODF peak calculation * MRtrix or camino results can be imported **Quantification of diffusion-weighted/tensor/ODF images** * Intravoxel Incoherent Motion (IVIM) and diffusion kurtosis analysis * Calculation of many other derived indices such as ADC, MD, GFA, FA, RA, AD, RD * Image statistics **Segmentation** * Automatic white matter bundle segmentation (TractSeg) [[3]](#References) (Linux only) * Automatic brain mask segmentation (Linux only) * Manual image segmentation and operations on segmentations * SOON: automatic brain tissue segmentation **Fiber tractography** * Global tractography [[4]](#References) * Streamline tractography * Interactive (similar to [[5]](#References)) or seed image based * Deterministic or probabilistic * Peak, ODF, tensor and raw dMRI based. The latter one in conjunction with machine learning based tractography [[6]](#References) * Various possibilities for anatomical constraints. * Tractography priors in form of additional peak images, e.g. obtained using TractSeg **Fiber processing** * Tract dissection (parcellation or ROI based) * Tract filtering by * length * curvature * direction * weight * density * Tract resampling and compression * Tract transformation * Mirroring * Rotating and translating * Registration (apply transform of previously performed image registration) * Tract coloring * Curvature * Length * Weight * Scalar map (e.g. FA) * Other operations * Join * Subtract * Copy * Fiber clustering [[7]](#References) * Fiber fitting and weighting similar to SIFT2 and LiFE [[8,9]](#References) * Principal direction extraction (fibers --> peaks) * Tract derived images: * Tract density images * Tract endpoint images * Tract envelopes **Fiberfox dMRI simulations** [[10]](#References) * Multi-compartment signal modeling * Simulation of the k-space acquisition including * Compartment specific relaxation effects * Artifacts such as noise, spikes, ghosts, aliasing, distortions, signal drift, head motion, eddy currents and Gibbs ringing * Definition of important acquisition parameters such as bvalues and gradient directions, TE, TR, dwell time, partial Fourier, ... * Manual definition of fiber configurations, e.g. for evaluation purposes * Automatic generation of random fiber configurations **Other features** * Brain network statistics and visualization (connectomics) * Interactive Python console (Linux only) * Integrated screenshot maker * Command line tools for most functionalities ## Related Links * Great python package for logging your (MITK) command line experiments: * https://github.com/MIC-DKFZ/cmdint * `pip3 install cmdint` * TractSeg reference data of 72 semiautomatically defined bundles in 105 HCP subjects: https://zenodo.org/record/1285152 * TractSeg python package: https://github.com/MIC-DKFZ/TractSeg * Simulated dMRI images and ground truth of random fiber phantoms in various configurations: https://doi.org/10.5281/zenodo.2533250 * ISMRM 2015 Tractography Challenge Data: https://doi.org/10.5281/zenodo.572345 & https://doi.org/10.5281/zenodo.1007149 ## Image Gallery ![](http://mitk.org/images/8/8f/MitkDiffusion.png) Screenshot of the MITK Diffusion Welcome Screen


![](http://mitk.org/images/0/09/ScalarMaps.png) Scalar map visualization


![](http://mitk.org/images/3/3b/Data_Tensors.png) Tensor Visualization


![](http://mitk.org/images/5/5c/Data_ODF.png) ODF visualization


![](http://mitk.org/images/7/73/Data_Peaks.png) Peak visualization (uniform white coloring)


![](http://mitk.org/images/6/68/StreamlineTractography.png) Interactive tractography in MITK Diffusion. The tractogram updates automatically on parameter change and movement of the spherical seed region.


![](http://mitk.org/images/3/3a/Extraction_1.png) Tract dissection using manually drawn ROIs.


![](http://mitk.org/images/f/f5/FiberFit.png) Automatic streamline weighting (similar to SIFT2 or LiFE)


![](http://mitk.org/images/3/33/Fiberfox.png) Illustration of the dMRI phantom simulation process using Fiberfox.


\ Illustration of simulated dMRI images with various artifacts (a bit excessive for illustration purposes): eddy current distortions (1), motion and spike (2), intensity drift (3), motion, eddy and noise (4), ringing (5), B0 inhomogeneity distortions (6), from left to right.


![](http://mitk.org/images/0/08/RandomFibers_Example.png) Automatically generated random fiber configuration for Fiberfox simulations.


## Building MITK Diffusion from source * Install [Qt](https://www.qt.io/ Qt) on your system (>= 5.11.1). -* Clone MITK from out [repository](https://phabricator.mitk.org/source/mitk.git git) or here from github using [Git version control](https://git-scm.com/). +* Clone MITK from [github](https://github.com/MIC-DKFZ/MITK-Diffusion.git) using [Git version control](https://git-scm.com/). +* Clone MITK Diffusion from [github](https://github.com/MITK/MITK.git). * Configure the MITK Superbuild using [CMake](https://cmake.org/) (>= 3.14.5). - * Choose the source code directory and an empty binary directory. + * Choose the MITK source code directory and an empty binary directory. + * Click "Configure". + * Set the option MITK_EXTENSION_DIRS to "/path/to/my/mitk-diffusion-repository". * Click "Configure". * Set the option MITK_BUILD_CONFIGURATION to "DiffusionRelease". * Click "Generate". * macOS specifics: * Use python 3.**6**, since python 3.**7** leads to build errors on macOS. * The cmake variables for python 3 might need to be set manually. It is probably enough to specify PYTHON_EXECUTABLE. * Openmp needs to be installed manually since it is not included in apple clang anymore: "brew install libomp" should do the trick. It might be necessary to set the corresponding make variables later in the MITK build manually: * OpenMP_CXX_FLAGS: -Xpreprocessor -fopenmp -I"/path/to/python3/includes/" * OpenMP_C_FLAGS: -Xpreprocessor -fopenmp -I"/path/to/python3/includes/" * OpenMPCXX_LIB_NAMES: libomp * OpenMPC_LIB_NAMES: libomp * OpenMP_libomp_LIBRARY: /path/to/libomp.dylib * Build the project * Linux/maxOS: Open a console window, navigate to the build folder and type "make -j8" (optionally supply the number threads to be used for a parallel build with -j). * Windows (requires visual studio): Open the MITK Superbuild solution file and build all projects. * The build may take some time and should yield the binaries in "your_build_folder/MITK-build/bin" More detailed build instructions can be found in the [documentation](http://docs.mitk.org/nightly/BuildInstructionsPage.html). Continuous integration: http://cdash.mitk.org/index.php?project=MITK&display=project ## References All publications of the Division of Medical Image Computing can be found [https://www.dkfz.de/en/mic/publications/ here]. [1] Fritzsche, Klaus H., Peter F. Neher, Ignaz Reicht, Thomas van Bruggen, Caspar Goch, Marco Reisert, Marco Nolden, et al. “MITK Diffusion Imaging.” Methods of Information in Medicine 51, no. 5 (2012): 441. [2] Fritzsche, K., and H.-P. Meinzer. “MITK-DI A New Diffusion Imaging Component for MITK.” In Bildverarbeitung Für Die Medizin, n.d. [3] Wasserthal, Jakob, Peter Neher, and Klaus H. Maier-Hein. “TractSeg - Fast and Accurate White Matter Tract Segmentation.” NeuroImage 183 (August 4, 2018): 239–53. [4] Neher, P. F., B. Stieltjes, M. Reisert, I. Reicht, H.P. Meinzer, and K. Maier-Hein. “MITK Global Tractography.” In SPIE Medical Imaging: Image Processing, 2012. [5] Chamberland, M., K. Whittingstall, D. Fortin, D. Mathieu, und M. Descoteaux. „Real-time multi-peak tractography for instantaneous connectivity display“. Front Neuroinform 8 (2014): 59. doi:10.3389/fninf.2014.00059. [6] Neher, Peter F., Marc-Alexandre Côté, Jean-Christophe Houde, Maxime Descoteaux, and Klaus H. Maier-Hein. “Fiber Tractography Using Machine Learning.” NeuroImage. Accessed July 17, 2017. doi:10.1016/j.neuroimage.2017.07.028. [7] Garyfallidis, Eleftherios, Matthew Brett, Marta Morgado Correia, Guy B. Williams, and Ian Nimmo-Smith. “QuickBundles, a Method for Tractography Simplification.” Frontiers in Neuroscience 6 (2012). [8] Smith, Robert E., Jacques-Donald Tournier, Fernando Calamante, and Alan Connelly. “SIFT2: Enabling Dense Quantitative Assessment of Brain White Matter Connectivity Using Streamlines Tractography.” NeuroImage 119, no. Supplement C (October 1, 2015): 338–51. [9] Pestilli, Franco, Jason D. Yeatman, Ariel Rokem, Kendrick N. Kay, and Brian A. Wandell. “Evaluation and Statistical Inference for Human Connectomes.” Nature Methods 11, no. 10 (October 2014): 1058–63. [10] Neher, Peter F., Frederik B. Laun, Bram Stieltjes, and Klaus H. Maier-Hein. “Fiberfox: Facilitating the Creation of Realistic White Matter Software Phantoms.” Magnetic Resonance in Medicine 72, no. 5 (November 2014): 1460–70. doi:10.1002/mrm.25045. ## Contact If you have questions about the application or if you would like to give us feedback, don't hesitate to contact us using [our mailing list](http://mitk.org/wiki/MITK_Mailinglist) or, for questions that are of no interest for the community, [directly](https://www.dkfz.de/en/mic/team/people/Peter_Neher.html).