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

📄 diutils.h

📁 转化为DIB位图再显示出来的dicom文件C++代码
💻 H
📖 第 1 页 / 共 2 页
字号:
{    {"MONOCHROME1",   EPI_Monochrome1},    {"MONOCHROME2",   EPI_Monochrome2},    {"PALETTECOLOR",  EPI_PaletteColor},        // space deleted to simplify detection    {"RGB",           EPI_RGB},    {"HSV",           EPI_HSV},    {"ARGB",          EPI_ARGB},    {"CMYK",          EPI_CMYK},    {"YBRFULL",       EPI_YBR_Full},            // underscore deleted to simplify detection    {"YBRFULL422",    EPI_YBR_Full_422},        // underscores deleted to simplify detection    {"YBRPARTIAL422", EPI_YBR_Partial_422},     // underscores deleted to simplify detection    {NULL,            EPI_Unknown}};/*---------------------* *  macro definitions  * *---------------------*/#define MAX_UINT Uint32#define MAX_SINT Sint32#define MAX_BITS 32#define MAX_BITS_TYPE Uint32#define MAX_RAWPPM_BITS 8#define MAX_INTERPOLATION_BITS 16#define bitsof(expr) (sizeof(expr) << 3)/*----------------------* *  class declarations  * *----------------------*//** Class comprising several global functions and constants. *  introduced to avoid problems with naming convention */class DicomImageClass{ public:    /** calculate maximum value which could be stored in the specified number of bits     *     ** @param  mv_bits  number of bits     *  @param  mv_pos   value subtracted from the maximum value (0 or 1)     *     ** @return maximum value     */    static inline unsigned long maxval(const int mv_bits,                                       const unsigned long mv_pos = 1)    {        return (mv_bits < MAX_BITS) ?            (OFstatic_cast(unsigned long, 1) << mv_bits) - mv_pos : OFstatic_cast(MAX_BITS_TYPE, -1);    }    /** calculate number of bits which are necessary to store the specified value     *     ** @param  tb_value  value to be stored     *  @param  tb_pos    value subtracted from the value (0 or 1) before converting     *     ** @return number of bits     */    static inline unsigned int tobits(unsigned long tb_value,                                      const unsigned long tb_pos = 1)    {        if (tb_value > 0)            tb_value -= tb_pos;        register unsigned int tb_bits = 0;        while (tb_value > 0)        {            ++tb_bits;            tb_value >>= 1;        }        return tb_bits;    }    /** calculate number of bits which are necessary to store the specified value range     *     ** @param  minvalue  minimum value to be stored     *  @param  maxvalue  maximum value to be stored     *     ** @return number of bits     */    static unsigned int rangeToBits(double minvalue,                                    double maxvalue);    /** determine integer representation which is necessary to store values in the specified range     *     ** @param  minvalue  minimum value to be stored     *  @param  maxvalue  maximum value to be stored     *     ** @return integer representation (enum)     */    static EP_Representation determineRepresentation(double minvalue,                                                     double maxvalue);    /** set the debug level to the specified value     *     ** @param  level  debug level to be set     */    static void setDebugLevel(const int level)    {        DebugLevel.set(level);    }    /** get the current debug level     *     ** @return  current debug level     */    static int getDebugLevel()    {        return DebugLevel.get();    }    /** check whether specified debug level is set     *     ** @param  level  debug levelto be checked     *     ** @return true if debug level is set, false (0) otherwise     */    static int checkDebugLevel(const int level)    {        return DebugLevel.get() & level;    }    /// debug level: display no messages    static const int DL_NoMessages;    /// debug level: display error messages    static const int DL_Errors;    /// debug level: display warning messages    static const int DL_Warnings;    /// debug level: display informational messages    static const int DL_Informationals;    /// debug level: display debug messages    static const int DL_DebugMessages;  private:    /// debug level defining the verboseness of the image toolkit    static OFGlobal<int> DebugLevel;};#endif/* * * CVS/RCS Log: * $Log: diutils.h,v $ * Revision 1.31  2005/12/08 16:48:12  meichel * Changed include path schema for all DCMTK header files * * Revision 1.30  2005/03/09 17:29:42  joergr * Added support for new overlay mode "invert bitmap". * Added new helper function rangeToBits(). * * Revision 1.29  2004/11/29 16:52:22  joergr * Removed email address from CVS log. * * Revision 1.28  2004/11/29 11:15:16  joergr * Introduced new integer type MAX_BITS_TYPE for internal use. * * Revision 1.27  2004/11/25 09:38:43  meichel * Fixed bug in DicomImageClass::maxval affecting 64-bit platforms. * * Revision 1.26  2004/08/03 11:41:50  meichel * Headers libc.h and unistd.h are now included via ofstdinc.h * * Revision 1.25  2003/12/23 15:53:22  joergr * Replaced post-increment/decrement operators by pre-increment/decrement * operators where appropriate (e.g. 'i++' by '++i'). * * Revision 1.24  2003/12/17 16:17:29  joergr * Added new compatibility flag that allows to ignore the third value of LUT * descriptors and to determine the bits per table entry automatically. * * Revision 1.23  2003/12/08 18:49:54  joergr * Adapted type casts to new-style typecast operators defined in ofcast.h. * Removed leading underscore characters from preprocessor symbols (reserved * symbols). Updated copyright header. * * Revision 1.22  2003/05/20 09:19:51  joergr * Added new configuration/compatibility flag that allows to ignore the * modality transform stored in the dataset. * * Revision 1.21  2002/11/27 14:08:08  meichel * Adapted module dcmimgle to use of new header file ofstdinc.h * * Revision 1.20  2002/06/26 16:08:14  joergr * Added configuration flag that enables the DicomImage class to take the * responsibility of an external DICOM dataset (i.e. delete it on destruction). * * Revision 1.19  2001/11/09 16:25:59  joergr * Added support for Window BMP file format. * * Revision 1.18  2001/09/28 13:11:00  joergr * Added new flag (CIF_KeepYCbCrColorModel) which avoids conversion of YCbCr * color models to RGB. * * Revision 1.17  2001/06/01 15:49:52  meichel * Updated copyright header * * Revision 1.16  2000/07/07 13:40:31  joergr * Added support for LIN OD presentation LUT shape. * * Revision 1.15  2000/06/07 14:30:28  joergr * Added method to set the image polarity (normal, reverse). * * Revision 1.14  2000/04/28 12:32:33  joergr * DebugLevel - global for the module - now derived from OFGlobal (MF-safe). * * Revision 1.13  2000/03/08 16:24:25  meichel * Updated copyright header. * * Revision 1.12  2000/02/23 15:12:16  meichel * Corrected macro for Borland C++ Builder 4 workaround. * * Revision 1.11  2000/02/01 10:52:38  meichel * Avoiding to include <stdlib.h> as extern "C" on Borland C++ Builder 4, *   workaround for bug in compiler header files. * * Revision 1.10  1999/09/17 13:08:13  joergr * Added/changed/completed DOC++ style comments in the header files. * * Revision 1.9  1999/07/23 14:16:16  joergr * Added flag to avoid color space conversion for color images (not yet * implemented). * * Revision 1.8  1999/04/30 16:33:19  meichel * Now including stdio.h in diutils.h, required on SunOS * * Revision 1.7  1999/04/28 14:55:41  joergr * Added experimental support to create grayscale images with more than 256 * shades of gray to be displayed on a consumer monitor (use pastel colors). * * Revision 1.6  1999/03/24 17:20:28  joergr * Added/Modified comments and formatting. * * Revision 1.5  1999/02/03 17:36:06  joergr * Moved global functions maxval() and determineRepresentation() to class * DicomImageClass (as static methods). * Added BEGIN_EXTERN_C and END_EXTERN_C to some C includes. * * Revision 1.4  1999/01/20 15:13:12  joergr * Added new overlay plane mode for bitmap shutters. * * Revision 1.3  1998/12/23 11:38:08  joergr * Introduced new overlay mode item EMO_Graphic (= EMO_Replace). * * Revision 1.2  1998/12/16 16:40:15  joergr * Some layouting. * * Revision 1.1  1998/11/27 15:51:45  joergr * Added copyright message. * Introduced global debug level for dcmimage module to control error output. * Moved type definitions to diutils.h. * Added methods to support presentation LUTs and shapes. * Introduced configuration flags to adjust behaviour in different cases. * * Revision 1.5  1998/06/25 08:50:10  joergr * Added compatibility mode to support ACR-NEMA images and wrong * palette attribute tags. * * Revision 1.4  1998/05/11 14:53:30  joergr * Added CVS/RCS header to each file. * * */

⌨️ 快捷键说明

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