VTK
vtkNIFTIImageReader.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkNIFTIImageReader.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
37 #ifndef vtkNIFTIImageReader_h
38 #define vtkNIFTIImageReader_h
39 
40 #include "vtkIOImageModule.h" // For export macro
41 #include "vtkImageReader2.h"
42 
44 class vtkMatrix4x4;
45 
46 struct nifti_1_header;
47 
48 //----------------------------------------------------------------------------
50 {
51 public:
53 
57 
59  virtual void PrintSelf(ostream& os, vtkIndent indent);
60 
62 
63  virtual const char* GetFileExtensions() {
64  return ".nii .nii.gz .img .img.gz .hdr .hdr.gz"; }
66 
68 
69  virtual const char* GetDescriptiveName() {
70  return "NIfTI"; }
72 
74  int CanReadFile(const char* filename);
75 
77 
82  vtkGetMacro(TimeAsVector, bool);
83  vtkSetMacro(TimeAsVector, bool);
84  vtkBooleanMacro(TimeAsVector, bool);
86 
88 
89  int GetTimeDimension() { return this->Dim[4]; }
90  double GetTimeSpacing() { return this->PixDim[4]; }
92 
94 
99  double GetRescaleSlope() { return this->RescaleSlope; }
100  double GetRescaleIntercept() { return this->RescaleIntercept; }
102 
104 
110  vtkGetMacro(PlanarRGB, bool);
111  vtkSetMacro(PlanarRGB, bool);
112  vtkBooleanMacro(PlanarRGB, bool);
114 
123  double GetQFac() { return this->QFac; }
124 
136  vtkMatrix4x4 *GetQFormMatrix() { return this->QFormMatrix; }
137 
151  vtkMatrix4x4 *GetSFormMatrix() { return this->SFormMatrix; }
152 
155 
156 protected:
159 
161 
162  virtual int RequestInformation(
163  vtkInformation* request, vtkInformationVector** inputVector,
164  vtkInformationVector* outputVector);
166 
168 
169  virtual int RequestData(
170  vtkInformation* request, vtkInformationVector** inputVector,
171  vtkInformationVector* outputVector);
173 
177  static bool CheckExtension(const char *fname, const char *ext);
178 
180 
186  static char *ReplaceExtension(
187  const char *fname, const char *ext1, const char *ext2);
189 
191  static int CheckNIFTIVersion(const nifti_1_header *hdr);
192 
194  static bool CheckAnalyzeHeader(const nifti_1_header *hdr);
195 
198 
200 
202  double RescaleSlope;
204 
207  double QFac;
208 
210 
214 
216  int Dim[8];
217 
219  double PixDim[8];
220 
223 
225  bool PlanarRGB;
226 
227 private:
228  vtkNIFTIImageReader(const vtkNIFTIImageReader&); // Not implemented.
229  void operator=(const vtkNIFTIImageReader&); // Not implemented.
230 };
231 
232 #endif // vtkNIFTIImageReader_h
vtkNIFTIImageReader::GetTimeDimension
int GetTimeDimension()
Definition: vtkNIFTIImageReader.h:89
vtkInformationVector
Store zero or more vtkInformation instances.
Definition: vtkInformationVector.h:41
vtkNIFTIImageReader::GetSFormMatrix
vtkMatrix4x4 * GetSFormMatrix()
Definition: vtkNIFTIImageReader.h:151
vtkNIFTIImageReader::GetFileExtensions
virtual const char * GetFileExtensions()
Definition: vtkNIFTIImageReader.h:63
vtkNIFTIImageReader::ReplaceExtension
static char * ReplaceExtension(const char *fname, const char *ext1, const char *ext2)
vtkIOImageModule.h
vtkTypeMacro
#define vtkTypeMacro(thisClass, superclass)
Definition: vtkSetGet.h:642
vtkNIFTIImageReader::RescaleSlope
double RescaleSlope
Definition: vtkNIFTIImageReader.h:202
vtkNIFTIImageReader::GetDescriptiveName
virtual const char * GetDescriptiveName()
Definition: vtkNIFTIImageReader.h:69
VTKIOIMAGE_EXPORT
#define VTKIOIMAGE_EXPORT
Definition: vtkIOImageModule.h:15
vtkNIFTIImageReader::CheckNIFTIVersion
static int CheckNIFTIVersion(const nifti_1_header *hdr)
vtkNIFTIImageReader::QFormMatrix
vtkMatrix4x4 * QFormMatrix
Definition: vtkNIFTIImageReader.h:211
vtkNIFTIImageReader::vtkNIFTIImageReader
vtkNIFTIImageReader()
vtkNIFTIImageReader::NIFTIHeader
vtkNIFTIImageHeader * NIFTIHeader
Definition: vtkNIFTIImageReader.h:222
vtkNIFTIImageReader::GetTimeSpacing
double GetTimeSpacing()
Definition: vtkNIFTIImageReader.h:90
vtkNIFTIImageHeader
Store NIfTI header information.
Definition: vtkNIFTIImageHeader.h:49
vtkNIFTIImageReader::GetQFormMatrix
vtkMatrix4x4 * GetQFormMatrix()
Definition: vtkNIFTIImageReader.h:136
vtkNIFTIImageReader
Read NIfTI-1 and NIfTI-2 medical image files.
Definition: vtkNIFTIImageReader.h:50
vtkNIFTIImageReader::GetRescaleSlope
double GetRescaleSlope()
Definition: vtkNIFTIImageReader.h:99
vtkNIFTIImageReader::QFac
double QFac
Definition: vtkNIFTIImageReader.h:207
vtkNIFTIImageReader::RequestInformation
virtual int RequestInformation(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
vtkNIFTIImageReader::PlanarRGB
bool PlanarRGB
Definition: vtkNIFTIImageReader.h:225
vtkNIFTIImageReader::~vtkNIFTIImageReader
~vtkNIFTIImageReader()
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:39
vtkMatrix4x4
represent and manipulate 4x4 transformation matrices
Definition: vtkMatrix4x4.h:39
vtkNIFTIImageReader::GetNIFTIHeader
vtkNIFTIImageHeader * GetNIFTIHeader()
vtkImageReader2
Superclass of binary file readers.
Definition: vtkImageReader2.h:58
vtkNIFTIImageReader::TimeAsVector
bool TimeAsVector
Definition: vtkNIFTIImageReader.h:197
vtkGetMacro
#define vtkGetMacro(name, type)
Definition: vtkSetGet.h:93
nifti_1_header
Data structure defining the fields in the nifti1 header. This binary header should be found at the be...
Definition: vtkNIFTIImagePrivate.h:36
vtkNIFTIImageReader::PrintSelf
virtual void PrintSelf(ostream &os, vtkIndent indent)
vtkBooleanMacro
vtkBooleanMacro(IgnoreDriverBugs, bool)
vtkInformation
Store vtkAlgorithm input/output information.
Definition: vtkInformation.h:86
vtkNIFTIImageReader::RescaleIntercept
double RescaleIntercept
Definition: vtkNIFTIImageReader.h:201
vtkSetMacro
vtkSetMacro(IgnoreDriverBugs, bool)
vtkNIFTIImageReader::CanReadFile
int CanReadFile(const char *filename)
vtkNIFTIImageReader::GetRescaleIntercept
double GetRescaleIntercept()
Definition: vtkNIFTIImageReader.h:100
vtkNIFTIImageReader::SFormMatrix
vtkMatrix4x4 * SFormMatrix
Definition: vtkNIFTIImageReader.h:212
vtkNIFTIImageReader::CheckExtension
static bool CheckExtension(const char *fname, const char *ext)
vtkNIFTIImageReader::GetQFac
double GetQFac()
Definition: vtkNIFTIImageReader.h:123
vtkNIFTIImageReader::RequestData
virtual int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
vtkImageReader2.h
vtkNIFTIImageReader::New
static vtkNIFTIImageReader * New()
vtkNIFTIImageReader::CheckAnalyzeHeader
static bool CheckAnalyzeHeader(const nifti_1_header *hdr)