18 #ifndef __itkImageRegistrationMethodv4_h
19 #define __itkImageRegistrationMethodv4_h
88 template<
typename TFixedImage,
typename TMovingImage,
typename TOutputTransform,
typename TVirtualImage = TFixedImage>
103 itkStaticConstMacro(
ImageDimension,
unsigned int, TFixedImage::ImageDimension );
119 typedef typename OutputTransformType::ScalarType
RealType;
214 itkGetModifiableObjectMacro( Metric,
MetricType );
265 for(
unsigned int level = 0; level < factors.
Size(); ++level )
268 shrinkFactors.
Fill( factors[level] );
281 itkExceptionMacro(
"Requesting level greater than the number of levels." );
314 itkSetMacro( SmoothingSigmasAreSpecifiedInPhysicalUnits,
bool );
315 itkGetConstMacro( SmoothingSigmasAreSpecifiedInPhysicalUnits,
bool );
316 itkBooleanMacro( SmoothingSigmasAreSpecifiedInPhysicalUnits );
331 itkGetConstReferenceMacro( CurrentIteration,
SizeValueType );
334 itkGetConstReferenceMacro( CurrentMetricValue,
RealType );
337 itkGetConstReferenceMacro( CurrentConvergenceValue,
RealType );
340 itkGetConstReferenceMacro( IsConverged,
bool );
342 #ifdef ITKV3_COMPATIBILITY
358 void StartRegistration(
void) { this->
Update(); }
414 #ifndef ITK_MANUAL_INSTANTIATION
415 #include "itkImageRegistrationMethodv4.hxx"
MetricType::Pointer MetricPointer
InitialTransformType::Pointer InitialTransformPointer
OptimizerType::Pointer OptimizerPointer
Light weight base class for most itk classes.
OptimizerType::ScalesType OptimizerWeightsType
ImageRegistrationMethodv4 Self
virtual void SetFixedImage(const FixedImageType *image)
static const unsigned int ImageDimension
virtual ~ImageRegistrationMethodv4()
virtual void InitializeRegistrationAtEachLevel(const SizeValueType)
bool m_OptimizerWeightsAreIdentity
const TransformParametersAdaptorsContainerType & GetTransformParametersAdaptorsPerLevel() const
virtual void SetMovingImage(const MovingImageType *image)
MetricSamplingPercentageArrayType m_MetricSamplingPercentagePerLevel
ShrinkImageFilter< FixedImageType, VirtualImageType > ShrinkFilterType
TFixedImage FixedImageType
virtual void GenerateData()
std::vector< TransformParametersAdaptorPointer > TransformParametersAdaptorsContainerType
This class takes one ore more ObjectToObject metrics and assigns weights to their derivatives to comp...
SizeValueType m_NumberOfMovingImages
void SetMetricSamplingPercentage(const RealType)
OutputTransformType::ScalarType RealType
SmartPointer< const Self > ConstPointer
void SetOptimizerWeights(OptimizerWeightsType &)
ObjectToObjectOptimizerBaseTemplate< RealType > OptimizerType
The base class for all process objects (source, filters, mappers) in the Insight data processing pipe...
SizeValueType m_CurrentIteration
ProcessObject::DataObjectPointerArraySizeType DataObjectPointerArraySizeType
bool m_SmoothingSigmasAreSpecifiedInPhysicalUnits
void SetShrinkFactorsPerDimension(unsigned int level, ShrinkFactorsPerDimensionContainerType factors)
Base class for all object-to-object similarlity metrics added in ITKv4.
unsigned long SizeValueType
DataObjectDecorator< OutputTransformType > DecoratedOutputTransformType
OptimizerPointer m_Optimizer
TransformParametersAdaptor< OutputTransformType > TransformParametersAdaptorType
ImageToImageMetricv4< FixedImageType, MovingImageType, VirtualImageType, RealType > ImageMetricType
CompositeTransformType::Pointer CompositeTransformPointer
CompositeTransform< RealType, ImageDimension > CompositeTransformType
InitialTransformPointer m_FixedInitialTransform
MovingImageType::Pointer MovingImagePointer
void Fill(const ValueType &)
OutputTransformPointer m_OutputTransform
std::vector< FixedImagePointer > FixedImagesContainerType
ImageMetricType::FixedSampledPointSetType MetricSamplePointSetType
OptimizerWeightsType m_OptimizerWeights
std::vector< ShrinkFactorsPerDimensionContainerType > m_ShrinkFactorsPerLevel
virtual const FixedImageType * GetFixedImage() const
SizeValueType m_NumberOfLevels
virtual const MovingImageType * GetMovingImage() const
DataObjectPointerArray::size_type DataObjectPointerArraySizeType
MovingImagesContainerType m_MovingSmoothImages
Class to hold and manage different parameter types used during optimization.
ObjectToObjectMetricBaseTemplate< RealType > MetricType
MetricSamplingStrategyType
ImageRegistrationMethodv4()
SmartPointer< Self > Pointer
Decorates any subclass of itkObject with a DataObject API.
A superclass of the N-dimensional mesh structure; supports point (geometric coordinate and attribute)...
Array< SizeValueType > ShrinkFactorsArrayType
TMovingImage MovingImageType
virtual void SetMetricSamplePoints()
SmoothingSigmasArrayType m_SmoothingSigmasPerLevel
Generic representation for an optimization method.
virtual DataObjectPointer MakeOutput(DataObjectPointerArraySizeType)
ShrinkFilterType::ShrinkFactorsType ShrinkFactorsPerDimensionContainerType
void SetTransformParametersAdaptorsPerLevel(TransformParametersAdaptorsContainerType &)
void SetShrinkFactorsPerLevel(ShrinkFactorsArrayType factors)
virtual DataObjectPointer MakeOutput(DataObjectPointerArraySizeType idx)
virtual void Modified() const
TOutputTransform OutputTransformType
virtual void PrintSelf(std::ostream &os, Indent indent) const
FixedImageType::Pointer FixedImagePointer
InitialTransformPointer m_MovingInitialTransform
MetricSamplingStrategyType m_MetricSamplingStrategy
SizeValueType m_NumberOfFixedImages
ShrinkFactorsPerDimensionContainerType GetShrinkFactorsPerDimension(const unsigned int level) const
TVirtualImage VirtualImageType
FixedImagesContainerType m_FixedSmoothImages
TransformParametersAdaptorsContainerType m_TransformParametersAdaptorsPerLevel
Array< RealType > SmoothingSigmasArrayType
ObjectToObjectMultiMetricv4< ImageDimension, ImageDimension, VirtualImageType, RealType > MultiMetricType
OutputTransformType::Pointer OutputTransformPointer
Control indentation during Print() invocation.
Reduce the size of an image by an integer factor in each dimension.
RealType m_CurrentMetricValue
virtual const DecoratedOutputTransformType * GetOutput() const
void operator=(const Self &)
CompositeTransformPointer m_CompositeTransform
Interface method for the current registration framework.
void SetNumberOfLevels(const SizeValueType)
TransformParametersAdaptorType::Pointer TransformParametersAdaptorPointer
std::vector< MovingImagePointer > MovingImagesContainerType
Abstract base for object-to-object optimizers.
SizeValueType m_CurrentLevel
SizeValueType Size(void) const
Transform< RealType, ImageDimension, ImageDimension > InitialTransformType
DerivativeType::ValueType DerivativeValueType
RealType m_CurrentConvergenceValue
Array< RealType > MetricSamplingPercentageArrayType
DecoratedOutputTransformType::Pointer DecoratedOutputTransformPointer
OutputTransformType::DerivativeType DerivativeType