ITK  4.13.0
Insight Segmentation and Registration Toolkit
itkPointSetToPointSetRegistrationMethod.h
Go to the documentation of this file.
1 /*=========================================================================
2  *
3  * Copyright Insight Software Consortium
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0.txt
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  *=========================================================================*/
18 #ifndef itkPointSetToPointSetRegistrationMethod_h
19 #define itkPointSetToPointSetRegistrationMethod_h
20 
21 #include "itkProcessObject.h"
24 #include "itkDataObjectDecorator.h"
25 
26 namespace itk
27 {
65 template< typename TFixedPointSet, typename TMovingPointSet >
66 class ITK_TEMPLATE_EXPORT PointSetToPointSetRegistrationMethod : public ProcessObject
67 {
68 public:
74 
76  itkNewMacro(Self);
77 
80 
82  typedef TFixedPointSet FixedPointSetType;
83  typedef typename FixedPointSetType::ConstPointer FixedPointSetConstPointer;
84 
86  typedef TMovingPointSet MovingPointSetType;
87  typedef typename MovingPointSetType::ConstPointer MovingPointSetConstPointer;
88 
92 
96 
102 
105 
109 
112 
114  itkSetConstObjectMacro(FixedPointSet, FixedPointSetType);
115  itkGetConstObjectMacro(FixedPointSet, FixedPointSetType);
117 
119  itkSetConstObjectMacro(MovingPointSet, MovingPointSetType);
120  itkGetConstObjectMacro(MovingPointSet, MovingPointSetType);
122 
124  itkSetObjectMacro(Optimizer, OptimizerType);
125  itkGetModifiableObjectMacro(Optimizer, OptimizerType);
127 
129  itkSetObjectMacro(Metric, MetricType);
130  itkGetModifiableObjectMacro(Metric, MetricType);
132 
134  itkSetObjectMacro(Transform, TransformType);
135  itkGetModifiableObjectMacro(Transform, TransformType);
137 
139  virtual void SetInitialTransformParameters(const ParametersType & param);
140 
141  itkGetConstReferenceMacro(InitialTransformParameters, ParametersType);
142 
145  itkGetConstReferenceMacro(LastTransformParameters, ParametersType);
146 
148  void Initialize();
149 
151  const TransformOutputType * GetOutput() const;
152 
156  using Superclass::MakeOutput;
157  virtual DataObjectPointer MakeOutput(DataObjectPointerArraySizeType idx) ITK_OVERRIDE;
158 
159  virtual ModifiedTimeType GetMTime() const ITK_OVERRIDE;
160 
161 #ifdef ITKV3_COMPATIBILITY
162 
177  void StartRegistration(void) { this->Update(); }
178 #endif
179 
180 protected:
182  virtual ~PointSetToPointSetRegistrationMethod() ITK_OVERRIDE {}
183  virtual void PrintSelf(std::ostream & os, Indent indent) const ITK_OVERRIDE;
184 
185  virtual void GenerateData() ITK_OVERRIDE;
186 
187 private:
188  ITK_DISALLOW_COPY_AND_ASSIGN(PointSetToPointSetRegistrationMethod);
189 
190  MetricPointer m_Metric;
191  OptimizerType::Pointer m_Optimizer;
192 
193  MovingPointSetConstPointer m_MovingPointSet;
194  FixedPointSetConstPointer m_FixedPointSet;
195 
196  TransformPointer m_Transform;
197 
198  ParametersType m_InitialTransformParameters;
199  ParametersType m_LastTransformParameters;
200 };
201 } // end namespace itk
202 
203 #ifndef ITK_MANUAL_INSTANTIATION
204 #include "itkPointSetToPointSetRegistrationMethod.hxx"
205 #endif
206 
207 #endif
ProcessObject::DataObjectPointerArraySizeType DataObjectPointerArraySizeType
Light weight base class for most itk classes.
PointSetToPointSetMetric< FixedPointSetType, MovingPointSetType > MetricType
unsigned long ModifiedTimeType
Definition: itkIntTypes.h:164
The base class for all process objects (source, filters, mappers) in the Insight data processing pipe...
Computes similarity between two point sets.
Base class for PointSet to PointSet Registration Methods.
Transform points and vectors from an input space to an output space.
Definition: itkTransform.h:82
DataObjectPointerArray::size_type DataObjectPointerArraySizeType
Class to hold and manage different parameter types used during optimization.
Decorates any subclass of itkObject with a DataObject API.
Generic representation for an optimization method.
Definition: itkOptimizer.h:38
This class is a base for the Optimization methods that optimize a multiple valued function...
Control indentation during Print() invocation.
Definition: itkIndent.h:49