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;
162 itkSetMacro(TransformForward,
bool);
163 itkGetConstMacro(TransformForward,
bool);
164 itkBooleanMacro(TransformForward);
168 #ifndef ITK_FUTURE_LEGACY_REMOVE
172 const auto *
const constArg = arg;
174 this->SetVirtualDomainPointSet(constArg);
177 itkSetConstObjectMacro(VirtualDomainPointSet, VirtualPointSetType);
178 itkGetConstObjectMacro(VirtualDomainPointSet, VirtualPointSetType);
188 EstimateScales(ScalesType & scales)
override = 0;
192 EstimateStepScale(
const ParametersType & step)
override = 0;
196 EstimateLocalStepScales(
const ParametersType & step, ScalesType & localStepScales)
override = 0;
200 EstimateMaximumStepSize()
override;
204 SetScalesSamplingStrategy();
208 SetStepScaleSamplingStrategy();
215 PrintSelf(std::ostream & os,
Indent indent)
const override;
233 CheckGeneralAffineTransform();
243 template <
typename TTransform>
245 CheckGeneralAffineTransformTemplated();
252 template <
typename TTargetPo
intType>
254 TransformPoint(
const VirtualPointType &
point, TTargetPointType & mappedPoint);
257 template <
typename TContinuousIndexType>
259 TransformPointToContinuousIndex(
const VirtualPointType &
point, TContinuousIndexType & mappedIndex);
263 ComputeSquaredJacobianNorms(
const VirtualPointType &
point, ParametersType & squareNorms);
267 TransformHasLocalSupportForScalesEstimation();
271 IsDisplacementFieldTransform();
275 IsBSplineTransform();
279 GetNumberOfLocalParameters();
283 UpdateTransformParameters(
const ParametersType & deltaParameters);
287 SampleVirtualDomain();
291 SampleVirtualDomainFully();
298 SampleVirtualDomainWithCorners();
302 SampleVirtualDomainRandomly();
309 SampleVirtualDomainWithCentralRegion();
313 SampleVirtualDomainWithRegion(VirtualRegionType region);
317 SampleVirtualDomainWithPointSet();
324 GetVirtualDomainCentralIndex();
328 GetVirtualDomainCentralRegion();
367 bool m_TransformForward{};
376 #ifndef ITK_MANUAL_INSTANTIATION
377 # include "itkRegistrationParameterScalesEstimator.hxx"