ITK
5.4.0
Insight Toolkit
ITK
Modules
IO
MINC
include
itkMINCImageIO.h
Go to the documentation of this file.
1
/*=========================================================================
2
*
3
* Copyright NumFOCUS
4
*
5
* Licensed under the Apache License, Version 2.0 (the "License");
6
* you may not use this file except in compliance with the License.
7
* You may obtain a copy of the License at
8
*
9
* https://www.apache.org/licenses/LICENSE-2.0.txt
10
*
11
* Unless required by applicable law or agreed to in writing, software
12
* distributed under the License is distributed on an "AS IS" BASIS,
13
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
* See the License for the specific language governing permissions and
15
* limitations under the License.
16
*
17
*=========================================================================*/
27
#ifndef itkMINCImageIO_h
28
#define itkMINCImageIO_h
29
30
#include "
itkImageIOBase.h
"
31
32
#include "
itkMatrix.h
"
33
34
#include "ITKIOMINCExport.h"
35
36
namespace
itk
37
{
38
39
// Structure for "Pointer to Implementation" or "Private
40
// Implementation" to hide MINC data from the ITK interface.
41
struct
ITKIOMINC_HIDDEN
MINCImageIOPImpl
;
42
70
class
ITKIOMINC_EXPORT
MINCImageIO
:
public
ImageIOBase
71
{
72
public
:
73
ITK_DISALLOW_COPY_AND_MOVE(
MINCImageIO
);
74
76
using
Self
=
MINCImageIO
;
77
using
Superclass
=
ImageIOBase
;
78
using
Pointer
=
SmartPointer<Self>
;
79
using
MatrixType
=
Matrix<float, 3, 3>
;
80
82
itkNewMacro(
Self
);
83
85
itkTypeMacro(
MINCImageIO
,
Superclass
);
86
88
bool
89
SupportsDimension
(
unsigned
long
dim)
override
90
{
91
return
dim < 4;
92
}
93
94
/*-------- This part of the interface deals with reading data. ------ */
95
98
bool
99
CanReadFile(
const
char
*)
override
;
100
102
void
103
ReadImageInformation()
override
;
104
106
void
107
Read(
void
* buffer)
override
;
108
109
/*-------- This part of the interfaces deals with writing data. ----- */
110
113
bool
114
CanWriteFile(
const
char
*)
override
;
115
118
void
119
WriteImageInformation()
override
;
120
123
void
124
Write(
const
void
* buffer)
override
;
125
126
protected
:
127
MINCImageIO
();
128
~
MINCImageIO
()
override
;
129
130
void
131
PrintSelf(std::ostream & os,
Indent
indent)
const override
;
132
133
void
134
WriteSlice(std::string & fileName,
const
void
* buffer);
135
138
void
139
AllocateDimensions(
int
nDims);
140
142
void
143
CleanupDimensions();
144
146
void
147
CloseVolume();
148
149
private
:
150
MINCImageIOPImpl
* m_MINCPImpl{};
151
152
MatrixType
m_DirectionCosines{};
153
154
// complex type images, composed of complex numbers
155
// int m_Complex;
156
};
157
}
// end namespace itk
158
159
#endif // itkMINCImageIO_h
itk::ImageIOBase
Abstract superclass defines image IO interface.
Definition:
itkImageIOBase.h:77
itkMatrix.h
itk::SmartPointer< Self >
itk::Indent
Control indentation during Print() invocation.
Definition:
itkIndent.h:49
itk::MINCImageIOPImpl
struct ITKIOMINC_HIDDEN MINCImageIOPImpl
Definition:
itkMINCImageIO.h:41
itk::MINCImageIO::SupportsDimension
bool SupportsDimension(unsigned long dim) override
Definition:
itkMINCImageIO.h:89
itk::LightObject
Light weight base class for most itk classes.
Definition:
itkLightObject.h:55
itk::MINCImageIO
Class that defines how to read MINC file format.
Definition:
itkMINCImageIO.h:70
itkImageIOBase.h
itk::Matrix< float, 3, 3 >
itk
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
Definition:
itkAnnulusOperator.h:24
itk::Object
Base class for most ITK classes.
Definition:
itkObject.h:61
Generated on
unknown
for ITK by
1.8.16