DYT/Tool/3rdParty_x64/include/dcmtk/dcmimgle/dicielut.h

109 lines
3.2 KiB
C
Raw Normal View History

2024-11-22 15:19:31 +00:00
/*
*
* Copyright (C) 1996-2011, OFFIS e.V.
* All rights reserved. See COPYRIGHT file for details.
*
* This software and supporting documentation were developed by
*
* OFFIS e.V.
* R&D Division Health
* Escherweg 2
* D-26121 Oldenburg, Germany
*
*
* Module: dcmimgle
*
* Author: Joerg Riesmeier
*
* Purpose: DicomCIELABLUT (Header)
*
*/
#ifndef DICIELUT_H
#define DICIELUT_H
#include "dcmtk/config/osconfig.h"
#include "dcmtk/dcmimgle/didislut.h"
/*---------------------*
* class declaration *
*---------------------*/
/** Class to compute and store the CIELAB lookup table
*/
class DCMTK_DCMIMGLE_EXPORT DiCIELABLUT
: public DiDisplayLUT
{
public:
/** constructor
*
** @param count number of values to be stored in the LUT
* @param max maximum value to be stored in the LUT
* @param ddl_tab array of DDL values
* @param val_tab array of values
* @param ddl_cnt number of DDL values
* @param val_min minimum value in the array
* @param val_max maximum value in the array
* @param lum_min minimum luminance value to be used (lower border)
* @param lum_max maximum luminance value to be used (upper border)
* @param amb ambient light value
* @param inverse apply inverse transformation if OFTrue
* @param stream output stream (used to write curve data to a file)
* @param printMode write CC and PSC to stream if OFTrue
*/
DiCIELABLUT(const unsigned long count,
const Uint16 max,
const Uint16 *ddl_tab,
const double *val_tab,
const unsigned long ddl_cnt,
const double val_min,
const double val_max,
const double lum_min,
const double lum_max,
const double amb,
const OFBool inverse = OFFalse,
STD_NAMESPACE ostream *stream = NULL,
const OFBool printMode = OFTrue);
/** destructor
*/
virtual ~DiCIELABLUT();
protected:
/** create lookup table
*
** @param ddl_tab array of DDL values
* @param val_tab array of values
* @param ddl_cnt number of DDL values
* @param val_min minimum value in the array
* @param val_max maximum value in the array
* @param lum_min minimum luminance value to be used (lower border)
* @param lum_max maximum luminance value to be used (upper border)
* @param inverse apply inverse transformation if OFTrue
* @param stream output stream (used to write curve data to a file)
* @param printMode write CC and PSC to stream if OFTrue
*
** @return status, true if successful, false otherwise
*/
int createLUT(const Uint16 *ddl_tab,
const double *val_tab,
const unsigned long ddl_cnt,
const double val_min,
const double val_max,
const double lum_min,
const double lum_max,
const OFBool inverse = OFFalse,
STD_NAMESPACE ostream *stream = NULL,
const OFBool printMode = OFTrue);
};
#endif