ITK  6.0.0
Insight Toolkit
itkImageToSpatialObjectRegistrationMethod.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 itkImageToSpatialObjectRegistrationMethod_h
19#define itkImageToSpatialObjectRegistrationMethod_h
20
21#include "itkProcessObject.h"
22#include "itkImage.h"
26
27namespace itk
28{
83template <typename TFixedImage, typename TMovingSpatialObject>
84class ITK_TEMPLATE_EXPORT ImageToSpatialObjectRegistrationMethod : public ProcessObject
85{
86public:
87 ITK_DISALLOW_COPY_AND_MOVE(ImageToSpatialObjectRegistrationMethod);
88
94
96 itkNewMacro(Self);
97
99 itkOverrideGetNameOfClassMacro(ImageToSpatialObjectRegistrationMethod);
100
102 using FixedImageType = TFixedImage;
104
106 using MovingSpatialObjectType = TMovingSpatialObject;
108
112
116
122
126
129
133
136
138 itkSetConstObjectMacro(FixedImage, FixedImageType);
139 itkGetConstObjectMacro(FixedImage, FixedImageType);
143 itkSetConstObjectMacro(MovingSpatialObject, MovingSpatialObjectType);
144 itkGetConstObjectMacro(MovingSpatialObject, MovingSpatialObjectType);
148 itkSetObjectMacro(Optimizer, OptimizerType);
149 itkGetModifiableObjectMacro(Optimizer, OptimizerType);
153 itkSetObjectMacro(Metric, MetricType);
154 itkGetModifiableObjectMacro(Metric, MetricType);
158 itkSetObjectMacro(Transform, TransformType);
159 itkGetModifiableObjectMacro(Transform, TransformType);
163 itkSetObjectMacro(Interpolator, InterpolatorType);
164 itkGetModifiableObjectMacro(Interpolator, InterpolatorType);
168 itkSetMacro(InitialTransformParameters, ParametersType);
169 itkGetConstReferenceMacro(InitialTransformParameters, ParametersType);
174 itkGetConstReferenceMacro(LastTransformParameters, ParametersType);
175
177 const TransformOutputType *
178 GetOutput() const;
179
183 using Superclass::MakeOutput;
186
190 GetMTime() const override;
191
192protected:
195 void
196 PrintSelf(std::ostream & os, Indent indent) const override;
197
200 void
201 GenerateData() override;
202
204 void
206
207 ParametersType m_InitialTransformParameters{};
208 ParametersType m_LastTransformParameters{};
209
210private:
211 MetricPointer m_Metric{};
213
214 MovingSpatialObjectConstPointer m_MovingSpatialObject{};
216
217 TransformPointer m_Transform{};
218 InterpolatorPointer m_Interpolator{};
219};
220} // end namespace itk
221
222#ifndef ITK_MANUAL_INSTANTIATION
223# include "itkImageToSpatialObjectRegistrationMethod.hxx"
224#endif
225
226#endif
Decorates any subclass of itkObject with a DataObject API.
SmartPointer< Self > Pointer
Computes similarity between a moving spatial object and an Image to be registered.
typename TransformType::ParametersType TransformParametersType
ModifiedTimeType GetMTime() const override
const TransformOutputType * GetOutput() const
typename TransformOutputType::ConstPointer TransformOutputConstPointer
DataObjectPointer MakeOutput(DataObjectPointerArraySizeType output) override
Make a DataObject of the correct type to used as the specified output.
typename MovingSpatialObjectType::ConstPointer MovingSpatialObjectConstPointer
typename MetricType::TransformParametersType ParametersType
~ImageToSpatialObjectRegistrationMethod() override=default
void PrintSelf(std::ostream &os, Indent indent) const override
Control indentation during Print() invocation.
Definition: itkIndent.h:50
Light weight base class for most itk classes.
Linearly interpolate an image at specified positions.
Generic representation for an optimization method.
Definition: itkOptimizer.h:39
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