25 #ifndef itkHDF5ImageIO_h
26 #define itkHDF5ImageIO_h
27 #include "ITKIOHDF5Export.h"
109 virtual bool CanReadFile(
const char *FileNameToRead) ITK_OVERRIDE;
112 virtual void ReadImageInformation() ITK_OVERRIDE;
115 virtual
void Read(
void *buffer) ITK_OVERRIDE;
125 virtual
bool CanWriteFile(const
char *FileNameToWrite) ITK_OVERRIDE;
128 virtual
void WriteImageInformation() ITK_OVERRIDE;
132 virtual
void Write(const
void *buffer) ITK_OVERRIDE;
136 ~HDF5ImageIO() ITK_OVERRIDE;
138 virtual
SizeType GetHeaderSize(
void) const ITK_OVERRIDE;
140 virtual
void PrintSelf(std::ostream & os,
Indent indent) const ITK_OVERRIDE;
143 ITK_DISALLOW_COPY_AND_ASSIGN(HDF5ImageIO);
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);
157 void WriteScalar(const std::
string &path,
158 const
long long &value);
159 void WriteScalar(const std::
string &path,
160 const
unsigned long long &value);
162 template <typename TScalar>
163 void WriteScalar(const std::
string &path,
164 const TScalar &value);
166 template <typename TScalar>
167 TScalar ReadScalar(const std::
string &DataSetName);
169 template <typename TScalar>
170 void WriteVector(const std::
string &path,
171 const std::vector<TScalar> &vec);
173 template <typename TScalar>
174 std::vector<TScalar> ReadVector(const std::
string &DataSetName);
176 void WriteDirections(const std::
string &path,
177 const std::vector<std::vector<
double> > &dir);
179 std::vector<std::vector<
double> > ReadDirections(const std::
string &path);
181 template <typename TType>
182 bool WriteMeta(const std::
string &name,
184 template <typename TType>
185 bool WriteMetaArray(const std::
string &name,
187 template <typename TType>
189 const std::
string &HDFPath,
190 const std::
string &name,
191 unsigned long numElements);
192 void SetupStreaming(H5::DataSpace *imageSpace,
193 H5::DataSpace *slabSpace);
198 H5::H5File *m_H5File;
199 H5::DataSet *m_VoxelDataSet;
200 bool m_ImageInformationWritten;
204 #endif // itkHDF5ImageIO_h
Light weight base class for most itk classes.
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...
StreamingImageIOBase Superclass