18 #ifndef __itkRegistrationParameterScalesEstimator_h
19 #define __itkRegistrationParameterScalesEstimator_h
53 template <
class TMetric >
67 typedef typename Superclass::ScalesType
ScalesType;
87 itkStaticConstMacro(FixedDimension,
SizeValueType, TMetric::FixedDimension );
88 itkStaticConstMacro(MovingDimension,
SizeValueType, TMetric::MovingDimension );
89 itkStaticConstMacro(VirtualDimension,
SizeValueType, TMetric::VirtualDimension );
105 typedef enum { FullDomainSampling = 0,
109 VirtualDomainPointSetSampling } SamplingStrategyType;
126 itkSetMacro(TransformForward,
bool);
127 itkGetConstMacro(TransformForward,
bool);
140 virtual void EstimateScales(
ScalesType &scales) = 0;
149 virtual FloatType EstimateMaximumStepSize();
152 virtual void SetScalesSamplingStrategy();
155 virtual void SetStepScaleSamplingStrategy();
161 virtual void PrintSelf(std::ostream &os,
Indent indent)
const;
164 bool CheckAndSetInputs();
171 itkSetMacro(SamplingStrategy, SamplingStrategyType);
177 bool CheckGeneralAffineTransform();
184 template<
class TTransform >
bool CheckGeneralAffineTransformTemplated();
187 template<
class TTargetPo
intType >
void TransformPoint(
const VirtualPointType &point, TTargetPointType &mappedPoint);
190 template<
class TContinuousIndexType >
void TransformPointToContinuousIndex(
const VirtualPointType &point,TContinuousIndexType &mappedIndex);
193 void ComputeSquaredJacobianNorms(
const VirtualPointType & p, ParametersType & squareNorms);
196 bool TransformHasLocalSupportForScalesEstimation();
199 bool IsDisplacementFieldTransform();
202 bool IsBSplineTransform();
208 void UpdateTransformParameters(
const ParametersType &deltaParameters);
211 virtual void SampleVirtualDomain();
214 void SampleVirtualDomainFully();
217 void SampleVirtualDomainWithCorners();
220 void SampleVirtualDomainRandomly();
223 void SampleVirtualDomainWithCentralRegion();
226 void SampleVirtualDomainWithRegion(VirtualRegionType region);
229 void SampleVirtualDomainWithPointSet();
232 VirtualIndexType GetVirtualDomainCentralIndex();
235 VirtualRegionType GetVirtualDomainCentralRegion();
245 itkGetMacro( SamplingStrategy, SamplingStrategyType )
269 void operator=(const Self&);
275 bool m_TransformForward;
286 #ifndef ITK_MANUAL_INSTANTIATION
287 #include "itkRegistrationParameterScalesEstimator.hxx"