ITK  5.4.0
Insight Toolkit
itkPointSetToPointSetRegistrationMethod.h
Go to the documentation of this file.
1 /*=========================================================================
2  *
3  * Copyright NumFOCUS
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  * https://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:
69  ITK_DISALLOW_COPY_AND_MOVE(PointSetToPointSetRegistrationMethod);
70 
76 
78  itkNewMacro(Self);
79 
81  itkOverrideGetNameOfClassMacro(PointSetToPointSetRegistrationMethod);
82 
84  using FixedPointSetType = TFixedPointSet;
86 
88  using MovingPointSetType = TMovingPointSet;
90 
94 
98 
104 
107 
111 
114 
116  itkSetConstObjectMacro(FixedPointSet, FixedPointSetType);
117  itkGetConstObjectMacro(FixedPointSet, FixedPointSetType);
121  itkSetConstObjectMacro(MovingPointSet, MovingPointSetType);
122  itkGetConstObjectMacro(MovingPointSet, MovingPointSetType);
126  itkSetObjectMacro(Optimizer, OptimizerType);
127  itkGetModifiableObjectMacro(Optimizer, OptimizerType);
131  itkSetObjectMacro(Metric, MetricType);
132  itkGetModifiableObjectMacro(Metric, MetricType);
136  itkSetObjectMacro(Transform, TransformType);
137  itkGetModifiableObjectMacro(Transform, TransformType);
141  virtual void
142  SetInitialTransformParameters(const ParametersType & param);
143 
144  itkGetConstReferenceMacro(InitialTransformParameters, ParametersType);
145 
148  itkGetConstReferenceMacro(LastTransformParameters, ParametersType);
149 
151  void
152  Initialize();
153 
155  const TransformOutputType *
156  GetOutput() const;
157 
161  using Superclass::MakeOutput;
163  MakeOutput(DataObjectPointerArraySizeType output) override;
164 
166  GetMTime() const override;
167 
168 protected:
170  ~PointSetToPointSetRegistrationMethod() override = default;
171  void
172  PrintSelf(std::ostream & os, Indent indent) const override;
173 
174  void
175  GenerateData() override;
176 
177 private:
178  MetricPointer m_Metric{};
179  OptimizerType::Pointer m_Optimizer{};
180 
181  MovingPointSetConstPointer m_MovingPointSet{};
182  FixedPointSetConstPointer m_FixedPointSet{};
183 
184  TransformPointer m_Transform{};
185 
186  ParametersType m_InitialTransformParameters{};
187  ParametersType m_LastTransformParameters{};
188 };
189 } // end namespace itk
190 
191 #ifndef ITK_MANUAL_INSTANTIATION
192 # include "itkPointSetToPointSetRegistrationMethod.hxx"
193 #endif
194 
195 #endif
Pointer
SmartPointer< Self > Pointer
Definition: itkAddImageFilter.h:93
ConstPointer
SmartPointer< const Self > ConstPointer
Definition: itkAddImageFilter.h:94
itk::ModifiedTimeType
SizeValueType ModifiedTimeType
Definition: itkIntTypes.h:102
itk::Optimizer
Generic representation for an optimization method.
Definition: itkOptimizer.h:38
itk::PointSetToPointSetRegistrationMethod::TransformOutputPointer
typename TransformOutputType::Pointer TransformOutputPointer
Definition: itkPointSetToPointSetRegistrationMethod.h:102
itk::PointSetToPointSetMetric
Computes similarity between two point sets.
Definition: itkPointSetToPointSetMetric.h:45
itk::MultipleValuedNonLinearOptimizer
This class is a base for the Optimization methods that optimize a multiple valued function.
Definition: itkMultipleValuedNonLinearOptimizer.h:34
itk::SmartPointer< Self >
itk::Indent
Control indentation during Print() invocation.
Definition: itkIndent.h:49
itk::ProcessObject::DataObjectPointerArraySizeType
DataObjectPointerArray::size_type DataObjectPointerArraySizeType
Definition: itkProcessObject.h:194
itk::PointSetToPointSetRegistrationMethod::TransformPointer
typename TransformType::Pointer TransformPointer
Definition: itkPointSetToPointSetRegistrationMethod.h:97
itk::DataObjectDecorator
Decorates any subclass of itkObject with a DataObject API.
Definition: itkDataObjectDecorator.h:66
itk::PointSetToPointSetRegistrationMethod::TransformType
typename MetricType::TransformType TransformType
Definition: itkPointSetToPointSetRegistrationMethod.h:96
itk::PointSetToPointSetRegistrationMethod::TransformOutputConstPointer
typename TransformOutputType::ConstPointer TransformOutputConstPointer
Definition: itkPointSetToPointSetRegistrationMethod.h:103
itk::PointSetToPointSetRegistrationMethod::ParametersType
typename MetricType::TransformParametersType ParametersType
Definition: itkPointSetToPointSetRegistrationMethod.h:110
itk::LightObject
Light weight base class for most itk classes.
Definition: itkLightObject.h:55
itk::PointSetToPointSetRegistrationMethod::MovingPointSetConstPointer
typename MovingPointSetType::ConstPointer MovingPointSetConstPointer
Definition: itkPointSetToPointSetRegistrationMethod.h:89
itkProcessObject.h
itkDataObjectDecorator.h
itk::PointSetToPointSetMetric::TransformParametersType
typename TransformType::ParametersType TransformParametersType
Definition: itkPointSetToPointSetMetric.h:88
itk::PointSetToPointSetRegistrationMethod::MovingPointSetType
TMovingPointSet MovingPointSetType
Definition: itkPointSetToPointSetRegistrationMethod.h:88
itk
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
Definition: itkAnnulusOperator.h:24
itk::ProcessObject
The base class for all process objects (source, filters, mappers) in the Insight data processing pipe...
Definition: itkProcessObject.h:139
itk::ProcessObject
class ITK_FORWARD_EXPORT ProcessObject
Definition: itkDataObject.h:41
itk::PointSetToPointSetRegistrationMethod::FixedPointSetType
TFixedPointSet FixedPointSetType
Definition: itkPointSetToPointSetRegistrationMethod.h:84
itk::PointSetToPointSetRegistrationMethod::MetricPointer
typename MetricType::Pointer MetricPointer
Definition: itkPointSetToPointSetRegistrationMethod.h:93
itk::Transform
Transform points and vectors from an input space to an output space.
Definition: itkTransform.h:83
itkPointSetToPointSetMetric.h
itkMultipleValuedNonLinearOptimizer.h
itk::PointSetToPointSetRegistrationMethod
Base class for PointSet to PointSet Registration Methods.
Definition: itkPointSetToPointSetRegistrationMethod.h:66
itk::DataObject::Pointer
SmartPointer< Self > Pointer
Definition: itkDataObject.h:301
itk::PointSetToPointSetRegistrationMethod::FixedPointSetConstPointer
typename FixedPointSetType::ConstPointer FixedPointSetConstPointer
Definition: itkPointSetToPointSetRegistrationMethod.h:85