18 #ifndef itkRegistrationParameterScalesEstimator_h
19 #define itkRegistrationParameterScalesEstimator_h
53 template <
typename TMetric >
68 typedef typename Superclass::ScalesType
ScalesType;
88 itkStaticConstMacro(FixedDimension,
SizeValueType, TMetric::FixedDimension );
89 itkStaticConstMacro(MovingDimension,
SizeValueType, TMetric::MovingDimension );
90 itkStaticConstMacro(VirtualDimension,
SizeValueType, TMetric::VirtualDimension );
106 typedef enum { FullDomainSampling = 0,
110 VirtualDomainPointSetSampling } SamplingStrategyType;
127 itkSetMacro(TransformForward,
bool);
128 itkGetConstMacro(TransformForward,
bool);
141 virtual void EstimateScales(
ScalesType &scales) ITK_OVERRIDE = 0;
150 virtual FloatType EstimateMaximumStepSize() ITK_OVERRIDE;
153 virtual
void SetScalesSamplingStrategy();
156 virtual
void SetStepScaleSamplingStrategy();
160 ~RegistrationParameterScalesEstimator() ITK_OVERRIDE {};
162 virtual void PrintSelf(std::ostream & os,
Indent indent)
const ITK_OVERRIDE;
165 bool CheckAndSetInputs();
172 itkSetMacro(SamplingStrategy, SamplingStrategyType);
178 bool CheckGeneralAffineTransform();
185 template<
typename TTransform >
bool CheckGeneralAffineTransformTemplated();
188 template<
typename TTargetPo
intType >
void TransformPoint(
const VirtualPointType &point, TTargetPointType &mappedPoint);
191 template<
typename TContinuousIndexType >
void TransformPointToContinuousIndex(
const VirtualPointType &point,TContinuousIndexType &mappedIndex);
194 void ComputeSquaredJacobianNorms(
const VirtualPointType & p, ParametersType & squareNorms);
197 bool TransformHasLocalSupportForScalesEstimation();
200 bool IsDisplacementFieldTransform();
203 bool IsBSplineTransform();
209 void UpdateTransformParameters(
const ParametersType &deltaParameters);
212 virtual void SampleVirtualDomain();
215 void SampleVirtualDomainFully();
218 void SampleVirtualDomainWithCorners();
221 void SampleVirtualDomainRandomly();
224 void SampleVirtualDomainWithCentralRegion();
227 void SampleVirtualDomainWithRegion(VirtualRegionType region);
230 void SampleVirtualDomainWithPointSet();
233 VirtualIndexType GetVirtualDomainCentralIndex();
236 VirtualRegionType GetVirtualDomainCentralRegion();
246 itkGetMacro( SamplingStrategy, SamplingStrategyType )
275 bool m_TransformForward;
286 #ifndef ITK_MANUAL_INSTANTIATION
287 #include "itkRegistrationParameterScalesEstimator.hxx"
Light weight base class for most itk classes.
MetricType::ConstPointer MetricConstPointer
std::vector< VirtualPointType > SamplePointContainerType
TMetric::VirtualIndexType VirtualIndexType
MetricType::MovingTransformType MovingTransformType
signed long IndexValueType
SmartPointer< const Self > ConstPointer
OptimizerParameterScalesEstimatorTemplate< typename TMetric::ParametersValueType > Superclass
unsigned long SizeValueType
OptimizerParameterScalesEstimatorTemplate is the base class offering a empty method of estimating the...
Superclass::FloatType FloatType
MetricType::FixedTransformType FixedTransformType
TMetric::VirtualRegionType VirtualRegionType
TMetric::VirtualSpacingType VirtualSpacingType
TMetric::VirtualImagePointer VirtualImagePointer
Superclass::ParametersType ParametersType
FixedTransformType::ConstPointer FixedTransformConstPointer
Implements a registration helper class for estimating scales of transform parameters and step sizes...
Generate a unique, increasing time value.
SmartPointer< Self > Pointer
TMetric::VirtualPointSetType VirtualPointSetType
TMetric::VirtualImageType VirtualImageType
TMetric::VirtualPointType VirtualPointType
Control indentation during Print() invocation.
TMetric::JacobianType JacobianType
MetricType::Pointer MetricPointer
TMetric::VirtualImageConstPointer VirtualImageConstPointer
RegistrationParameterScalesEstimator Self
TMetric::VirtualSizeType VirtualSizeType
MovingTransformType::ConstPointer MovingTransformConstPointer
TMetric::VirtualPointSetPointer VirtualPointSetPointer
Superclass::ScalesType ScalesType