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

📄 diovpln.h

📁 转化为DIB位图再显示出来的dicom文件C++代码
💻 H
📖 第 1 页 / 共 2 页
字号:
/* * *  Copyright (C) 1996-2005, OFFIS * *  This software and supporting documentation were developed by * *    Kuratorium OFFIS e.V. *    Healthcare Information and Communication Systems *    Escherweg 2 *    D-26121 Oldenburg, Germany * *  THIS SOFTWARE IS MADE AVAILABLE,  AS IS,  AND OFFIS MAKES NO  WARRANTY *  REGARDING  THE  SOFTWARE,  ITS  PERFORMANCE,  ITS  MERCHANTABILITY  OR *  FITNESS FOR ANY PARTICULAR USE, FREEDOM FROM ANY COMPUTER DISEASES  OR *  ITS CONFORMITY TO ANY SPECIFICATION. THE ENTIRE RISK AS TO QUALITY AND *  PERFORMANCE OF THE SOFTWARE IS WITH THE USER. * *  Module:  dcmimgle * *  Author:  Joerg Riesmeier * *  Purpose: DicomOverlayPlane (Header) - Multiframe Overlays UNTESTED ! * *  Last Update:      $Author: meichel $ *  Update Date:      $Date: 2005/12/08 16:48:03 $ *  CVS/RCS Revision: $Revision: 1.26 $ *  Status:           $State: Exp $ * *  CVS/RCS Log at end of file * */#ifndef DIOVPLN_H#define DIOVPLN_H#include "dcmtk/config/osconfig.h"#include "dcmtk/dcmdata/dctypes.h"#include "dcmtk/ofstd/ofstring.h"#include "dcmtk/ofstd/ofstream.h"#include "dcmtk/ofstd/ofcast.h"#include "dcmtk/dcmimgle/diutils.h"#define INCLUDE_CSTDDEF#include "dcmtk/ofstd/ofstdinc.h"/*------------------------* *  forward declarations  * *------------------------*/class DcmOverlayData;class DcmLongString;class DiDocument;/*---------------------* *  class declaration  * *---------------------*//** Class to handle a single overlay plane */class DiOverlayPlane{ public:    /** constructor     *     ** @param  docu   pointer to dataset (encapsulated)     *  @param  group  group number of the overlay plane     *  @param  alloc  value for bits allocated of the surrounding image     */    DiOverlayPlane(const DiDocument *docu,                   const unsigned int group,                   Uint16 alloc);    /** constructor, additional     *     ** @param  group        group number of the overlay plane     *  @param  left_pos     x-coordinate of the plane origin     *  @param  top_pos      y-coordinate of the plane origin     *  @param  columns      width of the overlay plane     *  @param  rows         height of the overlay plane     *  @param  data         element containing the plane data     *  @param  label        element containing the plane label     *  @param  description  element containing the plane description     *  @param  mode         overlay plane mode     */    DiOverlayPlane(const unsigned int group,                   const Sint16 left_pos,                   const Sint16 top_pos,                   const Uint16 columns,                   const Uint16 rows,                   const DcmOverlayData &data,                   const DcmLongString &label,                   const DcmLongString &description,                   const EM_Overlay mode);    /** constructor, copy     *     ** @param  plane    reference overlay plane to be copied     *  @param  bit      position of the plane bit     *  @param  data     pointer to buffer for plane data     *  @param  temp     temporary buffer used to extract plane information     *  @param  width    width of the array where the plane is stored     *  @param  height   height of the array where the plane is stored     *  @param  columns  width of the overlay plane     *  @param  rows     height of the overlay plane     */    DiOverlayPlane(DiOverlayPlane *plane,                   const unsigned int bit,                   Uint16 *data,                   Uint16 *temp,                   const Uint16 width,                   const Uint16 height,                   const Uint16 columns,                   const Uint16 rows);    /** destructor     */    ~DiOverlayPlane();    /** get x-coordinate of overlay plane origin     *     ** @param  left_pos  offset to be subtracted from the actual value (optional)     *     ** @return x-coordinate of overlay plane origin     */    inline Sint16 getLeft(const Sint32 left_pos = 0) const    {        return OFstatic_cast(Sint16, OFstatic_cast(Sint32, Left) - left_pos);    }    /** get y-coordinate of overlay plane origin     *     ** @param  top_pos  offset to be subtracted from the actual value (optional)     *     ** @return y-coordinate of overlay plane origin     */    inline Sint16 getTop(const Sint32 top_pos = 0) const    {        return OFstatic_cast(Sint16, OFstatic_cast(Sint32, Top) - top_pos);    }    /** get width of overlay plane     *     ** @return width of overlay plane     */    inline Uint16 getWidth() const    {        return Width;    }    /** get height of overlay plane     *     ** @return height of overlay plane     */    inline Uint16 getHeight() const    {        return Height;    }    /** get right border of overlay plane origin     *     ** @param  left_pos  offset to be subtracted from the actual value (optional).     *     ** @return right border of overlay plane origin. Negative values are set to 0.     */    inline Uint16 getRight(const Sint32 left_pos = 0) const    {        return (OFstatic_cast(Sint32, Left) + OFstatic_cast(Sint32, Width) - left_pos > 0) ?            OFstatic_cast(Uint16, OFstatic_cast(Sint32, Left) + OFstatic_cast(Sint32, Width) - left_pos) : 0;    }    /** get bottom border of overlay plane origin     *     ** @param  top_pos  offset to be subtracted from the actual value (optional).     *     ** @return bottom border of overlay plane origin. Negative values are set to 0.     */    inline Uint16 getBottom(const Sint32 top_pos = 0) const    {        return (OFstatic_cast(Sint32, Top) + OFstatic_cast(Sint32, Height) - top_pos > 0) ?            OFstatic_cast(Uint16, OFstatic_cast(Sint32, Top) + OFstatic_cast(Sint32, Height) - top_pos) : 0;    }    /** check whether overlay plane is valid     *     ** @return true if plane is valid, false otherwise     */    inline int isValid() const    {        return Valid;    }    /** check whether overlay plane is visible     *     ** @return true if plane is visible, false otherwise     */    inline int isVisible() const    {        return Visible;    }    /** make overlay plane visible     */    inline void show()    {        Visible = 1;    }    /** make overlay plane invisible     */    inline void hide()    {        Visible = 0;    }    /** move overlay plane to a new place     *     ** @param  left_pos  x-coordinate of the new plane origin (maybe negative)     *  @param  top_pos   y-coordinate of the new plane origin (maybe negative)     */    inline void place(const signed int left_pos,                      const signed int top_pos)    {        Left = left_pos; Top = top_pos;    }    /** set scaling factor in x- and y-direction     *     ** @param  xfactor  scaling factor in x-direction     *  @param  yfactor  scaling factor in y-direction     */    void setScaling(const double xfactor,                    const double yfactor);    /** set flipping     *     ** @param  horz     flip horizontally if true     *  @param  vert     flip vertically if true     *  @param  columns  width of surrounding image (incl. origin offset)     *  @param  rows     height of surrounding image (incl. origin offset)     */    void setFlipping(const int horz,                     const int vert,                     const signed long columns,                     const signed long rows);    /** set rotation     *     ** @param  degree    angle by which the plane should be rotated     *  @param  left_pos  x-coordinate of the origin for all overlay planes     *  @param  top_pos   y-coordinate of the origin for all overlay planes     *  @param  columns   width of surrounding image (already rotated)     *  @param  rows      height of surrounding image (already rotated)     */    void setRotation(const int degree,                     const signed long left_pos,                     const signed long top_pos,                     const Uint16 columns,                     const Uint16 rows);    /** make overlay plane visible and set parameters     *     ** @param  fore    foreground color of the plane (in percent: 0.0-1.0)     *  @param  thresh  threshold value for 'threshold replace' (0.0-1.0)     *  @param  mode    new overlay plane mode (EMO_Default for stored mode)     */    void show(const double fore,              const double thresh,              const EM_Overlay mode);    /** make overlay plane visible and set p-value.     *  Only applicable for bitmap shutters.     *     ** @param  pvalue  p-value to be used for the overlay plane (0..65535)     *     ** @return status, true if successful, false otherwise     */    int show(const Uint16 pvalue);    /** get number of frames     *     ** @return number of frames     */    inline unsigned long getNumberOfFrames() const    {        return NumberOfFrames;    }    /** get foreground color of the plane     *     ** @return foreground color (in percent: 0.0-1.0)     */    inline double getForeground() const    {        return Foreground;    }    /** get threshold value of the plane     *     ** @return threshold value (in percent: 0.0-1.0)     */    inline double getThreshold() const    {        return Threshold;    }    /** get p-value of the plane.     *  Only valid for bitmap shutters.     *     ** @return p-value (0..65535)     */    inline Uint16 getPValue() const    {        return PValue;    }    /** get overlay plane mode     *     ** @return overlay plane mode     */    inline EM_Overlay getMode() const    {        return Mode;    }    /** check whether overlay plane is embedded in the pixel data     *     ** @return true if plane is embedded, false otherwise

⌨️ 快捷键说明

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