NifTK  16.4.1 - 0798f20
CMIC's Translational Medical Imaging Platform
itkDasTransformImageFilter.h
Go to the documentation of this file.
1 /*=============================================================================
2 
3  NifTK: A software platform for medical image computing.
4 
5  Copyright (c) University College London (UCL). All rights reserved.
6 
7  This software is distributed WITHOUT ANY WARRANTY; without even
8  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
9  PURPOSE.
10 
11  See LICENSE.txt in the top level directory for details.
12 
13 =============================================================================*/
14 
15 #ifndef itkDasTransformImageFilter_h
16 #define itkDasTransformImageFilter_h
17 #include <itkVector.h>
18 #include <itkImage.h>
19 #include <itkImageToImageFilter.h>
20 #include <itkLinearInterpolateImageFunction.h>
21 
22 namespace itk {
23 
32 template <typename TScalarType, unsigned int NDimensions = 3>
33 class ITK_EXPORT DasTransformImageFilter:
34  public ImageToImageFilter<
35  Image< TScalarType, NDimensions>,
36  Image< TScalarType, NDimensions>
37  >
38 {
39 
40 public:
43  typedef ImageToImageFilter<
45  Image< TScalarType, NDimensions>
47  typedef SmartPointer<Self> Pointer;
48  typedef SmartPointer<const Self> ConstPointer;
52  typedef Vector< TScalarType, NDimensions > VectorPixelType;
54  typedef TScalarType OutputPixelType;
55  typedef InputImageType OutputImageType;
56  typedef LinearInterpolateImageFunction< InputImageType,
57  TScalarType > LinearInterpolatorType;
58 
60  itkNewMacro(Self);
61 
63  itkTypeMacro(DasTransformImageFilter, ImageToImageFilter);
64 
66  itkStaticConstMacro(Dimension, unsigned int, NDimensions);
67 
69  itkSetMacro(FileName, std::string);
70  itkGetMacro(FileName, std::string);
71 
73  itkSetMacro(WriteTransformedMovingImage, bool);
74  itkGetMacro(WriteTransformedMovingImage, bool);
75 
77  itkSetMacro(DefaultValue, OutputPixelType);
78  itkGetMacro(DefaultValue, OutputPixelType);
79 
81  void SetPhiTransformation(VectorImageType* image) { m_PhiTransformation = image; }
82 
83 protected:
86  void PrintSelf(std::ostream& os, Indent indent) const;
87 
88  // Before we start multi-threaded section.
89  virtual void BeforeThreadedGenerateData();
90 
91  // The main method to implement in derived classes, note, its threaded.
92  virtual void ThreadedGenerateData( const InputImageRegionType &outputRegionForThread, ThreadIdType threadId);
93 
94  // After the threaded bit.
95  virtual void AfterThreadedGenerateData( void );
96 
97 private:
98 
102  DasTransformImageFilter(const Self&);
103  void operator=(const Self&);
104 
106  typename VectorImageType::Pointer m_PhiTransformation;
107 
109  typename LinearInterpolatorType::Pointer m_Interpolator;
110 
112  std::string m_FileName;
113 
115  bool m_WriteTransformedMovingImage;
116 
118  OutputPixelType m_DefaultValue;
119 
120 }; // end class
121 
122 } // end namespace
123 
124 #ifndef ITK_MANUAL_INSTANTIATION
125 #include "itkDasTransformImageFilter.txx"
126 #endif
127 
128 #endif
129 
Image< VectorPixelType, NDimensions > VectorImageType
Definition: itkDasTransformImageFilter.h:53
Image< TScalarType, NDimensions > InputImageType
Definition: itkDasTransformImageFilter.h:49
GLenum GLsizei GLenum GLenum const GLvoid * image
Definition: glew.h:4052
InputImageType OutputImageType
Definition: itkDasTransformImageFilter.h:55
Definition: niftkITKAffineResampleImage.cxx:74
SmartPointer< const Self > ConstPointer
Definition: itkDasTransformImageFilter.h:48
ImageType::IndexType IndexType
Definition: niftkMakeLapUSProbeBasicModel.cxx:32
LinearInterpolateImageFunction< InputImageType, TScalarType > LinearInterpolatorType
Definition: itkDasTransformImageFilter.h:57
InputImageType::IndexType InputImageIndexType
Definition: itkDasTransformImageFilter.h:50
DasTransformImageFilter Self
Definition: itkDasTransformImageFilter.h:42
ImageType::RegionType RegionType
Definition: niftkMakeLapUSProbeBasicModel.cxx:30
SmartPointer< Self > Pointer
Definition: itkDasTransformImageFilter.h:47
ImageToImageFilter< Image< TScalarType, NDimensions >, Image< TScalarType, NDimensions > > Superclass
Definition: itkDasTransformImageFilter.h:46
~DasTransformImageFilter()
Definition: itkDasTransformImageFilter.h:85
Transform an image using a vector field, where each vector represents the absolute sampling position...
Definition: itkDasTransformImageFilter.h:33
InputImageType::RegionType InputImageRegionType
Definition: itkDasTransformImageFilter.h:51
Simultaneous itk::Image and itk::Array (and hence vnl_vector) class.
const unsigned int Dimension
Definition: niftkBreastDCEandADC.cxx:89
void SetPhiTransformation(VectorImageType *image)
Definition: itkDasTransformImageFilter.h:81
TScalarType OutputPixelType
Definition: itkDasTransformImageFilter.h:54
GLsizei const GLcharARB ** string
Definition: glew.h:5194
Vector< TScalarType, NDimensions > VectorPixelType
Definition: itkDasTransformImageFilter.h:52