ITK  6.0.0
Insight Toolkit
itkPointSetToImageRegistrationMethod.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 itkPointSetToImageRegistrationMethod_h
19#define itkPointSetToImageRegistrationMethod_h
20
21#include "itkProcessObject.h"
22#include "itkImage.h"
26
27namespace itk
28{
66template <typename TFixedPointSet, typename TMovingImage>
67class ITK_TEMPLATE_EXPORT PointSetToImageRegistrationMethod : public ProcessObject
68{
69public:
70 ITK_DISALLOW_COPY_AND_MOVE(PointSetToImageRegistrationMethod);
71
77
79 itkNewMacro(Self);
80
82 itkOverrideGetNameOfClassMacro(PointSetToImageRegistrationMethod);
83
85 using FixedPointSetType = TFixedPointSet;
87
89 using MovingImageType = TMovingImage;
91
95
99
105
109
112
116
119
121 itkSetConstObjectMacro(FixedPointSet, FixedPointSetType);
122 itkGetConstObjectMacro(FixedPointSet, FixedPointSetType);
126 itkSetConstObjectMacro(MovingImage, MovingImageType);
127 itkGetConstObjectMacro(MovingImage, MovingImageType);
131 itkSetObjectMacro(Optimizer, OptimizerType);
132 itkGetModifiableObjectMacro(Optimizer, OptimizerType);
136 itkSetObjectMacro(Metric, MetricType);
137 itkGetModifiableObjectMacro(Metric, MetricType);
141 itkSetObjectMacro(Transform, TransformType);
142 itkGetModifiableObjectMacro(Transform, TransformType);
146 itkSetObjectMacro(Interpolator, InterpolatorType);
147 itkGetModifiableObjectMacro(Interpolator, InterpolatorType);
151 virtual void
153
154 itkGetConstReferenceMacro(InitialTransformParameters, ParametersType);
155
158 itkGetConstReferenceMacro(LastTransformParameters, ParametersType);
159
161 void
163
165 const TransformOutputType *
166 GetOutput() const;
167
171 using Superclass::MakeOutput;
174
176 GetMTime() const override;
177
178protected:
181 void
182 PrintSelf(std::ostream & os, Indent indent) const override;
183
184 void
185 GenerateData() override;
186
187private:
188 MetricPointer m_Metric{};
190
191 MovingImageConstPointer m_MovingImage{};
192 FixedPointSetConstPointer m_FixedPointSet{};
193
194 TransformPointer m_Transform{};
195 InterpolatorPointer m_Interpolator{};
196
197 ParametersType m_InitialTransformParameters{};
198 ParametersType m_LastTransformParameters{};
199};
200} // end namespace itk
201
202#ifndef ITK_MANUAL_INSTANTIATION
203# include "itkPointSetToImageRegistrationMethod.hxx"
204#endif
205
206#endif
Decorates any subclass of itkObject with a DataObject API.
SmartPointer< Self > Pointer
Control indentation during Print() invocation.
Definition: itkIndent.h:50
Base class for all image interpolators.
Light weight base class for most itk classes.
Generic representation for an optimization method.
Definition: itkOptimizer.h:39
Computes similarity between a point set and an image.
typename TransformType::ParametersType TransformParametersType
Base class for PointSet to Image Registration Methods.
typename MetricType::InterpolatorType InterpolatorType
typename TransformOutputType::ConstPointer TransformOutputConstPointer
ModifiedTimeType GetMTime() const override
typename MetricType::TransformParametersType ParametersType
void PrintSelf(std::ostream &os, Indent indent) const override
DataObjectPointer MakeOutput(DataObjectPointerArraySizeType output) override
Make a DataObject of the correct type to used as the specified output.
typename FixedPointSetType::ConstPointer FixedPointSetConstPointer
const TransformOutputType * GetOutput() const
virtual void SetInitialTransformParameters(const ParametersType &param)
typename MovingImageType::ConstPointer MovingImageConstPointer
typename TransformOutputType::Pointer TransformOutputPointer
~PointSetToImageRegistrationMethod() override=default
The base class for all process objects (source, filters, mappers) in the Insight data processing pipe...
DataObjectPointerArray::size_type DataObjectPointerArraySizeType
This class is a base for the Optimization methods that optimize a single valued function.
Transform points and vectors from an input space to an output space.
Definition: itkTransform.h:84
SmartPointer< const Self > ConstPointer
SmartPointer< Self > Pointer
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
class ITK_FORWARD_EXPORT ProcessObject
Definition: itkDataObject.h:41
SizeValueType ModifiedTimeType
Definition: itkIntTypes.h:105