18#ifndef sitkScalarChanAndVeseDenseLevelSetImageFilter_h
19#define sitkScalarChanAndVeseDenseLevelSetImageFilter_h
88 SITK_RETURN_SELF_TYPE_HEADER
SetLambda1 (
double Lambda1 ) { this->
m_Lambda1 = Lambda1;
return *
this; }
96 SITK_RETURN_SELF_TYPE_HEADER
SetLambda2 (
double Lambda2 ) { this->
m_Lambda2 = Lambda2;
return *
this; }
136 SITK_RETURN_SELF_TYPE_HEADER
SetVolume (
double Volume ) { this->
m_Volume = Volume;
return *
this; }
193 std::string
GetName()
const {
return std::string (
"ScalarChanAndVeseDenseLevelSetImageFilter"); }
269 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 );
The Image class for SimpleITK.
double GetCurvatureWeight() const
Self & SetLambda1(double Lambda1)
Self & UseImageSpacingOn()
Self & SetAreaWeight(double AreaWeight)
Self & SetEpsilon(double Epsilon)
double GetReinitializationSmoothingWeight() const
HeavisideStepFunctionType m_HeavisideStepFunction
double m_ReinitializationSmoothingWeight
uint32_t m_NumberOfIterations
ScalarChanAndVeseDenseLevelSetImageFilter()
double m_VolumeMatchingWeight
Self & SetCurvatureWeight(double CurvatureWeight)
uint32_t GetNumberOfIterations() const
HeavisideStepFunctionType
@ SinRegularizedHeaviside
@ AtanRegularizedHeaviside
Image ExecuteInternal(const Image *initialImage, const Image *featureImage)
ScalarChanAndVeseDenseLevelSetImageFilter Self
Self & SetVolumeMatchingWeight(double VolumeMatchingWeight)
std::string GetName() const
Self & SetUseImageSpacing(bool UseImageSpacing)
Self & SetHeavisideStepFunction(HeavisideStepFunctionType HeavisideStepFunction)
bool GetUseImageSpacing() const
double GetAreaWeight() const
double GetVolumeMatchingWeight() const
double GetLambda2() const
double GetEpsilon() const
Self & UseImageSpacingOff()
Self & SetNumberOfIterations(uint32_t NumberOfIterations)
Self & SetVolume(double Volume)
uint32_t m_ElapsedIterations
Image Execute(const Image &initialImage, const Image &featureImage)
double GetRMSChange() const
The Root Mean Square of the levelset upon termination.
double GetMaximumRMSError() const
uint32_t GetElapsedIterations() const
Number of iterations run.
Self & SetLambda2(double Lambda2)
std::string ToString() const
Self & SetReinitializationSmoothingWeight(double ReinitializationSmoothingWeight)
RealPixelIDTypeList PixelIDTypeList
std::unique_ptr< detail::MemberFunctionFactory< MemberFunctionType > > m_MemberFactory
double GetLambda1() const
Image(Self::*)(const Image *initialImage, const Image *featureImage) MemberFunctionType
Self & SetMaximumRMSError(double MaximumRMSError)
HeavisideStepFunctionType GetHeavisideStepFunction() const
virtual ~ScalarChanAndVeseDenseLevelSetImageFilter()
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)
Dense implementation of the Chan and Vese multiphase level set image filter.
typelist2::typelist< BasicPixelID< float >, BasicPixelID< double > > RealPixelIDTypeList
#define SITKBasicFilters_EXPORT