25 #ifndef itkHDF5ImageIO_h
26 #define itkHDF5ImageIO_h
27 #include "ITKIOHDF5Export.h"
46 class MetaDataObjectBase;
47 class MetaDataDictionary;
108 virtual bool CanReadFile(
const char *FileNameToRead) ITK_OVERRIDE;
111 virtual void ReadImageInformation() ITK_OVERRIDE;
114 virtual
void Read(
void *buffer) ITK_OVERRIDE;
124 virtual
bool CanWriteFile(const
char *FileNameToWrite) ITK_OVERRIDE;
127 virtual
void WriteImageInformation() ITK_OVERRIDE;
131 virtual
void Write(const
void *buffer) ITK_OVERRIDE;
137 virtual
SizeType GetHeaderSize(
void) const ITK_OVERRIDE;
139 virtual
void PrintSelf(std::ostream & os,
Indent indent) const ITK_OVERRIDE;
142 HDF5ImageIO(const
Self &) ITK_DELETE_FUNCTION;
143 void operator=(const
Self &) ITK_DELETE_FUNCTION;
145 void WriteString(const std::
string &path,
146 const std::
string &value);
147 void WriteString(const std::
string &path,
149 std::
string ReadString(const std::
string &path);
151 void WriteScalar(const std::
string &path,
153 void WriteScalar(const std::
string &path,
155 void WriteScalar(const std::
string &path,
156 const
unsigned long &value);
158 template <typename TScalar>
159 void WriteScalar(const std::
string &path,
160 const TScalar &value);
162 template <typename TScalar>
163 TScalar ReadScalar(const std::
string &DataSetName);
165 template <typename TScalar>
166 void WriteVector(const std::
string &path,
167 const std::vector<TScalar> &vec);
169 template <typename TScalar>
170 std::vector<TScalar> ReadVector(const std::
string &DataSetName);
172 void WriteDirections(const std::
string &path,
173 const std::vector<std::vector<
double> > &dir);
175 std::vector<std::vector<
double> > ReadDirections(const std::
string &path);
177 template <typename TType>
178 bool WriteMeta(const std::
string &name,
180 template <typename TType>
181 bool WriteMetaArray(const std::
string &name,
183 template <typename TType>
185 const std::
string &HDFPath,
186 const std::
string &name,
187 unsigned long numElements);
188 void SetupStreaming(H5::DataSpace *imageSpace,
189 H5::DataSpace *slabSpace);
190 H5::H5File *m_H5File;
191 H5::DataSet *m_VoxelDataSet;
192 bool m_ImageInformationWritten;
196 #endif // itkHDF5ImageIO_h
Light weight base class for most itk classes.
Abstract superclass defines image IO interface.
SmartPointer< Self > Pointer
A base class for specific ImageIO file formats which support streaming.
Control indentation during Print() invocation.
Class that defines how to read HDF5 file format. HDF5 IMAGE FILE FORMAT - As much information as I ca...
Base class for most ITK classes.