#include <imgclass.hpp>
flatkurve does nothing when converting from an unsigned 16 bit integer to floats. It is only dummy for functions expecting an eichkurve and should not be used any longer, since those functions have been eliminated.
Definition at line 636 of file imgclass.hpp.
Public Member Functions | |
flatkurve (bool normalize_=true) | |
virtual double | eichfun (double x) const |
Calibration function, which will be inverted. | |
virtual double | deichfun_dx (double x) const |
Derivative of the calibration function. | |
virtual 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 | |
bool | normalize |
flatkurve::flatkurve | ( | bool | normalize_ = true |
) |
Definition at line 516 of file imgclass.cpp.
References initguess(), bild16::intensity_max, bild16::intensity_min, and eichkurve::lookup.
double flatkurve::eichfun | ( | double | x | ) | const [virtual] |
Calibration function, which will be inverted.
Implements eichkurve.
Definition at line 527 of file imgclass.cpp.
References bild16::intensity_max, and normalize.
double flatkurve::deichfun_dx | ( | double | x | ) | const [virtual] |
Derivative of the calibration function.
Implements eichkurve.
Definition at line 532 of file imgclass.cpp.
References bild16::intensity_max, and normalize.
double flatkurve::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 522 of file imgclass.cpp.
References bild16::intensity_max, and normalize.
Referenced by flatkurve().
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::expkurve().
bool flatkurve::normalize [private] |
Definition at line 643 of file imgclass.hpp.
Referenced by deichfun_dx(), eichfun(), and initguess().
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] |
Definition at line 507 of file imgclass.hpp.
Referenced by eichkurve::eichkurve(), flatkurve(), eichkurve::operator()(), eichkurve::table_init(), eichkurve::table_write(), tablekurve::tablekurve(), and eichkurve::~eichkurve().