Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
Fuzzifier< T > Class Template Reference

A base class for fuzzy functions; also an unary functor. More...

#include <Fuzzy.h>

Inheritance diagram for Fuzzifier< T >:
Inheritance graph
[legend]
Collaboration diagram for Fuzzifier< T >:
Collaboration graph
[legend]

Public Member Functions

 Fuzzifier (const std::string &name, const std::string &description="", double scale=1.0, double bias=0.0)
 
bool isInversed ()
 Updates internal variables. Should be called after modifying public members.
 
- Public Member Functions inherited from UnaryFunctor
 UnaryFunctor (const std::string &name, const std::string &description="", double scale=1.0, double bias=0.0)
 
virtual double operator() (double s) const =0
 
- Public Member Functions inherited from Functor
void setScale (double scale, double bias=0.0)
 
virtual void updateBean () const override
 Called after setParameters()
 
- Public Member Functions inherited from BeanLike
 BeanLike (const BeanLike &b)
 Copy constructor. Re-links parameters to the member variables of this (new) instance.
 
 BeanLike (const std::string &name, const std::string &description="")
 Constructor.
 
virtual const std::string & getName () const
 Return the name of an instance.
 
virtual const std::string & getDescription () const
 Return a brief description.
 
bool hasParameters () const
 Tells if any parameters have been linked (registered) for this bean.
 
template<class F >
F getParameter (const std::string &p) const
 Gets a single parameter.
 
const map_t & getParameters () const
 Returns the parameter map (const access).
 
map_t & getParameters ()
 Returns the parameter map.
 
template<class F >
void setParametersFromEntries (const F &args)
 Sets several parameters at once from a sequence of key-value pairs.
 
void setParameters (std::initializer_list< Variable::init_pair_t > args)
 Grants access to (if above hidden)
 
virtual void setParameters (const std::string &p, char assignmentSymbol='=', char separatorSymbol=0)
 Sets comma-separated parameters in a predetermined order "a,b,c" or by specifing them "b=2".
 
template<class T >
void setParameters (const std::map< std::string, T > &args)
 Set parameters.
 
template<class T >
void setParameters (const SmartMap< T > &args)
 Set parameters.
 
void setParameter (const std::string &p, const Castable &value)
 Sets a single parameter.
 
template<class T >
void setParameter (const std::string &p, const VariableT< T > &value)
 
template<class F >
void setParameter (const std::string &p, const F &value)
 Sets a single parameter.
 
template<class F >
void setParameter (const std::string &p, std::initializer_list< F > value)
 Sets a single parameter.
 
BeanLike & operator= (const BeanLike &b)
 Assigns the parameter values of another bean (by key) to this one's own parameters.
 
virtual std::ostream & toStream (std::ostream &ostr, bool compact=true) const
 Prints the name, description and current parameter values.
 

Protected Member Functions

virtual void updateScale () const
 
- Protected Member Functions inherited from Functor
 Functor (const std::string &name, const std::string &description="", double scale=1.0, double bias=0.0)
 
 Functor (const Functor &fct)
 
- Protected Member Functions inherited from BeanLike
virtual void storeLastArguments (const std::string &p)
 Called after setParameters()
 

Protected Attributes

bool INVERSE
 
- Protected Attributes inherited from Functor
double scale
 Relative scale, typically 1. Optional.
 
double bias
 "Relative" bias, typically 0. Optional.
 
double scaleFinal
 Scaling factor after encodings of src and dst images are known.
 
double biasFinal
 Scaling factor after encodings of src and dst images are known.
 
- Protected Attributes inherited from BeanLike
const std::string name
 Name of this bean, typically also the name of the (derived) class.
 
const std::string description
 Brief, human-readable description of this bean.
 
map_t parameters
 Parameters (name -> linked variable), typically linked to member variables of the derived class.
 

Additional Inherited Members

- Public Types inherited from BeanLike
typedef ReferenceMap map_t
 Reference map type used to store this bean's parameters (name -> linked variable).
 

Detailed Description

template<class T>
class drain::Fuzzifier< T >

A base class for fuzzy functions; also an unary functor.

These operators can be used, for example, as template arguments for drain::Image::FunctorOp.

Template Parameters
T- storage type

A simple linear transition from 0 to 1 .

Template Parameters
T- input storage type
T2- output storage type

Examples with and without physical scaling to (0.0,1.0), setting step at 50% intensity (128 and 0.5):

drainage image-gray.png --iFuzzyStep 64:192 -o fuzzyStep.png
drainage image-gray.png -R 0:1 --iFuzzyStep 0.25:0.75 -o fuzzyStep-phys.png

When changing storage type, scaling must be given explicitly (here 256, from C to S ) or physically with -R :

drainage image-gray.png -T S --iFuzzyStep 64:192 -o fuzzyStep-16bit.png
drainage image-gray.png -R 0:1 -T S --iFuzzyStep 0.25:0.5 -o fuzzyStep-16bit-phys.png
Fuzzy Step.

A smooth step function between 0.0 and 1.0. Increasing (decreasing) with positive (negative) width. Otherwise like FuzzySigmoid.

Template Parameters
T- input storage type
T2- output storage type
Fuzzy 'stepsoid'.

A smooth symmetric peak function that resembles the Gaussian bell curve.

Template Parameters
T- input type (typically double)
T2- output type (typically double)
Parameters
location- center of the peak
width- half-width of the peak; if negative, the peak will be upside down
scale- multiplication in scaling (scale*x + bias); default=1.0
bias- offset in scaling (scale*x + bias); default=0.0

The approximation applies

drainage image-gray.png --iFuzzyBell 128,16 -o fuzzyBell.png
drainage image-gray.png -R 0:1 --iFuzzyBell 0.5,0.2 -o fuzzyBell-phys.png
drainage image-gray.png -T S --iFuzzyBell 128,16 -o fuzzyBell-16bit.png
Fuzzy Bell.

A smooth symmetric peak function that resembles the Gaussian bell curve. Diminishes quicker than FuzzyPeak.

Template Parameters
T- input storage type
T2- output storage type
drainage image-gray.png --iFuzzyBell2 128,16 -o fuzzyBell2.png
drainage image-gray.png -R 0:1 --iFuzzyBell2 0.5,0.2 -o fuzzyBell2-phys.png
drainage image-gray.png -T S --iFuzzyBell2 128,16 -o fuzzyBell2-16bit.png
Fuzzy bell(2).

A basic triangular peak function with linear around the peak.

Template Parameters
T- input storage type
T2- output storage type
drainage image-gray.png --iFuzzyTriangle 64:192,128 -o fuzzyTriangle.png
drainage image-gray.png -R 0:1 --iFuzzyTriangle 0.25:0.75,0.5 -o fuzzyTriangle-phys.png
drainage image-gray.png -T S --iFuzzyTriangle 64:192,128 -o fuzzyTriangle-16bit.png
Fuzzy Triangle.

A function taking shape of two peaks, with a zero in the middle .

Template Parameters
T- input storage type
T2- output storage type
Fuzzy 'twin peaks'.

Member Function Documentation

◆ updateScale()

template<class T >
virtual void updateScale ( ) const
inlineprotectedvirtual

Reimplemented from Functor.


The documentation for this class was generated from the following file: