diff --git a/Modules/DiffusionImaging/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageSerializer.cpp b/Modules/DiffusionImaging/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageSerializer.cpp new file mode 100644 index 0000000000..c7c16d1606 --- /dev/null +++ b/Modules/DiffusionImaging/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageSerializer.cpp @@ -0,0 +1,75 @@ +/*========================================================================= + +Program: Medical Imaging & Interaction Toolkit +Language: C++ +Date: $Date$ +Version: $Revision: 1.12 $ + +Copyright (c) German Cancer Research Center, Division of Medical and +Biological Informatics. All rights reserved. +See MITKCopyright.txt or http://www.mitk.org/copyright.html for details. + +This software is distributed WITHOUT ANY WARRANTY; without even +the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#include "mitkDiffusionImageSerializer.h" +#include "mitkDiffusionImage.h" +#include "mitkNrrdDiffusionImageWriter.h" + +#include + + +MITK_REGISTER_SERIALIZER(DiffusionImageSerializer) + + +mitk::DiffusionImageSerializer::DiffusionImageSerializer() +{ +} + + +mitk::DiffusionImageSerializer::~DiffusionImageSerializer() +{ +} + + +std::string mitk::DiffusionImageSerializer::Serialize() +{ + const DiffusionImage* image = dynamic_cast*>( m_Data.GetPointer() ); + if (image == NULL) + { + MITK_ERROR << " Object at " << (const void*) this->m_Data + << " is not an mitk::DiffusionImage. Cannot serialize as DiffusionImage."; + return ""; + } + + std::string filename( this->GetUniqueFilenameInWorkingDirectory() ); + filename += "_"; + filename += m_FilenameHint; + filename += ".dwi"; + + std::string fullname(m_WorkingDirectory); + fullname += "/"; + fullname += itksys::SystemTools::ConvertToOutputPath(filename.c_str()); + + try + { + NrrdDiffusionImageWriter::Pointer writer = NrrdDiffusionImageWriter::New(); + writer->SetFileName(fullname); + writer->SetInput(const_cast*>(image)); + writer->Write(); + } + catch (std::exception& e) + { + MITK_ERROR << " Error serializing object at " << (const void*) this->m_Data + << " to " + << fullname + << ": " + << e.what(); + return ""; + } + return filename; +} + diff --git a/Modules/DiffusionImaging/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageSerializer.h b/Modules/DiffusionImaging/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageSerializer.h new file mode 100644 index 0000000000..9ff389ec7b --- /dev/null +++ b/Modules/DiffusionImaging/IODataStructures/DiffusionWeightedImages/mitkDiffusionImageSerializer.h @@ -0,0 +1,40 @@ +/*========================================================================= + +Program: Medical Imaging & Interaction Toolkit +Language: C++ +Date: $Date$ +Version: $Revision: 1.12 $ + +Copyright (c) German Cancer Research Center, Division of Medical and +Biological Informatics. All rights reserved. +See MITKCopyright.txt or http://www.mitk.org/copyright.html for details. + +This software is distributed WITHOUT ANY WARRANTY; without even +the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#ifndef mitkDiffusionImageSerializer_h_included +#define mitkDiffusionImageSerializer_h_included + +#include "MitkDiffusionImagingExports.h" +#include "mitkBaseDataSerializer.h" + +namespace mitk +{ +/** + \brief Serializes mitk::Surface for mitk::SceneIO +*/ +class MitkDiffusionImaging_EXPORT DiffusionImageSerializer : public BaseDataSerializer +{ + public: + mitkClassMacro( DiffusionImageSerializer, BaseDataSerializer ); + itkNewMacro(Self); + virtual std::string Serialize(); + protected: + DiffusionImageSerializer(); + virtual ~DiffusionImageSerializer(); +}; +} // namespace +#endif diff --git a/Modules/DiffusionImaging/IODataStructures/QBallImages/mitkNrrdQBallImageSerializer.cpp b/Modules/DiffusionImaging/IODataStructures/QBallImages/mitkNrrdQBallImageSerializer.cpp new file mode 100644 index 0000000000..5e9bc6d6f1 --- /dev/null +++ b/Modules/DiffusionImaging/IODataStructures/QBallImages/mitkNrrdQBallImageSerializer.cpp @@ -0,0 +1,75 @@ +/*========================================================================= + +Program: Medical Imaging & Interaction Toolkit +Language: C++ +Date: $Date$ +Version: $Revision: 1.12 $ + +Copyright (c) German Cancer Research Center, Division of Medical and +Biological Informatics. All rights reserved. +See MITKCopyright.txt or http://www.mitk.org/copyright.html for details. + +This software is distributed WITHOUT ANY WARRANTY; without even +the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#include "mitkNrrdQBallImageSerializer.h" +#include "mitkQBallImage.h" +#include "mitkNrrdQBallImageWriter.h" + +#include + + +MITK_REGISTER_SERIALIZER(NrrdQBallImageSerializer) + + +mitk::NrrdQBallImageSerializer::NrrdQBallImageSerializer() +{ +} + + +mitk::NrrdQBallImageSerializer::~NrrdQBallImageSerializer() +{ +} + + +std::string mitk::NrrdQBallImageSerializer::Serialize() +{ + const QBallImage* image = dynamic_cast( m_Data.GetPointer() ); + if (image == NULL) + { + MITK_ERROR << " Object at " << (const void*) this->m_Data + << " is not an mitk::NrrdQBallImage. Cannot serialize as NrrdQBallImage."; + return ""; + } + + std::string filename( this->GetUniqueFilenameInWorkingDirectory() ); + filename += "_"; + filename += m_FilenameHint; + filename += ".dwi"; + + std::string fullname(m_WorkingDirectory); + fullname += "/"; + fullname += itksys::SystemTools::ConvertToOutputPath(filename.c_str()); + + try + { + NrrdQBallImageWriter::Pointer writer = NrrdQBallImageWriter::New(); + writer->SetFileName(fullname); + writer->SetInput(const_cast(image)); + writer->Write(); + } + catch (std::exception& e) + { + MITK_ERROR << " Error serializing object at " << (const void*) this->m_Data + << " to " + << fullname + << ": " + << e.what(); + return ""; + } + return filename; +} + diff --git a/Modules/DiffusionImaging/IODataStructures/QBallImages/mitkNrrdQBallImageSerializer.h b/Modules/DiffusionImaging/IODataStructures/QBallImages/mitkNrrdQBallImageSerializer.h new file mode 100644 index 0000000000..7ce68581fb --- /dev/null +++ b/Modules/DiffusionImaging/IODataStructures/QBallImages/mitkNrrdQBallImageSerializer.h @@ -0,0 +1,40 @@ +/*========================================================================= + +Program: Medical Imaging & Interaction Toolkit +Language: C++ +Date: $Date$ +Version: $Revision: 1.12 $ + +Copyright (c) German Cancer Research Center, Division of Medical and +Biological Informatics. All rights reserved. +See MITKCopyright.txt or http://www.mitk.org/copyright.html for details. + +This software is distributed WITHOUT ANY WARRANTY; without even +the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#ifndef mitkNrrdQBallImageSerializer_h_included +#define mitkNrrdQBallImageSerializer_h_included + +#include "MitkDiffusionImagingExports.h" +#include "mitkBaseDataSerializer.h" + +namespace mitk +{ +/** + \brief Serializes mitk::Surface for mitk::SceneIO +*/ +class MitkDiffusionImaging_EXPORT NrrdQBallImageSerializer : public BaseDataSerializer +{ + public: + mitkClassMacro( NrrdQBallImageSerializer, BaseDataSerializer ); + itkNewMacro(Self); + virtual std::string Serialize(); + protected: + NrrdQBallImageSerializer(); + virtual ~NrrdQBallImageSerializer(); +}; +} // namespace +#endif diff --git a/Modules/DiffusionImaging/IODataStructures/TensorImages/mitkNrrdTensorImageSerializer.cpp b/Modules/DiffusionImaging/IODataStructures/TensorImages/mitkNrrdTensorImageSerializer.cpp new file mode 100644 index 0000000000..dacbd2de8b --- /dev/null +++ b/Modules/DiffusionImaging/IODataStructures/TensorImages/mitkNrrdTensorImageSerializer.cpp @@ -0,0 +1,75 @@ +/*========================================================================= + +Program: Medical Imaging & Interaction Toolkit +Language: C++ +Date: $Date$ +Version: $Revision: 1.12 $ + +Copyright (c) German Cancer Research Center, Division of Medical and +Biological Informatics. All rights reserved. +See MITKCopyright.txt or http://www.mitk.org/copyright.html for details. + +This software is distributed WITHOUT ANY WARRANTY; without even +the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#include "mitkNrrdTensorImageSerializer.h" +#include "mitkTensorImage.h" +#include "mitkNrrdTensorImageWriter.h" + +#include + + +MITK_REGISTER_SERIALIZER(NrrdTensorImageSerializer) + + +mitk::NrrdTensorImageSerializer::NrrdTensorImageSerializer() +{ +} + + +mitk::NrrdTensorImageSerializer::~NrrdTensorImageSerializer() +{ +} + + +std::string mitk::NrrdTensorImageSerializer::Serialize() +{ + const TensorImage* image = dynamic_cast( m_Data.GetPointer() ); + if (image == NULL) + { + MITK_ERROR << " Object at " << (const void*) this->m_Data + << " is not an mitk::NrrdTensorImage. Cannot serialize as NrrdTensorImage."; + return ""; + } + + std::string filename( this->GetUniqueFilenameInWorkingDirectory() ); + filename += "_"; + filename += m_FilenameHint; + filename += ".dwi"; + + std::string fullname(m_WorkingDirectory); + fullname += "/"; + fullname += itksys::SystemTools::ConvertToOutputPath(filename.c_str()); + + try + { + NrrdTensorImageWriter::Pointer writer = NrrdTensorImageWriter::New(); + writer->SetFileName(fullname); + writer->SetInput(const_cast(image)); + writer->Write(); + } + catch (std::exception& e) + { + MITK_ERROR << " Error serializing object at " << (const void*) this->m_Data + << " to " + << fullname + << ": " + << e.what(); + return ""; + } + return filename; +} + diff --git a/Modules/DiffusionImaging/IODataStructures/TensorImages/mitkNrrdTensorImageSerializer.h b/Modules/DiffusionImaging/IODataStructures/TensorImages/mitkNrrdTensorImageSerializer.h new file mode 100644 index 0000000000..428f3d02be --- /dev/null +++ b/Modules/DiffusionImaging/IODataStructures/TensorImages/mitkNrrdTensorImageSerializer.h @@ -0,0 +1,40 @@ +/*========================================================================= + +Program: Medical Imaging & Interaction Toolkit +Language: C++ +Date: $Date$ +Version: $Revision: 1.12 $ + +Copyright (c) German Cancer Research Center, Division of Medical and +Biological Informatics. All rights reserved. +See MITKCopyright.txt or http://www.mitk.org/copyright.html for details. + +This software is distributed WITHOUT ANY WARRANTY; without even +the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#ifndef mitkNrrdTensorImageSerializer_h_included +#define mitkNrrdTensorImageSerializer_h_included + +#include "MitkDiffusionImagingExports.h" +#include "mitkBaseDataSerializer.h" + +namespace mitk +{ +/** + \brief Serializes mitk::Surface for mitk::SceneIO +*/ +class MitkDiffusionImaging_EXPORT NrrdTensorImageSerializer : public BaseDataSerializer +{ + public: + mitkClassMacro( NrrdTensorImageSerializer, BaseDataSerializer ); + itkNewMacro(Self); + virtual std::string Serialize(); + protected: + NrrdTensorImageSerializer(); + virtual ~NrrdTensorImageSerializer(); +}; +} // namespace +#endif diff --git a/Modules/DiffusionImaging/files.cmake b/Modules/DiffusionImaging/files.cmake index 9884e4acef..3749e4b850 100644 --- a/Modules/DiffusionImaging/files.cmake +++ b/Modules/DiffusionImaging/files.cmake @@ -1,75 +1,78 @@ SET(CPP_FILES # Algorithms Algorithms/itkDiffusionQballGeneralizedFaImageFilter.h Algorithms/itkDiffusionQballPrepareVisualizationImageFilter.h Algorithms/itkTensorDerivedMeasurementsFilter.h Algorithms/itkBrainMaskExtractionImageFilter.h Algorithms/itkB0ImageExtractionImageFilter.h Algorithms/itkTensorImageToDiffusionImageFilter.h Algorithms/itkTensorToL2NormImageFilter.h # DicomImport DicomImport/mitkDicomDiffusionImageReader.cpp DicomImport/mitkGroupDiffusionHeadersFilter.cpp DicomImport/mitkDicomDiffusionImageHeaderReader.cpp DicomImport/mitkGEDicomDiffusionImageHeaderReader.cpp DicomImport/mitkPhilipsDicomDiffusionImageHeaderReader.cpp DicomImport/mitkSiemensDicomDiffusionImageHeaderReader.cpp DicomImport/mitkSiemensMosaicDicomDiffusionImageHeaderReader.cpp # DataStructures IODataStructures/mitkDiffusionImagingObjectFactory.cpp # DataStructures -> DWI IODataStructures/DiffusionWeightedImages/mitkDiffusionImageHeaderInformation.cpp IODataStructures/DiffusionWeightedImages/mitkDiffusionImageSource.cpp IODataStructures/DiffusionWeightedImages/mitkNrrdDiffusionImageReader.cpp IODataStructures/DiffusionWeightedImages/mitkNrrdDiffusionImageWriter.cpp IODataStructures/DiffusionWeightedImages/mitkNrrdDiffusionImageIOFactory.cpp IODataStructures/DiffusionWeightedImages/mitkNrrdDiffusionImageWriterFactory.cpp + IODataStructures/DiffusionWeightedImages/mitkDiffusionImageSerializer.cpp # DataStructures -> QBall IODataStructures/QBallImages/mitkQBallImageSource.cpp IODataStructures/QBallImages/mitkNrrdQBallImageReader.cpp IODataStructures/QBallImages/mitkNrrdQBallImageWriter.cpp IODataStructures/QBallImages/mitkNrrdQBallImageIOFactory.cpp IODataStructures/QBallImages/mitkNrrdQBallImageWriterFactory.cpp IODataStructures/QBallImages/mitkQBallImage.cpp + IODataStructures/QBallImages/mitkNrrdQBallImageSerializer.cpp # DataStructures -> Tensor IODataStructures/TensorImages/mitkTensorImageSource.cpp IODataStructures/TensorImages/mitkNrrdTensorImageReader.cpp IODataStructures/TensorImages/mitkNrrdTensorImageWriter.cpp IODataStructures/TensorImages/mitkNrrdTensorImageIOFactory.cpp IODataStructures/TensorImages/mitkNrrdTensorImageWriterFactory.cpp IODataStructures/TensorImages/mitkTensorImage.cpp + IODataStructures/TensorImages/mitkNrrdTensorImageSerializer.cpp # Rendering Rendering/vtkMaskedProgrammableGlyphFilter.cpp Rendering/mitkCompositeMapper.cpp Rendering/mitkVectorImageVtkGlyphMapper3D.cpp Rendering/vtkOdfSource.cxx Rendering/vtkThickPlane.cxx Rendering/mitkOdfNormalizationMethodProperty.cpp Rendering/mitkOdfScaleByProperty.cpp ) SET(H_FILES Rendering/mitkDiffusionImageMapper.h Reconstruction/itkDiffusionQballReconstructionImageFilter.h Reconstruction/mitkTeemDiffusionTensor3DReconstructionImageFilter.h Reconstruction/itkAnalyticalDiffusionQballReconstructionImageFilter.h Reconstruction/itkPointShell.h Reconstruction/itkOrientationDistributionFunction.h IODataStructures/DiffusionWeightedImages/mitkDiffusionImage.h Rendering/mitkOdfVtkMapper2D.h ) SET( TOOL_FILES ) IF(WIN32) ENDIF(WIN32) #MITK_MULTIPLEX_PICTYPE( Algorithms/mitkImageRegistrationMethod-TYPE.cpp )