NifTK  16.4.1 - 0798f20
CMIC's Translational Medical Imaging Platform
itkLinearlyInterpolatedDerivativeFilter.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 itkLinearlyInterpolatedDerivativeFilter_h
16 #define itkLinearlyInterpolatedDerivativeFilter_h
17 #include <itkImage.h>
18 #include <itkVector.h>
19 #include <itkImageToImageFilter.h>
20 
21 namespace itk {
36 template< class TFixedImage, class TMovingImage, class TScalarType, class TDeformationScalar>
38  public ImageToImageFilter<TFixedImage,
39  Image<
40  Vector< TDeformationScalar, TFixedImage::ImageDimension>,
41  TFixedImage::ImageDimension> >
42 {
43 public:
44 
47  typedef ImageToImageFilter<TFixedImage,
48  Image<
49  Vector< TDeformationScalar, TFixedImage::ImageDimension>,
50  TFixedImage::ImageDimension> > Superclass;
51  typedef SmartPointer<Self> Pointer;
52  typedef SmartPointer<const Self> ConstPointer;
53 
55  itkNewMacro(Self);
56 
58  itkTypeMacro(LinearlyInterpolatedDerivativeFilter, ImageToImageFilter);
59 
61  itkStaticConstMacro(Dimension, unsigned int, TFixedImage::ImageDimension);
62 
64  typedef TDeformationScalar OutputDataType;
65  typedef Vector< OutputDataType, itkGetStaticConstMacro(Dimension) > OutputPixelType;
67  typedef typename OutputImageType::Pointer OutputImagePointer;
71  typedef typename OutputImageType::SpacingType OutputImageSpacingType;
72  typedef typename OutputImageType::PointType OutputImageOriginType;
73  typedef typename OutputImageType::DirectionType OutputImageDirectionType;
74  typedef TFixedImage FixedImageType;
75  typedef typename FixedImageType::Pointer FixedImagePointer;
80  typedef typename FixedImageType::SpacingType FixedImageSpacingType;
81  typedef typename FixedImageType::PointType FixedImageOriginType;
82  typedef typename FixedImageType::DirectionType FixedImageDirectionType;
83  typedef TMovingImage MovingImageType;
85  typedef typename MovingImageType::Pointer MovingImagePointer;
89 
91  typedef Transform<TScalarType, itkGetStaticConstMacro(Dimension),
92  itkGetStaticConstMacro(Dimension)> TransformType;
94 
96  typedef Size<itkGetStaticConstMacro(Dimension)> SizeType;
97 
100 
102  typedef typename MovingImageType::PointType MovingImagePointType;
103 
105  virtual void SetFixedImage(const FixedImageType *image);
106 
108  virtual void SetMovingImage(const MovingImageType *image);
109 
114  itkSetMacro( DefaultPixelValue, OutputPixelType );
115 
117  itkGetConstReferenceMacro( DefaultPixelValue, OutputPixelType );
118 
120  void WriteDerivativeImage(std::string filename);
121 
123  itkSetObjectMacro( Transform, TransformType );
124 
126  itkGetConstObjectMacro( Transform, TransformType );
127 
129  itkSetMacro(MovingImageLowerPixelValue, MovingImagePixelType);
130  itkGetMacro(MovingImageLowerPixelValue, MovingImagePixelType);
131 
133  itkSetMacro(MovingImageUpperPixelValue, MovingImagePixelType);
134  itkGetMacro(MovingImageUpperPixelValue, MovingImagePixelType);
135 
136 protected:
139  void PrintSelf(std::ostream& os, Indent indent) const;
140 
146  virtual void GenerateOutputInformation( void );
147 
153  virtual void GenerateInputRequestedRegion( void );
154 
156  virtual void BeforeThreadedGenerateData();
157 
159  void ThreadedGenerateData( const OutputImageRegionType& outputRegionForThread, ThreadIdType threadId );
160 
162  virtual void AfterThreadedGenerateData();
163 
165  unsigned long GetMTime( void ) const;
166 
167 private:
168 
173  void operator=(const Self&);
174 
175  TransformPointerType m_Transform;
176 
177  OutputPixelType m_DefaultPixelValue;
178 
179  MovingImagePixelType m_MovingImageLowerPixelValue;
180 
181  MovingImagePixelType m_MovingImageUpperPixelValue;
182 
183 }; /* End class */
184 
185 } /* End namespace */
186 
187 #ifndef ITK_MANUAL_INSTANTIATION
188 #include "itkLinearlyInterpolatedDerivativeFilter.txx"
189 #endif
190 
191 #endif
MovingImageType::PixelType MovingImagePixelType
Definition: itkLinearlyInterpolatedDerivativeFilter.h:86
This class takes as input 2 input images, the Fixed and Moving image, as you would have in a registra...
Definition: itkLinearlyInterpolatedDerivativeFilter.h:37
FixedImageType::SizeType FixedImageSizeType
Definition: itkLinearlyInterpolatedDerivativeFilter.h:79
ImageType::SizeType SizeType
Definition: niftkMakeLapUSProbeBasicModel.cxx:31
OutputImageType::IndexType OutputImageIndexType
Definition: itkLinearlyInterpolatedDerivativeFilter.h:69
Vector< OutputDataType, itkGetStaticConstMacro(Dimension) > OutputPixelType
Definition: itkLinearlyInterpolatedDerivativeFilter.h:65
TFixedImage FixedImageType
Definition: itkLinearlyInterpolatedDerivativeFilter.h:74
GLenum GLsizei GLenum GLenum const GLvoid * image
Definition: glew.h:4052
OutputImageType::Pointer OutputImagePointer
Definition: itkLinearlyInterpolatedDerivativeFilter.h:67
Size< itkGetStaticConstMacro(Dimension)> SizeType
Definition: itkLinearlyInterpolatedDerivativeFilter.h:96
ImageToImageFilter< TFixedImage, Image< Vector< TDeformationScalar, TFixedImage::ImageDimension >, TFixedImage::ImageDimension > > Superclass
Definition: itkLinearlyInterpolatedDerivativeFilter.h:50
FixedImageType::RegionType FixedImageRegionType
Definition: itkLinearlyInterpolatedDerivativeFilter.h:77
Definition: niftkITKAffineResampleImage.cxx:74
OutputImageType::RegionType OutputImageRegionType
Definition: itkLinearlyInterpolatedDerivativeFilter.h:68
ImageType::IndexType IndexType
Definition: niftkMakeLapUSProbeBasicModel.cxx:32
FixedImageType::PixelType FixedImagePixelType
Definition: itkLinearlyInterpolatedDerivativeFilter.h:76
LinearlyInterpolatedDerivativeFilter Self
Definition: itkLinearlyInterpolatedDerivativeFilter.h:46
FixedImageType::Pointer FixedImagePointer
Definition: itkLinearlyInterpolatedDerivativeFilter.h:75
SmartPointer< const Self > ConstPointer
Definition: itkLinearlyInterpolatedDerivativeFilter.h:52
FixedImageType::IndexType FixedImageIndexType
Definition: itkLinearlyInterpolatedDerivativeFilter.h:78
~LinearlyInterpolatedDerivativeFilter()
Definition: itkLinearlyInterpolatedDerivativeFilter.h:138
FixedImageType::DirectionType FixedImageDirectionType
Definition: itkLinearlyInterpolatedDerivativeFilter.h:82
MovingImageType::SizeType MovingImageSizeType
Definition: itkLinearlyInterpolatedDerivativeFilter.h:84
OutputImageType::PointType OutputImageOriginType
Definition: itkLinearlyInterpolatedDerivativeFilter.h:72
float PixelType
Definition: niftkBreastDCEandADC.cxx:88
ImageType::RegionType RegionType
Definition: niftkMakeLapUSProbeBasicModel.cxx:30
SmartPointer< Self > Pointer
Definition: itkLinearlyInterpolatedDerivativeFilter.h:51
MovingImageType::Pointer MovingImagePointer
Definition: itkLinearlyInterpolatedDerivativeFilter.h:85
FixedImageType::PointType FixedImageOriginType
Definition: itkLinearlyInterpolatedDerivativeFilter.h:81
OutputImageType::SpacingType OutputImageSpacingType
Definition: itkLinearlyInterpolatedDerivativeFilter.h:71
Transform< TScalarType, itkGetStaticConstMacro(Dimension), itkGetStaticConstMacro(Dimension)> TransformType
Definition: itkLinearlyInterpolatedDerivativeFilter.h:92
FixedImageType::SpacingType FixedImageSpacingType
Definition: itkLinearlyInterpolatedDerivativeFilter.h:80
OutputImageType::DirectionType OutputImageDirectionType
Definition: itkLinearlyInterpolatedDerivativeFilter.h:73
Simultaneous itk::Image and itk::Array (and hence vnl_vector) class.
TMovingImage MovingImageType
Definition: itkLinearlyInterpolatedDerivativeFilter.h:83
const unsigned int Dimension
Definition: niftkBreastDCEandADC.cxx:89
Image< OutputPixelType, itkGetStaticConstMacro(Dimension) > OutputImageType
Definition: itkLinearlyInterpolatedDerivativeFilter.h:66
MovingImageType::RegionType MovingImageRegionType
Definition: itkLinearlyInterpolatedDerivativeFilter.h:87
MovingImageType::PointType MovingImagePointType
Definition: itkLinearlyInterpolatedDerivativeFilter.h:102
OutputImageType::SizeType OutputImageSizeType
Definition: itkLinearlyInterpolatedDerivativeFilter.h:70
GLsizei const GLcharARB ** string
Definition: glew.h:5194
MovingImageType::IndexType MovingImageIndexType
Definition: itkLinearlyInterpolatedDerivativeFilter.h:88
TransformType::ConstPointer TransformPointerType
Definition: itkLinearlyInterpolatedDerivativeFilter.h:93
SmartPointer< const Self > ConstPointer
Definition: itkEulerAffineTransform.h:50
OutputImageType::IndexType IndexType
Definition: itkLinearlyInterpolatedDerivativeFilter.h:99
TDeformationScalar OutputDataType
Definition: itkLinearlyInterpolatedDerivativeFilter.h:64