18 #ifndef __itkImageRegistrationMethodv4_h
19 #define __itkImageRegistrationMethodv4_h
88 template<
typename TFixedImage,
89 typename TMovingImage,
90 typename TOutputTransform=Transform<double, TFixedImage::ImageDimension, TFixedImage::ImageDimension >,
91 typename TVirtualImage = TFixedImage>
106 itkStaticConstMacro(
ImageDimension,
unsigned int, TFixedImage::ImageDimension );
122 typedef typename OutputTransformType::ScalarType
RealType;
220 itkGetModifiableObjectMacro( Metric,
MetricType );
284 for(
unsigned int level = 0; level < factors.
Size(); ++level )
287 shrinkFactors.
Fill( factors[level] );
300 itkExceptionMacro(
"Requesting level greater than the number of levels." );
333 itkSetMacro( SmoothingSigmasAreSpecifiedInPhysicalUnits,
bool );
334 itkGetConstMacro( SmoothingSigmasAreSpecifiedInPhysicalUnits,
bool );
335 itkBooleanMacro( SmoothingSigmasAreSpecifiedInPhysicalUnits );
358 itkGetConstReferenceMacro( CurrentIteration,
SizeValueType );
361 itkGetConstReferenceMacro( CurrentMetricValue,
RealType );
364 itkGetConstReferenceMacro( CurrentConvergenceValue,
RealType );
367 itkGetConstReferenceMacro( IsConverged,
bool );
372 itkSetMacro(InPlace,
bool);
373 itkGetConstMacro(InPlace,
bool);
374 itkBooleanMacro(InPlace);
378 #ifdef ITKV3_COMPATIBILITY
394 void StartRegistration(
void) { this->
Update(); }
400 virtual void PrintSelf( std::ostream & os, Indent indent )
const ITK_OVERRIDE;
448 void operator=( const Self & );
453 template<typename TTransform>
456 ptr = TTransform::New();
467 #ifndef ITK_MANUAL_INSTANTIATION
468 #include "itkImageRegistrationMethodv4.hxx"
MetricType::Pointer MetricPointer
InitialTransformType::Pointer InitialTransformPointer
virtual DecoratedOutputTransformType * GetTransformOutput()
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
static void MakeOutputTransform(SmartPointer< TTransform > &ptr)
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
ObjectType * GetPointer() const
void SetShrinkFactorsPerDimension(unsigned int level, ShrinkFactorsPerDimensionContainerType factors)
DecoratedInitialTransformType::Pointer DecoratedInitialTransformPointer
Base class for all object-to-object similarlity metrics added in ITKv4.
unsigned long SizeValueType
DataObjectDecorator< OutputTransformType > DecoratedOutputTransformType
OptimizerPointer m_Optimizer
void Fill(const ValueType &)
DataObjectDecorator< InitialTransformType > DecoratedInitialTransformType
ImageToImageMetricv4< FixedImageType, MovingImageType, VirtualImageType, RealType > ImageMetricType
CompositeTransformType::Pointer CompositeTransformPointer
CompositeTransform< RealType, ImageDimension > CompositeTransformType
MovingImageType::Pointer MovingImagePointer
OutputTransformPointer m_OutputTransform
std::vector< FixedImagePointer > FixedImagesContainerType
ImageMetricType::FixedSampledPointSetType MetricSamplePointSetType
OptimizerWeightsType m_OptimizerWeights
std::vector< ShrinkFactorsPerDimensionContainerType > m_ShrinkFactorsPerLevel
virtual const FixedImageType * GetFixedImage() const
virtual void GenerateData() ITK_OVERRIDE
SizeValueType m_NumberOfLevels
virtual const MovingImageType * GetMovingImage() const
DataObjectPointerArray::size_type DataObjectPointerArraySizeType
virtual DataObjectPointer MakeOutput(DataObjectPointerArraySizeType) ITK_OVERRIDE
MovingImagesContainerType m_MovingSmoothImages
ObjectToObjectMetricBaseTemplate< RealType > MetricType
MetricSamplingStrategyType
ImageRegistrationMethodv4()
itkSetGetDecoratedObjectInputMacro(FixedInitialTransform, InitialTransformType)
virtual OutputTransformType * GetModifiableTransform()
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)...
virtual DecoratedOutputTransformType * GetOutput()
Array< SizeValueType > ShrinkFactorsArrayType
TMovingImage MovingImageType
virtual void SetMetricSamplePoints()
SmoothingSigmasArrayType m_SmoothingSigmasPerLevel
Generic representation for an optimization method.
ShrinkFilterType::ShrinkFactorsType ShrinkFactorsPerDimensionContainerType
void SetTransformParametersAdaptorsPerLevel(TransformParametersAdaptorsContainerType &)
void SetShrinkFactorsPerLevel(ShrinkFactorsArrayType factors)
virtual DataObjectPointer MakeOutput(DataObjectPointerArraySizeType idx)
static void MakeOutputTransform(SmartPointer< InitialTransformType > &ptr)
virtual const DecoratedOutputTransformType * GetTransformOutput() const
virtual void Modified() const
TOutputTransform OutputTransformType
FixedImageType::Pointer FixedImagePointer
virtual void AllocateOutputs()
MetricSamplingStrategyType m_MetricSamplingStrategy
SizeValueType m_NumberOfFixedImages
ShrinkFactorsPerDimensionContainerType GetShrinkFactorsPerDimension(const unsigned int level) const
TVirtualImage VirtualImageType
FixedImagesContainerType m_FixedSmoothImages
virtual void PrintSelf(std::ostream &os, Indent indent) const ITK_OVERRIDE
TransformParametersAdaptorBase< InitialTransformType > TransformParametersAdaptorType
TransformParametersAdaptorsContainerType m_TransformParametersAdaptorsPerLevel
Array< RealType > SmoothingSigmasArrayType
ObjectToObjectMultiMetricv4< ImageDimension, ImageDimension, VirtualImageType, RealType > MultiMetricType
OutputTransformType::Pointer OutputTransformPointer
Reduce the size of an image by an integer factor in each dimension.
RealType m_CurrentMetricValue
SizeValueType Size(void) const
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
Transform< RealType, ImageDimension, ImageDimension > InitialTransformType
DerivativeType::ValueType DerivativeValueType
virtual const OutputTransformType * GetTransform() const
RealType m_CurrentConvergenceValue
Array< RealType > MetricSamplingPercentageArrayType
DecoratedOutputTransformType::Pointer DecoratedOutputTransformPointer
OutputTransformType::DerivativeType DerivativeType