Slicer  4.11
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 
49  RigidImageToImageRegistrationMethod( const Self & ) = delete;
50  void operator =( const Self & ) = delete;
51 
52  //
53  // Typedefs from Superclass
54  //
55 
56  itkStaticConstMacro( ImageDimension, unsigned int,
57  TImage::ImageDimension );
58 
59  // Overrides the superclass' TransformType typedef
60  // We must use MatrixOffsetTransformBase since no itk rigid transform is
61  // templated over ImageDimension.
62  typedef MatrixOffsetTransformBase<double,
63  itkGetStaticConstMacro( ImageDimension ),
64  itkGetStaticConstMacro( ImageDimension )>
67 
68  //
69  // Custom Typedefs
70  //
71  typedef Rigid2DTransform<double> Rigid2DTransformType;
72  typedef VersorRigid3DTransform<double> Rigid3DTransformType;
73 
74  typedef AffineTransform<double,
75  itkGetStaticConstMacro( ImageDimension )>
77 
78  typedef typename AffineTransformType::Pointer AffineTransformPointer;
79 
80  //
81  // Superclass Methods
82  //
83  void GenerateData() override;
84 
85  //
86  // Custom Methods
87  //
88 
96 
97  const TransformType* GetTypedTransform() const;
98 
109 
121 
122 protected:
125 
126  void PrintSelf( std::ostream & os, Indent indent ) const override;
127 };
128 
129 } // end namespace itk
130 
131 #ifndef ITK_MANUAL_INSTANTIATION
132 #include "itkRigidImageToImageRegistrationMethod.txx"
133 #endif
134 
135 #endif // __ImageToImageRegistrationMethod_h
AffineTransformPointer GetAffineTransform() const
MatrixOffsetTransformBase< double, itkGetStaticConstMacro(ImageDimension), itkGetStaticConstMacro(ImageDimension)> RigidTransformType
void SetInitialTransformParametersFromAffineTransform(const AffineTransformType *affine)
itkTypeMacro(RigidImageToImageRegistrationMethod, OptimizedImageToImageRegistrationMethod)
Simplified inverse ITK transforms.
void PrintSelf(std::ostream &os, Indent indent) const override
AffineTransform< double, itkGetStaticConstMacro(ImageDimension)> AffineTransformType
Transform< double, itkGetStaticConstMacro(ImageDimension), itkGetStaticConstMacro(ImageDimension)> TransformType
itkStaticConstMacro(ImageDimension, unsigned int, TImage::ImageDimension)
void operator=(const Self &)=delete
OptimizedImageToImageRegistrationMethod< TImage > Superclass