Slicer 5.9
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
Loading...
Searching...
No Matches
vtkITKImageWriter.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Copyright Brigham and Women's Hospital (BWH) All Rights Reserved.
4
5 See COPYRIGHT.txt
6 or http://www.slicer.org/copyright/copyright.txt for details.
7
8 Program: vtkITK
9 Module: $HeadURL$
10 Date: $Date$
11 Version: $Revision$
12
13==========================================================================*/
14
15#ifndef __vtkITKImageWriter_h
16#define __vtkITKImageWriter_h
17
18#include "vtkImageAlgorithm.h"
19#include "vtkImageData.h"
20#include "vtkObjectFactory.h"
21#include "vtkMatrix4x4.h"
22
23#include "vtkITK.h"
24#include "itkImageIOBase.h"
25
26class vtkStringArray;
27
37
38class VTK_ITK_EXPORT vtkITKImageWriter : public vtkImageAlgorithm
39{
40public:
42 vtkTypeMacro(vtkITKImageWriter, vtkImageAlgorithm);
43 void PrintSelf(ostream& os, vtkIndent indent) override;
44
45 enum
46 {
48 VoxelVectorTypeSpatial, // 3D contravariant spatial vector (displacement field, motion, etc.)
51 VoxelVectorTypeSpatialCovariant, // 3D covariant spatial vector (gradient, etc.)
52 VoxelVectorType_Last // must be last
53 };
54
59 void SetFileName(const char*);
60
61 char* GetFileName() { return FileName; }
62
65 vtkGetMacro(UseCompression, int);
66 vtkSetMacro(UseCompression, int);
67 vtkBooleanMacro(UseCompression, int);
68
71 vtkGetStringMacro(ImageIOClassName);
72 vtkSetStringMacro(ImageIOClassName);
73
76 void Write();
77
79 void SetRasToIJKMatrix(vtkMatrix4x4* mat) { RasToIJKMatrix = mat; }
80
82 void SetMeasurementFrameMatrix(vtkMatrix4x4* mat) { MeasurementFrameMatrix = mat; }
83
85 vtkSetMacro(VoxelVectorType, int);
86 vtkGetMacro(VoxelVectorType, int);
87
89 static void ConvertSpatialVectorVoxelsBetweenRasLps(vtkImageData* imageData);
90
92 static void WriteMeasurementFrameMatrixToMetaDataDictionary(itk::MetaDataDictionary& dictionary, vtkMatrix4x4* measurementFrameMatrix);
93
94protected:
97
98 char* FileName;
99 vtkMatrix4x4* RasToIJKMatrix;
104
105private:
106 vtkITKImageWriter(const vtkITKImageWriter&) = delete;
107 void operator=(const vtkITKImageWriter&) = delete;
108};
109
110// vtkStandardNewMacro(vtkITKImageWriter);
111
112#endif
~vtkITKImageWriter() override
void SetRasToIJKMatrix(vtkMatrix4x4 *mat)
Set orientation matrix.
void Write()
The main interface which triggers the writer to start.
void PrintSelf(ostream &os, vtkIndent indent) override
vtkMatrix4x4 * MeasurementFrameMatrix
void SetFileName(const char *)
void SetMeasurementFrameMatrix(vtkMatrix4x4 *mat)
Set orientation matrix.
vtkMatrix4x4 * RasToIJKMatrix
static void WriteMeasurementFrameMatrixToMetaDataDictionary(itk::MetaDataDictionary &dictionary, vtkMatrix4x4 *measurementFrameMatrix)
Adds measurement frame matrix to the metadata.
static vtkITKImageWriter * New()
static void ConvertSpatialVectorVoxelsBetweenRasLps(vtkImageData *imageData)
Convert voxel vector type between RAS and LPS measurement frame.