NifTK  16.4.1 - 0798f20
CMIC's Translational Medical Imaging Platform
itkImageProjectionBaseClass2D3D.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 itkImageProjectionBaseClass2D3D_h
16 #define itkImageProjectionBaseClass2D3D_h
17 
18 #include <itkImageToImageFilter.h>
19 #include <itkConceptChecking.h>
22 
23 namespace itk
24 {
25 
30 template <class TInputImage, class TOutputImage>
31 class ITK_EXPORT ImageProjectionBaseClass2D3D :
32  public ImageToImageFilter<TInputImage,TOutputImage>
33 {
34 public:
37  typedef ImageToImageFilter<TInputImage,TOutputImage> Superclass;
38  typedef SmartPointer<Self> Pointer;
39  typedef SmartPointer<const Self> ConstPointer;
40 
42  itkNewMacro(Self);
43 
45  itkTypeMacro(ImageProjectionBaseClass2D3D, ImageToImageFilter);
46 
48  typedef TInputImage InputImageType;
49  typedef typename InputImageType::Pointer InputImagePointer;
52 
53  typedef TOutputImage OutputImageType;
54  typedef typename OutputImageType::Pointer OutputImagePointer;
57 
60 
61 
63  itkStaticConstMacro(InputImageDimension, unsigned int,
64  TInputImage::ImageDimension);
65  itkStaticConstMacro(OutputImageDimension, unsigned int,
66  TOutputImage::ImageDimension);
67 
69  itkSetObjectMacro( AffineTransform, EulerAffineTransformType );
71  itkGetObjectMacro( AffineTransform, EulerAffineTransformType );
73  itkSetObjectMacro( PerspectiveTransform, PerspectiveProjectionTransformType );
75  itkGetObjectMacro( PerspectiveTransform, PerspectiveProjectionTransformType );
76 
77 protected:
80  void PrintSelf(std::ostream& os, Indent indent) const;
81 
83  EulerAffineTransformType::Pointer m_AffineTransform;
84 
85  // The perspective transform
86  PerspectiveProjectionTransformType::Pointer m_PerspectiveTransform;
87 
88 private:
89  ImageProjectionBaseClass2D3D(const Self&); //purposely not implemented
90  void operator=(const Self&); //purposely not implemented
91 
92 };
93 
94 } // end namespace itk
95 
96 #ifndef ITK_MANUAL_INSTANTIATION
97 #include "itkImageProjectionBaseClass2D3D.txx"
98 #endif
99 
100 #endif
InputImageType::PixelType InputImagePixelType
Definition: itkImageProjectionBaseClass2D3D.h:51
TOutputImage OutputImageType
Definition: itkImageProjectionBaseClass2D3D.h:53
ImageProjectionBaseClass2D3D Self
Definition: itkImageProjectionBaseClass2D3D.h:36
The base class for 2D-3D forward and back projection.
Definition: itkImageProjectionBaseClass2D3D.h:31
InputImageType::RegionType InputImageRegionType
Definition: itkImageProjectionBaseClass2D3D.h:50
virtual ~ImageProjectionBaseClass2D3D()
Definition: itkImageProjectionBaseClass2D3D.h:79
InputImageType::Pointer InputImagePointer
Definition: itkImageProjectionBaseClass2D3D.h:49
Definition: niftkITKAffineResampleImage.cxx:74
PerspectiveProjectionTransform of a vector space (e.g. space coordinates)
Definition: itkPerspectiveProjectionTransform.h:39
Euler Affine transform.
Definition: itkEulerAffineTransform.h:38
EulerAffineTransformType::Pointer m_AffineTransform
The affine transform.
Definition: itkImageProjectionBaseClass2D3D.h:83
float PixelType
Definition: niftkBreastDCEandADC.cxx:88
ImageType::RegionType RegionType
Definition: niftkMakeLapUSProbeBasicModel.cxx:30
EulerAffineTransform< double, 3, 3 > EulerAffineTransformType
Definition: itkImageProjectionBaseClass2D3D.h:58
ImageToImageFilter< TInputImage, TOutputImage > Superclass
Definition: itkImageProjectionBaseClass2D3D.h:37
OutputImageType::RegionType OutputImageRegionType
Definition: itkImageProjectionBaseClass2D3D.h:55
OutputImageType::Pointer OutputImagePointer
Definition: itkImageProjectionBaseClass2D3D.h:54
TInputImage InputImageType
Definition: itkImageProjectionBaseClass2D3D.h:45
SmartPointer< Self > Pointer
Definition: itkImageProjectionBaseClass2D3D.h:38
PerspectiveProjectionTransform< double > PerspectiveProjectionTransformType
Definition: itkImageProjectionBaseClass2D3D.h:59
PerspectiveProjectionTransformType::Pointer m_PerspectiveTransform
Definition: itkImageProjectionBaseClass2D3D.h:86
SmartPointer< const Self > ConstPointer
Definition: itkImageProjectionBaseClass2D3D.h:39
OutputImageType::PixelType OutputImagePixelType
Definition: itkImageProjectionBaseClass2D3D.h:56