18 #ifndef sitkFastSymmetricForcesDemonsRegistrationFilter_h
19 #define sitkFastSymmetricForcesDemonsRegistrationFilter_h
83 SITK_RETURN_SELF_TYPE_HEADER
SetStandardDeviations (
const std::vector<double> & StandardDeviations ) { this->m_StandardDeviations = StandardDeviations;
return *
this; }
86 SITK_RETURN_SELF_TYPE_HEADER
SetStandardDeviations(
double value ) { this->m_StandardDeviations = std::vector<double>(3, value);
return *
this; }
104 SITK_RETURN_SELF_TYPE_HEADER
SetMaximumRMSError (
double MaximumRMSError ) { this->m_MaximumRMSError = MaximumRMSError;
return *
this; }
110 typedef enum {Symmetric,Fixed,
WarpedMoving,MappedMoving} UseGradientTypeType;
122 SITK_RETURN_SELF_TYPE_HEADER
SetMaximumUpdateStepLength (
double MaximumUpdateStepLength ) { this->m_MaximumUpdateStepLength = MaximumUpdateStepLength;
return *
this; }
131 SITK_RETURN_SELF_TYPE_HEADER
SetSmoothDisplacementField (
bool SmoothDisplacementField ) { this->m_SmoothDisplacementField = SmoothDisplacementField;
return *
this; }
145 SITK_RETURN_SELF_TYPE_HEADER
SetSmoothUpdateField (
bool SmoothUpdateField ) { this->m_SmoothUpdateField = SmoothUpdateField;
return *
this; }
159 SITK_RETURN_SELF_TYPE_HEADER
SetUpdateFieldStandardDeviations (
const std::vector<double> & UpdateFieldStandardDeviations ) { this->m_UpdateFieldStandardDeviations = UpdateFieldStandardDeviations;
return *
this; }
173 SITK_RETURN_SELF_TYPE_HEADER
SetMaximumKernelWidth (
unsigned int MaximumKernelWidth ) { this->m_MaximumKernelWidth = MaximumKernelWidth;
return *
this; }
183 SITK_RETURN_SELF_TYPE_HEADER
SetMaximumError (
double MaximumError ) { this->m_MaximumError = MaximumError;
return *
this; }
193 SITK_RETURN_SELF_TYPE_HEADER
SetIntensityDifferenceThreshold (
double IntensityDifferenceThreshold ) { this->m_IntensityDifferenceThreshold = IntensityDifferenceThreshold;
return *
this; }
201 SITK_RETURN_SELF_TYPE_HEADER
SetUseImageSpacing (
bool UseImageSpacing ) { this->m_UseImageSpacing = UseImageSpacing;
return *
this; }
234 double GetMetric()
const {
return this->m_pfGetMetric(); };
237 std::string
GetName()
const {
return std::string (
"FastSymmetricForcesDemonsRegistrationFilter"); }
240 std::string ToString()
const;
244 Image Execute (
const Image & fixedImage,
const Image & movingImage,
const Image & initialDisplacementField );
249 Image Execute (
const Image & fixedImage,
const Image & movingImage,
const Image & initialDisplacementField,
const std::vector<double> & standardDeviations,
uint32_t numberOfIterations,
double maximumRMSError,
FastSymmetricForcesDemonsRegistrationFilter::UseGradientTypeType useGradientType,
double maximumUpdateStepLength,
bool smoothDisplacementField,
bool smoothUpdateField,
const std::vector<double> & updateFieldStandardDeviations,
unsigned int maximumKernelWidth,
double maximumError,
double intensityDifferenceThreshold,
bool useImageSpacing );
250 Image Execute (
const Image & fixedImage,
const Image & movingImage,
const std::vector<double> & standardDeviations,
uint32_t numberOfIterations,
double maximumRMSError,
FastSymmetricForcesDemonsRegistrationFilter::UseGradientTypeType useGradientType,
double maximumUpdateStepLength,
bool smoothDisplacementField,
bool smoothUpdateField,
const std::vector<double> & updateFieldStandardDeviations,
unsigned int maximumKernelWidth,
double maximumError,
double intensityDifferenceThreshold,
bool useImageSpacing );
256 typedef Image (
Self::*MemberFunctionType)(
const Image * fixedImage,
const Image * movingImage,
const Image * initialDisplacementField );
257 template <
class TImageType>
Image ExecuteInternal (
const Image * fixedImage,
const Image * movingImage,
const Image * initialDisplacementField );