NifTK  16.4.1 - 0798f20
CMIC's Translational Medical Imaging Platform
itkInterpolateVectorFieldFilter.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 itkInterpolateVectorFieldFilter_h
16 #define itkInterpolateVectorFieldFilter_h
17 
18 #include <itkImage.h>
19 #include <itkVector.h>
20 #include <itkImageToImageFilter.h>
21 #include <itkVectorInterpolateImageFunction.h>
22 
23 
24 namespace itk {
35 template <
36  class TScalarType, // Data type for scalars
37  unsigned int NDimensions = 3> // Number of Dimensions i.e. 2D or 3D
38 class ITK_EXPORT InterpolateVectorFieldFilter :
39  public ImageToImageFilter< Image< Vector<TScalarType, NDimensions>, NDimensions>, // Input image
40  Image< Vector<TScalarType, NDimensions>, NDimensions> // Output image
41  >
42 {
43 public:
44 
47  typedef ImageToImageFilter< Image< Vector<TScalarType, NDimensions>, NDimensions>,
50  typedef SmartPointer<Self> Pointer;
51  typedef SmartPointer<const Self> ConstPointer;
52 
54  itkNewMacro(Self);
55 
57  itkTypeMacro(InterpolateVectorFieldFilter, ImageToImageFilter);
58 
60  itkStaticConstMacro(Dimension, unsigned int, NDimensions);
61 
63  typedef Vector<TScalarType, NDimensions> OutputPixelType;
64  typedef typename OutputPixelType::ValueType OutputPixelComponentType;
66  typedef typename OutputImageType::Pointer OutputImagePointer;
67  typedef typename OutputImageType::ConstPointer OutputImageConstPointer;
69  typedef typename OutputImageType::SpacingType OutputImageSpacingType;
70  typedef typename OutputImageType::PointType OutputImageOriginType;
73  typedef typename Superclass::InputImageType InputImageType;
74  typedef typename InputImageType::Pointer InputImagePointer;
75  typedef typename InputImageType::ConstPointer InputImageConstPointer;
77  typedef VectorInterpolateImageFunction<
78  Image<
79  Vector<TScalarType, NDimensions>,
80  NDimensions
81  >,
82  TScalarType> InterpolatorType;
83  typedef typename InterpolatorType::Pointer InterpolatorPointer;
84  typedef typename InterpolatorType::PointType PointType;
85 
87  virtual void SetInterpolatedField(const InputImageType *image) { this->SetNthInput(0, image); }
88 
90  virtual void SetInterpolatingField(const InputImageType *image) { this->SetNthInput(1, image); }
91 
93  virtual void SetNthInput(unsigned int idx, const InputImageType *);
94 
96  itkSetObjectMacro( Interpolator, InterpolatorType );
97 
99  itkGetConstObjectMacro( Interpolator, InterpolatorType );
100 
102  itkSetMacro(DefaultPixelValue, OutputPixelType);
103 
105  itkGetMacro(DefaultPixelValue, OutputPixelType);
106 
108  unsigned long GetMTime( void ) const;
109 
110 protected:
113  void PrintSelf(std::ostream& os, Indent indent) const;
114 
116  virtual void BeforeThreadedGenerateData();
117 
119  virtual void AfterThreadedGenerateData();
120 
122  virtual void GenerateInputRequestedRegion();
123 
125  virtual void GenerateOutputInformation();
126 
128  virtual void ThreadedGenerateData(const OutputImageRegionType& outputRegionForThread, ThreadIdType threadId );
129 
131  virtual void VerifyInputInformation();
132 
133 private:
134 
138  InterpolateVectorFieldFilter(const Self&);
139  void operator=(const Self&);
140 
142  InterpolatorPointer m_Interpolator;
143 
145  OutputPixelType m_DefaultPixelValue;
146 
147 };
148 
149 } // end namespace
150 
151 #ifndef ITK_MANUAL_INSTANTIATION
152 #include "itkInterpolateVectorFieldFilter.txx"
153 #endif
154 
155 #endif
OutputImageType::Pointer OutputImagePointer
Definition: itkInterpolateVectorFieldFilter.h:66
ImageToImageFilter< Image< Vector< TScalarType, NDimensions >, NDimensions >, Image< Vector< TScalarType, NDimensions >, NDimensions > > Superclass
Definition: itkInterpolateVectorFieldFilter.h:49
VectorInterpolateImageFunction< Image< Vector< TScalarType, NDimensions >, NDimensions >, TScalarType > InterpolatorType
Definition: itkInterpolateVectorFieldFilter.h:82
ImageType::SizeType SizeType
Definition: niftkMakeLapUSProbeBasicModel.cxx:31
virtual void SetInterpolatedField(const InputImageType *image)
Definition: itkInterpolateVectorFieldFilter.h:87
OutputImageRegionType::SizeType OutputImageSizeType
Definition: itkInterpolateVectorFieldFilter.h:71
InterpolateVectorFieldFilter Self
Definition: itkInterpolateVectorFieldFilter.h:46
GLenum GLsizei GLenum GLenum const GLvoid * image
Definition: glew.h:4052
Image< OutputPixelType, NDimensions > OutputImageType
Definition: itkInterpolateVectorFieldFilter.h:65
~InterpolateVectorFieldFilter()
Definition: itkInterpolateVectorFieldFilter.h:112
Definition: niftkITKAffineResampleImage.cxx:74
ImageType::IndexType IndexType
Definition: niftkMakeLapUSProbeBasicModel.cxx:32
InputImageType::RegionType InputImageRegionType
Definition: itkInterpolateVectorFieldFilter.h:76
InputImageType::ConstPointer InputImageConstPointer
Definition: itkInterpolateVectorFieldFilter.h:75
ImageType::RegionType RegionType
Definition: niftkMakeLapUSProbeBasicModel.cxx:30
OutputPixelType::ValueType OutputPixelComponentType
Definition: itkInterpolateVectorFieldFilter.h:64
Superclass::InputImageType InputImageType
Definition: itkInterpolateVectorFieldFilter.h:73
OutputImageType::SpacingType OutputImageSpacingType
Definition: itkInterpolateVectorFieldFilter.h:69
InterpolatorType::PointType PointType
Definition: itkInterpolateVectorFieldFilter.h:84
OutputImageRegionType::IndexType OutputImageIndexType
Definition: itkInterpolateVectorFieldFilter.h:72
SmartPointer< const Self > ConstPointer
Definition: itkInterpolateVectorFieldFilter.h:51
virtual void SetInterpolatingField(const InputImageType *image)
Definition: itkInterpolateVectorFieldFilter.h:90
SmartPointer< Self > Pointer
Definition: itkInterpolateVectorFieldFilter.h:50
Simultaneous itk::Image and itk::Array (and hence vnl_vector) class.
Vector< TScalarType, NDimensions > OutputPixelType
Definition: itkInterpolateVectorFieldFilter.h:63
const unsigned int Dimension
Definition: niftkBreastDCEandADC.cxx:89
OutputImageType::RegionType OutputImageRegionType
Definition: itkInterpolateVectorFieldFilter.h:68
OutputImageType::PointType OutputImageOriginType
Definition: itkInterpolateVectorFieldFilter.h:70
This class takes a vector field as input 1, and a vector field as input 2, and the output is a vector...
Definition: itkInterpolateVectorFieldFilter.h:38
OutputImageType::ConstPointer OutputImageConstPointer
Definition: itkInterpolateVectorFieldFilter.h:67
InterpolatorType::Pointer InterpolatorPointer
Definition: itkInterpolateVectorFieldFilter.h:83
InputImageType::Pointer InputImagePointer
Definition: itkInterpolateVectorFieldFilter.h:74