go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
itk::ExponentialLimiterFunction< TInput, NDimension > Class Template Reference

#include <itkExponentialLimiterFunction.h>

Detailed Description

template<class TInput, unsigned int NDimension>
class itk::ExponentialLimiterFunction< TInput, NDimension >

A soft limiter.

If the input value exceeds the upper/lower threshold the output is diminished/increased, such that it never will exceed the UpperBound/LowerBound. It does this in a smooth manner, with an exponential function.

\[ L(f(x)) = (T-B) e^{(f-T)/(T-B)} + B, \]

where $B$ is the upper/lower bound and $T$ the upper/lower threshold

See also
LimiterFunctionBase, HardLimiterFunction

Definition at line 43 of file itkExponentialLimiterFunction.h.

Inheritance diagram for itk::ExponentialLimiterFunction< TInput, NDimension >:

Public Types

using ConstPointer = SmartPointer<const Self>
 
using DerivativeType
 
using DerivativeValueType
 
using Pointer = SmartPointer<Self>
 
using Self = ExponentialLimiterFunction
 
using Superclass = LimiterFunctionBase<TInput, NDimension>
 
- Public Types inherited from itk::LimiterFunctionBase< TInput, NDimension >
using ConstPointer = SmartPointer<const Self>
 
using DerivativeType = CovariantVector<DerivativeValueType, Self::Dimension>
 
using DerivativeValueType = OutputType
 
using Pointer = SmartPointer<Self>
 
using Self = LimiterFunctionBase
 
using Superclass = FunctionBase<TInput, typename NumericTraits<TInput>::RealType>
 

Public Member Functions

OutputType Evaluate (const InputType &input) const override
 
OutputType Evaluate (const InputType &input, DerivativeType &derivative) const override
 
virtual const char * GetClassName () const
 
void Initialize () override
 
 ITK_DISALLOW_COPY_AND_MOVE (ExponentialLimiterFunction)
 
 itkStaticConstMacro (Dimension, unsigned int, Superclass::Dimension)
 
- Public Member Functions inherited from itk::LimiterFunctionBase< TInput, NDimension >
virtual OutputType GetLowerBound () const
 
virtual InputType GetLowerThreshold () const
 
virtual OutputType GetUpperBound () const
 
virtual InputType GetUpperThreshold () const
 
 ITK_DISALLOW_COPY_AND_MOVE (LimiterFunctionBase)
 
 itkStaticConstMacro (Dimension, unsigned int, NDimension)
 
virtual void SetLowerBound (OutputType _arg)
 
virtual void SetLowerThreshold (InputType _arg)
 
virtual void SetUpperBound (OutputType _arg)
 
virtual void SetUpperThreshold (InputType _arg)
 

Static Public Member Functions

static Pointer New ()
 

Protected Member Functions

virtual void ComputeLimiterSettings ()
 
 ExponentialLimiterFunction ()
 
 ~ExponentialLimiterFunction () override=default
 
- Protected Member Functions inherited from itk::LimiterFunctionBase< TInput, NDimension >
 LimiterFunctionBase ()
 
 ~LimiterFunctionBase () override=default
 

Protected Attributes

double m_LTminLB {}
 
double m_LTminLBinv {}
 
double m_UTminUB {}
 
double m_UTminUBinv {}
 
- Protected Attributes inherited from itk::LimiterFunctionBase< TInput, NDimension >
OutputType m_LowerBound {}
 
InputType m_LowerThreshold {}
 
OutputType m_UpperBound {}
 
InputType m_UpperThreshold {}
 

Member Typedef Documentation

◆ ConstPointer

template<class TInput , unsigned int NDimension>
using itk::ExponentialLimiterFunction< TInput, NDimension >::ConstPointer = SmartPointer<const Self>

Definition at line 52 of file itkExponentialLimiterFunction.h.

◆ DerivativeType

template<class TInput , unsigned int NDimension>
using itk::LimiterFunctionBase< TInput, NDimension >::DerivativeType

Definition at line 71 of file itkLimiterFunctionBase.h.

◆ DerivativeValueType

template<class TInput , unsigned int NDimension>
using itk::LimiterFunctionBase< TInput, NDimension >::DerivativeValueType

Definition at line 70 of file itkLimiterFunctionBase.h.

◆ Pointer

template<class TInput , unsigned int NDimension>
using itk::ExponentialLimiterFunction< TInput, NDimension >::Pointer = SmartPointer<Self>

Definition at line 51 of file itkExponentialLimiterFunction.h.

