exp4kurve Class Reference

#include <imgclass.hpp>

Inheritance diagram for exp4kurve:

Inheritance graph
base refererrect $classeichkurve.html 9,18 76,42
[legend]

List of all members.


Detailed Description

Multi-exponential decay with 4 timescales.

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

\[ I(x)=A\cdot \left[a_1 e^{-b_1 x} + a_2 e^{-b_2 x} + a_3 e^ {-b_3 x} + (1-a_1 -a_2-a_3) e^ {-b_4 x} \right] \]

Definition at line 568 of file imgclass.hpp.


Public Member Functions

 exp4kurve (double sA, double sa1, double sa2, double sa3, double sb1, double sb2, double sb3, double sb4)
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 a1
double a2
double a3
double b1
double b2
double b3
double b4

Constructor & Destructor Documentation

exp4kurve::exp4kurve ( double  sA,
double  sa1,
double  sa2,
double  sa3,
double  sb1,
double  sb2,
double  sb3,
double  sb4 
)

Definition at line 491 of file imgclass.cpp.

References eichkurve::table_init().


Member Function Documentation

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

Calibration function, which will be inverted.

Implements eichkurve.

Definition at line 499 of file imgclass.cpp.

References A, a1, a2, a3, b1, b2, b3, and b4.

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

Derivative of the calibration function.

Implements eichkurve.

Definition at line 503 of file imgclass.cpp.

References A, a1, a2, a3, b1, b2, b3, and b4.

double exp4kurve::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 508 of file imgclass.cpp.

References A, a3, and b3.

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(), and expkurve::expkurve().


Member Data Documentation

double exp4kurve::A [private]

Definition at line 580 of file imgclass.hpp.

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

double exp4kurve::a1 [private]

Definition at line 580 of file imgclass.hpp.

Referenced by deichfun_dx(), and eichfun().

double exp4kurve::a2 [private]

Definition at line 580 of file imgclass.hpp.

Referenced by deichfun_dx(), and eichfun().

double exp4kurve::a3 [private]

Definition at line 580 of file imgclass.hpp.

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

double exp4kurve::b1 [private]

Definition at line 580 of file imgclass.hpp.

Referenced by deichfun_dx(), and eichfun().

double exp4kurve::b2 [private]

Definition at line 580 of file imgclass.hpp.

Referenced by deichfun_dx(), and eichfun().

double exp4kurve::b3 [private]

Definition at line 580 of file imgclass.hpp.

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

double exp4kurve::b4 [private]

Definition at line 580 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