ITK  5.0.0
Insight Segmentation and Registration Toolkit
itkImageToSpatialObjectRegistrationMethod.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 itkImageToSpatialObjectRegistrationMethod_h
19 #define itkImageToSpatialObjectRegistrationMethod_h
20 
21 #include "itkProcessObject.h"
22 #include "itkImage.h"
25 #include "itkDataObjectDecorator.h"
26 
27 namespace itk
28 {
84 template< typename TFixedImage, typename TMovingSpatialObject >
85 class ITK_TEMPLATE_EXPORT ImageToSpatialObjectRegistrationMethod : public ProcessObject
86 {
87 public:
88  ITK_DISALLOW_COPY_AND_ASSIGN(ImageToSpatialObjectRegistrationMethod);
89 
95 
97  itkNewMacro(Self);
98 
101 
103  using FixedImageType = TFixedImage;
104  using FixedImageConstPointer = typename FixedImageType::ConstPointer;
105 
107  using MovingSpatialObjectType = TMovingSpatialObject;
108  using MovingSpatialObjectConstPointer = typename MovingSpatialObjectType::ConstPointer;
109 
114 
117  using TransformPointer = typename TransformType::Pointer;
118 
124 
127  using InterpolatorPointer = typename InterpolatorType::Pointer;
128 
131 
135 
138 
140  itkSetConstObjectMacro(FixedImage, FixedImageType);
141  itkGetConstObjectMacro(FixedImage, FixedImageType);
143 
145  itkSetConstObjectMacro(MovingSpatialObject, MovingSpatialObjectType);
146  itkGetConstObjectMacro(MovingSpatialObject, MovingSpatialObjectType);
148 
150  itkSetObjectMacro(Optimizer, OptimizerType);
151  itkGetModifiableObjectMacro(Optimizer, OptimizerType);
153 
155  itkSetObjectMacro(Metric, MetricType);
156  itkGetModifiableObjectMacro(Metric, MetricType);
158 
160  itkSetObjectMacro(Transform, TransformType);
161  itkGetModifiableObjectMacro(Transform, TransformType);
163 
165  itkSetObjectMacro(Interpolator, InterpolatorType);
166  itkGetModifiableObjectMacro(Interpolator, InterpolatorType);
168 
170  itkSetMacro(InitialTransformParameters, ParametersType);
171  itkGetConstReferenceMacro(InitialTransformParameters, ParametersType);
173 
176  itkGetConstReferenceMacro(LastTransformParameters, ParametersType);
177 
179  const TransformOutputType * GetOutput() const;
180 
184  using Superclass::MakeOutput;
185  DataObjectPointer MakeOutput(DataObjectPointerArraySizeType idx) override;
186 
189  ModifiedTimeType GetMTime() const override;
190 
191 protected:
193  ~ImageToSpatialObjectRegistrationMethod() override = default;
194  void PrintSelf(std::ostream & os, Indent indent) const override;
195 
198  void GenerateData() override;
199 
201  void Initialize();
202 
205 
206 private:
209 
212 
215 };
216 } // end namespace itk
217 
218 #ifndef ITK_MANUAL_INSTANTIATION
219 #include "itkImageToSpatialObjectRegistrationMethod.hxx"
220 #endif
221 
222 #endif
Computes similarity between a moving spatial obejct and an Image to be registered.
Light weight base class for most itk classes.
DataObjectPointerArray::size_type DataObjectPointerArraySizeType
typename MetricType::TransformParametersType ParametersType
This class is a base for the Optimization methods that optimize a single valued function.
The base class for all process objects (source, filters, mappers) in the Insight data processing pipe...
typename TransformType::ParametersType TransformParametersType
class ITK_FORWARD_EXPORT ProcessObject
Definition: itkDataObject.h:40
Transform points and vectors from an input space to an output space.
Definition: itkTransform.h:83
typename TransformOutputType::ConstPointer TransformOutputConstPointer
typename MovingSpatialObjectType::ConstPointer MovingSpatialObjectConstPointer
Decorates any subclass of itkObject with a DataObject API.
Generic representation for an optimization method.
Definition: itkOptimizer.h:38
unsigned long ModifiedTimeType
Definition: itkIntTypes.h:104
Linearly interpolate an image at specified positions.
Control indentation during Print() invocation.
Definition: itkIndent.h:49
SmartPointer< Self > Pointer