◆ Self

template<class TInput , unsigned int NDimension>
using itk::ExponentialLimiterFunction< TInput, NDimension >::Self = ExponentialLimiterFunction

Standard class typedefs.

Definition at line 49 of file itkExponentialLimiterFunction.h.

◆ Superclass

template<class TInput , unsigned int NDimension>
using itk::ExponentialLimiterFunction< TInput, NDimension >::Superclass = LimiterFunctionBase<TInput, NDimension>

Definition at line 50 of file itkExponentialLimiterFunction.h.

Constructor & Destructor Documentation

◆ ExponentialLimiterFunction()

template<class TInput , unsigned int NDimension>
itk::ExponentialLimiterFunction< TInput, NDimension >::ExponentialLimiterFunction ( )
protected

◆ ~ExponentialLimiterFunction()

template<class TInput , unsigned int NDimension>
itk::ExponentialLimiterFunction< TInput, NDimension >::~ExponentialLimiterFunction ( )
overrideprotecteddefault

Member Function Documentation

◆ ComputeLimiterSettings()

template<class TInput , unsigned int NDimension>
virtual void itk::ExponentialLimiterFunction< TInput, NDimension >::ComputeLimiterSettings ( )
protectedvirtual

◆ Evaluate() [1/2]

template<class TInput , unsigned int NDimension>
OutputType itk::ExponentialLimiterFunction< TInput, NDimension >::Evaluate ( const InputType & input) const
overridevirtual

Limit the input value

Implements itk::LimiterFunctionBase< TInput, NDimension >.

◆ Evaluate() [2/2]

template<class TInput , unsigned int NDimension>
OutputType itk::ExponentialLimiterFunction< TInput, NDimension >::Evaluate ( const InputType & input,
DerivativeType & derivative ) const
overridevirtual

Limit the input value and change the input function derivative accordingly

Implements itk::LimiterFunctionBase< TInput, NDimension >.

◆ GetClassName()

template<class TInput , unsigned int NDimension>
virtual const char * itk::ExponentialLimiterFunction< TInput, NDimension >::GetClassName ( ) const
virtual

Run-time type information (and related methods).

Reimplemented from itk::LimiterFunctionBase< TInput, NDimension >.

◆ Initialize()

template<class TInput , unsigned int NDimension>
void itk::ExponentialLimiterFunction< TInput, NDimension >::Initialize ( )
overridevirtual

Initialize the limiter; calls the ComputeLimiterSettings() function

Reimplemented from itk::LimiterFunctionBase< TInput, NDimension >.

◆ ITK_DISALLOW_COPY_AND_MOVE()

template<class TInput , unsigned int NDimension>
itk::ExponentialLimiterFunction< TInput, NDimension >::ITK_DISALLOW_COPY_AND_MOVE ( ExponentialLimiterFunction< TInput, NDimension > )

◆ itkStaticConstMacro()

template<class TInput , unsigned int NDimension>
itk::ExponentialLimiterFunction< TInput, NDimension >::itkStaticConstMacro ( Dimension ,
unsigned int ,
Superclass::Dimension  )

Superclass' static consts

◆ New()

template<class TInput , unsigned int NDimension>
static Pointer itk::ExponentialLimiterFunction< TInput, NDimension >::New ( )
static

Define the New() function, for creation via the ObjectFactory

Field Documentation

◆ m_LTminLB

template<class TInput , unsigned int NDimension>
double itk::ExponentialLimiterFunction< TInput, NDimension >::m_LTminLB {}
protected

Definition at line 90 of file itkExponentialLimiterFunction.h.

◆ m_LTminLBinv

template<class TInput , unsigned int NDimension>
double itk::ExponentialLimiterFunction< TInput, NDimension >::m_LTminLBinv {}
protected

Definition at line 91 of file itkExponentialLimiterFunction.h.

◆ m_UTminUB

template<class TInput , unsigned int NDimension>
double itk::ExponentialLimiterFunction< TInput, NDimension >::m_UTminUB {}
protected

Definition at line 88 of file itkExponentialLimiterFunction.h.

◆ m_UTminUBinv

template<class TInput , unsigned int NDimension>
double itk::ExponentialLimiterFunction< TInput, NDimension >::m_UTminUBinv {}
protected

Definition at line 89 of file itkExponentialLimiterFunction.h.



Generated on 2024-07-17 for elastix by doxygen 1.11.0 (9b424b03c9833626cd435af22a444888fbbb192d) elastix logo