⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 didispfn.h

📁 转化为DIB位图再显示出来的dicom文件C++代码
💻 H
📖 第 1 页 / 共 2 页
字号:
    /** get minimum optical density value "Dmin".     *  measured in optical density (OD).     *     ** @return current Dmin value or -1 if not set     */    inline double getMinDensityValue() const    {        return MinDensity;    }    /** set minimum optical density value "Dmin".     *  measured in optical density (OD). applicable to printers only.     *  typical value: 0.2     *     ** @param  value  Dmin value to be set (or < 0 to unset)     *     ** @return status, true if successful (1 = Dmin set, 2 = Dmin unset), false otherwise     */    virtual int setMinDensityValue(const double value);    /** get maximum optical density value "Dmax".     *  measured in optical density (OD).     *     ** @return current Dmax value or -1 if not set     */    inline double getMaxDensityValue() const    {        return MaxDensity;    }    /** set maximum optical density value "Dmax".     *  measured in optical density (OD). applicable to printers only.     *  typical value: 3.0     *     ** @param  value  Dmax value to be set (or < 0 to unset)     *     ** @return status, true if successful (1 = Dmax set, 2 = Dmax unset), false otherwise     */    virtual int setMaxDensityValue(const double value);    /** get minimum luminance value "Lmin".     *  measured in cd/m^2. value is computed from "Dmax".     *     ** @return current Lmin value or -1 if Dmax not set     */    double getMinLuminanceValue() const;    /** get maximum luminance value "Lmax".     *  measured in cd/m^2. value is computed from "Dmin".     *     ** @return current Lmax value or -1 if Dmin not set     */    double getMaxLuminanceValue() const;    /** get order of the polynomial curve fitting algorithm.     *  used to interpolate the given base points.     *     ** @return polynomial order (0 = use cubic spline interpolation, -1 = not specified)     */    inline signed int getPolynomialOrder() const    {        return Order;    }    /** convert the given OD value to luminance.     *  This function uses the currently set ambient light and illumination values.     *     ** @param  value   optical density value to be converted (>= 0)     *  @param  useAmb  use ambient light value if OFTrue     *     ** @return luminance value if successful, -1 otherwise     */    double convertODtoLum(const double value,                          const OFBool useAmb = OFTrue) const;    /** convert the given OD value to luminance.     *  This function uses the specified ambient light and illumination values.     *     ** @param  value    optical density value to be converted (>= 0)     *  @param  ambient  ambient light value used for the conversion (>= 0)     *  @param  illum    illumination value used for the conversion (>= 0)     *     ** @return luminance value if successful, -1 otherwise     */    static double convertODtoLum(const double value,                                 const double ambient,                                 const double illum); protected:    /** create display LUT with specified number of entries (abstract method)     *     ** @param  count  number of LUT entries     *     ** @return pointer to created LUT if successful, NULL otherwise     */    virtual DiDisplayLUT *getDisplayLUT(unsigned long count) = 0;    /** read the given device characteristics file     *     ** @param  filename  name of the characteristics file     *     ** @return status, true if successful, false otherwise     */    int readConfigFile(const char *filename);    /** create a sorted (by DDL) table from the given DDL and luminance/OD tables     *     ** @param  ddl_tab  pointer to array with DDL values     *  @param  val_tab  pointer to array with luminance/OD values     *     ** @return status, true if successful, false otherwise     */    int createSortedTable(const Uint16 *ddl_tab,                          const double *val_tab);    /** create a table with luminance values from the given OD table.     *  Uses the currently set ambient light and illumination value.  The resulting luminance     *  table has to be deleted by the caller.     *     ** @param  od_tab  pointer to array with optical density values     *  @param  count   number of entries in the array     *  @param  useAmb  use ambient light value if OFTrue     *     ** @return pointer to luminance table if successful, NULL otherwise     */    double *convertODtoLumTable(const double *od_tab,                                const unsigned long count,                                const OFBool useAmb);    /** interpolate device characteristic curve by means of a cubic spline interpolation     */    int interpolateValues();    /** calculate minimum and maximum luminance/OD values     *     ** @return status, true if successful, false otherwise     */    int calculateMinMax();    /** check whether Dmin and Dmax are properly specified.     *  report a warning message if "Dmin >= Dmax".     *     ** @return status, true if successful, false otherwise     */    int checkMinMaxDensity() const;    /// status flag, indicating whether display function is valid    int Valid;    /// output device type (monitor, camera, printer or scanner)    const E_DeviceType DeviceType;    /// number of DDL and luminance/OD values    unsigned long ValueCount;    /// maximum DDL value (usually 255)    Uint16 MaxDDLValue;    /// order of the polynomial curve fitting algorithm    signed int Order;    /// (reflected) ambient light value    double AmbientLight;    /// illumination value    double Illumination;    /// minimum optical density (-1 if unset)    double MinDensity;    /// maximum optical density (-1 if unset)    double MaxDensity;    /// pointer to array of DDL values    Uint16 *DDLValue;    /// pointer to array of corresponding luminance/OD values    double *LODValue;    /// minimum luminance/OD value    double MinValue;    /// maximum luminance/OD value    double MaxValue;    /// constant defining minimum value for number of bits for LUT input (here: 8)    static const int MinBits;    /// constant defining maximum value for number of bits for LUT input (here: 16)    static const int MaxBits;    /// array with pointer to the different lookup tables (here: 8-16 bits)    DiDisplayLUT *LookupTable[MAX_NUMBER_OF_TABLES]; private: // --- declarations to avoid compiler warnings    DiDisplayFunction(const DiDisplayFunction &);    DiDisplayFunction &operator=(const DiDisplayFunction &);};#endif/* * * CVS/RCS Log: * $Log: didispfn.h,v $ * Revision 1.23  2005/12/08 16:47:37  meichel * Changed include path schema for all DCMTK header files * * Revision 1.22  2003/12/08 18:18:35  joergr * Removed leading underscore characters from preprocessor symbols (reserved * symbols). Updated CVS header. * * Revision 1.21  2003/03/12 14:56:14  joergr * Removed default value from parameter "useAmb" in method convertODtoLumTable. * * Revision 1.20  2003/02/12 11:35:16  joergr * Added Dmin/max support to CIELAB calibration routines. * * Revision 1.19  2003/02/11 16:32:02  joergr * Added two new functions to determine the luminance/OD value of a particular * DDL according to the device's characteristic curve and vice versa. * * Revision 1.18  2003/02/11 10:01:14  joergr * Added support for Dmin/max to calibration routines (required for printers). * * Revision 1.17  2002/07/19 08:24:21  joergr * Enhanced/corrected comments. * * Revision 1.16  2002/07/18 12:29:08  joergr * Added support for hardcopy and softcopy input devices (camera and scanner). * Added polygonal curve fitting algorithm as an alternate interpolation * method. * * Revision 1.15  2002/07/03 13:50:24  joergr * Fixed inconsistencies regarding the handling of ambient light. * * Revision 1.14  2002/07/02 16:23:42  joergr * Added support for hardcopy devices to the calibrated output routines. * * Revision 1.13  2001/06/01 15:49:40  meichel * Updated copyright header * * Revision 1.12  2000/03/08 16:24:15  meichel * Updated copyright header. * * Revision 1.11  2000/03/06 18:19:35  joergr * Moved get-method to base class, renamed method and made method virtual to * avoid hiding of methods (reported by Sun CC 4.2). * * Revision 1.10  1999/10/18 15:05:51  joergr * Enhanced command line tool dcmdspfn (added new options). * * Revision 1.9  1999/10/18 10:15:50  joergr * Moved min/max value determination to display function base class. Now the * actual min/max values are also used for GSDFunction (instead of first and * last luminance value). * * Revision 1.8  1999/09/17 12:08:24  joergr * Added/changed/completed DOC++ style comments in the header files. * * Revision 1.7  1999/09/10 08:45:18  joergr * Added support for CIELAB display function. * * Revision 1.6  1999/03/24 17:19:20  joergr * Added/Modified comments and formatting. * Added support for Barten transformation from 2 to 7 bits input (now: 2-16). * * Revision 1.5  1999/03/03 11:47:42  joergr * Added support to specify ambient light value (re: Barten transformation). * * Revision 1.4  1999/02/23 16:55:32  joergr * Added tool to export display curves to a text file. * * Revision 1.3  1999/02/11 15:44:22  joergr * Removed unused parameter / member variable. * * Revision 1.2  1999/02/05 16:43:12  joergr * Added optional parameter to method convertPValueToDDL to specify width * of output data (number of bits). * * Revision 1.1  1999/02/03 17:46:37  joergr * Added support for calibration according to Barten transformation (incl. * a DISPLAY file describing the monitor characteristic). * * */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -