Medical Imaging Interaction Toolkit  2025.12.02
Medical Imaging Interaction Toolkit
mitkItkImageIO.h
Go to the documentation of this file.
1 /*============================================================================
2 
3 The Medical Imaging Interaction Toolkit (MITK)
4 
5 Copyright (c) German Cancer Research Center (DKFZ)
6 All rights reserved.
7 
8 Use of this source code is governed by a 3-clause BSD license that can be
9 found in the LICENSE file.
10 
11 ============================================================================*/
12 
13 #ifndef mitkItkImageIO_h
14 #define mitkItkImageIO_h
15 
16 #include "mitkAbstractFileIO.h"
17 #include <mitkImage.h>
18 #include <itkImageIOBase.h>
19 
20 namespace mitk
21 {
34  {
35  public:
36  ItkImageIO(itk::ImageIOBase::Pointer imageIO);
37  ItkImageIO(const CustomMimeType &mimeType, itk::ImageIOBase::Pointer imageIO, int rank);
38 
39  // -------------- AbstractFileReader -------------
40 
42 
44 
45  // -------------- AbstractFileWriter -------------
46 
47  void Write() override;
49 
57  static PropertyList::Pointer ExtractMetaDataAsPropertyList(const itk::MetaDataDictionary& dictionary, const std::string& mimeTypeName, const std::vector<std::string>& defaultMetaDataKeys);
58 
61  static Image::Pointer LoadRawMitkImageFromImageIO(itk::ImageIOBase* imageIO, const std::string& path);
62 
64  static void PreparImageIOToWriteImage(itk::ImageIOBase* imageIO, const Image* image);
65 
66  static void SavePropertyListAsMetaData(itk::MetaDataDictionary& dictionary, const PropertyList* properties, const std::string& mimeTypeName);
67 
68 
69  protected:
70  virtual std::vector<std::string> FixUpImageIOExtensions(const std::string &imageIOName);
71  virtual void FixUpCustomMimeTypeName(const std::string &imageIOName, CustomMimeType &customMimeType);
72 
73  // Fills the m_DefaultMetaDataKeys vector with default values
75 
76  // -------------- AbstractFileReader -------------
77  std::vector<itk::SmartPointer<BaseData>> DoRead() override;
78 
79  private:
80  ItkImageIO(const ItkImageIO &other);
81 
82  ItkImageIO *IOClone() const override;
83 
84  itk::ImageIOBase::Pointer m_ImageIO;
85 
86  std::vector<std::string> m_DefaultMetaDataKeys;
87  };
88 
91  MITKCORE_EXPORT std::vector<TimePointType> ConvertMetaDataObjectToTimePointList(const itk::MetaDataObjectBase* data);
92 
93 
97  MITKCORE_EXPORT itk::MetaDataObjectBase::Pointer ConvertTimePointListToMetaDataObject(const mitk::TimeGeometry* timeGeometry);
98 
99 } // namespace mitk
100 
101 #endif
#define MITKCORE_EXPORT
Abstract class for implementing a reader and writer.
std::vector< itk::SmartPointer< BaseData > > Read() override
Reads a path or stream and creates a list of BaseData objects.
The CustomMimeType class represents a custom mime-type which may be registered as a service object....
Image class for storing images.
Definition: mitkImage.h:70
virtual void FixUpCustomMimeTypeName(const std::string &imageIOName, CustomMimeType &customMimeType)
ItkImageIO(itk::ImageIOBase::Pointer imageIO)
static Image::Pointer LoadRawMitkImageFromImageIO(itk::ImageIOBase *imageIO, const std::string &path)
ConfidenceLevel GetReaderConfidenceLevel() const override
static void PreparImageIOToWriteImage(itk::ImageIOBase *imageIO, const Image *image)
static void SavePropertyListAsMetaData(itk::MetaDataDictionary &dictionary, const PropertyList *properties, const std::string &mimeTypeName)
void Write() override
Write the base data to the specified location or output stream.
ItkImageIO(const CustomMimeType &mimeType, itk::ImageIOBase::Pointer imageIO, int rank)
virtual void InitializeDefaultMetaDataKeys()
std::vector< itk::SmartPointer< BaseData > > DoRead() override
static PropertyList::Pointer ExtractMetaDataAsPropertyList(const itk::MetaDataDictionary &dictionary, const std::string &mimeTypeName, const std::vector< std::string > &defaultMetaDataKeys)
virtual std::vector< std::string > FixUpImageIOExtensions(const std::string &imageIOName)
ConfidenceLevel GetWriterConfidenceLevel() const override
Key-value list holding instances of BaseProperty.
Find image slices visible on a given plane.
MITKCORE_EXPORT itk::MetaDataObjectBase::Pointer ConvertTimePointListToMetaDataObject(const mitk::TimeGeometry *timeGeometry)
MITKCORE_EXPORT std::vector< TimePointType > ConvertMetaDataObjectToTimePointList(const itk::MetaDataObjectBase *data)
ConfidenceLevel
A confidence level describing the confidence of the reader or writer in handling the given data.
Definition: mitkIFileIO.h:46