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 HasLocalSupport();
202 void UpdateTransformParameters(
const ParametersType &deltaParameters);
205 virtual void SampleVirtualDomain();
208 void SampleVirtualDomainFully();
211 void SampleVirtualDomainWithCorners();
214 void SampleVirtualDomainRandomly();
217 void SampleVirtualDomainWithCentralRegion();
220 void SampleVirtualDomainWithRegion(VirtualRegionType region);
223 void SampleVirtualDomainWithPointSet();
226 VirtualIndexType GetVirtualDomainCentralIndex();
229 VirtualRegionType GetVirtualDomainCentralRegion();
239 itkGetMacro( SamplingStrategy, SamplingStrategyType )
263 void operator=(const Self&);
269 bool m_TransformForward;
280 #ifndef ITK_MANUAL_INSTANTIATION
281 #include "itkRegistrationParameterScalesEstimator.hxx"