18#ifndef itkCompositeValleyFunction_h
19#define itkCompositeValleyFunction_h
22#include "ITKBiasCorrectionExport.h"
72 TargetClass(
double mean,
double sigma)
93 SetSigma(
double sigma)
109class ITKBiasCorrection_EXPORT CompositeValleyFunction :
public CacheableScalarFunction
116 using MeasureType = Superclass::MeasureType;
117 using MeasureArrayType = Superclass::MeasureArrayType;
120 CompositeValleyFunction(
const MeasureArrayType & classMeans,
const MeasureArrayType & classSigmas);
123 ~CompositeValleyFunction()
override;
127 GetUpperBound()
const
134 GetLowerBound()
const
142 operator()(MeasureType x)
144 if (x > m_UpperBound || x < m_LowerBound)
149 if (!this->IsCacheAvailable())
151 return this->Evaluate(x);
154 return GetCachedValue(x);
159 Evaluate(MeasureType x)
override;
163 valley(MeasureType d)
165 return 1 - 1 / (1 + d * d / 3);
170 AddNewClass(
double mean,
double sigma)
172 const TargetClass aClass(mean, sigma);
174 m_Targets.push_back(aClass);
183 std::vector<TargetClass> m_Targets{};
187 double m_UpperBound{};
BinaryGeneratorImageFilter< TInputImage1, TInputImage2, TOutputImage > Superclass
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....