NifTK  16.4.1 - 0798f20
CMIC's Translational Medical Imaging Platform
itkScaleVectorFieldFilter.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 itkScaleVectorFieldFilter_h
16 #define itkScaleVectorFieldFilter_h
17 
18 #include <itkVector.h>
19 #include <itkImage.h>
20 #include <itkImageToImageFilter.h>
21 
22 
23 namespace itk {
36 template <
37  class TScalarType = double, // Data type for scalars
38  unsigned int NDimensions = 3> // Number of Dimensions i.e. 2D or 3D
39 class ITK_EXPORT ScaleVectorFieldFilter :
40  public ImageToImageFilter< Image< Vector<TScalarType, NDimensions>, NDimensions>, // Input image
41  Image< Vector<TScalarType, NDimensions>, NDimensions> // Output image
42  >
43 {
44 public:
45 
48  typedef ImageToImageFilter< Image< Vector<TScalarType, NDimensions>, NDimensions>,
51  typedef SmartPointer<Self> Pointer;
52  typedef SmartPointer<const Self> ConstPointer;
53 
55  itkNewMacro(Self);
56 
58  itkTypeMacro(ScaleVectorFieldFilter, ImageToImageFilter);
59 
61  itkStaticConstMacro(Dimension, unsigned int, NDimensions);
62 
64  typedef Vector< TScalarType, itkGetStaticConstMacro(Dimension) > OutputPixelType;
66  typedef typename Superclass::InputImageType InputImageType;
67  typedef typename Superclass::InputImagePointer InputImagePointer;
68  typedef typename Superclass::InputImageRegionType InputImageRegionType;
70 
72  virtual void SetImageThatWillBeScaled(const InputImageType *image) { this->SetNthInput(0, image); }
73 
75  virtual void SetImageThatDeterminesTheAmountOfScaling(const InputImageType *image) { this->SetNthInput(1, image); }
76 
78  virtual void SetNthInput(unsigned int idx, const InputImageType *);
79 
81  itkSetMacro(ScaleByComponents, bool);
82  itkGetMacro(ScaleByComponents, bool);
83 
85  void WriteVectorImage(std::string filename);
86 
87 protected:
90  void PrintSelf(std::ostream& os, Indent indent) const;
91 
92  // Check before we start.
93  virtual void BeforeThreadedGenerateData();
94 
95  // The main method to implement in derived classes, note, its threaded.
96  virtual void ThreadedGenerateData( const InputImageRegionType &outputRegionForThread, ThreadIdType threadId);
97 
100 
101 private:
102 
106  ScaleVectorFieldFilter(const Self&);
107  void operator=(const Self&);
108 
109 };
110 
111 } // end namespace
112 
113 #ifndef ITK_MANUAL_INSTANTIATION
114 #include "itkScaleVectorFieldFilter.txx"
115 #endif
116 
117 #endif
~ScaleVectorFieldFilter()
Definition: itkScaleVectorFieldFilter.h:89
Superclass::InputImageRegionType InputImageRegionType
Definition: itkScaleVectorFieldFilter.h:68
bool m_ScaleByComponents
Definition: itkScaleVectorFieldFilter.h:99
Superclass::InputImagePointer InputImagePointer
Definition: itkScaleVectorFieldFilter.h:67
virtual void SetImageThatWillBeScaled(const InputImageType *image)
Definition: itkScaleVectorFieldFilter.h:72
GLenum GLsizei GLenum GLenum const GLvoid * image
Definition: glew.h:4052
virtual void SetImageThatDeterminesTheAmountOfScaling(const InputImageType *image)
Definition: itkScaleVectorFieldFilter.h:75
ScaleVectorFieldFilter Self
Definition: itkScaleVectorFieldFilter.h:47
Definition: niftkITKAffineResampleImage.cxx:74
Superclass::InputImageType InputImageType
Definition: itkScaleVectorFieldFilter.h:66
This class takes two inputs, the first is a vector field, such as the output from a registration forc...
Definition: itkScaleVectorFieldFilter.h:39
float PixelType
Definition: niftkBreastDCEandADC.cxx:88
InputImageType::PixelType InputImagePixelType
Definition: itkScaleVectorFieldFilter.h:69
SmartPointer< const Self > ConstPointer
Definition: itkScaleVectorFieldFilter.h:52
SmartPointer< Self > Pointer
Definition: itkScaleVectorFieldFilter.h:51
Simultaneous itk::Image and itk::Array (and hence vnl_vector) class.
const unsigned int Dimension
Definition: niftkBreastDCEandADC.cxx:89
ImageToImageFilter< Image< Vector< TScalarType, NDimensions >, NDimensions >, Image< Vector< TScalarType, NDimensions >, NDimensions > > Superclass
Definition: itkScaleVectorFieldFilter.h:50
Image< OutputPixelType, itkGetStaticConstMacro(Dimension) > OutputImageType
Definition: itkScaleVectorFieldFilter.h:65
Vector< TScalarType, itkGetStaticConstMacro(Dimension) > OutputPixelType
Definition: itkScaleVectorFieldFilter.h:64
GLsizei const GLcharARB ** string
Definition: glew.h:5194