DCMTK Version 3.6.9
OFFIS DICOM Toolkit
|
Class to manage CIELAB LUTs (for calibration) More...
Public Member Functions | |
DiCIELABFunction (const char *filename, const E_DeviceType deviceType=EDT_Monitor, const signed int ord=-1) | |
constructor, read device characteristics file. | |
DiCIELABFunction (const double *val_tab, const unsigned long count, const Uint16 max=255, const E_DeviceType deviceType=EDT_Monitor, const signed int ord=0) | |
constructor, use given array of luminance/OD values. | |
DiCIELABFunction (const Uint16 *ddl_tab, const double *val_tab, const unsigned long count, const Uint16 max=255, const E_DeviceType deviceType=EDT_Monitor, const signed int ord=0) | |
constructor, use given array of DDL and luminance values. | |
DiCIELABFunction (const double val_min, const double val_max, const unsigned long count=256, const E_DeviceType deviceType=EDT_Monitor, const signed int ord=0) | |
constructor, compute luminance/OD values automatically within the specified range. | |
virtual | ~DiCIELABFunction () |
destructor | |
int | writeCurveData (const char *filename, const OFBool mode=OFTrue) |
write curve data to a text file | |
![]() | |
DiDisplayFunction (const char *filename, const E_DeviceType deviceType=EDT_Monitor, const signed int ord=-1) | |
constructor, read device characteristics file. | |
DiDisplayFunction (const double *val_tab, const unsigned long count, const Uint16 max=255, const E_DeviceType deviceType=EDT_Monitor, const signed int ord=0) | |
constructor, use given array of luminance/OD values. | |
DiDisplayFunction (const Uint16 *ddl_tab, const double *val_tab, const unsigned long count, const Uint16 max=255, const E_DeviceType deviceType=EDT_Monitor, const signed int ord=0) | |
constructor, use given array of DDL and luminance/OD values. | |
DiDisplayFunction (const double val_min, const double val_max, const unsigned long count=256, const E_DeviceType deviceType=EDT_Monitor, const signed int ord=0) | |
constructor, compute luminance/OD values automatically within the specified range. | |
virtual | ~DiDisplayFunction () |
destructor | |
int | isValid () const |
check whether DisplayFunction is valid | |
E_DeviceType | getDeviceType () const |
get output device type (monitor, camera, printer or scanner) | |
Uint16 | getMaxDDLValue () const |
get maximum DDL value. | |
double | getMinValue () const |
get minimum luminance/OD value from the characteristic curve. | |
double | getMaxValue () const |
get maximum luminance/OD value from the characteristic curve. | |
double | getValueforDDL (const Uint16 ddl) const |
get the luminance/OD value for a given DDL. | |
Uint16 | getDDLforValue (const double value) const |
get the DDL for a given luminance/OD value. | |
const DiDisplayLUT * | getLookupTable (const int bits, unsigned long count=0) |
create look-up table with specified number of entries | |
int | deleteLookupTable (const int bits) |
delete specified LUT | |
double | getAmbientLightValue () const |
get (reflected) ambient light value. | |
virtual int | setAmbientLightValue (const double value) |
set (reflected) ambient light value. | |
double | getIlluminationValue () const |
get illumination value. | |
virtual int | setIlluminationValue (const double value) |
set illumination value. | |
double | getMinDensityValue () const |
get minimum optical density value "Dmin". | |
virtual int | setMinDensityValue (const double value) |
set minimum optical density value "Dmin". | |
double | getMaxDensityValue () const |
get maximum optical density value "Dmax". | |
virtual int | setMaxDensityValue (const double value) |
set maximum optical density value "Dmax". | |
double | getMinLuminanceValue () const |
get minimum luminance value "Lmin". | |
double | getMaxLuminanceValue () const |
get maximum luminance value "Lmax". | |
signed int | getPolynomialOrder () const |
get order of the polynomial curve fitting algorithm. | |
double | convertODtoLum (const double value, const OFBool useAmb=OFTrue) const |
convert the given OD value to luminance. | |
Protected Member Functions | |
DiDisplayLUT * | getDisplayLUT (unsigned long count) |
create CIELAB LUT with specified number of entries | |
![]() | |
int | readConfigFile (const char *filename) |
read the given device characteristics file | |
int | createSortedTable (const Uint16 *ddl_tab, const double *val_tab) |
create a sorted (by DDL) table from the given DDL and luminance/OD tables | |
double * | convertODtoLumTable (const double *od_tab, const unsigned long count, const OFBool useAmb) |
create a table with luminance values from the given OD table. | |
int | interpolateValues () |
interpolate device characteristic curve by means of a cubic spline interpolation | |
int | calculateMinMax () |
calculate minimum and maximum luminance/OD values | |
int | checkMinMaxDensity () const |
check whether Dmin and Dmax are properly specified. | |
Additional Inherited Members | |
![]() | |
enum | E_DeviceType { EDT_Monitor , EDT_Camera , EDT_Printer , EDT_Scanner } |
output device type More... | |
![]() | |
static double | convertODtoLum (const double value, const double ambient, const double illum) |
convert the given OD value to luminance. | |
![]() | |
int | Valid |
status flag, indicating whether display function is valid | |
const E_DeviceType | DeviceType |
output device type (monitor, camera, printer or scanner) | |
unsigned long | ValueCount |
number of DDL and luminance/OD values | |
Uint16 | MaxDDLValue |
maximum DDL value (usually 255) | |
signed int | Order |
order of the polynomial curve fitting algorithm | |
double | AmbientLight |
(reflected) ambient light value | |
double | Illumination |
illumination value | |
double | MinDensity |
minimum optical density (-1 if unset) | |
double | MaxDensity |
maximum optical density (-1 if unset) | |
Uint16 * | DDLValue |
pointer to array of DDL values | |
double * | LODValue |
pointer to array of corresponding luminance/OD values | |
double | MinValue |
minimum luminance/OD value | |
double | MaxValue |
maximum luminance/OD value | |
DiDisplayLUT * | LookupTable [MAX_NUMBER_OF_TABLES] |
array with pointer to the different lookup tables (here: 8-16 bits) | |
![]() | |
static const int | MinBits |
constant defining minimum value for number of bits for LUT input (here: 8) | |
static const int | MaxBits |
constant defining maximum value for number of bits for LUT input (here: 16) | |
Class to manage CIELAB LUTs (for calibration)
DiCIELABFunction::DiCIELABFunction | ( | const char * | filename, |
const E_DeviceType | deviceType = EDT_Monitor, | ||
const signed int | ord = -1 ) |
constructor, read device characteristics file.
Keywords: "max" for maximum DDL (Digital Driving Level, required at first position) "amb" for ambient light and "lum" for illumination (both optional) "ord" for the order of the polynomial curve fitting algorithm used to interpolate the given base points (0 or absent = use cubic spline interpolation)
filename | name of the characteristics file (luminance/OD for each DDL) |
deviceType | type of the output device (default: monitor) |
ord | order of the polynomial curve fitting algorithm used to interpolate the given base points (-1 = use file setting, 0 = cubic spline) |
References DiDisplayFunction::EDT_Monitor.
Referenced by getDisplayLUT().
DiCIELABFunction::DiCIELABFunction | ( | const double * | val_tab, |
const unsigned long | count, | ||
const Uint16 | max = 255, | ||
const E_DeviceType | deviceType = EDT_Monitor, | ||
const signed int | ord = 0 ) |
constructor, use given array of luminance/OD values.
UNTESTED Values must be sorted and complete (i.e. there must be an entry for each DDL) The given arrays are copied internally.
val_tab | pointer to array with luminance/OD values |
count | number of array elements (should be equal to 'max + 1') |
max | maximum DDL (digital driving level) |
deviceType | type of the output device (default: monitor) |
ord | order of the polynomial curve fitting algorithm used to interpolate the given base points (0 or negative = use cubic spline interpolation) |
References DiDisplayFunction::EDT_Monitor.
DiCIELABFunction::DiCIELABFunction | ( | const Uint16 * | ddl_tab, |
const double * | val_tab, | ||
const unsigned long | count, | ||
const Uint16 | max = 255, | ||
const E_DeviceType | deviceType = EDT_Monitor, | ||
const signed int | ord = 0 ) |
constructor, use given array of DDL and luminance values.
UNTESTED Values will be automatically sorted and missing values will be interpolated. The given arrays are copied internally.
ddl_tab | pointer to array with DDL values (must be with the interval 0..max) |
val_tab | pointer to array with luminance/OD values |
count | number of array elements (2..65536) |
max | maximum DDL (digital driving level) |
deviceType | type of the output device (default: monitor) |
ord | order of the polynomial curve fitting algorithm used to interpolate the given base points (0 or negative = use cubic spline interpolation) |
References DiDisplayFunction::EDT_Monitor.
DiCIELABFunction::DiCIELABFunction | ( | const double | val_min, |
const double | val_max, | ||
const unsigned long | count = 256, | ||
const E_DeviceType | deviceType = EDT_Monitor, | ||
const signed int | ord = 0 ) |
constructor, compute luminance/OD values automatically within the specified range.
val_min | minimum luminance/OD value |
val_max | maximum luminance/OD value |
count | number of DDLs (digital driving level, 1..65536)) |
deviceType | type of the output device (default: monitor) |
ord | order of the polynomial curve fitting algorithm used to interpolate the given base points (0 or negative = use cubic spline interpolation) |
References DiDisplayFunction::EDT_Monitor.
|
protectedvirtual |
create CIELAB LUT with specified number of entries
count | number of LUT entries |
Implements DiDisplayFunction.
References DiCIELABFunction(), and DiDisplayFunction::DiDisplayFunction().
|
virtual |
write curve data to a text file
filename | name of the text file to which the data should be written |
mode | write CC and PSC to file if OFTrue |
Implements DiDisplayFunction.