18 #ifndef sitkScalarChanAndVeseDenseLevelSetImageFilter_h
19 #define sitkScalarChanAndVeseDenseLevelSetImageFilter_h
80 SITK_RETURN_SELF_TYPE_HEADER
SetMaximumRMSError (
double MaximumRMSError ) { this->m_MaximumRMSError = MaximumRMSError;
return *
this; }
96 SITK_RETURN_SELF_TYPE_HEADER
SetLambda1 (
double Lambda1 ) { this->m_Lambda1 = Lambda1;
return *
this; }
104 SITK_RETURN_SELF_TYPE_HEADER
SetLambda2 (
double Lambda2 ) { this->m_Lambda2 = Lambda2;
return *
this; }
112 SITK_RETURN_SELF_TYPE_HEADER
SetEpsilon (
double Epsilon ) { this->m_Epsilon = Epsilon;
return *
this; }
120 SITK_RETURN_SELF_TYPE_HEADER
SetCurvatureWeight (
double CurvatureWeight ) { this->m_CurvatureWeight = CurvatureWeight;
return *
this; }
128 SITK_RETURN_SELF_TYPE_HEADER
SetAreaWeight (
double AreaWeight ) { this->m_AreaWeight = AreaWeight;
return *
this; }
136 SITK_RETURN_SELF_TYPE_HEADER
SetReinitializationSmoothingWeight (
double ReinitializationSmoothingWeight ) { this->m_ReinitializationSmoothingWeight = ReinitializationSmoothingWeight;
return *
this; }
144 SITK_RETURN_SELF_TYPE_HEADER
SetVolume (
double Volume ) { this->m_Volume = Volume;
return *
this; }
152 SITK_RETURN_SELF_TYPE_HEADER
SetVolumeMatchingWeight (
double VolumeMatchingWeight ) { this->m_VolumeMatchingWeight = VolumeMatchingWeight;
return *
this; }
172 SITK_RETURN_SELF_TYPE_HEADER
SetUseImageSpacing (
bool UseImageSpacing ) { this->m_UseImageSpacing = UseImageSpacing;
return *
this; }
201 std::string
GetName()
const {
return std::string (
"ScalarChanAndVeseDenseLevelSetImageFilter"); }
204 std::string ToString()
const;
209 Image Execute (
const Image & initialImage,
const Image & featureImage );
216 template <
class TImageType>
Image ExecuteInternal (
const Image * initialImage,
const Image * featureImage );
225 double m_MaximumRMSError{0.02};
231 double m_Lambda1{1.0};
234 double m_Lambda2{1.0};
237 double m_Epsilon{1.0};
240 double m_CurvatureWeight{1.0};
243 double m_AreaWeight{0.0};
246 double m_ReinitializationSmoothingWeight{0.0};
249 double m_Volume{0.0};
252 double m_VolumeMatchingWeight{0.0};
257 bool m_UseImageSpacing{
true};
262 double m_RMSChange{0.0};
277 SITKBasicFilters_EXPORT Image ScalarChanAndVeseDenseLevelSet (
const Image & initialImage,
const Image & featureImage,
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 );