18#ifndef itkImageRegistrationMethodv4_h
19#define itkImageRegistrationMethodv4_h
33#include "ITKRegistrationMethodsv4Export.h"
59extern ITKRegistrationMethodsv4_EXPORT std::ostream &
112template <
typename TFixedImage,
113 typename TMovingImage,
115 typename TVirtualImage = TFixedImage,
154 using RealType =
typename OutputTransformType::ScalarType;
215#if !defined(ITK_LEGACY_REMOVE)
232 virtual const FixedImageType *
248 virtual const MovingImageType *
264 virtual const PointSetType *
280 virtual const PointSetType *
397 for (
unsigned int level = 0; level < factors.
Size(); ++level)
408 ShrinkFactorsPerDimensionContainerType
413 itkExceptionMacro(
"Requesting level greater than the number of levels.");
447 itkSetMacro(SmoothingSigmasAreSpecifiedInPhysicalUnits,
bool);
448 itkGetConstMacro(SmoothingSigmasAreSpecifiedInPhysicalUnits,
bool);
449 itkBooleanMacro(SmoothingSigmasAreSpecifiedInPhysicalUnits);
469 virtual const DecoratedOutputTransformType *
475 virtual OutputTransformType *
487 itkGetConstReferenceMacro(CurrentMetricValue,
RealType);
490 itkGetConstReferenceMacro(CurrentConvergenceValue,
RealType);
493 itkGetConstReferenceMacro(IsConverged,
bool);
498 itkSetMacro(InPlace,
bool);
499 itkGetConstMacro(InPlace,
bool);
500 itkBooleanMacro(InPlace);
603 template <
typename TTransform>
607 ptr = TTransform::New();
618#ifndef ITK_MANUAL_INSTANTIATION
619# include "itkImageRegistrationMethodv4.hxx"
enum type for metric sampling strategy
Array class with size defined at construction time.
SizeValueType Size() const
Decorates any subclass of itkObject with a DataObject API.
SmartPointer< Self > Pointer
Base class for templated image classes.
SmartPointer< const Self > ConstPointer
Contains all enum classes for ImageRegistrationMethodv4 class.
bool m_InitializeCenterOfLinearOutputTransform
virtual void SetFixedImage(SizeValueType, const FixedImageType *)
ObjectToObjectMetricBaseTemplate< RealType > MetricType
virtual void InitializeRegistrationAtEachLevel(const SizeValueType)
virtual const DecoratedOutputTransformType * GetTransformOutput() const
typename DecoratedInitialTransformType::Pointer DecoratedInitialTransformPointer
typename MovingImageType::ConstPointer MovingImageConstPointer
typename OutputTransformType::Pointer OutputTransformPointer
virtual void SetMovingPointSet(const PointSetType *pointSet)
SmartPointer< Self > Pointer
int m_FirstImageMetricIndex
SmoothingSigmasArrayType m_SmoothingSigmasPerLevel
std::vector< TransformParametersAdaptorPointer > TransformParametersAdaptorsContainerType
typename DerivativeType::ValueType DerivativeValueType
virtual const DecoratedOutputTransformType * GetOutput() const
virtual const FixedImageType * GetFixedImage() const
ImageRegistrationMethodv4 Self
virtual void SetMovingImage(SizeValueType, const MovingImageType *)
void PrintSelf(std::ostream &os, Indent indent) const override
typename ImageMetricType::FixedSampledPointSetType MetricSamplePointSetType
typename PointSetType::ConstPointer PointSetConstPointer
DataObjectDecorator< OutputTransformType > DecoratedOutputTransformType
typename ShrinkFilterType::ShrinkFactorsType ShrinkFactorsPerDimensionContainerType
std::vector< MovingImageMaskConstPointer > MovingImageMasksContainerType
PointSetsContainerType m_FixedPointSets
typename DecoratedOutputTransformType::Pointer DecoratedOutputTransformPointer
typename OutputTransformType::ScalarType RealType
std::vector< FixedImageMaskConstPointer > FixedImageMasksContainerType
virtual VirtualImageBaseConstPointer GetCurrentLevelVirtualDomainImage()
TMovingImage MovingImageType
void SetNumberOfLevels(const SizeValueType)
typename VirtualImageType::Pointer VirtualImagePointer
Vector< RealType, ImageDimension > VectorType
virtual const PointSetType * GetFixedPointSet() const
ObjectToObjectOptimizerBaseTemplate< RealType > OptimizerType
DataObjectDecorator< InitialTransformType > DecoratedInitialTransformType
ObjectToObjectMultiMetricv4< ImageDimension, ImageDimension, VirtualImageType, RealType > MultiMetricType
typename FixedImageType::ConstPointer FixedImageConstPointer
virtual void SetFixedPointSet(const PointSetType *pointSet)
static constexpr unsigned int ImageDimension
FixedImageMasksContainerType m_FixedImageMasks
ShrinkImageFilter< FixedImageType, VirtualImageType > ShrinkFilterType
typename FixedImageMaskType::ConstPointer FixedImageMaskConstPointer
SizeValueType m_NumberOfMovingObjects
static void MakeOutputTransform(SmartPointer< InitialTransformType > &ptr)
typename CompositeTransformType::Pointer CompositeTransformPointer
typename VirtualImageBaseType::ConstPointer VirtualImageBaseConstPointer
Array< SizeValueType > ShrinkFactorsArrayType
virtual DecoratedOutputTransformType * GetOutput()
std::vector< PointSetConstPointer > PointSetsContainerType
void SetOptimizerWeights(OptimizerWeightsType &)
virtual OutputTransformType * GetModifiableTransform()
SizeValueType m_CurrentLevel
typename TransformParametersAdaptorType::Pointer TransformParametersAdaptorPointer
bool m_OptimizerWeightsAreIdentity
~ImageRegistrationMethodv4() override=default
PointSetToPointSetMetricWithIndexv4< PointSetType, PointSetType, RealType > PointSetMetricType
const TransformParametersAdaptorsContainerType & GetTransformParametersAdaptorsPerLevel() const
MovingImageMasksContainerType m_MovingImageMasks
static void MakeOutputTransform(SmartPointer< TTransform > &ptr)
virtual const MovingImageType * GetMovingImage(SizeValueType) const
RealType m_CurrentMetricValue
typename FixedImageType::Pointer FixedImagePointer
MetricSamplingPercentageArrayType m_MetricSamplingPercentagePerLevel
OptimizerWeightsType m_OptimizerWeights
virtual void SetMovingPointSet(SizeValueType, const PointSetType *)
void SetMetricSamplingPercentage(const RealType)
virtual void SetFixedImage(const FixedImageType *image)
std::vector< ShrinkFactorsPerDimensionContainerType > m_ShrinkFactorsPerLevel
MovingImagesContainerType m_MovingSmoothImages
virtual const PointSetType * GetFixedPointSet(SizeValueType) const
SmartPointer< const Self > ConstPointer
virtual const FixedImageType * GetFixedImage(SizeValueType) const
ImageBase< ImageDimension > VirtualImageBaseType
std::vector< MovingImageConstPointer > MovingImagesContainerType
void SetShrinkFactorsPerLevel(ShrinkFactorsArrayType factors)
virtual void SetMetricSamplingPercentagePerLevel(const MetricSamplingPercentageArrayType &samplingPercentages)
virtual void SetFixedPointSet(SizeValueType, const PointSetType *)
virtual DecoratedOutputTransformType * GetTransformOutput()
TVirtualImage VirtualImageType
DataObjectPointer MakeOutput(DataObjectPointerArraySizeType) override
Make a DataObject of the correct type to used as the specified output.
virtual const PointSetType * GetMovingPointSet() const
void MetricSamplingReinitializeSeed(int seed)
OptimizerPointer m_Optimizer
virtual void SetMetricSamplePoints()
OutputTransformPointer m_OutputTransform
MetricSamplingStrategyEnum m_MetricSamplingStrategy
SizeValueType m_CurrentIteration
Transform< RealType, ImageDimension, ImageDimension > InitialTransformType
TransformParametersAdaptorsContainerType m_TransformParametersAdaptorsPerLevel
SizeValueType m_NumberOfMetrics
std::vector< FixedImageConstPointer > FixedImagesContainerType
virtual void SetMovingImage(const MovingImageType *image)
typename OptimizerType::Pointer OptimizerPointer
void GenerateData() override
typename MovingImageMaskType::ConstPointer MovingImageMaskConstPointer
VirtualImagePointer m_VirtualDomainImage
virtual void AllocateOutputs()
typename ImageMetricType::MovingImageMaskType MovingImageMaskType
virtual const MovingImageType * GetMovingImage() const
SizeValueType m_NumberOfLevels
RealType m_CurrentConvergenceValue
SizeValueType m_NumberOfFixedObjects
typename InitialTransformType::Pointer InitialTransformPointer
typename MovingImageType::Pointer MovingImagePointer
typename ImageMetricType::FixedImageMaskType FixedImageMaskType
void InitializeCenterOfLinearOutputTransform()
typename MetricType::Pointer MetricPointer
ImageRegistrationMethodv4()
typename OptimizerType::ScalesType OptimizerWeightsType
PointSetsContainerType m_MovingPointSets
virtual const OutputTransformType * GetTransform() const
CompositeTransform< RealType, ImageDimension > CompositeTransformType
TOutputTransform OutputTransformType
virtual const PointSetType * GetMovingPointSet(SizeValueType) const
TransformParametersAdaptorBase< InitialTransformType > TransformParametersAdaptorType
ProcessObject::DataObjectPointerArraySizeType DataObjectPointerArraySizeType
ImageToImageMetricv4< FixedImageType, MovingImageType, VirtualImageType, RealType > ImageMetricType
void MetricSamplingReinitializeSeed()
typename OutputTransformType::DerivativeType DerivativeType
FixedImagesContainerType m_FixedSmoothImages
ImageRegistrationMethodv4Enums::MetricSamplingStrategy MetricSamplingStrategyEnum
TFixedImage FixedImageType
void SetShrinkFactorsPerDimension(unsigned int level, ShrinkFactorsPerDimensionContainerType factors)
ShrinkFactorsPerDimensionContainerType GetShrinkFactorsPerDimension(const unsigned int level) const
CompositeTransformPointer m_CompositeTransform
bool m_SmoothingSigmasAreSpecifiedInPhysicalUnits
Array< RealType > MetricSamplingPercentageArrayType
void SetTransformParametersAdaptorsPerLevel(TransformParametersAdaptorsContainerType &)
Array< RealType > SmoothingSigmasArrayType
SpatialObject< Self::FixedImageDimension > FixedImageMaskType
SpatialObject< Self::MovingImageDimension > MovingImageMaskType
PointSet< typename FixedImageType::PixelType, Self::FixedImageDimension > FixedSampledPointSetType
Control indentation during Print() invocation.
Base class for all object-to-object similarity metrics added in ITKv4.
SmartPointer< Self > Pointer
This class takes one or more ObjectToObject metrics and assigns weights to their derivatives to compu...
Abstract base for object-to-object optimizers.
OptimizerParameters< RealType > ScalesType
SmartPointer< Self > Pointer
virtual void Modified() const
Generic representation for an optimization method.
Computes similarity between two point sets.
A superclass of the N-dimensional mesh structure; supports point (geometric coordinate and attribute)...
DataObjectPointerArray::size_type DataObjectPointerArraySizeType
DataObject::Pointer DataObjectPointer
virtual DataObjectPointer MakeOutput(DataObjectPointerArraySizeType idx)
Make a DataObject of the correct type to used as the specified output.
Reduce the size of an image by an integer factor in each dimension.
FixedArray< unsigned int, ImageDimension > ShrinkFactorsType
Implements transparent reference counting.
A templated class holding a n-Dimensional vector.
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
constexpr TContainer MakeFilled(typename TContainer::const_reference value)
unsigned long SizeValueType
ITKCommon_EXPORT std::ostream & operator<<(std::ostream &out, typename AnatomicalOrientation::CoordinateEnum value)