[ VIGRA Homepage | Function Index | Class Index | Namespaces | File List | Main Page ]

DiffusivityFunctor< Value > Class Template Reference

Diffusivity functor for non-linear diffusion. More...

#include <vigra/nonlineardiffusion.hxx>

Public Types

typedef Value first_argument_type
 
typedef NumericTraits< Value >::RealPromote result_type
 
typedef Value second_argument_type
 
typedef Value value_type
 

Public Member Functions

 DiffusivityFunctor (Value const &thresh)
 
result_type operator() (first_argument_type const &gx, second_argument_type const &gy) const
 
result_type operator() (RGBValue< Value > const &gx, RGBValue< Value > const &gy) const
 

Detailed Description

template<class Value>
class vigra::DiffusivityFunctor< Value >

Diffusivity functor for non-linear diffusion.

This functor implements the diffusivity recommended by Weickert:

\[
    g(|\nabla u|) = 1 -
       \exp{\left(\frac{-3.315}{(|\nabla u| / thresh)^4}\right)}
\]

where thresh is a threshold that determines whether a specific gradient magnitude is interpreted as a significant edge (above the threshold) or as noise. It is meant to be used with nonlinearDiffusion().

Member Typedef Documentation

◆ first_argument_type

template<class Value >
typedef Value first_argument_type

the functors first argument type (must be an algebraic field with exp() defined). However, the functor also works with RGBValue<first_argument_type> (this hack is necessary since Microsoft C++ doesn't support partial specialization).

◆ second_argument_type

template<class Value >
typedef Value second_argument_type

the functors second argument type (same as first). However, the functor also works with RGBValue<second_argument_type> (this hack is necessary since Microsoft C++ doesn't support partial specialization).

◆ result_type

template<class Value >
typedef NumericTraits<Value>::RealPromote result_type

the functors result type

◆ value_type

template<class Value >
typedef Value value_type
Deprecated:
use first_argument_type, second_argument_type, result_type

Constructor & Destructor Documentation

◆ DiffusivityFunctor()

template<class Value >
DiffusivityFunctor ( Value const thresh)

init functor with given edge threshold

Member Function Documentation

◆ operator()() [1/2]

template<class Value >
result_type operator() ( first_argument_type const gx,
second_argument_type const gy 
) const

calculate diffusivity from scalar arguments

◆ operator()() [2/2]

template<class Value >
result_type operator() ( RGBValue< Value > const gx,
RGBValue< Value > const gy 
) const

calculate diffusivity from RGB arguments


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

© Ullrich Köthe (ullrich.koethe@iwr.uni-heidelberg.de)
Heidelberg Collaboratory for Image Processing, University of Heidelberg, Germany

html generated using doxygen and Python
vigra 1.11.2