diff --git a/Modules/DiffusionImaging/DiffusionCore/CMakeLists.txt b/Modules/DiffusionImaging/DiffusionCore/CMakeLists.txt index d1ca5d5bf6..87a6bf4d32 100644 --- a/Modules/DiffusionImaging/DiffusionCore/CMakeLists.txt +++ b/Modules/DiffusionImaging/DiffusionCore/CMakeLists.txt @@ -1,20 +1,22 @@ # 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-DTI - INCLUDE_DIRS Algorithms Algorithms/Reconstruction Algorithms/Registration Algorithms/Reconstruction/MultishellProcessing DicomImport IODataStructures/DiffusionWeightedImages IODataStructures/Properties IODataStructures/QBallImages IODataStructures/TensorImages IODataStructures Rendering ${CMAKE_CURRENT_BINARY_DIR} + INCLUDE_DIRS include/ include/Algorithms include/Algorithms/Reconstruction include/Algorithms/Registration include/Algorithms/Reconstruction/MultishellProcessing include/DicomImport include/IODataStructures/DiffusionWeightedImages include/IODataStructures/Properties include/IODataStructures/QBallImages include/IODataStructures/TensorImages include/IODataStructures include/Rendering ${CMAKE_CURRENT_BINARY_DIR} DEPENDS MitkMapperExt MitkPlanarFigure MitkImageExtraction MitkSceneSerializationBase MitkDICOMReader PACKAGE_DEPENDS PUBLIC ITK|ITKTestKernel+ITKRegistrationCommon+ITKMetricsv4+ITKRegistrationMethodsv4+ITKDistanceMap+ITKLabelVoting+ITKVTK PUBLIC VTK|vtkFiltersProgrammable WARNINGS_AS_ERRORS ) if(MSVC) mitkFunctionCheckCAndCXXCompilerFlags("/wd4005" CMAKE_C_FLAGS CMAKE_CXX_FLAGS) endif() add_subdirectory(Testing) +add_subdirectory(cmdapps) +add_subdirectory(autoload/IO) diff --git a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/CMakeLists.txt b/Modules/DiffusionImaging/DiffusionCore/autoload/IO/CMakeLists.txt new file mode 100644 index 0000000000..653d995981 --- /dev/null +++ b/Modules/DiffusionImaging/DiffusionCore/autoload/IO/CMakeLists.txt @@ -0,0 +1,10 @@ +MITK_CREATE_MODULE( DiffusionCoreIO + INCLUDE_DIRS + PRIVATE src/IO + DEPENDS PUBLIC MitkDiffusionCore MitkSceneSerialization + PACKAGE_DEPENDS + PRIVATE tinyxml + AUTOLOAD_WITH MitkCore + WARNINGS_AS_ERRORS + SUBPROJECTS MITK-DTI +) \ No newline at end of file diff --git a/Modules/DiffusionImaging/DiffusionCore/autoload/IO/files.cmake b/Modules/DiffusionImaging/DiffusionCore/autoload/IO/files.cmake new file mode 100644 index 0000000000..36fcab19c4 --- /dev/null +++ b/Modules/DiffusionImaging/DiffusionCore/autoload/IO/files.cmake @@ -0,0 +1,22 @@ +set(CPP_FILES + mitkDiffusionCoreIOActivator.cpp + mitkNrrdTensorImageReader.cpp + mitkNrrdTensorImageWriter.cpp + mitkTensorImageSerializer.cpp + mitkTensorImageSource.cpp + mitkDiffusionCoreObjectFactory.cpp + + mitkDiffusionCoreIOMimeTypes.cpp + + mitkDiffusionImageNrrdReaderService.cpp + mitkDiffusionImageNrrdWriterService.cpp + mitkDiffusionImageNiftiReaderService.cpp + mitkDiffusionImageNiftiWriterService.cpp + + mitkNrrdQBallImageReader.cpp + mitkNrrdQBallImageWriter.cpp + mitkQBallImageSerializer.cpp + + mitkCompositeMapper.cpp +) + diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkCompositeMapper.cpp b/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkCompositeMapper.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionIO/mitkCompositeMapper.cpp rename to Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkCompositeMapper.cpp diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkCompositeMapper.h b/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkCompositeMapper.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionIO/mitkCompositeMapper.h rename to Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkCompositeMapper.h diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkDiffusionModuleActivator.cpp b/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionCoreIOActivator.cpp similarity index 68% copy from Modules/DiffusionImaging/DiffusionIO/mitkDiffusionModuleActivator.cpp copy to Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionCoreIOActivator.cpp index 38e6d63af6..5a05b24557 100644 --- a/Modules/DiffusionImaging/DiffusionIO/mitkDiffusionModuleActivator.cpp +++ b/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionCoreIOActivator.cpp @@ -1,159 +1,119 @@ /*=================================================================== 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 "mitkDiffusionIOMimeTypes.h" +#include "mitkDiffusionCoreIOMimeTypes.h" namespace mitk { /** \brief Registers services for segmentation module. */ - class DiffusionModuleActivator : public us::ModuleActivator + class DiffusionCoreIOActivator : public us::ModuleActivator { public: void Load(us::ModuleContext* context) override { us::ServiceProperties props; props[ us::ServiceConstants::SERVICE_RANKING() ] = 10; - m_MimeTypes = mitk::DiffusionIOMimeTypes::Get(); + m_MimeTypes = mitk::DiffusionCoreIOMimeTypes::Get(); for (std::vector::const_iterator mimeTypeIter = m_MimeTypes.begin(), iterEnd = m_MimeTypes.end(); mimeTypeIter != iterEnd; ++mimeTypeIter) { context->RegisterService(*mimeTypeIter, props); } m_DiffusionImageNrrdReaderService = new DiffusionImageNrrdReaderService(); m_DiffusionImageNiftiReaderService = new DiffusionImageNiftiReaderService(); m_NrrdTensorImageReader = new NrrdTensorImageReader(); m_NrrdQBallImageReader = new NrrdQBallImageReader(); - m_FiberBundleVtkReader = new FiberBundleVtkReader(); - m_FiberBundleTrackVisReader = new FiberBundleTrackVisReader(); - m_ConnectomicsNetworkReader = new ConnectomicsNetworkReader(); - m_PlanarFigureCompositeReader = new PlanarFigureCompositeReader(); m_DiffusionImageNrrdWriterService = new DiffusionImageNrrdWriterService(); m_DiffusionImageNiftiWriterService = new DiffusionImageNiftiWriterService(); m_NrrdTensorImageWriter = new NrrdTensorImageWriter(); m_NrrdQBallImageWriter = new NrrdQBallImageWriter(); - m_FiberBundleVtkWriter = new FiberBundleVtkWriter(); - m_FiberBundleTrackVisWriter = new FiberBundleTrackVisWriter(); - m_ConnectomicsNetworkWriter = new ConnectomicsNetworkWriter(); - m_ConnectomicsNetworkCSVWriter = new ConnectomicsNetworkCSVWriter(); - m_ConnectomicsNetworkMatrixWriter = new ConnectomicsNetworkMatrixWriter(); - m_PlanarFigureCompositeWriter = new PlanarFigureCompositeWriter(); //register relevant properties //non-persistent properties mitk::CoreServices::GetPropertyDescriptions()->AddDescription(mitk::DiffusionPropertyHelper::BVALUEMAPPROPERTYNAME, "This map stores which b values belong to which gradients."); mitk::CoreServices::GetPropertyDescriptions()->AddDescription(mitk::DiffusionPropertyHelper::ORIGINALGRADIENTCONTAINERPROPERTYNAME, "The original gradients used during acquisition. This property may be empty."); //persistent properties mitk::CoreServices::GetPropertyDescriptions()->AddDescription(mitk::DiffusionPropertyHelper::REFERENCEBVALUEPROPERTYNAME, "The reference b value the gradients are normalized to."); mitk::CoreServices::GetPropertyDescriptions()->AddDescription(mitk::DiffusionPropertyHelper::MEASUREMENTFRAMEPROPERTYNAME, "The measurment frame used during acquisition."); mitk::CoreServices::GetPropertyDescriptions()->AddDescription(mitk::DiffusionPropertyHelper::GRADIENTCONTAINERPROPERTYNAME, "The gradients used during acquisition."); mitk::CoreServices::GetPropertyDescriptions()->AddDescription(mitk::DiffusionPropertyHelper::MODALITY, "Defines the modality used for acquisition. DWMRI signifies diffusion weighted images."); mitk::CoreServices::GetPropertyPersistence()->AddInfo(mitk::DiffusionPropertyHelper::REFERENCEBVALUEPROPERTYNAME, mitk::PropertyPersistenceInfo::New("DWMRI_b-value")); mitk::CoreServices::GetPropertyPersistence()->AddInfo(mitk::DiffusionPropertyHelper::MEASUREMENTFRAMEPROPERTYNAME, mitk::PropertyPersistenceInfo::New("measurement frame")); mitk::CoreServices::GetPropertyPersistence()->AddInfo(mitk::DiffusionPropertyHelper::GRADIENTCONTAINERPROPERTYNAME, mitk::PropertyPersistenceInfo::New("DWMRI_gradient")); mitk::CoreServices::GetPropertyPersistence()->AddInfo(mitk::DiffusionPropertyHelper::MODALITY, mitk::PropertyPersistenceInfo::New("modality")); } 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_NrrdTensorImageReader; delete m_NrrdQBallImageReader; - delete m_FiberBundleVtkReader; - delete m_FiberBundleTrackVisReader; - delete m_ConnectomicsNetworkReader; - delete m_PlanarFigureCompositeReader; delete m_DiffusionImageNrrdWriterService; delete m_DiffusionImageNiftiWriterService; delete m_NrrdTensorImageWriter; delete m_NrrdQBallImageWriter; - delete m_FiberBundleVtkWriter; - delete m_FiberBundleTrackVisWriter; - delete m_ConnectomicsNetworkWriter; - delete m_ConnectomicsNetworkCSVWriter; - delete m_ConnectomicsNetworkMatrixWriter; - delete m_PlanarFigureCompositeWriter; } private: DiffusionImageNrrdReaderService * m_DiffusionImageNrrdReaderService; DiffusionImageNiftiReaderService * m_DiffusionImageNiftiReaderService; NrrdTensorImageReader * m_NrrdTensorImageReader; NrrdQBallImageReader * m_NrrdQBallImageReader; - FiberBundleVtkReader * m_FiberBundleVtkReader; - FiberBundleTrackVisReader * m_FiberBundleTrackVisReader; - ConnectomicsNetworkReader * m_ConnectomicsNetworkReader; - PlanarFigureCompositeReader* m_PlanarFigureCompositeReader; DiffusionImageNrrdWriterService * m_DiffusionImageNrrdWriterService; DiffusionImageNiftiWriterService * m_DiffusionImageNiftiWriterService; NrrdTensorImageWriter * m_NrrdTensorImageWriter; NrrdQBallImageWriter * m_NrrdQBallImageWriter; - FiberBundleVtkWriter * m_FiberBundleVtkWriter; - FiberBundleTrackVisWriter * m_FiberBundleTrackVisWriter; - ConnectomicsNetworkWriter * m_ConnectomicsNetworkWriter; - ConnectomicsNetworkCSVWriter * m_ConnectomicsNetworkCSVWriter; - ConnectomicsNetworkMatrixWriter * m_ConnectomicsNetworkMatrixWriter; - PlanarFigureCompositeWriter* m_PlanarFigureCompositeWriter; std::vector m_MimeTypes; }; } -US_EXPORT_MODULE_ACTIVATOR(mitk::DiffusionModuleActivator) +US_EXPORT_MODULE_ACTIVATOR(mitk::DiffusionCoreIOActivator) diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkDiffusionIOMimeTypes.cpp b/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionCoreIOMimeTypes.cpp similarity index 53% copy from Modules/DiffusionImaging/DiffusionIO/mitkDiffusionIOMimeTypes.cpp copy to Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionCoreIOMimeTypes.cpp index 16cbe4893e..554af284b3 100644 --- a/Modules/DiffusionImaging/DiffusionIO/mitkDiffusionIOMimeTypes.cpp +++ b/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionCoreIOMimeTypes.cpp @@ -1,383 +1,262 @@ /*=================================================================== 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 "mitkDiffusionCoreIOMimeTypes.h" #include "mitkIOMimeTypes.h" #include #include #include #include #include namespace mitk { -std::vector DiffusionIOMimeTypes::Get() +std::vector DiffusionCoreIOMimeTypes::Get() { std::vector mimeTypes; // order matters here (descending rank for mime types) mimeTypes.push_back(DWI_NRRD_MIMETYPE().Clone()); mimeTypes.push_back(DWI_NIFTI_MIMETYPE().Clone()); mimeTypes.push_back(DTI_MIMETYPE().Clone()); mimeTypes.push_back(QBI_MIMETYPE().Clone()); - mimeTypes.push_back(FIBERBUNDLE_VTK_MIMETYPE().Clone()); - mimeTypes.push_back(FIBERBUNDLE_TRK_MIMETYPE().Clone()); - - mimeTypes.push_back(CONNECTOMICS_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::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_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::DiffusionImageNrrdMimeType::DiffusionImageNrrdMimeType() +DiffusionCoreIOMimeTypes::DiffusionImageNrrdMimeType::DiffusionImageNrrdMimeType() : CustomMimeType(DWI_NRRD_MIMETYPE_NAME()) { std::string category = "Diffusion Weighted Image"; this->SetCategory(category); this->SetComment("Diffusion Weighted Images"); this->AddExtension("dwi"); this->AddExtension("hdwi"); this->AddExtension("nrrd"); } -bool DiffusionIOMimeTypes::DiffusionImageNrrdMimeType::AppliesTo(const std::string &path) const +bool DiffusionCoreIOMimeTypes::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 std::string ext = this->GetExtension( path ); ext = itksys::SystemTools::LowerCase( ext ); // Simple NRRD files should only be considered for this mime type if they contain // corresponding tags if( ext == ".nrrd" ) { itk::NrrdImageIO::Pointer io = itk::NrrdImageIO::New(); 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; } -DiffusionIOMimeTypes::DiffusionImageNrrdMimeType* DiffusionIOMimeTypes::DiffusionImageNrrdMimeType::Clone() const +DiffusionCoreIOMimeTypes::DiffusionImageNrrdMimeType* DiffusionCoreIOMimeTypes::DiffusionImageNrrdMimeType::Clone() const { return new DiffusionImageNrrdMimeType(*this); } -DiffusionIOMimeTypes::DiffusionImageNrrdMimeType DiffusionIOMimeTypes::DWI_NRRD_MIMETYPE() +DiffusionCoreIOMimeTypes::DiffusionImageNrrdMimeType DiffusionCoreIOMimeTypes::DWI_NRRD_MIMETYPE() { return DiffusionImageNrrdMimeType(); } -DiffusionIOMimeTypes::DiffusionImageNiftiMimeType::DiffusionImageNiftiMimeType() +DiffusionCoreIOMimeTypes::DiffusionImageNiftiMimeType::DiffusionImageNiftiMimeType() : CustomMimeType(DWI_NIFTI_MIMETYPE_NAME()) { std::string category = "Diffusion Weighted Image"; this->SetCategory(category); this->SetComment("Diffusion Weighted Images"); this->AddExtension("fsl"); this->AddExtension("fslgz"); this->AddExtension("nii"); this->AddExtension("nii.gz"); } -bool DiffusionIOMimeTypes::DiffusionImageNiftiMimeType::AppliesTo(const std::string &path) const +bool DiffusionCoreIOMimeTypes::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 = itksys::SystemTools::GetFilenamePath(path) + "/" + this->GetFilenameWithoutExtension(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; } canRead = false; } return canRead; } -DiffusionIOMimeTypes::DiffusionImageNiftiMimeType* DiffusionIOMimeTypes::DiffusionImageNiftiMimeType::Clone() const +DiffusionCoreIOMimeTypes::DiffusionImageNiftiMimeType* DiffusionCoreIOMimeTypes::DiffusionImageNiftiMimeType::Clone() const { return new DiffusionImageNiftiMimeType(*this); } -DiffusionIOMimeTypes::DiffusionImageNiftiMimeType DiffusionIOMimeTypes::DWI_NIFTI_MIMETYPE() +DiffusionCoreIOMimeTypes::DiffusionImageNiftiMimeType DiffusionCoreIOMimeTypes::DWI_NIFTI_MIMETYPE() { return DiffusionImageNiftiMimeType(); } -CustomMimeType DiffusionIOMimeTypes::DTI_MIMETYPE() +CustomMimeType DiffusionCoreIOMimeTypes::DTI_MIMETYPE() { CustomMimeType mimeType(DTI_MIMETYPE_NAME()); std::string category = "Tensor Images"; mimeType.SetComment("Diffusion Tensor Images"); mimeType.SetCategory(category); mimeType.AddExtension("dti"); mimeType.AddExtension("hdti"); return mimeType; } -CustomMimeType DiffusionIOMimeTypes::QBI_MIMETYPE() +CustomMimeType DiffusionCoreIOMimeTypes::QBI_MIMETYPE() { CustomMimeType mimeType(QBI_MIMETYPE_NAME()); std::string category = "Q-Ball Images"; mimeType.SetComment("Diffusion Q-Ball Images"); mimeType.SetCategory(category); mimeType.AddExtension("qbi"); mimeType.AddExtension("hqbi"); return mimeType; } -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::DWI_NRRD_MIMETYPE_NAME() +std::string DiffusionCoreIOMimeTypes::DWI_NRRD_MIMETYPE_NAME() { static std::string name = IOMimeTypes::DEFAULT_BASE_NAME() + ".dwi"; return name; } -std::string DiffusionIOMimeTypes::DWI_NIFTI_MIMETYPE_NAME() +std::string DiffusionCoreIOMimeTypes::DWI_NIFTI_MIMETYPE_NAME() { static std::string name = IOMimeTypes::DEFAULT_BASE_NAME() + ".fsl"; return name; } -std::string DiffusionIOMimeTypes::DTI_MIMETYPE_NAME() +std::string DiffusionCoreIOMimeTypes::DTI_MIMETYPE_NAME() { static std::string name = IOMimeTypes::DEFAULT_BASE_NAME() + ".dti"; return name; } -std::string DiffusionIOMimeTypes::QBI_MIMETYPE_NAME() +std::string DiffusionCoreIOMimeTypes::QBI_MIMETYPE_NAME() { static std::string name = IOMimeTypes::DEFAULT_BASE_NAME() + ".qbi"; return name; } -std::string DiffusionIOMimeTypes::FIBERBUNDLE_VTK_MIMETYPE_NAME() -{ - static std::string name = IOMimeTypes::DEFAULT_BASE_NAME() + ".FiberBundle.vtk"; - return name; -} - -std::string DiffusionIOMimeTypes::FIBERBUNDLE_TRK_MIMETYPE_NAME() -{ - static std::string name = IOMimeTypes::DEFAULT_BASE_NAME() + ".FiberBundle.trk"; - 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; -} - // Descriptions -std::string DiffusionIOMimeTypes::FIBERBUNDLE_MIMETYPE_DESCRIPTION() -{ - static std::string description = "Fiberbundles"; - return description; -} -std::string DiffusionIOMimeTypes::DWI_NRRD_MIMETYPE_DESCRIPTION() +std::string DiffusionCoreIOMimeTypes::DWI_NRRD_MIMETYPE_DESCRIPTION() { static std::string description = "Diffusion Weighted Images"; return description; } -std::string DiffusionIOMimeTypes::DWI_NIFTI_MIMETYPE_DESCRIPTION() +std::string DiffusionCoreIOMimeTypes::DWI_NIFTI_MIMETYPE_DESCRIPTION() { static std::string description = "Diffusion Weighted Images"; return description; } -std::string DiffusionIOMimeTypes::DTI_MIMETYPE_DESCRIPTION() +std::string DiffusionCoreIOMimeTypes::DTI_MIMETYPE_DESCRIPTION() { static std::string description = "Diffusion Tensor Images"; return description; } -std::string DiffusionIOMimeTypes::QBI_MIMETYPE_DESCRIPTION() +std::string DiffusionCoreIOMimeTypes::QBI_MIMETYPE_DESCRIPTION() { static std::string description = "Q-Ball Images"; 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; -} - } diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkDiffusionIOMimeTypes.h b/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionCoreIOMimeTypes.h similarity index 53% copy from Modules/DiffusionImaging/DiffusionIO/mitkDiffusionIOMimeTypes.h copy to Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionCoreIOMimeTypes.h index 7b3efeb789..64fca98bdc 100644 --- a/Modules/DiffusionImaging/DiffusionIO/mitkDiffusionIOMimeTypes.h +++ b/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionCoreIOMimeTypes.h @@ -1,106 +1,74 @@ /*=================================================================== 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 MITKDiffusionCoreIOMimeTypes_H +#define MITKDiffusionCoreIOMimeTypes_H #include "mitkCustomMimeType.h" -#include #include namespace mitk { -class DiffusionIOMimeTypes +class DiffusionCoreIOMimeTypes { public: - class MITKDIFFUSIONIO_EXPORT DiffusionImageNrrdMimeType : public CustomMimeType + class DiffusionImageNrrdMimeType : public CustomMimeType { public: DiffusionImageNrrdMimeType(); virtual bool AppliesTo(const std::string &path) const override; virtual DiffusionImageNrrdMimeType* Clone() const override; }; - class MITKDIFFUSIONIO_EXPORT DiffusionImageNiftiMimeType : public CustomMimeType + class DiffusionImageNiftiMimeType : public CustomMimeType { public: DiffusionImageNiftiMimeType(); virtual bool AppliesTo(const std::string &path) const override; virtual DiffusionImageNiftiMimeType* Clone() const override; }; // Get all Diffusion Mime Types static std::vector Get(); - // ------------------------------ VTK formats ---------------------------------- - - static CustomMimeType FIBERBUNDLE_VTK_MIMETYPE(); - static std::string FIBERBUNDLE_VTK_MIMETYPE_NAME(); - - static std::string FIBERBUNDLE_MIMETYPE_DESCRIPTION(); - - // ------------------------------ TrackVis formats ---------------------------------- - - static CustomMimeType FIBERBUNDLE_TRK_MIMETYPE(); - static std::string FIBERBUNDLE_TRK_MIMETYPE_NAME(); - - // ------------------------- Image formats (ITK based) -------------------------- static DiffusionImageNrrdMimeType DWI_NRRD_MIMETYPE(); static DiffusionImageNiftiMimeType DWI_NIFTI_MIMETYPE(); static CustomMimeType DTI_MIMETYPE(); // dti, hdti static CustomMimeType QBI_MIMETYPE(); // qbi, hqbi static std::string DWI_NRRD_MIMETYPE_NAME(); static std::string DWI_NIFTI_MIMETYPE_NAME(); static std::string DTI_MIMETYPE_NAME(); static std::string QBI_MIMETYPE_NAME(); static std::string DWI_NRRD_MIMETYPE_DESCRIPTION(); static std::string DWI_NIFTI_MIMETYPE_DESCRIPTION(); static std::string DTI_MIMETYPE_DESCRIPTION(); static std::string QBI_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(); - private: // purposely not implemented - DiffusionIOMimeTypes(); - DiffusionIOMimeTypes(const DiffusionIOMimeTypes&); + DiffusionCoreIOMimeTypes(); + DiffusionCoreIOMimeTypes(const DiffusionCoreIOMimeTypes&); }; } -#endif // MITKDIFFUSIONIOMIMETYPES_H +#endif // MITKDiffusionCoreIOMimeTypes_H diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkDiffusionCoreObjectFactory.cpp b/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionCoreObjectFactory.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionIO/mitkDiffusionCoreObjectFactory.cpp rename to Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionCoreObjectFactory.cpp diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkDiffusionCoreObjectFactory.h b/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionCoreObjectFactory.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionIO/mitkDiffusionCoreObjectFactory.h rename to Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionCoreObjectFactory.h diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkDiffusionImageNiftiReaderService.cpp b/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionImageNiftiReaderService.cpp similarity index 98% rename from Modules/DiffusionImaging/DiffusionIO/mitkDiffusionImageNiftiReaderService.cpp rename to Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionImageNiftiReaderService.cpp index d6e4b03c45..d668193a52 100644 --- a/Modules/DiffusionImaging/DiffusionIO/mitkDiffusionImageNiftiReaderService.cpp +++ b/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionImageNiftiReaderService.cpp @@ -1,472 +1,472 @@ /*=================================================================== 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 #include "mitkDiffusionImageNiftiReaderService.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 "mitkDiffusionIOMimeTypes.h" +#include "mitkDiffusionCoreIOMimeTypes.h" #include #include #include #include "mitkIOUtil.h" namespace mitk { DiffusionImageNiftiReaderService:: DiffusionImageNiftiReaderService(const DiffusionImageNiftiReaderService & other) : AbstractFileReader(other) { } DiffusionImageNiftiReaderService* DiffusionImageNiftiReaderService::Clone() const { return new DiffusionImageNiftiReaderService(*this); } DiffusionImageNiftiReaderService:: ~DiffusionImageNiftiReaderService() {} DiffusionImageNiftiReaderService:: DiffusionImageNiftiReaderService() - : mitk::AbstractFileReader( CustomMimeType( mitk::DiffusionIOMimeTypes::DWI_NIFTI_MIMETYPE() ), mitk::DiffusionIOMimeTypes::DWI_NIFTI_MIMETYPE_DESCRIPTION() ) + : mitk::AbstractFileReader( CustomMimeType( mitk::DiffusionCoreIOMimeTypes::DWI_NIFTI_MIMETYPE() ), mitk::DiffusionCoreIOMimeTypes::DWI_NIFTI_MIMETYPE_DESCRIPTION() ) { m_ServiceReg = this->RegisterService(); } std::vector > DiffusionImageNiftiReaderService:: 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() { OutputType::Pointer outputForCache = OutputType::New(); if ( this->GetInputLocation() == "") { 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, NULL ); if ( locale.compare(currLocale)!=0 ) { try { setlocale(LC_ALL, locale.c_str()); } catch(...) { MITK_INFO << "Could not set locale " << locale; } } MITK_INFO << "DiffusionImageNiftiReaderService: 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") { // 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( this->GetInputLocation() ); reader->SetImageIO(io2); reader->Update(); ImageType4D::Pointer img4 = reader->GetOutput(); // 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(); GradientDirectionContainerType::Pointer OriginalDiffusionVectors = GradientDirectionContainerType::New(); MeasurementFrameType MeasurementFrame; float BValue = -1; // Diffusion Image information END if(ext == ".fsl" || ext == ".fslgz" || ext == ".nii" || ext == ".nii.gz") { // some parsing depending on the extension bool useFSLstyle( true ); std::string bvecsExtension(""); std::string bvalsExtension(""); std::string base = itksys::SystemTools::GetFilenamePath( this->GetInputLocation() ) + "/" + this->GetMimeType()->GetFilenameWithoutExtension( this->GetInputLocation() ); // check for possible file names { if( useFSLstyle && itksys::SystemTools::FileExists( std::string( base + ".bvec").c_str() ) && itksys::SystemTools::FileExists( std::string( base + ".bval").c_str() ) ) { useFSLstyle = false; bvecsExtension = ".bvec"; bvalsExtension = ".bval"; } if( useFSLstyle && itksys::SystemTools::FileExists( std::string( base + ".bvecs").c_str() ) && itksys::SystemTools::FileExists( std::string( base + ".bvals").c_str() ) ) { useFSLstyle = false; bvecsExtension = ".bvecs"; bvalsExtension = ".bvals"; } } std::string line; std::vector bvec_entries; std::string fname = this->GetInputLocation(); if( useFSLstyle ) { fname += ".bvecs"; } else { fname = std::string( base + bvecsExtension); } std::ifstream myfile (fname.c_str()); if (myfile.is_open()) { while ( myfile.good() ) { std::string line2; getline (myfile,line2); std::stringstream iss; iss << line2; while(getline(iss,line, ' ')) { // remove any potenial control sequences that might be introduced by lines ending in a single space line.erase(std::remove_if(line.begin(), line.end(), [](char c) { return std::isspace(c) || std::iscntrl(c); } ), line.end()); if (line.length() > 0 ) // otherwise string contained only control characters before, empty string are converted to 0 by atof resulting in a broken b-value list { bvec_entries.push_back(atof(line.c_str())); } } } myfile.close(); } else { MITK_INFO << "Unable to open bvecs file. Expected name: " << fname; } std::vector bval_entries; std::string fname2 = this->GetInputLocation(); if( useFSLstyle ) { fname2 += ".bvals"; } else { fname2 = std::string( base + bvalsExtension); } std::ifstream myfile2 (fname2.c_str()); if (myfile2.is_open()) { while ( myfile2.good() ) { getline (myfile2,line, ' '); // remove any potenial control sequences that might be introduced by lines ending in a single space line.erase(std::remove_if(line.begin(), line.end(), [](char c) { return std::isspace(c) || std::iscntrl(c); } ), line.end()); if (line.length() > 0 ) // otherwise string contained only control characters before, empty string are converted to 0 by atof resulting in a broken b-value list { bval_entries.push_back(atof(line.c_str())); } } myfile2.close(); } else { MITK_INFO << "Unable to open bvals file. Expected name: " << fname2; } BValue = -1; unsigned int numb = bval_entries.size(); for(unsigned int i=0; i vec; vec[0] = bvec_entries.at(i); vec[1] = bvec_entries.at(i+numb); vec[2] = bvec_entries.at(i+2*numb); // Adjust the vector length to encode gradient strength float factor = b_val/BValue; if(vec.magnitude() > 0) { vec[0] = sqrt(factor)*vec[0]; vec[1] = sqrt(factor)*vec[1]; vec[2] = sqrt(factor)*vec[2]; } DiffusionVectors->InsertElement(i,vec); } for(int i=0; i<3; i++) for(int j=0; j<3; j++) MeasurementFrame[i][j] = i==j ? 1 : 0; } outputForCache = mitk::GrabItkImageMemory( itkVectorImage); // create BValueMap mitk::BValueMapProperty::BValueMap BValueMap = mitk::BValueMapProperty::CreateBValueMap(DiffusionVectors,BValue); outputForCache->SetProperty( mitk::DiffusionPropertyHelper::GRADIENTCONTAINERPROPERTYNAME.c_str(), mitk::GradientDirectionsProperty::New( DiffusionVectors ) ); outputForCache->SetProperty( mitk::DiffusionPropertyHelper::ORIGINALGRADIENTCONTAINERPROPERTYNAME.c_str(), mitk::GradientDirectionsProperty::New( OriginalDiffusionVectors ) ); outputForCache->SetProperty( mitk::DiffusionPropertyHelper::MEASUREMENTFRAMEPROPERTYNAME.c_str(), mitk::MeasurementFrameProperty::New( MeasurementFrame ) ); outputForCache->SetProperty( mitk::DiffusionPropertyHelper::BVALUEMAPPROPERTYNAME.c_str(), mitk::BValueMapProperty::New( BValueMap ) ); outputForCache->SetProperty( mitk::DiffusionPropertyHelper::REFERENCEBVALUEPROPERTYNAME.c_str(), mitk::FloatProperty::New( BValue ) ); // 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) { 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/DiffusionIO/mitkDiffusionImageNiftiReaderService.h b/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionImageNiftiReaderService.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionIO/mitkDiffusionImageNiftiReaderService.h rename to Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionImageNiftiReaderService.h diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkDiffusionImageNiftiWriterService.cpp b/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionImageNiftiWriterService.cpp similarity index 98% rename from Modules/DiffusionImaging/DiffusionIO/mitkDiffusionImageNiftiWriterService.cpp rename to Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionImageNiftiWriterService.cpp index 39a69e1d81..29232c65e0 100644 --- a/Modules/DiffusionImaging/DiffusionIO/mitkDiffusionImageNiftiWriterService.cpp +++ b/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionImageNiftiWriterService.cpp @@ -1,441 +1,441 @@ /*=================================================================== 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 #include "mitkDiffusionImageNiftiWriterService.h" #include "itkMetaDataDictionary.h" #include "itkMetaDataObject.h" #include "itkNiftiImageIO.h" #include "itkImageFileWriter.h" #include "itksys/SystemTools.hxx" -#include "mitkDiffusionIOMimeTypes.h" +#include "mitkDiffusionCoreIOMimeTypes.h" #include "mitkImageCast.h" #include #include mitk::DiffusionImageNiftiWriterService::DiffusionImageNiftiWriterService() - : AbstractFileWriter(mitk::Image::GetStaticNameOfClass(), CustomMimeType( mitk::DiffusionIOMimeTypes::DWI_NIFTI_MIMETYPE() ), mitk::DiffusionIOMimeTypes::DWI_NIFTI_MIMETYPE_DESCRIPTION()) + : AbstractFileWriter(mitk::Image::GetStaticNameOfClass(), CustomMimeType( mitk::DiffusionCoreIOMimeTypes::DWI_NIFTI_MIMETYPE() ), mitk::DiffusionCoreIOMimeTypes::DWI_NIFTI_MIMETYPE_DESCRIPTION()) { RegisterService(); } mitk::DiffusionImageNiftiWriterService::DiffusionImageNiftiWriterService(const mitk::DiffusionImageNiftiWriterService& other) : AbstractFileWriter(other) { } mitk::DiffusionImageNiftiWriterService::~DiffusionImageNiftiWriterService() {} void mitk::DiffusionImageNiftiWriterService::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 NULL!"; return; } if ( this->GetOutputLocation().empty() ) { MITK_ERROR << "Sorry, filename has not been set!"; return ; } const std::string& locale = "C"; const std::string& currLocale = setlocale( LC_ALL, NULL ); if ( locale.compare(currLocale)!=0 ) { try { setlocale(LC_ALL, locale.c_str()); } catch(...) { MITK_INFO << "Could not set locale " << locale; } } 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 if( ext == "") { ext = ".nii"; this->SetOutputLocation(this->GetOutputLocation() + ext); } if (ext == ".fsl" || ext == ".fslgz") { MITK_INFO << "Writing Nifti-Image for FSL"; 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]); } } // create copy of file with correct ending for mitk std::string fname3 = this->GetOutputLocation(); std::string::iterator itend = fname3.end(); if (ext == ".fsl") fname3.replace( itend-3, itend, "nii"); else fname3.replace( itend-5, itend, "nii.gz"); itk::NiftiImageIO::Pointer io4 = itk::NiftiImageIO::New(); typedef itk::ImageFileWriter WriterType4; WriterType4::Pointer nrrdWriter4 = WriterType4::New(); nrrdWriter4->UseInputMetaDataDictionaryOn(); nrrdWriter4->SetInput( img4 ); nrrdWriter4->SetFileName(fname3); nrrdWriter4->UseCompressionOn(); nrrdWriter4->SetImageIO(io4); try { nrrdWriter4->Update(); } catch (itk::ExceptionObject e) { std::cout << e << std::endl; throw; } itksys::SystemTools::CopyAFile(fname3.c_str(), this->GetOutputLocation().c_str()); if(mitk::DiffusionPropertyHelper::GetGradientContainer(input)->Size()) { std::ofstream myfile; std::string fname = this->GetOutputLocation(); fname += ".bvals"; myfile.open (fname.c_str()); for(unsigned int i=0; iSize(); i++) { double twonorm = mitk::DiffusionPropertyHelper::GetGradientContainer(input)->ElementAt(i).two_norm(); myfile << mitk::DiffusionPropertyHelper::GetReferenceBValue(input)*twonorm*twonorm << " "; } myfile.close(); std::ofstream myfile2; std::string fname2 = this->GetOutputLocation(); fname2 += ".bvecs"; myfile2.open (fname2.c_str()); for(int j=0; j<3; j++) { for(unsigned int i=0; iSize(); i++) { //need to modify the length GradientDirectionContainerType::Pointer grads = mitk::DiffusionPropertyHelper::GetGradientContainer(input); GradientDirectionType direction = grads->ElementAt(i); direction.normalize(); myfile2 << direction.get(j) << " "; //myfile2 << input->GetDirections()->ElementAt(i).get(j) << " "; } myfile2 << std::endl; } std::ofstream myfile3; std::string fname4 = this->GetOutputLocation(); fname4 += ".ttk"; myfile3.open (fname4.c_str()); for(unsigned int i=0; iSize(); i++) { for(int j=0; j<3; j++) { myfile3 << mitk::DiffusionPropertyHelper::GetGradientContainer(input)->ElementAt(i).get(j) << " "; } myfile3 << std::endl; } } } else 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 (itk::ExceptionObject e) { std::cout << e << std::endl; throw; } if(mitk::DiffusionPropertyHelper::GetGradientContainer(input)->Size()) { std::ofstream myfile; std::string fname = itksys::SystemTools::GetFilenamePath( this->GetOutputLocation() ) + "/" + this->GetMimeType()->GetFilenameWithoutExtension( this->GetOutputLocation() ); fname += ".bvals"; myfile.open (fname.c_str()); for(unsigned int i=0; iSize(); i++) { double twonorm = mitk::DiffusionPropertyHelper::GetGradientContainer(input)->ElementAt(i).two_norm(); myfile << mitk::DiffusionPropertyHelper::GetReferenceBValue(input)*twonorm*twonorm << " "; } myfile.close(); std::ofstream myfile2; std::string fname2 = itksys::SystemTools::GetFilenamePath( this->GetOutputLocation() ) + "/" + this->GetMimeType()->GetFilenameWithoutExtension( this->GetOutputLocation() ); fname2 += ".bvecs"; myfile2.open (fname2.c_str()); for(int j=0; j<3; j++) { for(unsigned int i=0; iSize(); i++) { //need to modify the length GradientDirectionContainerType::Pointer grads = mitk::DiffusionPropertyHelper::GetGradientContainer(input); GradientDirectionType direction = grads->ElementAt(i); direction.normalize(); myfile2 << direction.get(j) << " "; //myfile2 << input->GetDirections()->ElementAt(i).get(j) << " "; } myfile2 << std::endl; } std::ofstream myfile3; std::string fname4 = itksys::SystemTools::GetFilenamePath( this->GetOutputLocation() ) + "/" + this->GetMimeType()->GetFilenameWithoutExtension( this->GetOutputLocation() ); fname4 += ".ttk"; myfile3.open (fname4.c_str()); for(unsigned int i=0; iSize(); i++) { for(int j=0; j<3; j++) { myfile3 << mitk::DiffusionPropertyHelper::GetGradientContainer(input)->ElementAt(i).get(j) << " "; } myfile3 << std::endl; } } } try { setlocale(LC_ALL, currLocale.c_str()); } catch(...) { MITK_INFO << "Could not reset locale " << currLocale; } } mitk::DiffusionImageNiftiWriterService* mitk::DiffusionImageNiftiWriterService::Clone() const { return new DiffusionImageNiftiWriterService(*this); } mitk::IFileWriter::ConfidenceLevel mitk::DiffusionImageNiftiWriterService::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 diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkDiffusionImageNiftiWriterService.h b/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionImageNiftiWriterService.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionIO/mitkDiffusionImageNiftiWriterService.h rename to Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionImageNiftiWriterService.h diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkDiffusionImageNrrdReaderService.cpp b/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionImageNrrdReaderService.cpp similarity index 97% rename from Modules/DiffusionImaging/DiffusionIO/mitkDiffusionImageNrrdReaderService.cpp rename to Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionImageNrrdReaderService.cpp index f20e032301..dcad3ee363 100644 --- a/Modules/DiffusionImaging/DiffusionIO/mitkDiffusionImageNrrdReaderService.cpp +++ b/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionImageNrrdReaderService.cpp @@ -1,268 +1,268 @@ /*=================================================================== 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 #include "mitkDiffusionImageNrrdReaderService.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 "mitkDiffusionIOMimeTypes.h" +#include "mitkDiffusionCoreIOMimeTypes.h" #include #include #include #include "mitkIOUtil.h" namespace mitk { DiffusionImageNrrdReaderService:: DiffusionImageNrrdReaderService(const DiffusionImageNrrdReaderService & other) : AbstractFileReader(other) { } DiffusionImageNrrdReaderService* DiffusionImageNrrdReaderService::Clone() const { return new DiffusionImageNrrdReaderService(*this); } DiffusionImageNrrdReaderService:: ~DiffusionImageNrrdReaderService() {} DiffusionImageNrrdReaderService:: DiffusionImageNrrdReaderService() - : mitk::AbstractFileReader( CustomMimeType( mitk::DiffusionIOMimeTypes::DWI_NRRD_MIMETYPE() ), mitk::DiffusionIOMimeTypes::DWI_NRRD_MIMETYPE_DESCRIPTION() ) + : mitk::AbstractFileReader( CustomMimeType( mitk::DiffusionCoreIOMimeTypes::DWI_NRRD_MIMETYPE() ), mitk::DiffusionCoreIOMimeTypes::DWI_NRRD_MIMETYPE_DESCRIPTION() ) { m_ServiceReg = this->RegisterService(); } std::vector > DiffusionImageNrrdReaderService:: 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() { OutputType::Pointer outputForCache = OutputType::New(); if ( this->GetInputLocation() == "") { 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, NULL ); if ( locale.compare(currLocale)!=0 ) { try { setlocale(LC_ALL, locale.c_str()); } catch(...) { MITK_INFO << "Could not set locale " << locale; } } MITK_INFO << "DiffusionImageNrrdReaderService: 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); outputForCache->SetProperty( mitk::DiffusionPropertyHelper::GRADIENTCONTAINERPROPERTYNAME.c_str(), mitk::GradientDirectionsProperty::New( DiffusionVectors ) ); outputForCache->SetProperty( mitk::DiffusionPropertyHelper::ORIGINALGRADIENTCONTAINERPROPERTYNAME.c_str(), mitk::GradientDirectionsProperty::New( OriginalDiffusionVectors ) ); outputForCache->SetProperty( mitk::DiffusionPropertyHelper::MEASUREMENTFRAMEPROPERTYNAME.c_str(), mitk::MeasurementFrameProperty::New( MeasurementFrame ) ); outputForCache->SetProperty( mitk::DiffusionPropertyHelper::BVALUEMAPPROPERTYNAME.c_str(), mitk::BValueMapProperty::New( BValueMap ) ); outputForCache->SetProperty( mitk::DiffusionPropertyHelper::REFERENCEBVALUEPROPERTYNAME.c_str(), mitk::FloatProperty::New( BValue ) ); // 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) { 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/DiffusionIO/mitkDiffusionImageNrrdReaderService.h b/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionImageNrrdReaderService.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionIO/mitkDiffusionImageNrrdReaderService.h rename to Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionImageNrrdReaderService.h diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkDiffusionImageNrrdWriterService.cpp b/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionImageNrrdWriterService.cpp similarity index 97% rename from Modules/DiffusionImaging/DiffusionIO/mitkDiffusionImageNrrdWriterService.cpp rename to Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionImageNrrdWriterService.cpp index 556ade866b..a06ea92fbc 100644 --- a/Modules/DiffusionImaging/DiffusionIO/mitkDiffusionImageNrrdWriterService.cpp +++ b/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionImageNrrdWriterService.cpp @@ -1,185 +1,185 @@ /*=================================================================== 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 #include "mitkDiffusionImageNrrdWriterService.h" #include "itkMetaDataDictionary.h" #include "itkMetaDataObject.h" #include "itkNrrdImageIO.h" #include "itkImageFileWriter.h" #include "itksys/SystemTools.hxx" -#include "mitkDiffusionIOMimeTypes.h" +#include "mitkDiffusionCoreIOMimeTypes.h" #include "mitkImageCast.h" #include #include mitk::DiffusionImageNrrdWriterService::DiffusionImageNrrdWriterService() - : AbstractFileWriter(mitk::Image::GetStaticNameOfClass(), CustomMimeType( mitk::DiffusionIOMimeTypes::DWI_NRRD_MIMETYPE() ), mitk::DiffusionIOMimeTypes::DWI_NRRD_MIMETYPE_DESCRIPTION()) + : AbstractFileWriter(mitk::Image::GetStaticNameOfClass(), CustomMimeType( mitk::DiffusionCoreIOMimeTypes::DWI_NRRD_MIMETYPE() ), mitk::DiffusionCoreIOMimeTypes::DWI_NRRD_MIMETYPE_DESCRIPTION()) { RegisterService(); } mitk::DiffusionImageNrrdWriterService::DiffusionImageNrrdWriterService(const mitk::DiffusionImageNrrdWriterService& other) : AbstractFileWriter(other) { } mitk::DiffusionImageNrrdWriterService::~DiffusionImageNrrdWriterService() {} void mitk::DiffusionImageNrrdWriterService::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 NULL!"; return; } if ( this->GetOutputLocation().empty() ) { MITK_ERROR << "Sorry, filename has not been set!"; return ; } const std::string& locale = "C"; const std::string& currLocale = setlocale( LC_ALL, NULL ); if ( locale.compare(currLocale)!=0 ) { try { setlocale(LC_ALL, locale.c_str()); } catch(...) { MITK_INFO << "Could not set locale " << locale; } } 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 .dwi if( ext == "") { ext = ".nrrd"; this->SetOutputLocation(this->GetOutputLocation() + ext); } if (ext == ".hdwi" || ext == ".nrrd" || ext == ".dwi") { MITK_INFO << "Extension " << ext; itk::NrrdImageIO::Pointer io = itk::NrrdImageIO::New(); //io->SetNrrdVectorType( nrrdKindList ); 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 (itk::ExceptionObject e) { std::cout << e << std::endl; throw; } } try { setlocale(LC_ALL, currLocale.c_str()); } catch(...) { MITK_INFO << "Could not reset locale " << currLocale; } } mitk::DiffusionImageNrrdWriterService* mitk::DiffusionImageNrrdWriterService::Clone() const { return new DiffusionImageNrrdWriterService(*this); } mitk::IFileWriter::ConfidenceLevel mitk::DiffusionImageNrrdWriterService::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 diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkDiffusionImageNrrdWriterService.h b/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionImageNrrdWriterService.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionIO/mitkDiffusionImageNrrdWriterService.h rename to Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkDiffusionImageNrrdWriterService.h diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkNrrdQBallImageReader.cpp b/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkNrrdQBallImageReader.cpp similarity index 95% rename from Modules/DiffusionImaging/DiffusionIO/mitkNrrdQBallImageReader.cpp rename to Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkNrrdQBallImageReader.cpp index b53dd5b608..3de37be324 100644 --- a/Modules/DiffusionImaging/DiffusionIO/mitkNrrdQBallImageReader.cpp +++ b/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkNrrdQBallImageReader.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 "mitkNrrdQBallImageReader.h" #include -#include "mitkDiffusionIOMimeTypes.h" +#include "mitkDiffusionCoreIOMimeTypes.h" #include "itkImageFileReader.h" #include "itkImageRegionIterator.h" #include "itkMetaDataObject.h" #include "itkNrrdImageIO.h" #include "mitkITKImageImport.h" #include "mitkImageDataItem.h" namespace mitk { NrrdQBallImageReader::NrrdQBallImageReader(const NrrdQBallImageReader& other) : mitk::AbstractFileReader(other) { } NrrdQBallImageReader::NrrdQBallImageReader() - : mitk::AbstractFileReader( CustomMimeType( mitk::DiffusionIOMimeTypes::QBI_MIMETYPE() ), mitk::DiffusionIOMimeTypes::QBI_MIMETYPE_DESCRIPTION() ) + : mitk::AbstractFileReader( CustomMimeType( mitk::DiffusionCoreIOMimeTypes::QBI_MIMETYPE() ), mitk::DiffusionCoreIOMimeTypes::QBI_MIMETYPE_DESCRIPTION() ) { m_ServiceReg = this->RegisterService(); } NrrdQBallImageReader::~NrrdQBallImageReader() { } std::vector > NrrdQBallImageReader::Read() { std::vector > result; std::string location = GetInputLocation(); if ( location == "") { throw itk::ImageFileReaderException(__FILE__, __LINE__, "Sorry, the filename of the vessel tree to be read is empty!"); } else { try { const std::string& locale = "C"; const std::string& currLocale = setlocale( LC_ALL, NULL ); if ( locale.compare(currLocale)!=0 ) { try { setlocale(LC_ALL, locale.c_str()); } catch(...) { MITK_INFO << "Could not set locale " << locale; } } 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() ); try { setlocale(LC_ALL, currLocale.c_str()); } catch(...) { MITK_INFO << "Could not reset locale " << currLocale; } } 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::NrrdQBallImageReader* mitk::NrrdQBallImageReader::Clone() const { return new NrrdQBallImageReader(*this); } diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkNrrdQBallImageReader.h b/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkNrrdQBallImageReader.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionIO/mitkNrrdQBallImageReader.h rename to Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkNrrdQBallImageReader.h diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkNrrdQBallImageWriter.cpp b/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkNrrdQBallImageWriter.cpp similarity index 95% rename from Modules/DiffusionImaging/DiffusionIO/mitkNrrdQBallImageWriter.cpp rename to Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkNrrdQBallImageWriter.cpp index 9753499e85..09cbee95d6 100644 --- a/Modules/DiffusionImaging/DiffusionIO/mitkNrrdQBallImageWriter.cpp +++ b/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkNrrdQBallImageWriter.cpp @@ -1,149 +1,149 @@ /*=================================================================== 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 "mitkNrrdQBallImageWriter.h" #include "itkMetaDataDictionary.h" #include "itkMetaDataObject.h" #include "itkNrrdImageIO.h" #include "itkImageFileWriter.h" #include "mitkImageCast.h" #include "mitkIOMimeTypes.h" -#include "mitkDiffusionIOMimeTypes.h" +#include "mitkDiffusionCoreIOMimeTypes.h" mitk::NrrdQBallImageWriter::NrrdQBallImageWriter() - : AbstractFileWriter(mitk::QBallImage::GetStaticNameOfClass(), CustomMimeType( mitk::DiffusionIOMimeTypes::QBI_MIMETYPE() ), mitk::DiffusionIOMimeTypes::QBI_MIMETYPE_DESCRIPTION()) + : AbstractFileWriter(mitk::QBallImage::GetStaticNameOfClass(), CustomMimeType( mitk::DiffusionCoreIOMimeTypes::QBI_MIMETYPE() ), mitk::DiffusionCoreIOMimeTypes::QBI_MIMETYPE_DESCRIPTION()) { RegisterService(); } mitk::NrrdQBallImageWriter::NrrdQBallImageWriter(const mitk::NrrdQBallImageWriter& other) : AbstractFileWriter(other) { } mitk::NrrdQBallImageWriter::~NrrdQBallImageWriter() {} void mitk::NrrdQBallImageWriter::Write() { InputType::ConstPointer input = dynamic_cast(this->GetInput()); if (input.IsNull()) { MITK_ERROR <<"Sorry, input to NrrdQBallImageWriter is NULL!"; return; } if ( this->GetOutputLocation().empty() ) { MITK_ERROR << "Sorry, filename has not been set!"; return ; } const std::string& locale = "C"; const std::string& currLocale = setlocale( LC_ALL, NULL ); if ( locale.compare(currLocale)!=0 ) { try { setlocale(LC_ALL, locale.c_str()); } catch(...) { MITK_INFO << "Could not set locale " << locale; } } 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(QBALL_ODFSIZE); 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(), QBALL_ODFSIZE); ot.Set(varVec); ++ot; } nrrdWriter->SetInput( vecImg ); nrrdWriter->SetImageIO(io); nrrdWriter->SetFileName(this->GetOutputLocation().c_str()); nrrdWriter->UseCompressionOn(); try { nrrdWriter->Update(); } catch (itk::ExceptionObject e) { std::cout << e << std::endl; } try { setlocale(LC_ALL, currLocale.c_str()); } catch(...) { MITK_INFO << "Could not reset locale " << currLocale; } } mitk::NrrdQBallImageWriter* mitk::NrrdQBallImageWriter::Clone() const { return new NrrdQBallImageWriter(*this); } mitk::IFileWriter::ConfidenceLevel mitk::NrrdQBallImageWriter::GetConfidenceLevel() const { InputType::ConstPointer input = dynamic_cast(this->GetInput()); if (input.IsNull() ) { return Unsupported; } else { return Supported; } } diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkNrrdQBallImageWriter.h b/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkNrrdQBallImageWriter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionIO/mitkNrrdQBallImageWriter.h rename to Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkNrrdQBallImageWriter.h diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkNrrdTensorImageReader.cpp b/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkNrrdTensorImageReader.cpp similarity index 98% rename from Modules/DiffusionImaging/DiffusionIO/mitkNrrdTensorImageReader.cpp rename to Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkNrrdTensorImageReader.cpp index 81debc15d9..611350278e 100644 --- a/Modules/DiffusionImaging/DiffusionIO/mitkNrrdTensorImageReader.cpp +++ b/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkNrrdTensorImageReader.cpp @@ -1,441 +1,441 @@ /*=================================================================== 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 "mitkDiffusionIOMimeTypes.h" +#include "mitkDiffusionCoreIOMimeTypes.h" #include "itkImageFileReader.h" #include "itkImageRegionIterator.h" #include "itkMetaDataObject.h" #include "itkNrrdImageIO.h" #include #include "mitkITKImageImport.h" #include "mitkImageDataItem.h" namespace mitk { NrrdTensorImageReader::NrrdTensorImageReader(const NrrdTensorImageReader& other) : mitk::AbstractFileReader(other) { } NrrdTensorImageReader::NrrdTensorImageReader() - : mitk::AbstractFileReader( CustomMimeType( mitk::DiffusionIOMimeTypes::DTI_MIMETYPE() ), mitk::DiffusionIOMimeTypes::DTI_MIMETYPE_DESCRIPTION() ) + : mitk::AbstractFileReader( CustomMimeType( mitk::DiffusionCoreIOMimeTypes::DTI_MIMETYPE() ), mitk::DiffusionCoreIOMimeTypes::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 { const std::string& locale = "C"; const std::string& currLocale = setlocale( LC_ALL, NULL ); if ( locale.compare(currLocale)!=0 ) { try { setlocale(LC_ALL, locale.c_str()); } catch(...) { MITK_INFO << "Could not set locale " << locale; } } try { std::string fname3 = "temp_dti.nii"; 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(); 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->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 VecImgType::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()); itk::DiffusionTensor3D 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(); itk::DiffusionTensor3D 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()) { itk::DiffusionTensor3D 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(); 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->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 VecImgType::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) { itk::DiffusionTensor3D 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(); itk::DiffusionTensor3D 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()) { itk::DiffusionTensor3D 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() ); } try { setlocale(LC_ALL, currLocale.c_str()); } catch(...) { MITK_INFO << "Could not reset locale " << currLocale; } } 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; } itk::DiffusionTensor3D NrrdTensorImageReader ::ConvertMatrixTypeToFixedArrayType(const itk::DiffusionTensor3D::Superclass::MatrixType & matrix) { /* | 0 1 2 | * | X 3 4 | * | X X 5 | */ itk::DiffusionTensor3D 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/DiffusionIO/mitkNrrdTensorImageReader.h b/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkNrrdTensorImageReader.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionIO/mitkNrrdTensorImageReader.h rename to Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkNrrdTensorImageReader.h diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkNrrdTensorImageWriter.cpp b/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkNrrdTensorImageWriter.cpp similarity index 94% rename from Modules/DiffusionImaging/DiffusionIO/mitkNrrdTensorImageWriter.cpp rename to Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkNrrdTensorImageWriter.cpp index ae52ef1aab..c81aeef1be 100644 --- a/Modules/DiffusionImaging/DiffusionIO/mitkNrrdTensorImageWriter.cpp +++ b/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkNrrdTensorImageWriter.cpp @@ -1,122 +1,122 @@ /*=================================================================== 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 "mitkDiffusionIOMimeTypes.h" +#include "mitkDiffusionCoreIOMimeTypes.h" mitk::NrrdTensorImageWriter::NrrdTensorImageWriter() - : AbstractFileWriter(mitk::TensorImage::GetStaticNameOfClass(), CustomMimeType( mitk::DiffusionIOMimeTypes::DTI_MIMETYPE() ), mitk::DiffusionIOMimeTypes::DTI_MIMETYPE_DESCRIPTION() ) + : AbstractFileWriter(mitk::TensorImage::GetStaticNameOfClass(), CustomMimeType( mitk::DiffusionCoreIOMimeTypes::DTI_MIMETYPE() ), mitk::DiffusionCoreIOMimeTypes::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 NULL!"; return; } if ( this->GetOutputLocation().empty() ) { MITK_ERROR << "Sorry, filename has not been set!" ; return ; } const std::string& locale = "C"; const std::string& currLocale = setlocale( LC_ALL, NULL ); if ( locale.compare(currLocale)!=0 ) { try { setlocale(LC_ALL, locale.c_str()); } catch(...) { MITK_INFO << "Could not set locale " << locale; } } itk::NrrdImageIO::Pointer io = itk::NrrdImageIO::New(); io->SetFileType( itk::ImageIOBase::Binary ); io->UseCompressionOn(); typedef itk::Image,3> ImageType; typedef itk::ImageFileWriter WriterType; WriterType::Pointer nrrdWriter = WriterType::New(); ImageType::Pointer outimage = ImageType::New(); CastToItkImage(input, outimage); nrrdWriter->SetInput( outimage ); nrrdWriter->SetImageIO(io); nrrdWriter->SetFileName(this->GetOutputLocation().c_str()); nrrdWriter->UseCompressionOn(); try { nrrdWriter->Update(); } catch (itk::ExceptionObject e) { std::cout << e << std::endl; } try { setlocale(LC_ALL, currLocale.c_str()); } catch(...) { MITK_INFO << "Could not reset locale " << currLocale; } } 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/DiffusionIO/mitkNrrdTensorImageWriter.h b/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkNrrdTensorImageWriter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionIO/mitkNrrdTensorImageWriter.h rename to Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkNrrdTensorImageWriter.h diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkQBallImageSerializer.cpp b/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkQBallImageSerializer.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionIO/mitkQBallImageSerializer.cpp rename to Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkQBallImageSerializer.cpp diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkQBallImageSerializer.h b/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkQBallImageSerializer.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionIO/mitkQBallImageSerializer.h rename to Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkQBallImageSerializer.h diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkTensorImageSerializer.cpp b/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkTensorImageSerializer.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionIO/mitkTensorImageSerializer.cpp rename to Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkTensorImageSerializer.cpp diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkTensorImageSerializer.h b/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkTensorImageSerializer.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionIO/mitkTensorImageSerializer.h rename to Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkTensorImageSerializer.h diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkTensorImageSource.cpp b/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkTensorImageSource.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionIO/mitkTensorImageSource.cpp rename to Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkTensorImageSource.cpp diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkTensorImageSource.h b/Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkTensorImageSource.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionIO/mitkTensorImageSource.h rename to Modules/DiffusionImaging/DiffusionCore/autoload/IO/mitkTensorImageSource.h diff --git a/Modules/DiffusionImaging/MiniApps/CMakeLists.txt b/Modules/DiffusionImaging/DiffusionCore/cmdapps/CMakeLists.txt old mode 100755 new mode 100644 similarity index 57% copy from Modules/DiffusionImaging/MiniApps/CMakeLists.txt copy to Modules/DiffusionImaging/DiffusionCore/cmdapps/CMakeLists.txt index a2da041760..ebacfe8cfe --- a/Modules/DiffusionImaging/MiniApps/CMakeLists.txt +++ b/Modules/DiffusionImaging/DiffusionCore/cmdapps/CMakeLists.txt @@ -1,69 +1,43 @@ option(BUILD_DiffusionMiniApps "Build commandline tools for diffusion" OFF) if(BUILD_DiffusionMiniApps OR MITK_BUILD_ALL_APPS) # needed include directories include_directories( ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ) # list of diffusion miniapps # if an app requires additional dependencies # they are added after a "^^" and separated by "_" set( diffusionminiapps DwiDenoising^^ ImageResampler^^ - NetworkCreation^^MitkFiberTracking_MitkConnectomics - NetworkStatistics^^MitkConnectomics ExportShImage^^ - Fiberfox^^MitkFiberTracking - MultishellMethods^^MitkFiberTracking - PeaksAngularError^^MitkFiberTracking - PeakExtraction^^MitkFiberTracking - FiberExtraction^^MitkFiberTracking - FiberProcessing^^MitkFiberTracking - FiberDirectionExtraction^^MitkFiberTracking - LocalDirectionalFiberPlausibility^^MitkFiberTracking - StreamlineTracking^^MitkFiberTracking - GibbsTracking^^MitkFiberTracking CopyGeometry^^ DiffusionIndices^^ - TractometerMetrics^^MitkFiberTracking QballReconstruction^^ Registration^^ - FileFormatConverter^^MitkFiberTracking TensorReconstruction^^ TensorDerivedMapsExtraction^^ DiffusionDICOMLoader^^ - DFTraining^^MitkFiberTracking - DFTracking^^MitkFiberTracking ) foreach(diffusionminiapp ${diffusionminiapps}) # extract mini app name and dependencies string(REPLACE "^^" "\\;" miniapp_info ${diffusionminiapp}) set(miniapp_info_list ${miniapp_info}) list(GET miniapp_info_list 0 appname) list(GET miniapp_info_list 1 raw_dependencies) string(REPLACE "_" "\\;" dependencies "${raw_dependencies}") set(dependencies_list ${dependencies}) mitkFunctionCreateCommandLineApp( NAME ${appname} DEPENDS MitkCore MitkDiffusionCore ${dependencies_list} PACKAGE_DEPENDS ITK ) endforeach() - # This mini app does not depend on mitkDiffusionImaging at all - mitkFunctionCreateCommandLineApp( - NAME Dicom2Nrrd - DEPENDS MitkCore ${dependencies_list} - ) - - if(EXECUTABLE_IS_ENABLED) - MITK_INSTALL_TARGETS(EXECUTABLES ${EXECUTABLE_TARGET}) - endif() - endif() diff --git a/Modules/DiffusionImaging/MiniApps/CopyGeometry.cpp b/Modules/DiffusionImaging/DiffusionCore/cmdapps/CopyGeometry.cpp old mode 100755 new mode 100644 similarity index 100% rename from Modules/DiffusionImaging/MiniApps/CopyGeometry.cpp rename to Modules/DiffusionImaging/DiffusionCore/cmdapps/CopyGeometry.cpp diff --git a/Modules/DiffusionImaging/MiniApps/DICOMLoader.cmake b/Modules/DiffusionImaging/DiffusionCore/cmdapps/DICOMLoader.cmake similarity index 100% rename from Modules/DiffusionImaging/MiniApps/DICOMLoader.cmake rename to Modules/DiffusionImaging/DiffusionCore/cmdapps/DICOMLoader.cmake diff --git a/Modules/DiffusionImaging/MiniApps/DiffusionDICOMLoader.cpp b/Modules/DiffusionImaging/DiffusionCore/cmdapps/DiffusionDICOMLoader.cpp similarity index 100% rename from Modules/DiffusionImaging/MiniApps/DiffusionDICOMLoader.cpp rename to Modules/DiffusionImaging/DiffusionCore/cmdapps/DiffusionDICOMLoader.cpp diff --git a/Modules/DiffusionImaging/MiniApps/DiffusionIndices.cpp b/Modules/DiffusionImaging/DiffusionCore/cmdapps/DiffusionIndices.cpp similarity index 100% rename from Modules/DiffusionImaging/MiniApps/DiffusionIndices.cpp rename to Modules/DiffusionImaging/DiffusionCore/cmdapps/DiffusionIndices.cpp diff --git a/Modules/DiffusionImaging/MiniApps/DwiDenoising.cpp b/Modules/DiffusionImaging/DiffusionCore/cmdapps/DwiDenoising.cpp similarity index 100% rename from Modules/DiffusionImaging/MiniApps/DwiDenoising.cpp rename to Modules/DiffusionImaging/DiffusionCore/cmdapps/DwiDenoising.cpp diff --git a/Modules/DiffusionImaging/MiniApps/ExportShImage.cpp b/Modules/DiffusionImaging/DiffusionCore/cmdapps/ExportShImage.cpp old mode 100755 new mode 100644 similarity index 100% rename from Modules/DiffusionImaging/MiniApps/ExportShImage.cpp rename to Modules/DiffusionImaging/DiffusionCore/cmdapps/ExportShImage.cpp diff --git a/Modules/DiffusionImaging/MiniApps/ImageResampler.cpp b/Modules/DiffusionImaging/DiffusionCore/cmdapps/ImageResampler.cpp similarity index 100% rename from Modules/DiffusionImaging/MiniApps/ImageResampler.cpp rename to Modules/DiffusionImaging/DiffusionCore/cmdapps/ImageResampler.cpp diff --git a/Modules/DiffusionImaging/MiniApps/QballReconstruction.cpp b/Modules/DiffusionImaging/DiffusionCore/cmdapps/QballReconstruction.cpp similarity index 100% rename from Modules/DiffusionImaging/MiniApps/QballReconstruction.cpp rename to Modules/DiffusionImaging/DiffusionCore/cmdapps/QballReconstruction.cpp diff --git a/Modules/DiffusionImaging/MiniApps/Registration.cpp b/Modules/DiffusionImaging/DiffusionCore/cmdapps/Registration.cpp similarity index 100% rename from Modules/DiffusionImaging/MiniApps/Registration.cpp rename to Modules/DiffusionImaging/DiffusionCore/cmdapps/Registration.cpp diff --git a/Modules/DiffusionImaging/MiniApps/TensorDerivedMapsExtraction.cpp b/Modules/DiffusionImaging/DiffusionCore/cmdapps/TensorDerivedMapsExtraction.cpp similarity index 100% rename from Modules/DiffusionImaging/MiniApps/TensorDerivedMapsExtraction.cpp rename to Modules/DiffusionImaging/DiffusionCore/cmdapps/TensorDerivedMapsExtraction.cpp diff --git a/Modules/DiffusionImaging/MiniApps/TensorReconstruction.cpp b/Modules/DiffusionImaging/DiffusionCore/cmdapps/TensorReconstruction.cpp similarity index 100% rename from Modules/DiffusionImaging/MiniApps/TensorReconstruction.cpp rename to Modules/DiffusionImaging/DiffusionCore/cmdapps/TensorReconstruction.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/files.cmake b/Modules/DiffusionImaging/DiffusionCore/files.cmake index 5eff82cd61..03dc6dd50c 100644 --- a/Modules/DiffusionImaging/DiffusionCore/files.cmake +++ b/Modules/DiffusionImaging/DiffusionCore/files.cmake @@ -1,152 +1,151 @@ set(CPP_FILES # DicomImport - DicomImport/mitkDicomDiffusionImageReader.cpp # 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 -> QBall IODataStructures/QBallImages/mitkQBallImageSource.cpp IODataStructures/QBallImages/mitkQBallImage.cpp # DataStructures -> Tensor IODataStructures/TensorImages/mitkTensorImage.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 - mitkDiffusionFunctionCollection.h + include/mitkDiffusionFunctionCollection.h # Rendering - Rendering/mitkOdfVtkMapper2D.h + include/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 + 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 # 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 + 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 - IODataStructures/Properties/mitkBValueMapProperty.h - IODataStructures/Properties/mitkGradientDirectionsProperty.h - IODataStructures/Properties/mitkMeasurementFrameProperty.h - IODataStructures/Properties/mitkDiffusionPropertyHelper.h + include/IODataStructures/Properties/mitkBValueMapProperty.h + include/IODataStructures/Properties/mitkGradientDirectionsProperty.h + include/IODataStructures/Properties/mitkMeasurementFrameProperty.h + include/IODataStructures/Properties/mitkDiffusionPropertyHelper.h - IODataStructures/DiffusionWeightedImages/mitkDiffusionImageTransformedCreationFilter.h + include/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageTransformedCreationFilter.h # Algorithms - Algorithms/itkDiffusionQballGeneralizedFaImageFilter.h - Algorithms/itkDiffusionQballPrepareVisualizationImageFilter.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/itkProjectionFilter.h - Algorithms/itkResidualImageFilter.h - Algorithms/itkExtractChannelFromRgbaImageFilter.h - Algorithms/itkTensorReconstructionWithEigenvalueCorrectionFilter.h - Algorithms/itkMergeDiffusionImagesFilter.h - Algorithms/itkDwiPhantomGenerationFilter.h - Algorithms/itkFiniteDiffOdfMaximaExtractionFilter.h - Algorithms/itkMrtrixPeakImageConverter.h - Algorithms/itkFslPeakImageConverter.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/Registration/mitkDWIHeadMotionCorrectionFilter.h - Algorithms/itkNonLocalMeansDenoisingFilter.h - Algorithms/itkVectorImageToImageFilter.h + include/Algorithms/itkDiffusionQballGeneralizedFaImageFilter.h + include/Algorithms/itkDiffusionQballPrepareVisualizationImageFilter.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/itkDwiPhantomGenerationFilter.h + include/Algorithms/itkFiniteDiffOdfMaximaExtractionFilter.h + include/Algorithms/itkMrtrixPeakImageConverter.h + include/Algorithms/itkFslPeakImageConverter.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/Registration/mitkDWIHeadMotionCorrectionFilter.h + include/Algorithms/itkNonLocalMeansDenoisingFilter.h + include/Algorithms/itkVectorImageToImageFilter.h ) set( TOOL_FILES ) diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/Reconstruction/MultishellProcessing/itkADCAverageFunctor.h b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/MultishellProcessing/itkADCAverageFunctor.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/Reconstruction/MultishellProcessing/itkADCAverageFunctor.h rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/MultishellProcessing/itkADCAverageFunctor.h diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/Reconstruction/MultishellProcessing/itkADCFitFunctor.h b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/MultishellProcessing/itkADCFitFunctor.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/Reconstruction/MultishellProcessing/itkADCFitFunctor.h rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/MultishellProcessing/itkADCFitFunctor.h diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/Reconstruction/MultishellProcessing/itkBiExpFitFunctor.h b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/MultishellProcessing/itkBiExpFitFunctor.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/Reconstruction/MultishellProcessing/itkBiExpFitFunctor.h rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/MultishellProcessing/itkBiExpFitFunctor.h diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/Reconstruction/MultishellProcessing/itkDWIVoxelFunctor.h b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/MultishellProcessing/itkDWIVoxelFunctor.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/Reconstruction/MultishellProcessing/itkDWIVoxelFunctor.h rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/MultishellProcessing/itkDWIVoxelFunctor.h diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/Reconstruction/MultishellProcessing/itkKurtosisFitFunctor.h b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/MultishellProcessing/itkKurtosisFitFunctor.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/Reconstruction/MultishellProcessing/itkKurtosisFitFunctor.h rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/MultishellProcessing/itkKurtosisFitFunctor.h diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/Reconstruction/MultishellProcessing/itkRadialMultishellToSingleshellImageFilter.cpp b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/MultishellProcessing/itkRadialMultishellToSingleshellImageFilter.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/Reconstruction/MultishellProcessing/itkRadialMultishellToSingleshellImageFilter.cpp rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/MultishellProcessing/itkRadialMultishellToSingleshellImageFilter.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/Reconstruction/MultishellProcessing/itkRadialMultishellToSingleshellImageFilter.h b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/MultishellProcessing/itkRadialMultishellToSingleshellImageFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/Reconstruction/MultishellProcessing/itkRadialMultishellToSingleshellImageFilter.h rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/MultishellProcessing/itkRadialMultishellToSingleshellImageFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/Reconstruction/itkAnalyticalDiffusionQballReconstructionImageFilter.cpp b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/itkAnalyticalDiffusionQballReconstructionImageFilter.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/Reconstruction/itkAnalyticalDiffusionQballReconstructionImageFilter.cpp rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/itkAnalyticalDiffusionQballReconstructionImageFilter.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/Reconstruction/itkAnalyticalDiffusionQballReconstructionImageFilter.h b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/itkAnalyticalDiffusionQballReconstructionImageFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/Reconstruction/itkAnalyticalDiffusionQballReconstructionImageFilter.h rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/itkAnalyticalDiffusionQballReconstructionImageFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/Reconstruction/itkDiffusionIntravoxelIncoherentMotionReconstructionImageFilter.cpp b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/itkDiffusionIntravoxelIncoherentMotionReconstructionImageFilter.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/Reconstruction/itkDiffusionIntravoxelIncoherentMotionReconstructionImageFilter.cpp rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/itkDiffusionIntravoxelIncoherentMotionReconstructionImageFilter.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/Reconstruction/itkDiffusionIntravoxelIncoherentMotionReconstructionImageFilter.h b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/itkDiffusionIntravoxelIncoherentMotionReconstructionImageFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/Reconstruction/itkDiffusionIntravoxelIncoherentMotionReconstructionImageFilter.h rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/itkDiffusionIntravoxelIncoherentMotionReconstructionImageFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/Reconstruction/itkDiffusionMultiShellQballReconstructionImageFilter.cpp b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/itkDiffusionMultiShellQballReconstructionImageFilter.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/Reconstruction/itkDiffusionMultiShellQballReconstructionImageFilter.cpp rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/itkDiffusionMultiShellQballReconstructionImageFilter.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/Reconstruction/itkDiffusionMultiShellQballReconstructionImageFilter.h b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/itkDiffusionMultiShellQballReconstructionImageFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/Reconstruction/itkDiffusionMultiShellQballReconstructionImageFilter.h rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/itkDiffusionMultiShellQballReconstructionImageFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/Reconstruction/itkDiffusionQballReconstructionImageFilter.h b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/itkDiffusionQballReconstructionImageFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/Reconstruction/itkDiffusionQballReconstructionImageFilter.h rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/itkDiffusionQballReconstructionImageFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/Reconstruction/itkDiffusionQballReconstructionImageFilter.txx b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/itkDiffusionQballReconstructionImageFilter.txx similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/Reconstruction/itkDiffusionQballReconstructionImageFilter.txx rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/itkDiffusionQballReconstructionImageFilter.txx diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/Reconstruction/itkOrientationDistributionFunction.h b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/itkOrientationDistributionFunction.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/Reconstruction/itkOrientationDistributionFunction.h rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/itkOrientationDistributionFunction.h diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/Reconstruction/itkOrientationDistributionFunction.txx b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/itkOrientationDistributionFunction.txx similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/Reconstruction/itkOrientationDistributionFunction.txx rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/itkOrientationDistributionFunction.txx diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/Reconstruction/itkPointShell.h b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/itkPointShell.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/Reconstruction/itkPointShell.h rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/itkPointShell.h diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/Reconstruction/itkPointShell.txx b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/itkPointShell.txx similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/Reconstruction/itkPointShell.txx rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/itkPointShell.txx diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/Reconstruction/mitkTeemDiffusionTensor3DReconstructionImageFilter.cpp b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/mitkTeemDiffusionTensor3DReconstructionImageFilter.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/Reconstruction/mitkTeemDiffusionTensor3DReconstructionImageFilter.cpp rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/mitkTeemDiffusionTensor3DReconstructionImageFilter.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/Reconstruction/mitkTeemDiffusionTensor3DReconstructionImageFilter.h b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/mitkTeemDiffusionTensor3DReconstructionImageFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/Reconstruction/mitkTeemDiffusionTensor3DReconstructionImageFilter.h rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Reconstruction/mitkTeemDiffusionTensor3DReconstructionImageFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/Registration/mitkDWIHeadMotionCorrectionFilter.h b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Registration/mitkDWIHeadMotionCorrectionFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/Registration/mitkDWIHeadMotionCorrectionFilter.h rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Registration/mitkDWIHeadMotionCorrectionFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/Registration/mitkPyramidImageRegistrationMethod.h b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Registration/mitkPyramidImageRegistrationMethod.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/Registration/mitkPyramidImageRegistrationMethod.h rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Registration/mitkPyramidImageRegistrationMethod.h diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/Registration/mitkPyramidRegistrationMethodHelper.h b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Registration/mitkPyramidRegistrationMethodHelper.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/Registration/mitkPyramidRegistrationMethodHelper.h rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Registration/mitkPyramidRegistrationMethodHelper.h diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/Registration/mitkRegistrationWrapper.h b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Registration/mitkRegistrationWrapper.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/Registration/mitkRegistrationWrapper.h rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/Registration/mitkRegistrationWrapper.h diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkAdcImageFilter.h b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkAdcImageFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkAdcImageFilter.h rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkAdcImageFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkAdcImageFilter.txx b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkAdcImageFilter.txx similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkAdcImageFilter.txx rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkAdcImageFilter.txx diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkB0ImageExtractionImageFilter.h b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkB0ImageExtractionImageFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkB0ImageExtractionImageFilter.h rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkB0ImageExtractionImageFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkB0ImageExtractionImageFilter.txx b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkB0ImageExtractionImageFilter.txx similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkB0ImageExtractionImageFilter.txx rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkB0ImageExtractionImageFilter.txx diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkB0ImageExtractionToSeparateImageFilter.h b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkB0ImageExtractionToSeparateImageFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkB0ImageExtractionToSeparateImageFilter.h rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkB0ImageExtractionToSeparateImageFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkB0ImageExtractionToSeparateImageFilter.txx b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkB0ImageExtractionToSeparateImageFilter.txx similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkB0ImageExtractionToSeparateImageFilter.txx rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkB0ImageExtractionToSeparateImageFilter.txx diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkBrainMaskExtractionImageFilter.h b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkBrainMaskExtractionImageFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkBrainMaskExtractionImageFilter.h rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkBrainMaskExtractionImageFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkBrainMaskExtractionImageFilter.txx b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkBrainMaskExtractionImageFilter.txx similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkBrainMaskExtractionImageFilter.txx rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkBrainMaskExtractionImageFilter.txx diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkCartesianToPolarVectorImageFilter.h b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkCartesianToPolarVectorImageFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkCartesianToPolarVectorImageFilter.h rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkCartesianToPolarVectorImageFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkDiffusionQballGeneralizedFaImageFilter.h b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkDiffusionQballGeneralizedFaImageFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkDiffusionQballGeneralizedFaImageFilter.h rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkDiffusionQballGeneralizedFaImageFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkDiffusionQballGeneralizedFaImageFilter.txx b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkDiffusionQballGeneralizedFaImageFilter.txx similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkDiffusionQballGeneralizedFaImageFilter.txx rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkDiffusionQballGeneralizedFaImageFilter.txx diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkDiffusionQballPrepareVisualizationImageFilter.h b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkDiffusionQballPrepareVisualizationImageFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkDiffusionQballPrepareVisualizationImageFilter.h rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkDiffusionQballPrepareVisualizationImageFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkDiffusionTensorPrincipalDirectionImageFilter.h b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkDiffusionTensorPrincipalDirectionImageFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkDiffusionTensorPrincipalDirectionImageFilter.h rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkDiffusionTensorPrincipalDirectionImageFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkDiffusionTensorPrincipalDirectionImageFilter.txx b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkDiffusionTensorPrincipalDirectionImageFilter.txx similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkDiffusionTensorPrincipalDirectionImageFilter.txx rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkDiffusionTensorPrincipalDirectionImageFilter.txx diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkDistanceMapFilter.h b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkDistanceMapFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkDistanceMapFilter.h rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkDistanceMapFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkDistanceMapFilter.txx b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkDistanceMapFilter.txx similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkDistanceMapFilter.txx rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkDistanceMapFilter.txx diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkDwiGradientLengthCorrectionFilter.h b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkDwiGradientLengthCorrectionFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkDwiGradientLengthCorrectionFilter.h rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkDwiGradientLengthCorrectionFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkDwiNormilzationFilter.h b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkDwiNormilzationFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkDwiNormilzationFilter.h rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkDwiNormilzationFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkDwiNormilzationFilter.txx b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkDwiNormilzationFilter.txx similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkDwiNormilzationFilter.txx rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkDwiNormilzationFilter.txx diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkDwiPhantomGenerationFilter.h b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkDwiPhantomGenerationFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkDwiPhantomGenerationFilter.h rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkDwiPhantomGenerationFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkElectrostaticRepulsionDiffusionGradientReductionFilter.h b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkElectrostaticRepulsionDiffusionGradientReductionFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkElectrostaticRepulsionDiffusionGradientReductionFilter.h rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkElectrostaticRepulsionDiffusionGradientReductionFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkElectrostaticRepulsionDiffusionGradientReductionFilter.txx b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkElectrostaticRepulsionDiffusionGradientReductionFilter.txx similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkElectrostaticRepulsionDiffusionGradientReductionFilter.txx rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkElectrostaticRepulsionDiffusionGradientReductionFilter.txx diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkExtractChannelFromRgbaImageFilter.cpp b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkExtractChannelFromRgbaImageFilter.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkExtractChannelFromRgbaImageFilter.cpp rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkExtractChannelFromRgbaImageFilter.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkExtractChannelFromRgbaImageFilter.h b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkExtractChannelFromRgbaImageFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkExtractChannelFromRgbaImageFilter.h rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkExtractChannelFromRgbaImageFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkExtractDwiChannelFilter.h b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkExtractDwiChannelFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkExtractDwiChannelFilter.h rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkExtractDwiChannelFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkExtractDwiChannelFilter.txx b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkExtractDwiChannelFilter.txx similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkExtractDwiChannelFilter.txx rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkExtractDwiChannelFilter.txx diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkFiniteDiffOdfMaximaExtractionFilter.cpp b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkFiniteDiffOdfMaximaExtractionFilter.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkFiniteDiffOdfMaximaExtractionFilter.cpp rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkFiniteDiffOdfMaximaExtractionFilter.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkFiniteDiffOdfMaximaExtractionFilter.h b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkFiniteDiffOdfMaximaExtractionFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkFiniteDiffOdfMaximaExtractionFilter.h rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkFiniteDiffOdfMaximaExtractionFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkFslPeakImageConverter.cpp b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkFslPeakImageConverter.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkFslPeakImageConverter.cpp rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkFslPeakImageConverter.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkFslPeakImageConverter.h b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkFslPeakImageConverter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkFslPeakImageConverter.h rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkFslPeakImageConverter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkGaussianInterpolateImageFunction.h b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkGaussianInterpolateImageFunction.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkGaussianInterpolateImageFunction.h rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkGaussianInterpolateImageFunction.h diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkGaussianInterpolateImageFunction.txx b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkGaussianInterpolateImageFunction.txx similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkGaussianInterpolateImageFunction.txx rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkGaussianInterpolateImageFunction.txx diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkMergeDiffusionImagesFilter.h b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkMergeDiffusionImagesFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkMergeDiffusionImagesFilter.h rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkMergeDiffusionImagesFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkMergeDiffusionImagesFilter.txx b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkMergeDiffusionImagesFilter.txx similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkMergeDiffusionImagesFilter.txx rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkMergeDiffusionImagesFilter.txx diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkMrtrixPeakImageConverter.cpp b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkMrtrixPeakImageConverter.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkMrtrixPeakImageConverter.cpp rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkMrtrixPeakImageConverter.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkMrtrixPeakImageConverter.h b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkMrtrixPeakImageConverter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkMrtrixPeakImageConverter.h rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkMrtrixPeakImageConverter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkNonLocalMeansDenoisingFilter.h b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkNonLocalMeansDenoisingFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkNonLocalMeansDenoisingFilter.h rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkNonLocalMeansDenoisingFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkNonLocalMeansDenoisingFilter.txx b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkNonLocalMeansDenoisingFilter.txx similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkNonLocalMeansDenoisingFilter.txx rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkNonLocalMeansDenoisingFilter.txx diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkOdfMaximaExtractionFilter.cpp b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkOdfMaximaExtractionFilter.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkOdfMaximaExtractionFilter.cpp rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkOdfMaximaExtractionFilter.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkOdfMaximaExtractionFilter.h b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkOdfMaximaExtractionFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkOdfMaximaExtractionFilter.h rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkOdfMaximaExtractionFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkPolarToCartesianVectorImageFilter.h b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkPolarToCartesianVectorImageFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkPolarToCartesianVectorImageFilter.h rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkPolarToCartesianVectorImageFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkProjectionFilter.h b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkProjectionFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkProjectionFilter.h rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkProjectionFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkProjectionFilter.txx b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkProjectionFilter.txx similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkProjectionFilter.txx rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkProjectionFilter.txx diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkQBallToRgbImageFilter.h b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkQBallToRgbImageFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkQBallToRgbImageFilter.h rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkQBallToRgbImageFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkRemoveDwiChannelFilter.h b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkRemoveDwiChannelFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkRemoveDwiChannelFilter.h rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkRemoveDwiChannelFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkRemoveDwiChannelFilter.txx b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkRemoveDwiChannelFilter.txx similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkRemoveDwiChannelFilter.txx rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkRemoveDwiChannelFilter.txx diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkResampleDwiImageFilter.h b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkResampleDwiImageFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkResampleDwiImageFilter.h rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkResampleDwiImageFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkResampleDwiImageFilter.txx b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkResampleDwiImageFilter.txx similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkResampleDwiImageFilter.txx rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkResampleDwiImageFilter.txx diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkResidualImageFilter.h b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkResidualImageFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkResidualImageFilter.h rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkResidualImageFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkResidualImageFilter.txx b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkResidualImageFilter.txx similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkResidualImageFilter.txx rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkResidualImageFilter.txx diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkShCoefficientImageExporter.cpp b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkShCoefficientImageExporter.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkShCoefficientImageExporter.cpp rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkShCoefficientImageExporter.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkShCoefficientImageExporter.h b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkShCoefficientImageExporter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkShCoefficientImageExporter.h rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkShCoefficientImageExporter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkShCoefficientImageImporter.cpp b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkShCoefficientImageImporter.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkShCoefficientImageImporter.cpp rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkShCoefficientImageImporter.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkShCoefficientImageImporter.h b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkShCoefficientImageImporter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkShCoefficientImageImporter.h rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkShCoefficientImageImporter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkSplitDWImageFilter.h b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkSplitDWImageFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkSplitDWImageFilter.h rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkSplitDWImageFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkSplitDWImageFilter.txx b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkSplitDWImageFilter.txx similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkSplitDWImageFilter.txx rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkSplitDWImageFilter.txx diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkTensorDerivedMeasurementsFilter.h b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkTensorDerivedMeasurementsFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkTensorDerivedMeasurementsFilter.h rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkTensorDerivedMeasurementsFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkTensorDerivedMeasurementsFilter.txx b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkTensorDerivedMeasurementsFilter.txx similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkTensorDerivedMeasurementsFilter.txx rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkTensorDerivedMeasurementsFilter.txx diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkTensorImageToDiffusionImageFilter.h b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkTensorImageToDiffusionImageFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkTensorImageToDiffusionImageFilter.h rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkTensorImageToDiffusionImageFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkTensorImageToDiffusionImageFilter.txx b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkTensorImageToDiffusionImageFilter.txx similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkTensorImageToDiffusionImageFilter.txx rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkTensorImageToDiffusionImageFilter.txx diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkTensorImageToQBallImageFilter.h b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkTensorImageToQBallImageFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkTensorImageToQBallImageFilter.h rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkTensorImageToQBallImageFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkTensorImageToQBallImageFilter.txx b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkTensorImageToQBallImageFilter.txx similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkTensorImageToQBallImageFilter.txx rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkTensorImageToQBallImageFilter.txx diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkTensorReconstructionWithEigenvalueCorrectionFilter.h b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkTensorReconstructionWithEigenvalueCorrectionFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkTensorReconstructionWithEigenvalueCorrectionFilter.h rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkTensorReconstructionWithEigenvalueCorrectionFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkTensorReconstructionWithEigenvalueCorrectionFilter.txx b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkTensorReconstructionWithEigenvalueCorrectionFilter.txx similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkTensorReconstructionWithEigenvalueCorrectionFilter.txx rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkTensorReconstructionWithEigenvalueCorrectionFilter.txx diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkTensorToL2NormImageFilter.h b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkTensorToL2NormImageFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkTensorToL2NormImageFilter.h rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkTensorToL2NormImageFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkTensorToL2NormImageFilter.txx b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkTensorToL2NormImageFilter.txx similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkTensorToL2NormImageFilter.txx rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkTensorToL2NormImageFilter.txx diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkTensorToRgbImageFilter.h b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkTensorToRgbImageFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkTensorToRgbImageFilter.h rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkTensorToRgbImageFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkVectorImageToImageFilter.h b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkVectorImageToImageFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkVectorImageToImageFilter.h rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkVectorImageToImageFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkVectorImageToImageFilter.txx b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkVectorImageToImageFilter.txx similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkVectorImageToImageFilter.txx rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/itkVectorImageToImageFilter.txx diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/mitkPartialVolumeAnalysisClusteringCalculator.h b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/mitkPartialVolumeAnalysisClusteringCalculator.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/mitkPartialVolumeAnalysisClusteringCalculator.h rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/mitkPartialVolumeAnalysisClusteringCalculator.h diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/mitkPartialVolumeAnalysisHistogramCalculator.h b/Modules/DiffusionImaging/DiffusionCore/include/Algorithms/mitkPartialVolumeAnalysisHistogramCalculator.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/mitkPartialVolumeAnalysisHistogramCalculator.h rename to Modules/DiffusionImaging/DiffusionCore/include/Algorithms/mitkPartialVolumeAnalysisHistogramCalculator.h diff --git a/Modules/DiffusionImaging/DiffusionCore/DicomImport/mitkDicomDiffusionImageHeaderReader.h b/Modules/DiffusionImaging/DiffusionCore/include/DicomImport/mitkDicomDiffusionImageHeaderReader.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/DicomImport/mitkDicomDiffusionImageHeaderReader.h rename to Modules/DiffusionImaging/DiffusionCore/include/DicomImport/mitkDicomDiffusionImageHeaderReader.h diff --git a/Modules/DiffusionImaging/DiffusionCore/DicomImport/mitkDicomDiffusionImageReader.cpp b/Modules/DiffusionImaging/DiffusionCore/include/DicomImport/mitkDicomDiffusionImageReader.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/DicomImport/mitkDicomDiffusionImageReader.cpp rename to Modules/DiffusionImaging/DiffusionCore/include/DicomImport/mitkDicomDiffusionImageReader.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/DicomImport/mitkDicomDiffusionImageReader.h b/Modules/DiffusionImaging/DiffusionCore/include/DicomImport/mitkDicomDiffusionImageReader.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/DicomImport/mitkDicomDiffusionImageReader.h rename to Modules/DiffusionImaging/DiffusionCore/include/DicomImport/mitkDicomDiffusionImageReader.h diff --git a/Modules/DiffusionImaging/DiffusionCore/DicomImport/mitkDiffusionDICOMFileReader.h b/Modules/DiffusionImaging/DiffusionCore/include/DicomImport/mitkDiffusionDICOMFileReader.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/DicomImport/mitkDiffusionDICOMFileReader.h rename to Modules/DiffusionImaging/DiffusionCore/include/DicomImport/mitkDiffusionDICOMFileReader.h diff --git a/Modules/DiffusionImaging/DiffusionCore/DicomImport/mitkDiffusionDICOMFileReaderHelper.h b/Modules/DiffusionImaging/DiffusionCore/include/DicomImport/mitkDiffusionDICOMFileReaderHelper.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/DicomImport/mitkDiffusionDICOMFileReaderHelper.h rename to Modules/DiffusionImaging/DiffusionCore/include/DicomImport/mitkDiffusionDICOMFileReaderHelper.h diff --git a/Modules/DiffusionImaging/DiffusionCore/DicomImport/mitkDiffusionHeaderDICOMFileReader.h b/Modules/DiffusionImaging/DiffusionCore/include/DicomImport/mitkDiffusionHeaderDICOMFileReader.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/DicomImport/mitkDiffusionHeaderDICOMFileReader.h rename to Modules/DiffusionImaging/DiffusionCore/include/DicomImport/mitkDiffusionHeaderDICOMFileReader.h diff --git a/Modules/DiffusionImaging/DiffusionCore/DicomImport/mitkDiffusionHeaderGEDICOMFileReader.h b/Modules/DiffusionImaging/DiffusionCore/include/DicomImport/mitkDiffusionHeaderGEDICOMFileReader.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/DicomImport/mitkDiffusionHeaderGEDICOMFileReader.h rename to Modules/DiffusionImaging/DiffusionCore/include/DicomImport/mitkDiffusionHeaderGEDICOMFileReader.h diff --git a/Modules/DiffusionImaging/DiffusionCore/DicomImport/mitkDiffusionHeaderPhilipsDICOMFileReader.h b/Modules/DiffusionImaging/DiffusionCore/include/DicomImport/mitkDiffusionHeaderPhilipsDICOMFileReader.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/DicomImport/mitkDiffusionHeaderPhilipsDICOMFileReader.h rename to Modules/DiffusionImaging/DiffusionCore/include/DicomImport/mitkDiffusionHeaderPhilipsDICOMFileReader.h diff --git a/Modules/DiffusionImaging/DiffusionCore/DicomImport/mitkDiffusionHeaderSiemensDICOMFileHelper.h b/Modules/DiffusionImaging/DiffusionCore/include/DicomImport/mitkDiffusionHeaderSiemensDICOMFileHelper.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/DicomImport/mitkDiffusionHeaderSiemensDICOMFileHelper.h rename to Modules/DiffusionImaging/DiffusionCore/include/DicomImport/mitkDiffusionHeaderSiemensDICOMFileHelper.h diff --git a/Modules/DiffusionImaging/DiffusionCore/DicomImport/mitkDiffusionHeaderSiemensDICOMFileReader.h b/Modules/DiffusionImaging/DiffusionCore/include/DicomImport/mitkDiffusionHeaderSiemensDICOMFileReader.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/DicomImport/mitkDiffusionHeaderSiemensDICOMFileReader.h rename to Modules/DiffusionImaging/DiffusionCore/include/DicomImport/mitkDiffusionHeaderSiemensDICOMFileReader.h diff --git a/Modules/DiffusionImaging/DiffusionCore/DicomImport/mitkDiffusionHeaderSiemensMosaicDICOMFileReader.h b/Modules/DiffusionImaging/DiffusionCore/include/DicomImport/mitkDiffusionHeaderSiemensMosaicDICOMFileReader.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/DicomImport/mitkDiffusionHeaderSiemensMosaicDICOMFileReader.h rename to Modules/DiffusionImaging/DiffusionCore/include/DicomImport/mitkDiffusionHeaderSiemensMosaicDICOMFileReader.h diff --git a/Modules/DiffusionImaging/DiffusionCore/DicomImport/mitkGEDicomDiffusionImageHeaderReader.h b/Modules/DiffusionImaging/DiffusionCore/include/DicomImport/mitkGEDicomDiffusionImageHeaderReader.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/DicomImport/mitkGEDicomDiffusionImageHeaderReader.h rename to Modules/DiffusionImaging/DiffusionCore/include/DicomImport/mitkGEDicomDiffusionImageHeaderReader.h diff --git a/Modules/DiffusionImaging/DiffusionCore/DicomImport/mitkGroupDiffusionHeadersFilter.h b/Modules/DiffusionImaging/DiffusionCore/include/DicomImport/mitkGroupDiffusionHeadersFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/DicomImport/mitkGroupDiffusionHeadersFilter.h rename to Modules/DiffusionImaging/DiffusionCore/include/DicomImport/mitkGroupDiffusionHeadersFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/DicomImport/mitkPhilipsDicomDiffusionImageHeaderReader.h b/Modules/DiffusionImaging/DiffusionCore/include/DicomImport/mitkPhilipsDicomDiffusionImageHeaderReader.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/DicomImport/mitkPhilipsDicomDiffusionImageHeaderReader.h rename to Modules/DiffusionImaging/DiffusionCore/include/DicomImport/mitkPhilipsDicomDiffusionImageHeaderReader.h diff --git a/Modules/DiffusionImaging/DiffusionCore/DicomImport/mitkSiemensDicomDiffusionImageHeaderReader.h b/Modules/DiffusionImaging/DiffusionCore/include/DicomImport/mitkSiemensDicomDiffusionImageHeaderReader.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/DicomImport/mitkSiemensDicomDiffusionImageHeaderReader.h rename to Modules/DiffusionImaging/DiffusionCore/include/DicomImport/mitkSiemensDicomDiffusionImageHeaderReader.h diff --git a/Modules/DiffusionImaging/DiffusionCore/DicomImport/mitkSiemensMosaicDicomDiffusionImageHeaderReader.h b/Modules/DiffusionImaging/DiffusionCore/include/DicomImport/mitkSiemensMosaicDicomDiffusionImageHeaderReader.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/DicomImport/mitkSiemensMosaicDicomDiffusionImageHeaderReader.h rename to Modules/DiffusionImaging/DiffusionCore/include/DicomImport/mitkSiemensMosaicDicomDiffusionImageHeaderReader.h diff --git a/Modules/DiffusionImaging/DiffusionCore/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageCorrectionFilter.h b/Modules/DiffusionImaging/DiffusionCore/include/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageCorrectionFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageCorrectionFilter.h rename to Modules/DiffusionImaging/DiffusionCore/include/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageCorrectionFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageCreationFilter.h b/Modules/DiffusionImaging/DiffusionCore/include/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageCreationFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageCreationFilter.h rename to Modules/DiffusionImaging/DiffusionCore/include/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageCreationFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageHeaderInformation.h b/Modules/DiffusionImaging/DiffusionCore/include/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageHeaderInformation.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageHeaderInformation.h rename to Modules/DiffusionImaging/DiffusionCore/include/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageHeaderInformation.h diff --git a/Modules/DiffusionImaging/DiffusionCore/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageTransformedCreationFilter.h b/Modules/DiffusionImaging/DiffusionCore/include/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageTransformedCreationFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageTransformedCreationFilter.h rename to Modules/DiffusionImaging/DiffusionCore/include/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageTransformedCreationFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/IODataStructures/Properties/mitkBValueMapProperty.h b/Modules/DiffusionImaging/DiffusionCore/include/IODataStructures/Properties/mitkBValueMapProperty.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/IODataStructures/Properties/mitkBValueMapProperty.h rename to Modules/DiffusionImaging/DiffusionCore/include/IODataStructures/Properties/mitkBValueMapProperty.h diff --git a/Modules/DiffusionImaging/DiffusionCore/IODataStructures/Properties/mitkDiffusionPropertyHelper.h b/Modules/DiffusionImaging/DiffusionCore/include/IODataStructures/Properties/mitkDiffusionPropertyHelper.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/IODataStructures/Properties/mitkDiffusionPropertyHelper.h rename to Modules/DiffusionImaging/DiffusionCore/include/IODataStructures/Properties/mitkDiffusionPropertyHelper.h diff --git a/Modules/DiffusionImaging/DiffusionCore/IODataStructures/Properties/mitkGradientDirectionsProperty.h b/Modules/DiffusionImaging/DiffusionCore/include/IODataStructures/Properties/mitkGradientDirectionsProperty.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/IODataStructures/Properties/mitkGradientDirectionsProperty.h rename to Modules/DiffusionImaging/DiffusionCore/include/IODataStructures/Properties/mitkGradientDirectionsProperty.h diff --git a/Modules/DiffusionImaging/DiffusionCore/IODataStructures/Properties/mitkMeasurementFrameProperty.h b/Modules/DiffusionImaging/DiffusionCore/include/IODataStructures/Properties/mitkMeasurementFrameProperty.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/IODataStructures/Properties/mitkMeasurementFrameProperty.h rename to Modules/DiffusionImaging/DiffusionCore/include/IODataStructures/Properties/mitkMeasurementFrameProperty.h diff --git a/Modules/DiffusionImaging/DiffusionCore/IODataStructures/Properties/mitkNodePredicateIsDWI.h b/Modules/DiffusionImaging/DiffusionCore/include/IODataStructures/Properties/mitkNodePredicateIsDWI.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/IODataStructures/Properties/mitkNodePredicateIsDWI.h rename to Modules/DiffusionImaging/DiffusionCore/include/IODataStructures/Properties/mitkNodePredicateIsDWI.h diff --git a/Modules/DiffusionImaging/DiffusionCore/IODataStructures/QBallImages/mitkQBallImage.h b/Modules/DiffusionImaging/DiffusionCore/include/IODataStructures/QBallImages/mitkQBallImage.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/IODataStructures/QBallImages/mitkQBallImage.h rename to Modules/DiffusionImaging/DiffusionCore/include/IODataStructures/QBallImages/mitkQBallImage.h diff --git a/Modules/DiffusionImaging/DiffusionCore/IODataStructures/QBallImages/mitkQBallImageSource.h b/Modules/DiffusionImaging/DiffusionCore/include/IODataStructures/QBallImages/mitkQBallImageSource.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/IODataStructures/QBallImages/mitkQBallImageSource.h rename to Modules/DiffusionImaging/DiffusionCore/include/IODataStructures/QBallImages/mitkQBallImageSource.h diff --git a/Modules/DiffusionImaging/DiffusionCore/IODataStructures/TensorImages/mitkTensorImage.h b/Modules/DiffusionImaging/DiffusionCore/include/IODataStructures/TensorImages/mitkTensorImage.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/IODataStructures/TensorImages/mitkTensorImage.h rename to Modules/DiffusionImaging/DiffusionCore/include/IODataStructures/TensorImages/mitkTensorImage.h diff --git a/Modules/DiffusionImaging/DiffusionCore/IODataStructures/mitkRegistrationObject.h b/Modules/DiffusionImaging/DiffusionCore/include/IODataStructures/mitkRegistrationObject.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/IODataStructures/mitkRegistrationObject.h rename to Modules/DiffusionImaging/DiffusionCore/include/IODataStructures/mitkRegistrationObject.h diff --git a/Modules/DiffusionImaging/DiffusionCore/Rendering/mitkOdfNormalizationMethodProperty.h b/Modules/DiffusionImaging/DiffusionCore/include/Rendering/mitkOdfNormalizationMethodProperty.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Rendering/mitkOdfNormalizationMethodProperty.h rename to Modules/DiffusionImaging/DiffusionCore/include/Rendering/mitkOdfNormalizationMethodProperty.h diff --git a/Modules/DiffusionImaging/DiffusionCore/Rendering/mitkOdfScaleByProperty.h b/Modules/DiffusionImaging/DiffusionCore/include/Rendering/mitkOdfScaleByProperty.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Rendering/mitkOdfScaleByProperty.h rename to Modules/DiffusionImaging/DiffusionCore/include/Rendering/mitkOdfScaleByProperty.h diff --git a/Modules/DiffusionImaging/DiffusionCore/Rendering/mitkOdfVtkMapper2D.h b/Modules/DiffusionImaging/DiffusionCore/include/Rendering/mitkOdfVtkMapper2D.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Rendering/mitkOdfVtkMapper2D.h rename to Modules/DiffusionImaging/DiffusionCore/include/Rendering/mitkOdfVtkMapper2D.h diff --git a/Modules/DiffusionImaging/DiffusionCore/Rendering/mitkOdfVtkMapper2D.txx b/Modules/DiffusionImaging/DiffusionCore/include/Rendering/mitkOdfVtkMapper2D.txx similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Rendering/mitkOdfVtkMapper2D.txx rename to Modules/DiffusionImaging/DiffusionCore/include/Rendering/mitkOdfVtkMapper2D.txx diff --git a/Modules/DiffusionImaging/DiffusionCore/Rendering/mitkVectorImageVtkGlyphMapper3D.h b/Modules/DiffusionImaging/DiffusionCore/include/Rendering/mitkVectorImageVtkGlyphMapper3D.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Rendering/mitkVectorImageVtkGlyphMapper3D.h rename to Modules/DiffusionImaging/DiffusionCore/include/Rendering/mitkVectorImageVtkGlyphMapper3D.h diff --git a/Modules/DiffusionImaging/DiffusionCore/Rendering/vtkMaskedProgrammableGlyphFilter.h b/Modules/DiffusionImaging/DiffusionCore/include/Rendering/vtkMaskedProgrammableGlyphFilter.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Rendering/vtkMaskedProgrammableGlyphFilter.h rename to Modules/DiffusionImaging/DiffusionCore/include/Rendering/vtkMaskedProgrammableGlyphFilter.h diff --git a/Modules/DiffusionImaging/DiffusionCore/Rendering/vtkOdfSource.h b/Modules/DiffusionImaging/DiffusionCore/include/Rendering/vtkOdfSource.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Rendering/vtkOdfSource.h rename to Modules/DiffusionImaging/DiffusionCore/include/Rendering/vtkOdfSource.h diff --git a/Modules/DiffusionImaging/DiffusionCore/Rendering/vtkThickPlane.h b/Modules/DiffusionImaging/DiffusionCore/include/Rendering/vtkThickPlane.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Rendering/vtkThickPlane.h rename to Modules/DiffusionImaging/DiffusionCore/include/Rendering/vtkThickPlane.h diff --git a/Modules/DiffusionImaging/DiffusionCore/mitkDiffusionFunctionCollection.h b/Modules/DiffusionImaging/DiffusionCore/include/mitkDiffusionFunctionCollection.h similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/mitkDiffusionFunctionCollection.h rename to Modules/DiffusionImaging/DiffusionCore/include/mitkDiffusionFunctionCollection.h diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/Reconstruction/MultishellProcessing/itkADCAverageFunctor.cpp b/Modules/DiffusionImaging/DiffusionCore/src/Algorithms/Reconstruction/MultishellProcessing/itkADCAverageFunctor.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/Reconstruction/MultishellProcessing/itkADCAverageFunctor.cpp rename to Modules/DiffusionImaging/DiffusionCore/src/Algorithms/Reconstruction/MultishellProcessing/itkADCAverageFunctor.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/Reconstruction/MultishellProcessing/itkADCFitFunctor.cpp b/Modules/DiffusionImaging/DiffusionCore/src/Algorithms/Reconstruction/MultishellProcessing/itkADCFitFunctor.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/Reconstruction/MultishellProcessing/itkADCFitFunctor.cpp rename to Modules/DiffusionImaging/DiffusionCore/src/Algorithms/Reconstruction/MultishellProcessing/itkADCFitFunctor.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/Reconstruction/MultishellProcessing/itkBiExpFitFunctor.cpp b/Modules/DiffusionImaging/DiffusionCore/src/Algorithms/Reconstruction/MultishellProcessing/itkBiExpFitFunctor.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/Reconstruction/MultishellProcessing/itkBiExpFitFunctor.cpp rename to Modules/DiffusionImaging/DiffusionCore/src/Algorithms/Reconstruction/MultishellProcessing/itkBiExpFitFunctor.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/Reconstruction/MultishellProcessing/itkKurtosisFitFunctor.cpp b/Modules/DiffusionImaging/DiffusionCore/src/Algorithms/Reconstruction/MultishellProcessing/itkKurtosisFitFunctor.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/Reconstruction/MultishellProcessing/itkKurtosisFitFunctor.cpp rename to Modules/DiffusionImaging/DiffusionCore/src/Algorithms/Reconstruction/MultishellProcessing/itkKurtosisFitFunctor.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/Registration/mitkDWIHeadMotionCorrectionFilter.cpp b/Modules/DiffusionImaging/DiffusionCore/src/Algorithms/Registration/mitkDWIHeadMotionCorrectionFilter.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/Registration/mitkDWIHeadMotionCorrectionFilter.cpp rename to Modules/DiffusionImaging/DiffusionCore/src/Algorithms/Registration/mitkDWIHeadMotionCorrectionFilter.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/Registration/mitkPyramidImageRegistrationMethod.cpp b/Modules/DiffusionImaging/DiffusionCore/src/Algorithms/Registration/mitkPyramidImageRegistrationMethod.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/Registration/mitkPyramidImageRegistrationMethod.cpp rename to Modules/DiffusionImaging/DiffusionCore/src/Algorithms/Registration/mitkPyramidImageRegistrationMethod.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/Registration/mitkRegistrationWrapper.cpp b/Modules/DiffusionImaging/DiffusionCore/src/Algorithms/Registration/mitkRegistrationWrapper.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/Registration/mitkRegistrationWrapper.cpp rename to Modules/DiffusionImaging/DiffusionCore/src/Algorithms/Registration/mitkRegistrationWrapper.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkDiffusionQballPrepareVisualizationImageFilter.cpp b/Modules/DiffusionImaging/DiffusionCore/src/Algorithms/itkDiffusionQballPrepareVisualizationImageFilter.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkDiffusionQballPrepareVisualizationImageFilter.cpp rename to Modules/DiffusionImaging/DiffusionCore/src/Algorithms/itkDiffusionQballPrepareVisualizationImageFilter.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkDwiGradientLengthCorrectionFilter.cpp b/Modules/DiffusionImaging/DiffusionCore/src/Algorithms/itkDwiGradientLengthCorrectionFilter.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkDwiGradientLengthCorrectionFilter.cpp rename to Modules/DiffusionImaging/DiffusionCore/src/Algorithms/itkDwiGradientLengthCorrectionFilter.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/itkDwiPhantomGenerationFilter.cpp b/Modules/DiffusionImaging/DiffusionCore/src/Algorithms/itkDwiPhantomGenerationFilter.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/itkDwiPhantomGenerationFilter.cpp rename to Modules/DiffusionImaging/DiffusionCore/src/Algorithms/itkDwiPhantomGenerationFilter.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/mitkPartialVolumeAnalysisClusteringCalculator.cpp b/Modules/DiffusionImaging/DiffusionCore/src/Algorithms/mitkPartialVolumeAnalysisClusteringCalculator.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/mitkPartialVolumeAnalysisClusteringCalculator.cpp rename to Modules/DiffusionImaging/DiffusionCore/src/Algorithms/mitkPartialVolumeAnalysisClusteringCalculator.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/Algorithms/mitkPartialVolumeAnalysisHistogramCalculator.cpp b/Modules/DiffusionImaging/DiffusionCore/src/Algorithms/mitkPartialVolumeAnalysisHistogramCalculator.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Algorithms/mitkPartialVolumeAnalysisHistogramCalculator.cpp rename to Modules/DiffusionImaging/DiffusionCore/src/Algorithms/mitkPartialVolumeAnalysisHistogramCalculator.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/DicomImport/mitkDicomDiffusionImageHeaderReader.cpp b/Modules/DiffusionImaging/DiffusionCore/src/DicomImport/mitkDicomDiffusionImageHeaderReader.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/DicomImport/mitkDicomDiffusionImageHeaderReader.cpp rename to Modules/DiffusionImaging/DiffusionCore/src/DicomImport/mitkDicomDiffusionImageHeaderReader.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/DicomImport/mitkDiffusionDICOMFileReader.cpp b/Modules/DiffusionImaging/DiffusionCore/src/DicomImport/mitkDiffusionDICOMFileReader.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/DicomImport/mitkDiffusionDICOMFileReader.cpp rename to Modules/DiffusionImaging/DiffusionCore/src/DicomImport/mitkDiffusionDICOMFileReader.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/DicomImport/mitkDiffusionHeaderDICOMFileReader.cpp b/Modules/DiffusionImaging/DiffusionCore/src/DicomImport/mitkDiffusionHeaderDICOMFileReader.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/DicomImport/mitkDiffusionHeaderDICOMFileReader.cpp rename to Modules/DiffusionImaging/DiffusionCore/src/DicomImport/mitkDiffusionHeaderDICOMFileReader.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/DicomImport/mitkDiffusionHeaderGEDICOMFileReader.cpp b/Modules/DiffusionImaging/DiffusionCore/src/DicomImport/mitkDiffusionHeaderGEDICOMFileReader.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/DicomImport/mitkDiffusionHeaderGEDICOMFileReader.cpp rename to Modules/DiffusionImaging/DiffusionCore/src/DicomImport/mitkDiffusionHeaderGEDICOMFileReader.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/DicomImport/mitkDiffusionHeaderPhilipsDICOMFileReader.cpp b/Modules/DiffusionImaging/DiffusionCore/src/DicomImport/mitkDiffusionHeaderPhilipsDICOMFileReader.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/DicomImport/mitkDiffusionHeaderPhilipsDICOMFileReader.cpp rename to Modules/DiffusionImaging/DiffusionCore/src/DicomImport/mitkDiffusionHeaderPhilipsDICOMFileReader.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/DicomImport/mitkDiffusionHeaderSiemensDICOMFileHelper.cpp b/Modules/DiffusionImaging/DiffusionCore/src/DicomImport/mitkDiffusionHeaderSiemensDICOMFileHelper.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/DicomImport/mitkDiffusionHeaderSiemensDICOMFileHelper.cpp rename to Modules/DiffusionImaging/DiffusionCore/src/DicomImport/mitkDiffusionHeaderSiemensDICOMFileHelper.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/DicomImport/mitkDiffusionHeaderSiemensDICOMFileReader.cpp b/Modules/DiffusionImaging/DiffusionCore/src/DicomImport/mitkDiffusionHeaderSiemensDICOMFileReader.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/DicomImport/mitkDiffusionHeaderSiemensDICOMFileReader.cpp rename to Modules/DiffusionImaging/DiffusionCore/src/DicomImport/mitkDiffusionHeaderSiemensDICOMFileReader.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/DicomImport/mitkDiffusionHeaderSiemensMosaicDICOMFileReader.cpp b/Modules/DiffusionImaging/DiffusionCore/src/DicomImport/mitkDiffusionHeaderSiemensMosaicDICOMFileReader.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/DicomImport/mitkDiffusionHeaderSiemensMosaicDICOMFileReader.cpp rename to Modules/DiffusionImaging/DiffusionCore/src/DicomImport/mitkDiffusionHeaderSiemensMosaicDICOMFileReader.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/DicomImport/mitkGEDicomDiffusionImageHeaderReader.cpp b/Modules/DiffusionImaging/DiffusionCore/src/DicomImport/mitkGEDicomDiffusionImageHeaderReader.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/DicomImport/mitkGEDicomDiffusionImageHeaderReader.cpp rename to Modules/DiffusionImaging/DiffusionCore/src/DicomImport/mitkGEDicomDiffusionImageHeaderReader.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/DicomImport/mitkGroupDiffusionHeadersFilter.cpp b/Modules/DiffusionImaging/DiffusionCore/src/DicomImport/mitkGroupDiffusionHeadersFilter.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/DicomImport/mitkGroupDiffusionHeadersFilter.cpp rename to Modules/DiffusionImaging/DiffusionCore/src/DicomImport/mitkGroupDiffusionHeadersFilter.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/DicomImport/mitkPhilipsDicomDiffusionImageHeaderReader.cpp b/Modules/DiffusionImaging/DiffusionCore/src/DicomImport/mitkPhilipsDicomDiffusionImageHeaderReader.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/DicomImport/mitkPhilipsDicomDiffusionImageHeaderReader.cpp rename to Modules/DiffusionImaging/DiffusionCore/src/DicomImport/mitkPhilipsDicomDiffusionImageHeaderReader.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/DicomImport/mitkSiemensDicomDiffusionImageHeaderReader.cpp b/Modules/DiffusionImaging/DiffusionCore/src/DicomImport/mitkSiemensDicomDiffusionImageHeaderReader.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/DicomImport/mitkSiemensDicomDiffusionImageHeaderReader.cpp rename to Modules/DiffusionImaging/DiffusionCore/src/DicomImport/mitkSiemensDicomDiffusionImageHeaderReader.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/DicomImport/mitkSiemensMosaicDicomDiffusionImageHeaderReader.cpp b/Modules/DiffusionImaging/DiffusionCore/src/DicomImport/mitkSiemensMosaicDicomDiffusionImageHeaderReader.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/DicomImport/mitkSiemensMosaicDicomDiffusionImageHeaderReader.cpp rename to Modules/DiffusionImaging/DiffusionCore/src/DicomImport/mitkSiemensMosaicDicomDiffusionImageHeaderReader.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageCorrectionFilter.cpp b/Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageCorrectionFilter.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageCorrectionFilter.cpp rename to Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageCorrectionFilter.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageCreationFilter.cpp b/Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageCreationFilter.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageCreationFilter.cpp rename to Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageCreationFilter.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageHeaderInformation.cpp b/Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageHeaderInformation.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageHeaderInformation.cpp rename to Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageHeaderInformation.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageTransformedCreationFilter.cxx b/Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageTransformedCreationFilter.cxx similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageTransformedCreationFilter.cxx rename to Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageTransformedCreationFilter.cxx diff --git a/Modules/DiffusionImaging/DiffusionCore/IODataStructures/Properties/mitkBValueMapProperty.cpp b/Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/Properties/mitkBValueMapProperty.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/IODataStructures/Properties/mitkBValueMapProperty.cpp rename to Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/Properties/mitkBValueMapProperty.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/IODataStructures/Properties/mitkBValueMapPropertySerializer.cpp b/Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/Properties/mitkBValueMapPropertySerializer.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/IODataStructures/Properties/mitkBValueMapPropertySerializer.cpp rename to Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/Properties/mitkBValueMapPropertySerializer.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/IODataStructures/Properties/mitkDiffusionPropertyHelper.cpp b/Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/Properties/mitkDiffusionPropertyHelper.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/IODataStructures/Properties/mitkDiffusionPropertyHelper.cpp rename to Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/Properties/mitkDiffusionPropertyHelper.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/IODataStructures/Properties/mitkGradientDirectionsProperty.cpp b/Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/Properties/mitkGradientDirectionsProperty.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/IODataStructures/Properties/mitkGradientDirectionsProperty.cpp rename to Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/Properties/mitkGradientDirectionsProperty.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/IODataStructures/Properties/mitkGradientDirectionsPropertySerializer.cpp b/Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/Properties/mitkGradientDirectionsPropertySerializer.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/IODataStructures/Properties/mitkGradientDirectionsPropertySerializer.cpp rename to Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/Properties/mitkGradientDirectionsPropertySerializer.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/IODataStructures/Properties/mitkMeasurementFrameProperty.cpp b/Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/Properties/mitkMeasurementFrameProperty.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/IODataStructures/Properties/mitkMeasurementFrameProperty.cpp rename to Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/Properties/mitkMeasurementFrameProperty.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/IODataStructures/Properties/mitkMeasurementFramePropertySerializer.cpp b/Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/Properties/mitkMeasurementFramePropertySerializer.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/IODataStructures/Properties/mitkMeasurementFramePropertySerializer.cpp rename to Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/Properties/mitkMeasurementFramePropertySerializer.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/IODataStructures/Properties/mitkNodePredicateIsDWI.cpp b/Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/Properties/mitkNodePredicateIsDWI.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/IODataStructures/Properties/mitkNodePredicateIsDWI.cpp rename to Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/Properties/mitkNodePredicateIsDWI.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/IODataStructures/QBallImages/mitkQBallImage.cpp b/Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/QBallImages/mitkQBallImage.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/IODataStructures/QBallImages/mitkQBallImage.cpp rename to Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/QBallImages/mitkQBallImage.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/IODataStructures/QBallImages/mitkQBallImageSource.cpp b/Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/QBallImages/mitkQBallImageSource.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/IODataStructures/QBallImages/mitkQBallImageSource.cpp rename to Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/QBallImages/mitkQBallImageSource.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/IODataStructures/TensorImages/mitkTensorImage.cpp b/Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/TensorImages/mitkTensorImage.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/IODataStructures/TensorImages/mitkTensorImage.cpp rename to Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/TensorImages/mitkTensorImage.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/IODataStructures/mitkRegistrationObject.cpp b/Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/mitkRegistrationObject.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/IODataStructures/mitkRegistrationObject.cpp rename to Modules/DiffusionImaging/DiffusionCore/src/IODataStructures/mitkRegistrationObject.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/Rendering/mitkOdfNormalizationMethodProperty.cpp b/Modules/DiffusionImaging/DiffusionCore/src/Rendering/mitkOdfNormalizationMethodProperty.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Rendering/mitkOdfNormalizationMethodProperty.cpp rename to Modules/DiffusionImaging/DiffusionCore/src/Rendering/mitkOdfNormalizationMethodProperty.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/Rendering/mitkOdfScaleByProperty.cpp b/Modules/DiffusionImaging/DiffusionCore/src/Rendering/mitkOdfScaleByProperty.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Rendering/mitkOdfScaleByProperty.cpp rename to Modules/DiffusionImaging/DiffusionCore/src/Rendering/mitkOdfScaleByProperty.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/Rendering/mitkVectorImageVtkGlyphMapper3D.cpp b/Modules/DiffusionImaging/DiffusionCore/src/Rendering/mitkVectorImageVtkGlyphMapper3D.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Rendering/mitkVectorImageVtkGlyphMapper3D.cpp rename to Modules/DiffusionImaging/DiffusionCore/src/Rendering/mitkVectorImageVtkGlyphMapper3D.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/Rendering/vtkMaskedProgrammableGlyphFilter.cpp b/Modules/DiffusionImaging/DiffusionCore/src/Rendering/vtkMaskedProgrammableGlyphFilter.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Rendering/vtkMaskedProgrammableGlyphFilter.cpp rename to Modules/DiffusionImaging/DiffusionCore/src/Rendering/vtkMaskedProgrammableGlyphFilter.cpp diff --git a/Modules/DiffusionImaging/DiffusionCore/Rendering/vtkOdfSource.cxx b/Modules/DiffusionImaging/DiffusionCore/src/Rendering/vtkOdfSource.cxx similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Rendering/vtkOdfSource.cxx rename to Modules/DiffusionImaging/DiffusionCore/src/Rendering/vtkOdfSource.cxx diff --git a/Modules/DiffusionImaging/DiffusionCore/Rendering/vtkThickPlane.cxx b/Modules/DiffusionImaging/DiffusionCore/src/Rendering/vtkThickPlane.cxx similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/Rendering/vtkThickPlane.cxx rename to Modules/DiffusionImaging/DiffusionCore/src/Rendering/vtkThickPlane.cxx diff --git a/Modules/DiffusionImaging/DiffusionCore/mitkDiffusionFunctionCollection.cpp b/Modules/DiffusionImaging/DiffusionCore/src/mitkDiffusionFunctionCollection.cpp similarity index 100% rename from Modules/DiffusionImaging/DiffusionCore/mitkDiffusionFunctionCollection.cpp rename to Modules/DiffusionImaging/DiffusionCore/src/mitkDiffusionFunctionCollection.cpp diff --git a/Modules/DiffusionImaging/DiffusionIO/files.cmake b/Modules/DiffusionImaging/DiffusionIO/files.cmake index 7bbfaa8663..de7202ad67 100644 --- a/Modules/DiffusionImaging/DiffusionIO/files.cmake +++ b/Modules/DiffusionImaging/DiffusionIO/files.cmake @@ -1,47 +1,34 @@ 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 - mitkNrrdTensorImageReader.cpp - mitkNrrdTensorImageWriter.cpp - mitkTensorImageSerializer.cpp - mitkTensorImageSource.cpp mitkFiberTrackingObjectFactory.cpp mitkConnectomicsObjectFactory.cpp mitkQuantificationObjectFactory.cpp mitkNrrdTbssImageIOFactory.cpp - mitkDiffusionCoreObjectFactory.cpp mitkDiffusionIOMimeTypes.cpp - mitkDiffusionImageNrrdReaderService.cpp - mitkDiffusionImageNrrdWriterService.cpp - mitkDiffusionImageNiftiReaderService.cpp - mitkDiffusionImageNiftiWriterService.cpp - - mitkNrrdQBallImageReader.cpp - mitkNrrdQBallImageWriter.cpp - mitkQBallImageSerializer.cpp - mitkFiberBundleTrackVisReader.cpp mitkFiberBundleTrackVisWriter.cpp mitkFiberBundleVtkReader.cpp mitkFiberBundleVtkWriter.cpp mitkFiberBundleSerializer.cpp mitkFiberBundleMapper2D.cpp mitkFiberBundleMapper3D.cpp - mitkCompositeMapper.cpp + mitkPlanarFigureCompositeWriter.cpp mitkPlanarFigureCompositeReader.cpp mitkPlanarFigureCompositeSerializer.cpp + ) diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkDiffusionIOMimeTypes.cpp b/Modules/DiffusionImaging/DiffusionIO/mitkDiffusionIOMimeTypes.cpp index 16cbe4893e..a56974d30c 100644 --- a/Modules/DiffusionImaging/DiffusionIO/mitkDiffusionIOMimeTypes.cpp +++ b/Modules/DiffusionImaging/DiffusionIO/mitkDiffusionIOMimeTypes.cpp @@ -1,383 +1,162 @@ /*=================================================================== 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 namespace mitk { std::vector DiffusionIOMimeTypes::Get() { std::vector mimeTypes; // order matters here (descending rank for mime types) - mimeTypes.push_back(DWI_NRRD_MIMETYPE().Clone()); - mimeTypes.push_back(DWI_NIFTI_MIMETYPE().Clone()); - mimeTypes.push_back(DTI_MIMETYPE().Clone()); - mimeTypes.push_back(QBI_MIMETYPE().Clone()); - mimeTypes.push_back(FIBERBUNDLE_VTK_MIMETYPE().Clone()); mimeTypes.push_back(FIBERBUNDLE_TRK_MIMETYPE().Clone()); mimeTypes.push_back(CONNECTOMICS_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::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_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::DiffusionImageNrrdMimeType::DiffusionImageNrrdMimeType() - : CustomMimeType(DWI_NRRD_MIMETYPE_NAME()) -{ - std::string category = "Diffusion Weighted Image"; - this->SetCategory(category); - this->SetComment("Diffusion Weighted Images"); - - this->AddExtension("dwi"); - this->AddExtension("hdwi"); - this->AddExtension("nrrd"); -} - -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 - - std::string ext = this->GetExtension( path ); - ext = itksys::SystemTools::LowerCase( ext ); - - // Simple NRRD files should only be considered for this mime type if they contain - // corresponding tags - if( ext == ".nrrd" ) - { - itk::NrrdImageIO::Pointer io = itk::NrrdImageIO::New(); - 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; -} - -DiffusionIOMimeTypes::DiffusionImageNrrdMimeType* DiffusionIOMimeTypes::DiffusionImageNrrdMimeType::Clone() const -{ - return new DiffusionImageNrrdMimeType(*this); -} - - -DiffusionIOMimeTypes::DiffusionImageNrrdMimeType DiffusionIOMimeTypes::DWI_NRRD_MIMETYPE() -{ - return DiffusionImageNrrdMimeType(); -} - -DiffusionIOMimeTypes::DiffusionImageNiftiMimeType::DiffusionImageNiftiMimeType() - : CustomMimeType(DWI_NIFTI_MIMETYPE_NAME()) -{ - std::string category = "Diffusion Weighted Image"; - this->SetCategory(category); - this->SetComment("Diffusion Weighted Images"); - this->AddExtension("fsl"); - this->AddExtension("fslgz"); - this->AddExtension("nii"); - this->AddExtension("nii.gz"); -} - -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 = itksys::SystemTools::GetFilenamePath(path) + "/" - + this->GetFilenameWithoutExtension(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; - } - - canRead = false; - } - - return canRead; -} - -DiffusionIOMimeTypes::DiffusionImageNiftiMimeType* DiffusionIOMimeTypes::DiffusionImageNiftiMimeType::Clone() const -{ - return new DiffusionImageNiftiMimeType(*this); -} - - -DiffusionIOMimeTypes::DiffusionImageNiftiMimeType DiffusionIOMimeTypes::DWI_NIFTI_MIMETYPE() -{ - return DiffusionImageNiftiMimeType(); -} - -CustomMimeType DiffusionIOMimeTypes::DTI_MIMETYPE() -{ - CustomMimeType mimeType(DTI_MIMETYPE_NAME()); - std::string category = "Tensor Images"; - mimeType.SetComment("Diffusion Tensor Images"); - mimeType.SetCategory(category); - mimeType.AddExtension("dti"); - mimeType.AddExtension("hdti"); - return mimeType; -} - -CustomMimeType DiffusionIOMimeTypes::QBI_MIMETYPE() -{ - CustomMimeType mimeType(QBI_MIMETYPE_NAME()); - std::string category = "Q-Ball Images"; - mimeType.SetComment("Diffusion Q-Ball Images"); - mimeType.SetCategory(category); - mimeType.AddExtension("qbi"); - mimeType.AddExtension("hqbi"); - return mimeType; -} - 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::DWI_NRRD_MIMETYPE_NAME() -{ - static std::string name = IOMimeTypes::DEFAULT_BASE_NAME() + ".dwi"; - return name; -} - -std::string DiffusionIOMimeTypes::DWI_NIFTI_MIMETYPE_NAME() -{ - static std::string name = IOMimeTypes::DEFAULT_BASE_NAME() + ".fsl"; - return name; -} - -std::string DiffusionIOMimeTypes::DTI_MIMETYPE_NAME() -{ - static std::string name = IOMimeTypes::DEFAULT_BASE_NAME() + ".dti"; - return name; -} - -std::string DiffusionIOMimeTypes::QBI_MIMETYPE_NAME() -{ - static std::string name = IOMimeTypes::DEFAULT_BASE_NAME() + ".qbi"; - return name; -} - std::string DiffusionIOMimeTypes::FIBERBUNDLE_VTK_MIMETYPE_NAME() { static std::string name = IOMimeTypes::DEFAULT_BASE_NAME() + ".FiberBundle.vtk"; return name; } std::string DiffusionIOMimeTypes::FIBERBUNDLE_TRK_MIMETYPE_NAME() { static std::string name = IOMimeTypes::DEFAULT_BASE_NAME() + ".FiberBundle.trk"; 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; } // Descriptions std::string DiffusionIOMimeTypes::FIBERBUNDLE_MIMETYPE_DESCRIPTION() { static std::string description = "Fiberbundles"; return description; } -std::string DiffusionIOMimeTypes::DWI_NRRD_MIMETYPE_DESCRIPTION() -{ - static std::string description = "Diffusion Weighted Images"; - return description; -} - -std::string DiffusionIOMimeTypes::DWI_NIFTI_MIMETYPE_DESCRIPTION() -{ - static std::string description = "Diffusion Weighted Images"; - return description; -} - -std::string DiffusionIOMimeTypes::DTI_MIMETYPE_DESCRIPTION() -{ - static std::string description = "Diffusion Tensor Images"; - return description; -} - -std::string DiffusionIOMimeTypes::QBI_MIMETYPE_DESCRIPTION() -{ - static std::string description = "Q-Ball Images"; - 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; } } diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkDiffusionIOMimeTypes.h b/Modules/DiffusionImaging/DiffusionIO/mitkDiffusionIOMimeTypes.h index 7b3efeb789..ba3a78d7b7 100644 --- a/Modules/DiffusionImaging/DiffusionIO/mitkDiffusionIOMimeTypes.h +++ b/Modules/DiffusionImaging/DiffusionIO/mitkDiffusionIOMimeTypes.h @@ -1,106 +1,105 @@ /*=================================================================== 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 #include "mitkCustomMimeType.h" -#include #include namespace mitk { class DiffusionIOMimeTypes { public: - class MITKDIFFUSIONIO_EXPORT DiffusionImageNrrdMimeType : public CustomMimeType + class DiffusionImageNrrdMimeType : public CustomMimeType { public: DiffusionImageNrrdMimeType(); virtual bool AppliesTo(const std::string &path) const override; virtual DiffusionImageNrrdMimeType* Clone() const override; }; - class MITKDIFFUSIONIO_EXPORT DiffusionImageNiftiMimeType : public CustomMimeType + class DiffusionImageNiftiMimeType : public CustomMimeType { public: DiffusionImageNiftiMimeType(); virtual bool AppliesTo(const std::string &path) const override; virtual DiffusionImageNiftiMimeType* Clone() const override; }; // Get all Diffusion Mime Types static std::vector Get(); // ------------------------------ VTK formats ---------------------------------- static CustomMimeType FIBERBUNDLE_VTK_MIMETYPE(); static std::string FIBERBUNDLE_VTK_MIMETYPE_NAME(); static std::string FIBERBUNDLE_MIMETYPE_DESCRIPTION(); // ------------------------------ TrackVis formats ---------------------------------- static CustomMimeType FIBERBUNDLE_TRK_MIMETYPE(); static std::string FIBERBUNDLE_TRK_MIMETYPE_NAME(); // ------------------------- Image formats (ITK based) -------------------------- static DiffusionImageNrrdMimeType DWI_NRRD_MIMETYPE(); static DiffusionImageNiftiMimeType DWI_NIFTI_MIMETYPE(); static CustomMimeType DTI_MIMETYPE(); // dti, hdti static CustomMimeType QBI_MIMETYPE(); // qbi, hqbi static std::string DWI_NRRD_MIMETYPE_NAME(); static std::string DWI_NIFTI_MIMETYPE_NAME(); static std::string DTI_MIMETYPE_NAME(); static std::string QBI_MIMETYPE_NAME(); static std::string DWI_NRRD_MIMETYPE_DESCRIPTION(); static std::string DWI_NIFTI_MIMETYPE_DESCRIPTION(); static std::string DTI_MIMETYPE_DESCRIPTION(); static std::string QBI_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(); private: // purposely not implemented DiffusionIOMimeTypes(); DiffusionIOMimeTypes(const DiffusionIOMimeTypes&); }; } #endif // MITKDIFFUSIONIOMIMETYPES_H diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkDiffusionModuleActivator.cpp b/Modules/DiffusionImaging/DiffusionIO/mitkDiffusionModuleActivator.cpp index 38e6d63af6..cb38fbb5ae 100644 --- a/Modules/DiffusionImaging/DiffusionIO/mitkDiffusionModuleActivator.cpp +++ b/Modules/DiffusionImaging/DiffusionIO/mitkDiffusionModuleActivator.cpp @@ -1,159 +1,110 @@ /*=================================================================== 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 "mitkDiffusionIOMimeTypes.h" namespace mitk { /** \brief Registers services for segmentation module. */ class DiffusionModuleActivator : public us::ModuleActivator { public: void Load(us::ModuleContext* context) override { us::ServiceProperties props; props[ us::ServiceConstants::SERVICE_RANKING() ] = 10; m_MimeTypes = mitk::DiffusionIOMimeTypes::Get(); for (std::vector::const_iterator mimeTypeIter = m_MimeTypes.begin(), iterEnd = m_MimeTypes.end(); mimeTypeIter != iterEnd; ++mimeTypeIter) { context->RegisterService(*mimeTypeIter, props); } - m_DiffusionImageNrrdReaderService = new DiffusionImageNrrdReaderService(); - m_DiffusionImageNiftiReaderService = new DiffusionImageNiftiReaderService(); - m_NrrdTensorImageReader = new NrrdTensorImageReader(); - m_NrrdQBallImageReader = new NrrdQBallImageReader(); m_FiberBundleVtkReader = new FiberBundleVtkReader(); m_FiberBundleTrackVisReader = new FiberBundleTrackVisReader(); m_ConnectomicsNetworkReader = new ConnectomicsNetworkReader(); m_PlanarFigureCompositeReader = new PlanarFigureCompositeReader(); - m_DiffusionImageNrrdWriterService = new DiffusionImageNrrdWriterService(); - m_DiffusionImageNiftiWriterService = new DiffusionImageNiftiWriterService(); - m_NrrdTensorImageWriter = new NrrdTensorImageWriter(); - m_NrrdQBallImageWriter = new NrrdQBallImageWriter(); m_FiberBundleVtkWriter = new FiberBundleVtkWriter(); m_FiberBundleTrackVisWriter = new FiberBundleTrackVisWriter(); m_ConnectomicsNetworkWriter = new ConnectomicsNetworkWriter(); m_ConnectomicsNetworkCSVWriter = new ConnectomicsNetworkCSVWriter(); m_ConnectomicsNetworkMatrixWriter = new ConnectomicsNetworkMatrixWriter(); m_PlanarFigureCompositeWriter = new PlanarFigureCompositeWriter(); - - //register relevant properties - //non-persistent properties - mitk::CoreServices::GetPropertyDescriptions()->AddDescription(mitk::DiffusionPropertyHelper::BVALUEMAPPROPERTYNAME, "This map stores which b values belong to which gradients."); - mitk::CoreServices::GetPropertyDescriptions()->AddDescription(mitk::DiffusionPropertyHelper::ORIGINALGRADIENTCONTAINERPROPERTYNAME, "The original gradients used during acquisition. This property may be empty."); - //persistent properties - mitk::CoreServices::GetPropertyDescriptions()->AddDescription(mitk::DiffusionPropertyHelper::REFERENCEBVALUEPROPERTYNAME, "The reference b value the gradients are normalized to."); - mitk::CoreServices::GetPropertyDescriptions()->AddDescription(mitk::DiffusionPropertyHelper::MEASUREMENTFRAMEPROPERTYNAME, "The measurment frame used during acquisition."); - mitk::CoreServices::GetPropertyDescriptions()->AddDescription(mitk::DiffusionPropertyHelper::GRADIENTCONTAINERPROPERTYNAME, "The gradients used during acquisition."); - mitk::CoreServices::GetPropertyDescriptions()->AddDescription(mitk::DiffusionPropertyHelper::MODALITY, "Defines the modality used for acquisition. DWMRI signifies diffusion weighted images."); - - mitk::CoreServices::GetPropertyPersistence()->AddInfo(mitk::DiffusionPropertyHelper::REFERENCEBVALUEPROPERTYNAME, mitk::PropertyPersistenceInfo::New("DWMRI_b-value")); - mitk::CoreServices::GetPropertyPersistence()->AddInfo(mitk::DiffusionPropertyHelper::MEASUREMENTFRAMEPROPERTYNAME, mitk::PropertyPersistenceInfo::New("measurement frame")); - mitk::CoreServices::GetPropertyPersistence()->AddInfo(mitk::DiffusionPropertyHelper::GRADIENTCONTAINERPROPERTYNAME, mitk::PropertyPersistenceInfo::New("DWMRI_gradient")); - mitk::CoreServices::GetPropertyPersistence()->AddInfo(mitk::DiffusionPropertyHelper::MODALITY, mitk::PropertyPersistenceInfo::New("modality")); } 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_NrrdTensorImageReader; - delete m_NrrdQBallImageReader; delete m_FiberBundleVtkReader; delete m_FiberBundleTrackVisReader; delete m_ConnectomicsNetworkReader; delete m_PlanarFigureCompositeReader; - delete m_DiffusionImageNrrdWriterService; - delete m_DiffusionImageNiftiWriterService; - delete m_NrrdTensorImageWriter; - delete m_NrrdQBallImageWriter; delete m_FiberBundleVtkWriter; delete m_FiberBundleTrackVisWriter; delete m_ConnectomicsNetworkWriter; delete m_ConnectomicsNetworkCSVWriter; delete m_ConnectomicsNetworkMatrixWriter; delete m_PlanarFigureCompositeWriter; } private: - DiffusionImageNrrdReaderService * m_DiffusionImageNrrdReaderService; - DiffusionImageNiftiReaderService * m_DiffusionImageNiftiReaderService; - NrrdTensorImageReader * m_NrrdTensorImageReader; - NrrdQBallImageReader * m_NrrdQBallImageReader; FiberBundleVtkReader * m_FiberBundleVtkReader; FiberBundleTrackVisReader * m_FiberBundleTrackVisReader; ConnectomicsNetworkReader * m_ConnectomicsNetworkReader; PlanarFigureCompositeReader* m_PlanarFigureCompositeReader; - DiffusionImageNrrdWriterService * m_DiffusionImageNrrdWriterService; - DiffusionImageNiftiWriterService * m_DiffusionImageNiftiWriterService; - NrrdTensorImageWriter * m_NrrdTensorImageWriter; - NrrdQBallImageWriter * m_NrrdQBallImageWriter; FiberBundleVtkWriter * m_FiberBundleVtkWriter; FiberBundleTrackVisWriter * m_FiberBundleTrackVisWriter; ConnectomicsNetworkWriter * m_ConnectomicsNetworkWriter; ConnectomicsNetworkCSVWriter * m_ConnectomicsNetworkCSVWriter; ConnectomicsNetworkMatrixWriter * m_ConnectomicsNetworkMatrixWriter; PlanarFigureCompositeWriter* m_PlanarFigureCompositeWriter; std::vector m_MimeTypes; }; } US_EXPORT_MODULE_ACTIVATOR(mitk::DiffusionModuleActivator) diff --git a/Modules/DiffusionImaging/MiniApps/CMakeLists.txt b/Modules/DiffusionImaging/MiniApps/CMakeLists.txt index a2da041760..5b02b7e213 100755 --- a/Modules/DiffusionImaging/MiniApps/CMakeLists.txt +++ b/Modules/DiffusionImaging/MiniApps/CMakeLists.txt @@ -1,69 +1,57 @@ -option(BUILD_DiffusionMiniApps "Build commandline tools for diffusion" OFF) - if(BUILD_DiffusionMiniApps OR MITK_BUILD_ALL_APPS) # needed include directories include_directories( ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ) # list of diffusion miniapps # if an app requires additional dependencies # they are added after a "^^" and separated by "_" set( diffusionminiapps - DwiDenoising^^ - ImageResampler^^ NetworkCreation^^MitkFiberTracking_MitkConnectomics NetworkStatistics^^MitkConnectomics - ExportShImage^^ Fiberfox^^MitkFiberTracking MultishellMethods^^MitkFiberTracking PeaksAngularError^^MitkFiberTracking PeakExtraction^^MitkFiberTracking FiberExtraction^^MitkFiberTracking FiberProcessing^^MitkFiberTracking FiberDirectionExtraction^^MitkFiberTracking LocalDirectionalFiberPlausibility^^MitkFiberTracking StreamlineTracking^^MitkFiberTracking GibbsTracking^^MitkFiberTracking - CopyGeometry^^ - DiffusionIndices^^ TractometerMetrics^^MitkFiberTracking - QballReconstruction^^ - Registration^^ FileFormatConverter^^MitkFiberTracking - TensorReconstruction^^ - TensorDerivedMapsExtraction^^ - DiffusionDICOMLoader^^ DFTraining^^MitkFiberTracking DFTracking^^MitkFiberTracking ) foreach(diffusionminiapp ${diffusionminiapps}) # extract mini app name and dependencies string(REPLACE "^^" "\\;" miniapp_info ${diffusionminiapp}) set(miniapp_info_list ${miniapp_info}) list(GET miniapp_info_list 0 appname) list(GET miniapp_info_list 1 raw_dependencies) string(REPLACE "_" "\\;" dependencies "${raw_dependencies}") set(dependencies_list ${dependencies}) mitkFunctionCreateCommandLineApp( NAME ${appname} DEPENDS MitkCore MitkDiffusionCore ${dependencies_list} PACKAGE_DEPENDS ITK ) endforeach() # This mini app does not depend on mitkDiffusionImaging at all mitkFunctionCreateCommandLineApp( NAME Dicom2Nrrd DEPENDS MitkCore ${dependencies_list} ) if(EXECUTABLE_IS_ENABLED) MITK_INSTALL_TARGETS(EXECUTABLES ${EXECUTABLE_TARGET}) endif() endif()