Slicer  4.8
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
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