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
itkInitialImageToImageRegistrationMethod.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 itkInitialImageToImageRegistrationMethod_h
19 #define itkInitialImageToImageRegistrationMethod_h
20 
21 #include "itkImage.h"
22 #include "itkCommand.h"
23 
25 
26 #include "itkAffineTransform.h"
27 
30 
31 namespace itk
32 {
33 
34 template <class TImage>
36  : public ImageToImageRegistrationMethod<TImage>
37 {
38 
39 public:
40 
43  typedef SmartPointer<Self> Pointer;
44  typedef SmartPointer<const Self> ConstPointer;
45 
48 
49  itkNewMacro( Self );
50 
51  //
52  // Typedefs from Superclass
53  //
54  itkStaticConstMacro( ImageDimension, unsigned int,
55  TImage::ImageDimension );
56 
57  typedef AffineTransform<double, itkGetStaticConstMacro( ImageDimension )>
59 
60  typedef typename TransformType::Pointer TransformPointer;
61 
62  //
63  // Local Typedefs
64  //
65  typedef Point<double, itkGetStaticConstMacro(ImageDimension)>
67  typedef std::vector<LandmarkPointType> LandmarkPointContainer;
68 
69  //
70  // Custom Methods
71  //
72 
80 
81  const TransformType* GetTypedTransform() const;
82 
89 
90  itkSetMacro( NumberOfMoments, unsigned int );
91  itkGetConstMacro( NumberOfMoments, unsigned int );
92 
93  itkSetMacro( ComputeCenterOfRotationOnly, bool );
94  itkGetConstMacro( ComputeCenterOfRotationOnly, bool );
95 
96  itkSetMacro( UseLandmarks, bool );
97  itkGetConstMacro( UseLandmarks, bool );
98 
99  void SetFixedLandmarks( const LandmarkPointContainer& fixedLandmarks );
100 
101  void SetMovingLandmarks( const LandmarkPointContainer& movingLandmarks );
102 
103 protected:
106 
107  void PrintSelf( std::ostream & os, Indent indent ) const override;
108 
109  //
110  // Methods from Superclass. Only the GenerateData() method should be
111  // overloaded. The Update() method must not be overloaded.
112  //
113  void GenerateData() override;
114 
115 private:
116 
117  InitialImageToImageRegistrationMethod( const Self & ); // Purposely not implemented
118  void operator =( const Self & ); // Purposely not implemented
119 
120  unsigned int m_NumberOfMoments;
121  bool m_ComputeCenterOfRotationOnly;
122  bool m_UseLandmarks;
123  LandmarkPointContainer m_FixedLandmarks;
124  LandmarkPointContainer m_MovingLandmarks;
125 };
126 
127 } // end namespace itk
128 
129 #ifndef ITK_MANUAL_INSTANTIATION
130 #include "itkInitialImageToImageRegistrationMethod.txx"
131 #endif
132 
133 #endif // __ImageToImageRegistrationMethod_h
Simplified inverse ITK transforms.
void SetFixedLandmarks(const LandmarkPointContainer &fixedLandmarks)
AffineTransform< double, itkGetStaticConstMacro(ImageDimension)> TransformType
Transform< double, itkGetStaticConstMacro(ImageDimension), itkGetStaticConstMacro(ImageDimension)> TransformType
itkTypeMacro(InitialImageToImageRegistrationMethod, ImageToImageRegistrationMethod)
void SetMovingLandmarks(const LandmarkPointContainer &movingLandmarks)
Point< double, itkGetStaticConstMacro(ImageDimension)> LandmarkPointType
TransformPointer GetAffineTransform() const
itkSetMacro(NumberOfMoments, unsigned int)
itkGetConstMacro(NumberOfMoments, unsigned int)
itkStaticConstMacro(ImageDimension, unsigned int, TImage::ImageDimension)
void PrintSelf(std::ostream &os, Indent indent) const override