[ 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 | 
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)} \]](form_72.png) 
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(). 
| 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). 
| 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).
| typedef NumericTraits<Value>::RealPromote result_type | 
the functors result type
| typedef Value value_type | 
| DiffusivityFunctor | ( | Value const & | thresh | ) | 
init functor with given edge threshold
| result_type operator() | ( | first_argument_type const & | gx, | 
| second_argument_type const & | gy | ||
| ) | const | 
calculate diffusivity from scalar arguments
| result_type operator() | ( | RGBValue< Value > const & | gx, | 
| RGBValue< Value > const & | gy | ||
| ) | const | 
calculate diffusivity from RGB arguments
| 
© Ullrich Köthe     (ullrich.koethe@iwr.uni-heidelberg.de)  | 
html generated using doxygen and Python
 |