expkurve Class Reference

#include <imgclass.hpp>

Inheritance diagram for expkurve:

Inheritance graph
base refererrect $classeichkurve.html 6,18 73,42
[legend]

List of all members.


Detailed Description

Multi-exponential decay with 3 timescales.

expkurve is an eichkurve that uses three overlayed exponential decays with different timescales and weights for the absorption of non-monochromatic radiation. The formula is:

\[ I(x)=A\cdot \left[f_1 e^{-g_1 x} + f_2 e^{-g_2 x} + (1-f_1 -f_2) e^ {-g_3 x} \right] \]

Definition at line 543 of file imgclass.hpp.


Public Member Functions

 expkurve (double sA, double sg1, double sg2, double sg3, double sf1, double sf2)
double eichfun (double x) const
 Calibration function, which will be inverted.
double deichfun_dx (double x) const
 Derivative of the calibration function.
double initguess (bild16::data_t val) const
 Starting point for the iteration.
double operator() (bild16::data_t val) const
 Conversion operator.
void table_write (const char *name) const
 Write the lookup table to a file.

Protected Member Functions

double fsolve (bild16::data_t val, double hmin, double hmax) const
void table_init (double hmin, double hmax)

Protected Attributes

double * lookup

Static Protected Attributes

static const char magic [] = "EICHTABELLE"

Private Attributes

double A
double g1
double g2
double g3
double f1
double f2

Constructor & Destructor Documentation

expkurve::expkurve ( double  sA,
double  sg1,
double  sg2,
double  sg3,
double  sf1,
double  sf2 
)

Definition at line 470 of file imgclass.cpp.

References eichkurve::table_init().


Member Function Documentation

double expkurve::eichfun ( double  x  )  const [virtual]

Calibration function, which will be inverted.

Implements eichkurve.

Definition at line 477 of file imgclass.cpp.

References A, f1, f2, g1, g2, and g3.

double expkurve::deichfun_dx ( double  x  )  const [virtual]

Derivative of the calibration function.

Implements eichkurve.

Definition at line 481 of file imgclass.cpp.

References A, f1, f2, g1, g2, and g3.

double expkurve::initguess ( bild16::data_t  val  )  const [virtual]

Starting point for the iteration.

The implementation of initguess must return a starting value that triggers convergence to the solution. Otherwise table_init may hang.

Implements eichkurve.

Definition at line 486 of file imgclass.cpp.

References A, and g1.

double eichkurve::operator() ( bild16::data_t  val  )  const [inline, inherited]

Conversion operator.

The function evaluation operator looks up an element in the lookup table and returns it. Initially, it was meant for usage such as:

        tablekurve tk("somecalib.data");
        bild16 bild("someimage.his");
        bildfloat bfl;

        MAP(bild) {
          bfl(y,x)=tk(bild(y,x));
        }

But because of point-wise float corrections necessary to overcome the deficiencies of the detector, it must now be applied to floating point images. bildfloat features a special member function for this purpose.

Definition at line 530 of file imgclass.hpp.

References eichkurve::lookup.

void eichkurve::table_write ( const char *  name  )  const [inherited]

Write the lookup table to a file.

Definition at line 462 of file imgclass.cpp.

References eichkurve::lookup, and eichkurve::magic.

double eichkurve::fsolve ( bild16::data_t  val,
double  hmin,
double  hmax 
) const [protected, inherited]

Definition at line 388 of file imgclass.cpp.

References abs(), eichkurve::eichfun(), and signum().

Referenced by eichkurve::table_init().

void eichkurve::table_init ( double  hmin,
double  hmax 
) [protected, inherited]

Definition at line 380 of file imgclass.cpp.

References eichkurve::fsolve(), and eichkurve::lookup.

Referenced by exp4kurve::exp4kurve(), and expkurve().


Member Data Documentation

double expkurve::A [private]

Definition at line 555 of file imgclass.hpp.

Referenced by deichfun_dx(), eichfun(), and initguess().

double expkurve::g1 [private]

Definition at line 555 of file imgclass.hpp.

Referenced by deichfun_dx(), eichfun(), and initguess().

double expkurve::g2 [private]

Definition at line 555 of file imgclass.hpp.

Referenced by deichfun_dx(), and eichfun().

double expkurve::g3 [private]

Definition at line 555 of file imgclass.hpp.

Referenced by deichfun_dx(), and eichfun().

double expkurve::f1 [private]

Definition at line 555 of file imgclass.hpp.

Referenced by deichfun_dx(), and eichfun().

double expkurve::f2 [private]

Definition at line 555 of file imgclass.hpp.

Referenced by deichfun_dx(), and eichfun().

const char eichkurve::magic = "EICHTABELLE" [static, protected, inherited]

Definition at line 506 of file imgclass.hpp.

Referenced by eichkurve::table_write(), and tablekurve::tablekurve().

double* eichkurve::lookup [protected, inherited]


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

Generated on Fri Jul 24 12:49:18 2009 for Xgrayimg Library by  doxygen 1.5.5