18 #ifndef sitkScalarChanAndVeseDenseLevelSetImageFilter_h
19 #define sitkScalarChanAndVeseDenseLevelSetImageFilter_h
84 SITK_RETURN_SELF_TYPE_HEADER
SetMaximumRMSError (
double MaximumRMSError ) { this->m_MaximumRMSError = MaximumRMSError;
return *
this; }
100 SITK_RETURN_SELF_TYPE_HEADER
SetLambda1 (
double Lambda1 ) { this->m_Lambda1 = Lambda1;
return *
this; }
108 SITK_RETURN_SELF_TYPE_HEADER
SetLambda2 (
double Lambda2 ) { this->m_Lambda2 = Lambda2;
return *
this; }
116 SITK_RETURN_SELF_TYPE_HEADER
SetEpsilon (
double Epsilon ) { this->m_Epsilon = Epsilon;
return *
this; }
124 SITK_RETURN_SELF_TYPE_HEADER
SetCurvatureWeight (
double CurvatureWeight ) { this->m_CurvatureWeight = CurvatureWeight;
return *
this; }
132 SITK_RETURN_SELF_TYPE_HEADER
SetAreaWeight (
double AreaWeight ) { this->m_AreaWeight = AreaWeight;
return *
this; }
140 SITK_RETURN_SELF_TYPE_HEADER
SetReinitializationSmoothingWeight (
double ReinitializationSmoothingWeight ) { this->m_ReinitializationSmoothingWeight = ReinitializationSmoothingWeight;
return *
this; }
148 SITK_RETURN_SELF_TYPE_HEADER
SetVolume (
double Volume ) { this->m_Volume = Volume;
return *
this; }
156 SITK_RETURN_SELF_TYPE_HEADER
SetVolumeMatchingWeight (
double VolumeMatchingWeight ) { this->m_VolumeMatchingWeight = VolumeMatchingWeight;
return *
this; }
176 SITK_RETURN_SELF_TYPE_HEADER
SetUseImageSpacing (
bool UseImageSpacing ) { this->m_UseImageSpacing = UseImageSpacing;
return *
this; }
204 std::string
GetName()
const {
return std::string (
"ScalarChanAndVeseDenseLevelSetImageFilter"); }
207 std::string ToString()
const;
215 Image Execute (
const Image& image1,
const Image& image2,
double maximumRMSError,
uint32_t numberOfIterations,
double lambda1,
double lambda2,
double epsilon,
double curvatureWeight,
double areaWeight,
double reinitializationSmoothingWeight,
double volume,
double volumeMatchingWeight,
ScalarChanAndVeseDenseLevelSetImageFilter::HeavisideStepFunctionType heavisideStepFunction,
bool useImageSpacing );
222 template <
class TImageType>
Image ExecuteInternal (
const Image& image1,
const Image& image2 );
269 SITKBasicFilters_EXPORT Image ScalarChanAndVeseDenseLevelSet (
const Image& image1,
const Image& image2,
double maximumRMSError = 0.02,
uint32_t numberOfIterations = 1000u,
double lambda1 = 1.0,
double lambda2 = 1.0,
double epsilon = 1.0,
double curvatureWeight = 1.0,
double areaWeight = 0.0,
double reinitializationSmoothingWeight = 0.0,
double volume = 0.0,
double volumeMatchingWeight = 0.0,
ScalarChanAndVeseDenseLevelSetImageFilter::HeavisideStepFunctionType heavisideStepFunction =
itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::AtanRegularizedHeaviside,
bool useImageSpacing =
true );