ITK 6.0.0
Insight Toolkit
 
Loading...
Searching...
No Matches
itkImageRegistrationMethod.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 itkImageRegistrationMethod_h
19#define itkImageRegistrationMethod_h
20
21#include "itkProcessObject.h"
22#include "itkImage.h"
26
27namespace itk
28{
69template <typename TFixedImage, typename TMovingImage>
70class ITK_TEMPLATE_EXPORT ImageRegistrationMethod : public ProcessObject
71{
72public:
73 ITK_DISALLOW_COPY_AND_MOVE(ImageRegistrationMethod);
74
80
82 itkNewMacro(Self);
83
85 itkOverrideGetNameOfClassMacro(ImageRegistrationMethod);
86
88 using FixedImageType = TFixedImage;
89 using FixedImageConstPointer = typename FixedImageType::ConstPointer;
90
92 using MovingImageType = TMovingImage;
93 using MovingImageConstPointer = typename MovingImageType::ConstPointer;
94
99
102 using TransformPointer = typename TransformType::Pointer;
103
109
112 using InterpolatorPointer = typename InterpolatorType::Pointer;
113
116
120
123
125 void
126 SetFixedImage(const FixedImageType * fixedImage);
127 itkGetConstObjectMacro(FixedImage, FixedImageType);
129
131 void
132 SetMovingImage(const MovingImageType * movingImage);
133 itkGetConstObjectMacro(MovingImage, MovingImageType);
135
137 itkSetObjectMacro(Optimizer, OptimizerType);
138 itkGetModifiableObjectMacro(Optimizer, OptimizerType);
140
142 itkSetObjectMacro(Metric, MetricType);
143 itkGetModifiableObjectMacro(Metric, MetricType);
145
147 itkSetObjectMacro(Transform, TransformType);
148 itkGetModifiableObjectMacro(Transform, TransformType);
150
152 itkSetObjectMacro(Interpolator, InterpolatorType);
153 itkGetModifiableObjectMacro(Interpolator, InterpolatorType);
155
157 virtual void
159
160 itkGetConstReferenceMacro(InitialTransformParameters, ParametersType);
161
164 itkGetConstReferenceMacro(LastTransformParameters, ParametersType);
165
173 void
175
180 itkGetConstReferenceMacro(FixedImageRegion, FixedImageRegionType);
181
184 itkGetConstMacro(FixedImageRegionDefined, bool);
185
190 itkSetMacro(FixedImageRegionDefined, bool);
191
193 virtual void
195
197 const TransformOutputType *
198 GetOutput() const;
199
206
210 GetMTime() const override;
211
212protected:
214 ~ImageRegistrationMethod() override = default;
215 void
216 PrintSelf(std::ostream & os, Indent indent) const override;
219 void
220 GenerateData() override;
221
223 itkSetMacro(LastTransformParameters, ParametersType);
224
226 void
228
229private:
232
235
238
241
244};
245} // end namespace itk
246
247#ifndef ITK_MANUAL_INSTANTIATION
248# include "itkImageRegistrationMethod.hxx"
249#endif
250
251#endif
Decorates any subclass of itkObject with a DataObject API.
SmartPointer< Self > Pointer
typename MetricType::FixedImageRegionType FixedImageRegionType
~ImageRegistrationMethod() override=default
void SetFixedImage(const FixedImageType *fixedImage)
typename InterpolatorType::Pointer InterpolatorPointer
typename TransformType::Pointer TransformPointer
typename TransformOutputType::Pointer TransformOutputPointer
ProcessObject::DataObjectPointerArraySizeType DataObjectPointerArraySizeType
typename FixedImageType::ConstPointer FixedImageConstPointer
virtual void SetInitialTransformParameters(const ParametersType &param)
void SetMovingImage(const MovingImageType *movingImage)
typename MetricType::TransformParametersType ParametersType
typename MovingImageType::ConstPointer MovingImageConstPointer
ModifiedTimeType GetMTime() const override
typename MetricType::TransformType TransformType
SmartPointer< const Self > ConstPointer
typename DataObject::Pointer DataObjectPointer
void GenerateData() override
void PrintSelf(std::ostream &os, Indent indent) const override
SingleValuedNonLinearOptimizer OptimizerType
ImageToImageMetric< FixedImageType, MovingImageType > MetricType
typename MetricType::InterpolatorType InterpolatorType
void SetFixedImageRegion(const FixedImageRegionType &region)
DataObjectDecorator< TransformType > TransformOutputType
typename MetricType::Pointer MetricPointer
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.
Computes similarity between regions of two images.
typename TransformType::ParametersType TransformParametersType
InterpolateImageFunction< MovingImageType, CoordinateRepresentationType > InterpolatorType
Transform< CoordinateRepresentationType, Self::MovingImageDimension, Self::FixedImageDimension > TransformType
Control indentation during Print() invocation.
Definition itkIndent.h:50
Generic representation for an optimization method.
DataObjectPointerArray::size_type DataObjectPointerArraySizeType
virtual DataObjectPointer MakeOutput(DataObjectPointerArraySizeType idx)
Make a DataObject of the correct type to used as the specified output.
This class is a base for the Optimization methods that optimize a single valued function.
Implements transparent reference counting.
Transform points and vectors from an input space to an output space.
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
SizeValueType ModifiedTimeType