Slicer  4.8
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
itkRigidImageToImageRegistrationMethod.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Insight Segmentation & Registration Toolkit
4  Module: $RCSfile: RigidRegistrator.h,v $
5  Language: C++
6  Date: $Date: 2006/11/06 14:39:34 $
7  Version: $Revision: 1.15 $
8 
9  Copyright (c) Insight Software Consortium. All rights reserved.
10  See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details.
11 
12  This software is distributed WITHOUT ANY WARRANTY; without even
13  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
14  PURPOSE. See the above copyright notices for more information.
15 
16 =========================================================================*/
17 
18 #ifndef itkRigidImageToImageRegistrationMethod_h
19 #define itkRigidImageToImageRegistrationMethod_h
20 
21 #include "itkImage.h"
22 #include "itkAffineTransform.h"
23 #include "itkVersorRigid3DTransform.h"
24 #include "itkRigid2DTransform.h"
25 
27 
28 namespace itk
29 {
30 
31 template <class TImage>
34 {
35 
36 public:
37 
40  typedef SmartPointer<Self> Pointer;
41  typedef SmartPointer<const Self> ConstPointer;
42 
45 
46  itkNewMacro( Self );
47 
48  //
49  // Typedefs from Superclass
50  //
51 
52  itkStaticConstMacro( ImageDimension, unsigned int,
53  TImage::ImageDimension );
54 
55  // Overrides the superclass' TransformType typedef
56  // We must use MatrixOffsetTransformBase since no itk rigid transform is
57  // templated over ImageDimension.
58  typedef MatrixOffsetTransformBase<double,
59  itkGetStaticConstMacro( ImageDimension ),
60  itkGetStaticConstMacro( ImageDimension )>
63 
64  //
65  // Custom Typedefs
66  //
67  typedef Rigid2DTransform<double> Rigid2DTransformType;
68  typedef VersorRigid3DTransform<double> Rigid3DTransformType;
69 
70  typedef AffineTransform<double,
71  itkGetStaticConstMacro( ImageDimension )>
73 
74  typedef typename AffineTransformType::Pointer AffineTransformPointer;
75 
76  //
77  // Superclass Methods
78  //
79  void GenerateData( void ) ITK_OVERRIDE;
80 
81  //
82  // Custom Methods
83  //
84 
91  TransformType * GetTypedTransform( void );
92 
93  const TransformType * GetTypedTransform( void ) const;
94 
104  AffineTransformPointer GetAffineTransform( void ) const;
105 
117 
118 protected:
119 
121  virtual ~RigidImageToImageRegistrationMethod( void );
122 
123  void PrintSelf( std::ostream & os, Indent indent ) const ITK_OVERRIDE;
124 
125 private:
126 
127  RigidImageToImageRegistrationMethod( const Self & ); // Purposely not implemented
128  void operator =( const Self & ); // Purposely not implemented
129 
130 };
131 
132 } // end namespace itk
133 
134 #ifndef ITK_MANUAL_INSTANTIATION
135 #include "itkRigidImageToImageRegistrationMethod.txx"
136 #endif
137 
138 #endif // __ImageToImageRegistrationMethod_h
void PrintSelf(std::ostream &os, Indent indent) const ITK_OVERRIDE
MatrixOffsetTransformBase< double, itkGetStaticConstMacro(ImageDimension), itkGetStaticConstMacro(ImageDimension)> RigidTransformType
void SetInitialTransformParametersFromAffineTransform(const AffineTransformType *affine)
itkTypeMacro(RigidImageToImageRegistrationMethod, OptimizedImageToImageRegistrationMethod)
void GenerateData(void) ITK_OVERRIDE
Simplified inverse ITK transforms.
AffineTransform< double, itkGetStaticConstMacro(ImageDimension)> AffineTransformType
itkStaticConstMacro(ImageDimension, unsigned int, TImage::ImageDimension)
OptimizedImageToImageRegistrationMethod< TImage > Superclass
AffineTransformPointer GetAffineTransform(void) const