33 #include "dcmtk/config/osconfig.h" 35 #include "dcmtk/ofstd/oftypes.h" 48 #define MAX_DISPLAY_FUNCTIONS 2 49 #define MAX_NUMBER_OF_TABLES 15 50 #define WIDTH_OF_PVALUES 16 92 const signed int ord = -1);
106 const unsigned long count,
107 const Uint16 max = 255,
109 const signed int ord = 0);
124 const double *val_tab,
125 const unsigned long count,
126 const Uint16 max = 255,
128 const signed int ord = 0);
141 const double val_max,
142 const unsigned long count = 256,
144 const signed int ord = 0);
231 unsigned long count = 0);
249 const OFBool mode = OFTrue) = 0;
366 const OFBool useAmb = OFTrue)
const;
378 const double ambient,
408 const double *val_tab);
421 const unsigned long count,
422 const OFBool useAmb);
double AmbientLight
(reflected) ambient light value
double * convertODtoLumTable(const double *od_tab, const unsigned long count, const OFBool useAmb)
create a table with luminance values from the given OD table.
double getValueforDDL(const Uint16 ddl) const
get the luminance/OD value for a given DDL.
int deleteLookupTable(const int bits)
delete specified LUT
double MinDensity
minimum optical density (-1 if unset)
monitor (softcopy output device), values expected to be in luminance (cd/m^2)
signed int getPolynomialOrder() const
get order of the polynomial curve fitting algorithm.
double getIlluminationValue() const
get illumination value.
E_DeviceType
output device type
static const int MinBits
constant defining minimum value for number of bits for LUT input (here: 8)
camera (softcopy input device), values expected to be in luminance (cd/m^2)
Uint16 MaxDDLValue
maximum DDL value (usually 255)
int calculateMinMax()
calculate minimum and maximum luminance/OD values
double MaxValue
maximum luminance/OD value
double getMinDensityValue() const
get minimum optical density value "Dmin".
int isValid() const
check whether DisplayFunction is valid
int Valid
status flag, indicating whether display function is valid
Class to compute and store the Display lookup table.
Uint16 getMaxDDLValue() const
get maximum DDL value.
const DiDisplayLUT * getLookupTable(const int bits, unsigned long count=0)
create look-up table with specified number of entries
virtual int writeCurveData(const char *filename, const OFBool mode=OFTrue)=0
write curve data to a text file (abstract method)
double convertODtoLum(const double value, const OFBool useAmb=OFTrue) const
convert the given OD value to luminance.
double MinValue
minimum luminance/OD value
printer (hardcopy output device), values expected to be in optical density (OD)
DiDisplayFunction(const char *filename, const E_DeviceType deviceType=EDT_Monitor, const signed int ord=-1)
constructor, read device characteristics file.
int checkMinMaxDensity() const
check whether Dmin and Dmax are properly specified.
virtual DiDisplayLUT * getDisplayLUT(unsigned long count)=0
create display LUT with specified number of entries (abstract method)
Uint16 * DDLValue
pointer to array of DDL values
const E_DeviceType DeviceType
output device type (monitor, camera, printer or scanner)
double getMinLuminanceValue() const
get minimum luminance value "Lmin".
Class to handle hardcopy and softcopy device characteristics file and manage display LUTs (for calibr...
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
signed int Order
order of the polynomial curve fitting algorithm
virtual ~DiDisplayFunction()
destructor
unsigned long ValueCount
number of DDL and luminance/OD values
double MaxDensity
maximum optical density (-1 if unset)
virtual int setIlluminationValue(const double value)
set illumination value.
double getMaxValue() const
get maximum luminance/OD value from the characteristic curve.
int interpolateValues()
interpolate device characteristic curve by means of a cubic spline interpolation
Uint16 getDDLforValue(const double value) const
get the DDL for a given luminance/OD value.
virtual int setMaxDensityValue(const double value)
set maximum optical density value "Dmax".
virtual int setAmbientLightValue(const double value)
set (reflected) ambient light value.
double getMaxDensityValue() const
get maximum optical density value "Dmax".
double Illumination
illumination value
double * LODValue
pointer to array of corresponding luminance/OD values
scanner (hardcopy input device), values expected to be in optical density (OD)
virtual int setMinDensityValue(const double value)
set minimum optical density value "Dmin".
static const int MaxBits
constant defining maximum value for number of bits for LUT input (here: 16)
E_DeviceType getDeviceType() const
get output device type (monitor, camera, printer or scanner)
double getMaxLuminanceValue() const
get maximum luminance value "Lmax".
double getAmbientLightValue() const
get (reflected) ambient light value.
DiDisplayLUT * LookupTable[MAX_NUMBER_OF_TABLES]
array with pointer to the different lookup tables (here: 8-16 bits)
double getMinValue() const
get minimum luminance/OD value from the characteristic curve.