18 #ifndef itkRegistrationParameterScalesEstimator_h
19 #define itkRegistrationParameterScalesEstimator_h
30 #include "ITKOptimizersv4Export.h"
56 extern ITKOptimizersv4_EXPORT std::ostream &
79 template <
typename TMetric>
96 using typename Superclass::ScalesType;
99 using typename Superclass::ParametersType;
102 using typename Superclass::FloatType;
118 static constexpr
SizeValueType VirtualDimension = TMetric::VirtualDimension;
134 #if !defined(ITK_LEGACY_REMOVE)
137 static constexpr
SamplingStrategyType FullDomainSampling = SamplingStrategyType::FullDomainSampling;
140 static constexpr
SamplingStrategyType CentralRegionSampling = SamplingStrategyType::CentralRegionSampling;
142 SamplingStrategyType::VirtualDomainPointSetSampling;
160 itkSetMacro(TransformForward,
bool);
161 itkGetConstMacro(TransformForward,
bool);
175 EstimateScales(
ScalesType & scales)
override = 0;
187 EstimateMaximumStepSize()
override;
191 SetScalesSamplingStrategy();
195 SetStepScaleSamplingStrategy();
202 PrintSelf(std::ostream & os,
Indent indent)
const override;
220 CheckGeneralAffineTransform();
230 template <
typename TTransform>
232 CheckGeneralAffineTransformTemplated();
239 template <
typename TTargetPo
intType>
244 template <
typename TContinuousIndexType>
254 TransformHasLocalSupportForScalesEstimation();
258 IsDisplacementFieldTransform();
262 IsBSplineTransform();
266 GetNumberOfLocalParameters();
270 UpdateTransformParameters(
const ParametersType & deltaParameters);
274 SampleVirtualDomain();
278 SampleVirtualDomainFully();
285 SampleVirtualDomainWithCorners();
289 SampleVirtualDomainRandomly();
296 SampleVirtualDomainWithCentralRegion();
304 SampleVirtualDomainWithPointSet();
311 GetVirtualDomainCentralIndex();
315 GetVirtualDomainCentralRegion();
354 bool m_TransformForward{};
363 #ifndef ITK_MANUAL_INSTANTIATION
364 # include "itkRegistrationParameterScalesEstimator.hxx"