Loading...
Searching...
No Matches
itkMultiResolutionImageRegistrationMethod2.h
Go to the documentation of this file.
/*=========================================================================
*
* Copyright UMC Utrecht and contributors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0.txt
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*=========================================================================*/
/*=========================================================================
Program: Insight Segmentation & Registration Toolkit
Module: $RCSfile$
Date: $Date: 2008-06-27 17:50:36 +0200 (Fri, 27 Jun 2008) $
Version: $Revision: 1728 $
Copyright (c) Insight Software Consortium. All rights reserved.
See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notices for more information.
=========================================================================*/
#ifndef itkMultiResolutionImageRegistrationMethod2_h
#define itkMultiResolutionImageRegistrationMethod2_h
#include "itkProcessObject.h"
#include "itkAdvancedImageToImageMetric.h"
#include "itkSingleValuedNonLinearOptimizer.h"
#include "itkMultiResolutionPyramidImageFilter.h"
#include "itkNumericTraits.h"
#include "itkDataObjectDecorator.h"
namespace itk
{
template <typename TFixedImage, typename TMovingImage>
class ITK_TEMPLATE_EXPORT MultiResolutionImageRegistrationMethod2 : public ProcessObject
{
public:
ITK_DISALLOW_COPY_AND_MOVE(MultiResolutionImageRegistrationMethod2);
using Self = MultiResolutionImageRegistrationMethod2;
using Superclass = ProcessObject;
using Pointer = SmartPointer<Self>;
using ConstPointer = SmartPointer<const Self>;
itkNewMacro(Self);
itkTypeMacro(MultiResolutionImageRegistrationMethod2, ProcessObject);
using FixedImageType = TFixedImage;
using FixedImageConstPointer = typename FixedImageType::ConstPointer;
using FixedImageRegionType = typename FixedImageType::RegionType;
using FixedImageRegionPyramidType = std::vector<FixedImageRegionType>;
using MovingImageType = TMovingImage;
using MovingImageConstPointer = typename MovingImageType::ConstPointer;
using MetricType = AdvancedImageToImageMetric<FixedImageType, MovingImageType>;
using MetricPointer = typename MetricType::Pointer;
using TransformType = typename MetricType::AdvancedTransformType;
using TransformPointer = typename TransformType::Pointer;
using TransformOutputType = DataObjectDecorator<TransformType>;
using TransformOutputPointer = typename TransformOutputType::Pointer;
using TransformOutputConstPointer = typename TransformOutputType::ConstPointer;
using InterpolatorType = typename MetricType::InterpolatorType;
using InterpolatorPointer = typename InterpolatorType::Pointer;
using OptimizerType = SingleValuedNonLinearOptimizer;
using FixedImagePyramidType = MultiResolutionPyramidImageFilter<FixedImageType, FixedImageType>;
using FixedImagePyramidPointer = typename FixedImagePyramidType::Pointer;
using MovingImagePyramidType = MultiResolutionPyramidImageFilter<MovingImageType, MovingImageType>;
using MovingImagePyramidPointer = typename MovingImagePyramidType::Pointer;
using ParametersType = typename MetricType::TransformParametersType;
using DataObjectPointer = typename DataObject::Pointer;
virtual void
StartRegistration();
virtual void
StopRegistration();
itkSetConstObjectMacro(FixedImage, FixedImageType);
itkGetConstObjectMacro(FixedImage, FixedImageType);
itkSetConstObjectMacro(MovingImage, MovingImageType);
itkGetConstObjectMacro(MovingImage, MovingImageType);
itkSetObjectMacro(Optimizer, OptimizerType);
itkGetModifiableObjectMacro(Optimizer, OptimizerType);
itkSetObjectMacro(Metric, MetricType);
itkGetModifiableObjectMacro(Metric, MetricType);
itkSetMacro(FixedImageRegion, FixedImageRegionType);
itkGetConstReferenceMacro(FixedImageRegion, FixedImageRegionType);
itkSetObjectMacro(Transform, TransformType);
itkGetModifiableObjectMacro(Transform, TransformType);
itkSetObjectMacro(Interpolator, InterpolatorType);
itkGetModifiableObjectMacro(Interpolator, InterpolatorType);
itkSetObjectMacro(FixedImagePyramid, FixedImagePyramidType);
itkGetModifiableObjectMacro(FixedImagePyramid, FixedImagePyramidType);
itkSetObjectMacro(MovingImagePyramid, MovingImagePyramidType);
itkGetModifiableObjectMacro(MovingImagePyramid, MovingImagePyramidType);
itkSetClampMacro(NumberOfLevels, unsigned long, 1, NumericTraits<unsigned long>::max());
itkGetConstMacro(NumberOfLevels, unsigned long);
itkGetConstMacro(CurrentLevel, unsigned long);
itkSetMacro(InitialTransformParameters, ParametersType);
itkGetConstReferenceMacro(InitialTransformParameters, ParametersType);
itkSetMacro(InitialTransformParametersOfNextLevel, ParametersType);
itkGetConstReferenceMacro(InitialTransformParametersOfNextLevel, ParametersType);
itkGetConstReferenceMacro(LastTransformParameters, ParametersType);
const TransformOutputType *
GetOutput() const;
DataObjectPointer
MakeOutput(ProcessObject::DataObjectPointerArraySizeType idx) override;
ModifiedTimeType
GetMTime() const override;
protected:
MultiResolutionImageRegistrationMethod2();
~MultiResolutionImageRegistrationMethod2() override = default;
void
PrintSelf(std::ostream & os, Indent indent) const override;
void
GenerateData() override;
virtual void
Initialize();
virtual void
PreparePyramids();
itkSetMacro(CurrentLevel, unsigned long);
ParametersType m_LastTransformParameters{};
bool m_Stop{};
private:
// Private using-declarations, to avoid `-Woverloaded-virtual` warnings from GCC (GCC 11.4).
using ProcessObject::MakeOutput;
MetricPointer m_Metric{};
OptimizerType::Pointer m_Optimizer{};
TransformPointer m_Transform{};
InterpolatorPointer m_Interpolator{};
ParametersType m_InitialTransformParameters{};
ParametersType m_InitialTransformParametersOfNextLevel{};
MovingImageConstPointer m_MovingImage{};
FixedImageConstPointer m_FixedImage{};
MovingImagePyramidPointer m_MovingImagePyramid{};
FixedImagePyramidPointer m_FixedImagePyramid{};
FixedImageRegionType m_FixedImageRegion{};
FixedImageRegionPyramidType m_FixedImageRegionPyramid{};
unsigned long m_NumberOfLevels{};
unsigned long m_CurrentLevel{};
};
} // end namespace itk
#ifndef ITK_MANUAL_INSTANTIATION
# include "itkMultiResolutionImageRegistrationMethod2.hxx"
#endif
#endif // end #ifndef itkMultiResolutionImageRegistrationMethod2_h
SingleValuedNonLinearOptimizer
itk::AdvancedImageToImageMetric
An extension of the ITK ImageToImageMetric. It is the intended base class for all elastix metrics.
Definition itkAdvancedImageToImageMetric.h:83
itk::AdvancedImageToImageMetric< FixedImageType, MovingImageType >::AdvancedTransformType
AdvancedTransform< ScalarType, FixedImageDimension, MovingImageDimension > AdvancedTransformType
Definition itkAdvancedImageToImageMetric.h:157
itk::AdvancedImageToImageMetric< FixedImageType, MovingImageType >::Pointer
SmartPointer< Self > Pointer
Definition itkAdvancedImageToImageMetric.h:90
itk::MultiResolutionImageRegistrationMethod2
Base class for multi-resolution image registration methods.
Definition itkMultiResolutionImageRegistrationMethod2.h:98
itk::MultiResolutionImageRegistrationMethod2::MovingImageType
TMovingImage MovingImageType
Definition itkMultiResolutionImageRegistrationMethod2.h:121
itk::MultiResolutionImageRegistrationMethod2::DataObjectPointer
typename DataObject::Pointer DataObjectPointer
Definition itkMultiResolutionImageRegistrationMethod2.h:160
itk::MultiResolutionImageRegistrationMethod2::MovingImageConstPointer
typename MovingImageType::ConstPointer MovingImageConstPointer
Definition itkMultiResolutionImageRegistrationMethod2.h:122
itk::MultiResolutionImageRegistrationMethod2< FixedImageType, MovingImageType >::m_FixedImageRegion
FixedImageRegionType m_FixedImageRegion
Definition itkMultiResolutionImageRegistrationMethod2.h:301
itk::MultiResolutionImageRegistrationMethod2< FixedImageType, MovingImageType >::m_InitialTransformParametersOfNextLevel
ParametersType m_InitialTransformParametersOfNextLevel
Definition itkMultiResolutionImageRegistrationMethod2.h:294
itk::MultiResolutionImageRegistrationMethod2< FixedImageType, MovingImageType >::m_Optimizer
OptimizerType::Pointer m_Optimizer
Definition itkMultiResolutionImageRegistrationMethod2.h:289
itk::MultiResolutionImageRegistrationMethod2::itkGetModifiableObjectMacro
itkGetModifiableObjectMacro(Interpolator, InterpolatorType)
itk::MultiResolutionImageRegistrationMethod2< FixedImageType, MovingImageType >::m_LastTransformParameters
ParametersType m_LastTransformParameters
Definition itkMultiResolutionImageRegistrationMethod2.h:280
itk::MultiResolutionImageRegistrationMethod2::InterpolatorType
typename MetricType::InterpolatorType InterpolatorType
Definition itkMultiResolutionImageRegistrationMethod2.h:140
itk::MultiResolutionImageRegistrationMethod2::TransformOutputConstPointer
typename TransformOutputType::ConstPointer TransformOutputConstPointer
Definition itkMultiResolutionImageRegistrationMethod2.h:137
itk::MultiResolutionImageRegistrationMethod2::FixedImageType
TFixedImage FixedImageType
Definition itkMultiResolutionImageRegistrationMethod2.h:115
itk::MultiResolutionImageRegistrationMethod2< FixedImageType, MovingImageType >::m_Stop
bool m_Stop
Definition itkMultiResolutionImageRegistrationMethod2.h:281
itk::MultiResolutionImageRegistrationMethod2< FixedImageType, MovingImageType >::m_Interpolator
InterpolatorPointer m_Interpolator
Definition itkMultiResolutionImageRegistrationMethod2.h:291
itk::MultiResolutionImageRegistrationMethod2::FixedImageConstPointer
typename FixedImageType::ConstPointer FixedImageConstPointer
Definition itkMultiResolutionImageRegistrationMethod2.h:116
itk::MultiResolutionImageRegistrationMethod2::itkGetModifiableObjectMacro
itkGetModifiableObjectMacro(Optimizer, OptimizerType)
itk::MultiResolutionImageRegistrationMethod2< FixedImageType, MovingImageType >::m_FixedImagePyramid
FixedImagePyramidPointer m_FixedImagePyramid
Definition itkMultiResolutionImageRegistrationMethod2.h:299
itk::MultiResolutionImageRegistrationMethod2::FixedImagePyramidType
MultiResolutionPyramidImageFilter< FixedImageType, FixedImageType > FixedImagePyramidType
Definition itkMultiResolutionImageRegistrationMethod2.h:147
itk::MultiResolutionImageRegistrationMethod2::FixedImagePyramidPointer
typename FixedImagePyramidType::Pointer FixedImagePyramidPointer
Definition itkMultiResolutionImageRegistrationMethod2.h:148
itk::MultiResolutionImageRegistrationMethod2::TransformPointer
typename TransformType::Pointer TransformPointer
Definition itkMultiResolutionImageRegistrationMethod2.h:130
itk::MultiResolutionImageRegistrationMethod2< FixedImageType, MovingImageType >::m_Transform
TransformPointer m_Transform
Definition itkMultiResolutionImageRegistrationMethod2.h:290
itk::MultiResolutionImageRegistrationMethod2::MetricPointer
typename MetricType::Pointer MetricPointer
Definition itkMultiResolutionImageRegistrationMethod2.h:126
itk::MultiResolutionImageRegistrationMethod2::MovingImagePyramidPointer
typename MovingImagePyramidType::Pointer MovingImagePyramidPointer
Definition itkMultiResolutionImageRegistrationMethod2.h:152
itk::MultiResolutionImageRegistrationMethod2::itkGetModifiableObjectMacro
itkGetModifiableObjectMacro(MovingImagePyramid, MovingImagePyramidType)
itk::MultiResolutionImageRegistrationMethod2::InterpolatorPointer
typename InterpolatorType::Pointer InterpolatorPointer
Definition itkMultiResolutionImageRegistrationMethod2.h:141
itk::MultiResolutionImageRegistrationMethod2< FixedImageType, MovingImageType >::FixedImageRegionType
typename FixedImageType::RegionType FixedImageRegionType
Definition itkMultiResolutionImageRegistrationMethod2.h:117
itk::MultiResolutionImageRegistrationMethod2::FixedImageRegionPyramidType
std::vector< FixedImageRegionType > FixedImageRegionPyramidType
Definition itkMultiResolutionImageRegistrationMethod2.h:118
itk::MultiResolutionImageRegistrationMethod2::itkGetModifiableObjectMacro
itkGetModifiableObjectMacro(Metric, MetricType)
itk::MultiResolutionImageRegistrationMethod2< FixedImageType, MovingImageType >::m_FixedImageRegionPyramid
FixedImageRegionPyramidType m_FixedImageRegionPyramid
Definition itkMultiResolutionImageRegistrationMethod2.h:302
itk::MultiResolutionImageRegistrationMethod2::StartRegistration
virtual void StartRegistration()
itk::MultiResolutionImageRegistrationMethod2::MultiResolutionImageRegistrationMethod2
MultiResolutionImageRegistrationMethod2()
itk::MultiResolutionImageRegistrationMethod2::Initialize
virtual void Initialize()
itk::MultiResolutionImageRegistrationMethod2::GetOutput
const TransformOutputType * GetOutput() const
itk::MultiResolutionImageRegistrationMethod2< FixedImageType, MovingImageType >::m_Metric
MetricPointer m_Metric
Definition itkMultiResolutionImageRegistrationMethod2.h:288
itk::MultiResolutionImageRegistrationMethod2< FixedImageType, MovingImageType >::m_InitialTransformParameters
ParametersType m_InitialTransformParameters
Definition itkMultiResolutionImageRegistrationMethod2.h:293
itk::MultiResolutionImageRegistrationMethod2::~MultiResolutionImageRegistrationMethod2
~MultiResolutionImageRegistrationMethod2() override=default
itk::MultiResolutionImageRegistrationMethod2< FixedImageType, MovingImageType >::m_MovingImage
MovingImageConstPointer m_MovingImage
Definition itkMultiResolutionImageRegistrationMethod2.h:296
itk::MultiResolutionImageRegistrationMethod2::StopRegistration
virtual void StopRegistration()
itk::MultiResolutionImageRegistrationMethod2::ITK_DISALLOW_COPY_AND_MOVE
ITK_DISALLOW_COPY_AND_MOVE(MultiResolutionImageRegistrationMethod2)
itk::MultiResolutionImageRegistrationMethod2::GetMTime
ModifiedTimeType GetMTime() const override
itk::MultiResolutionImageRegistrationMethod2::ParametersType
typename MetricType::TransformParametersType ParametersType
Definition itkMultiResolutionImageRegistrationMethod2.h:157
itk::MultiResolutionImageRegistrationMethod2< FixedImageType, MovingImageType >::m_CurrentLevel
unsigned long m_CurrentLevel
Definition itkMultiResolutionImageRegistrationMethod2.h:305
itk::MultiResolutionImageRegistrationMethod2::PreparePyramids
virtual void PreparePyramids()
itk::MultiResolutionImageRegistrationMethod2< FixedImageType, MovingImageType >::m_MovingImagePyramid
MovingImagePyramidPointer m_MovingImagePyramid
Definition itkMultiResolutionImageRegistrationMethod2.h:298
itk::MultiResolutionImageRegistrationMethod2::MakeOutput
DataObjectPointer MakeOutput(ProcessObject::DataObjectPointerArraySizeType idx) override
itk::MultiResolutionImageRegistrationMethod2::itkGetModifiableObjectMacro
itkGetModifiableObjectMacro(FixedImagePyramid, FixedImagePyramidType)
itk::MultiResolutionImageRegistrationMethod2< FixedImageType, MovingImageType >::m_FixedImage
FixedImageConstPointer m_FixedImage
Definition itkMultiResolutionImageRegistrationMethod2.h:297
itk::MultiResolutionImageRegistrationMethod2::TransformOutputType
DataObjectDecorator< TransformType > TransformOutputType
Definition itkMultiResolutionImageRegistrationMethod2.h:135
itk::MultiResolutionImageRegistrationMethod2::ConstPointer
SmartPointer< const Self > ConstPointer
Definition itkMultiResolutionImageRegistrationMethod2.h:106
itk::MultiResolutionImageRegistrationMethod2::MetricType
AdvancedImageToImageMetric< FixedImageType, MovingImageType > MetricType
Definition itkMultiResolutionImageRegistrationMethod2.h:125
itk::MultiResolutionImageRegistrationMethod2::TransformType
typename MetricType::AdvancedTransformType TransformType
Definition itkMultiResolutionImageRegistrationMethod2.h:129
itk::MultiResolutionImageRegistrationMethod2< FixedImageType, MovingImageType >::m_NumberOfLevels
unsigned long m_NumberOfLevels
Definition itkMultiResolutionImageRegistrationMethod2.h:304
itk::MultiResolutionImageRegistrationMethod2::OptimizerType
SingleValuedNonLinearOptimizer OptimizerType
Definition itkMultiResolutionImageRegistrationMethod2.h:144
itk::MultiResolutionImageRegistrationMethod2::PrintSelf
void PrintSelf(std::ostream &os, Indent indent) const override
itk::MultiResolutionImageRegistrationMethod2::TransformOutputPointer
typename TransformOutputType::Pointer TransformOutputPointer
Definition itkMultiResolutionImageRegistrationMethod2.h:136
itk::MultiResolutionImageRegistrationMethod2::itkGetModifiableObjectMacro
itkGetModifiableObjectMacro(Transform, TransformType)
itk::MultiResolutionImageRegistrationMethod2::MovingImagePyramidType
MultiResolutionPyramidImageFilter< MovingImageType, MovingImageType > MovingImagePyramidType
Definition itkMultiResolutionImageRegistrationMethod2.h:151
itk::MultiResolutionImageRegistrationMethod2::GenerateData
void GenerateData() override
itk::MultiResolutionImageRegistrationMethodWithFeatures::Self
MultiResolutionImageRegistrationMethodWithFeatures Self
Definition itkMultiResolutionImageRegistrationMethodWithFeatures.h:62
itk::MultiResolutionImageRegistrationMethodWithFeatures::FixedImageRegionType
typename FixedImageType::RegionType FixedImageRegionType
Definition itkMultiResolutionImageRegistrationMethod2.h:117
itk::MultiResolutionImageRegistrationMethodWithFeatures::Superclass
MultiInputMultiResolutionImageRegistrationMethodBase< TFixedImage, TMovingImage > Superclass
Definition itkMultiResolutionImageRegistrationMethodWithFeatures.h:63
itk::MultiResolutionImageRegistrationMethodWithFeatures::Pointer
SmartPointer< Self > Pointer
Definition itkMultiResolutionImageRegistrationMethodWithFeatures.h:64
itkAdvancedImageToImageMetric.h
itk
Definition itkAdvancedImageToImageMetric.h:43

Generated on 1768596610 for elastix by 1.15.0 |