Slicer  4.11
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 
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