DicomImage Class Reference

Interface class for dcmimgle/dcmimage module. More...

List of all members.

Public Member Functions

 DicomImage (const char *filename, const unsigned long flags=0, const unsigned long fstart=0, const unsigned long fcount=0)
 constructor, open a DICOM file.
 DicomImage (DcmObject *object, const E_TransferSyntax xfer, const unsigned long flags=0, const unsigned long fstart=0, const unsigned long fcount=0)
 constructor, use a given DcmObject
 DicomImage (DcmObject *object, const E_TransferSyntax xfer, const double slope, const double intercept, const unsigned long flags=0, const unsigned long fstart=0, const unsigned long fcount=0)
 constructor, use a given DcmObject with specified rescale/slope.
 DicomImage (DcmObject *object, E_TransferSyntax xfer, const DcmUnsignedShort &data, const DcmUnsignedShort &descriptor, const DcmLongString *explanation=NULL, const unsigned long flags=0, const unsigned long fstart=0, const unsigned long fcount=0)
 constructor, use a given DcmObject with specified modality LUT.
virtual ~DicomImage ()
 destructor
EI_Status getStatus () const
 get current status information
unsigned long getFrameCount () const
 get number of frames.
unsigned long getFirstFrame () const
 get index of first frame.
unsigned long getRepresentativeFrame () const
 get index of representative frame.
unsigned long getWidth () const
 get image width in pixels
unsigned long getHeight () const
 get image height in pixels
int getDepth () const
 get image depth
int getMinMaxValues (double &min, double &max, const int mode=0) const
 get minimum and maximum pixel values.
double getWidthHeightRatio () const
 get width height ratio (pixel aspect ratio: x/y)
double getHeightWidthRatio () const
 get height width ratio (pixel aspect ratio: y/x)
int setWidthHeightRatio (const double ratio) const
 set width height ratio (pixel aspect ratio: x/y)
int setHeightWidthRatio (const double ratio) const
 set height width ratio (pixel aspect ratio: y/x)
int isOutputValueUnused (const unsigned long value)
 check whether given output value is unused
unsigned long getOutputDataSize (const int bits=0) const
 get number of bytes required for the rendered output of a single frame.
const void * getOutputData (const int bits=0, const unsigned long frame=0, const int planar=0)
 render pixel data and return pointer to internal memory buffer.
int getOutputData (void *buffer, const unsigned long size, const int bits=0, const unsigned long frame=0, const int planar=0)
 render pixel data and output to given memory buffer.
const void * getOutputPlane (const int plane) const
 render pixel data and return pointer to given plane (internal memory buffer).
void deleteOutputData () const
 delete internal memory buffer used for rendered images.
int isMonochrome () const
 check whether image is monochrome or not.
EP_Interpretation getPhotometricInterpretation () const
 get code for photometric interpretation (color model).
int hasSOPclassUID (const char *uid) const
 check whether image has given SOP class UID.
const DiPixelgetInterData () const
 get intermediate pixel data representation (read-only).
DiDisplayFunctiongetDisplayFunction () const
 get display function
int setDisplayFunction (DiDisplayFunction *display)
 set display function
int setNoDisplayFunction ()
 set no display function.
int deleteDisplayLUT (const int bits=0)
 delete specified display LUT(s)
int convertPValueToDDL (const Uint16 pvalue, Uint16 &ddl, const int bits=8)
 convert P-value to DDL.
int setNoVoiTransformation ()
 unset all VOI transformations (windows and LUTs).
int setMinMaxWindow (const int idx=0)
 set automatically calculated minimum/maximum window.
int setHistogramWindow (const double thresh=0.05)
 set automatically calculated histogram window.
int setRoiWindow (const unsigned long left_pos, const unsigned long top_pos, const unsigned long width, const unsigned long height, const unsigned long frame=0)
 set automatically calculated VOI window for the specified Region of Interest (ROI).
int setWindow (const unsigned long window)
 set specified window (given by index to window width/center sequence stored in image file).
int setWindow (const double center, const double width)
 set specified window (given by window width and center).
int getWindow (double &center, double &width)
 get current window center and width values
unsigned long getWindowCount () const
 get number of VOI windows (stored in image file).
int setVoiLut (const DcmUnsignedShort &data, const DcmUnsignedShort &descriptor, const DcmLongString *explanation=NULL, const OFBool ignoreDepth=OFFalse)
 set VOI LUT (given by dcmdata elements).
int setVoiLut (const unsigned long table, const OFBool ignoreDepth=OFFalse)
 set VOI LUT (given by index to VOI LUT sequence stored in image file).
unsigned long getVoiLutCount () const
 get number of VOI LUTs (stored in image file)
const char * getVoiTransformationExplanation () const
 get description of active VOI transformation
const char * getVoiWindowExplanation (const unsigned long window, OFString &explanation) const
 get description of specified VOI window (stored in the image file)
const char * getVoiLutExplanation (const unsigned long table, OFString &explanation) const
 get description of specified VOI LUT (stored in the image file)
const char * getModalityLutExplanation () const
 get description of performed modality LUT transformation
EP_Polarity getPolarity () const
 get polarity.
int setPolarity (const EP_Polarity polarity)
 set polarity.
int setHardcopyParameters (const unsigned int min, const unsigned int max, const unsigned int reflect, const unsigned int illumin)
 set hardcopy parameters.
ES_PresentationLut getPresentationLutShape () const
 get shape for presentation transformation.
int setPresentationLutShape (const ES_PresentationLut shape)
 set shape for presentation transformation.
int setPresentationLut (const DcmUnsignedShort &data, const DcmUnsignedShort &descriptor, const DcmLongString *explanation=NULL, const OFBool ignoreDepth=OFFalse)
 set LUT for presentation transformation.
const char * getPresentationLutExplanation () const
 get description of active presentation LUT
int setInversePresentationLut (const DcmUnsignedShort &data, const DcmUnsignedShort &descriptor, const OFBool ignoreDepth=OFFalse)
 set inverse LUT for presentation transformation.
int addOverlay (const unsigned int group, const signed int left_pos, const signed int top_pos, const unsigned int width, const unsigned int height, const DcmOverlayData &data, const DcmLongString &label, const DcmLongString &description, const EM_Overlay mode=EMO_Default)
 add specified plane to group of additional overlay planes.
int removeOverlay (const unsigned int group)
 remove specified (additional) overlay plane
int removeAllOverlays ()
 remove all additional overlay planes
int isOverlayVisible (const unsigned int plane, const unsigned int idx=0)
 check whether specified overlay plane is visible/activated.
int showOverlay (const unsigned int plane, const unsigned int idx=0)
 activate specified overlay plane
int showOverlay (const unsigned int plane, const EM_Overlay mode, const double fore=1.0, const double thresh=0.5, const unsigned int idx=0)
 activate specified overlay plane and change some parameters
int showOverlay (const unsigned int plane, const Uint16 pvalue)
 activate specified overlay plane and change 'pvalue' (only for bitmap shutters)
int showAllOverlays (const unsigned int idx=0)
 activate all overlay planes (make them visible)
int showAllOverlays (const EM_Overlay mode, const double fore=1, const double thresh=0.5, const unsigned int idx=0)
 activate all overlay planes and set specified parameters
int hideOverlay (const unsigned int plane, const unsigned int idx=0)
 deactivate specified overlay plane
int hideAllOverlays (const unsigned int idx=0)
 deactivate all overlay planes (make them invisible)
int placeOverlay (const unsigned int plane, const signed int left_pos, const signed int top_pos, const unsigned int idx=0)
 move origin of specified overlay plane to given position
unsigned int getOverlayCount (const unsigned int idx=0) const
 get number of overlay planes
unsigned int getOverlayGroupNumber (const unsigned int plane, const unsigned int idx=0) const
 get group number of specified overlay plane
const char * getOverlayLabel (const unsigned int plane, const unsigned int idx=0) const
 get label of specified overlay plane
const char * getOverlayDescription (const unsigned int plane, const unsigned int idx=0) const
 get description of specified overlay plane
EM_Overlay getOverlayMode (const unsigned int plane, const unsigned int idx=0) const
 get mode of specified overlay plane
const void * getOverlayData (const unsigned int plane, unsigned int &left_pos, unsigned int &top_pos, unsigned int &width, unsigned int &height, EM_Overlay &mode, const unsigned long frame=0, const int bits=8, const Uint16 fore=0xff, const Uint16 back=0x0, const unsigned int idx=2) const
 create bitmap for specified overlay plane.
const void * getFullOverlayData (const unsigned int plane, unsigned int &width, unsigned int &height, const unsigned long frame=0, const int bits=8, const Uint16 fore=0xff, const Uint16 back=0x0, const unsigned int idx=0) const
 create bitmap for specified overlay plane.
void deleteOverlayData () const
 delete buffer for overlay plane data.
unsigned long create6xxx3000OverlayData (Uint8 *&buffer, const unsigned int plane, unsigned int &width, unsigned int &height, unsigned long &frames, const unsigned int idx=0) const
 create bitmap for specified overlay plane and store it in (6xxx,3000) format.
DicomImagecreateDicomImage (unsigned long fstart=0, unsigned long fcount=0) const
 create copy of current image object.
DicomImagecreateScaledImage (const unsigned long width, const unsigned long height=0, const int interpolate=0, int aspect=0) const
 create scaled copy of current image object (given by exact size).
DicomImagecreateScaledImage (const double xfactor, const double yfactor=0, const int interpolate=0, const int aspect=0) const
 create scaled copy of current image object (given by scaling factors).
DicomImagecreateScaledImage (const signed long left_pos, const signed long top_pos, unsigned long clip_width, unsigned long clip_height, unsigned long scale_width=0, unsigned long scale_height=0, const int interpolate=0, int aspect=0, const Uint16 pvalue=0) const
 create scaled copy of specified (clipping) area of the current image object.
DicomImagecreateScaledImage (const signed long left_pos, const signed long top_pos, unsigned long width, unsigned long height, const double xfactor, const double yfactor=0, const int interpolate=0, const int aspect=0, const Uint16 pvalue=0) const
 create scaled copy of specified (clipping) area of the current image object.
DicomImagecreateClippedImage (const signed long left_pos, const signed long top_pos, unsigned long width=0, unsigned long height=0, const Uint16 pvalue=0) const
 create copy of specified area of the current image object (clipping).
int flipImage (int horz=1, int vert=0) const
 flip current image (horizontally and/or vertically)
DicomImagecreateFlippedImage (int horz=1, int vert=0) const
 create a flipped copy of the current image.
int rotateImage (signed int degree) const
 rotate current image (by steps of 90 degrees)
DicomImagecreateRotatedImage (signed int degree) const
 create a rotated copy of the current image.
DicomImagecreateMonochromeImage (const double red=0.299, const double green=0.587, const double blue=0.114) const
 create monochrome copy of the current image.
unsigned long createWindowsDIB (void *&data, const unsigned long size, const unsigned long frame=0, const int bits=24, const int upsideDown=0, const int padding=1)
 create true color (24/32 bit) or palette (8 bit) bitmap for MS Windows.
unsigned long createJavaAWTBitmap (void *&data, const unsigned long frame=0, const int bits=32)
 create true color (32 bit) or palette (8 bit) bitmap for Java (AWT default format).
DicomImagecreateMonoOutputImage (const unsigned long frame, const int bits)
 create new single frame DicomImage with applied grayscale transformations.
int writeFrameToDataset (DcmItem &dataset, const int bits=0, const unsigned long frame=0, const int planar=0)
 render pixel data of the given frame and write image related attributes to DICOM dataset.
int writeImageToDataset (DcmItem &dataset, const int mode=0)
 write current image and related attributes to DICOM dataset.
int writePPM (const char *filename, const int bits=0, const unsigned long frame=0)
 write pixel data to PPM file (specified by filename).
int writePPM (ostream &stream, const int bits=0, const unsigned long frame=0)
 write pixel data to PPM file (specified by open C++ stream).
int writePPM (FILE *stream, const int bits=0, const unsigned long frame=0)
 write pixel data to PPM file (specified by open C stream).
int writeRawPPM (const char *filename, const int bits=0, const unsigned long frame=0)
 write pixel data to raw PPM file (specified by filename).
int writeRawPPM (FILE *stream, const int bits=0, const unsigned long frame=0)
 write pixel data to raw PPM file (specified by open C stream).
int writeBMP (FILE *stream, const int bits=0, const unsigned long frame=0)
 write pixel data to BMP file (specified by open C stream).
int writeBMP (const char *filename, const int bits=0, const unsigned long frame=0)
 write pixel data to BMP file (specified by filename).
int writePluginFormat (const DiPluginFormat *plugin, FILE *stream, const unsigned long frame=0)
 write pixel data to plugable image format file (specified by open C stream).
int writePluginFormat (const DiPluginFormat *plugin, const char *filename, const unsigned long frame=0)
 write pixel data to plugable image format file (specified by filename).

Static Public Member Functions

static const char * getString (const EI_Status status)
 convert status code to status string
static const char * getString (const EP_Interpretation interpret)
 convert photometric interpretation code to interpretation string
static void * create12BitPackedBitmap (const void *buffer, const unsigned long size, const unsigned long count)
 create 12 bit packed (monochrome) bitmap for DICOM printers.

Protected Member Functions

 DicomImage (const DicomImage *dicom, DiImage *image, const EP_Interpretation interpret=EPI_Unknown)
 constructor, create copy of given image object with different image data and photometric interpretation
void Init ()
 initialize object.
int checkDataDictionary ()
 check whether data dictionary is present
const char * getSOPclassUID () const
 get SOP class UID of current image object
int normalizeDegreeValue (signed int &degree) const
 normalize given degree value (for internal use).

Private Member Functions

 DicomImage (const DicomImage &)
DicomImageoperator= (const DicomImage &)

Private Attributes

EI_Status ImageStatus
 current state of converting progress (error level)
EP_Interpretation PhotometricInterpretation
 dicom color model (enumeration)
DiDocumentDocument
 points to document object
DiImageImage
 points to image object


Detailed Description

Interface class for dcmimgle/dcmimage module.

The main purpose of these modules is image display.

Definition at line 68 of file dcmimage.h.


Constructor & Destructor Documentation

DicomImage::DicomImage const char *  filename,
const unsigned long  flags = 0,
const unsigned long  fstart = 0,
const unsigned long  fcount = 0
 

constructor, open a DICOM file.

opens specified file and reads image related data, creates internal representation of image data. use getStatus() to obtain detailed information about any errors.

Parameters:
filename the DICOM file
flags configuration flags (see diutils.h, CIF_MayDetachPixelData is set automatically)
fstart first frame to be processed (optional, 0 = 1st frame), all subsequent use of parameters labeled 'frame' in this class refers to this start frame.
fcount number of frames (optional, 0 = all frames)

DicomImage::DicomImage DcmObject object,
const E_TransferSyntax  xfer,
const unsigned long  flags = 0,
const unsigned long  fstart = 0,
const unsigned long  fcount = 0
 

constructor, use a given DcmObject

Parameters:
object pointer to DICOM data structures (do not delete while referenced, i.e. while this image object or any descendant exists; not deleted within dcmimage unless configuration flag CIF_TakeOverExternalDataset is set - in this case do not delete it at all)
xfer transfer syntax
flags configuration flags (CIF_xxx, see diutils.h)
fstart first frame to be processed (optional, 0 = 1st frame), all subsequent use of parameters labeled 'frame' in this class refers to this start frame.
fcount number of frames (optional, 0 = all frames)

DicomImage::DicomImage DcmObject object,
const E_TransferSyntax  xfer,
const double  slope,
const double  intercept,
const unsigned long  flags = 0,
const unsigned long  fstart = 0,
const unsigned long  fcount = 0
 

constructor, use a given DcmObject with specified rescale/slope.

NB: This constructor ignores the Photometric Interpretation stored in the DICOM dataset and always creates a MONOCHROME2 image - useful in combination with Presentation States.

Parameters:
object pointer to DICOM data structures (do not delete while referenced, i.e. while this image object or any descendant exists; not deleted within dcmimage unless configuration flag CIF_TakeOverExternalDataset is set - in this case do not delete it at all)
xfer transfer syntax
slope rescale slope (modality transformation)
intercept rescale intercept (modality transformation)
flags configuration flags (CIF_xxx, see diutils.h)
fstart first frame to be processed (optional, 0 = 1st frame), all subsequent use of parameters labeled 'frame' in this class refers to this start frame.
fcount number of frames (optional, 0 = all frames)

DicomImage::DicomImage DcmObject object,
E_TransferSyntax  xfer,
const DcmUnsignedShort data,
const DcmUnsignedShort descriptor,
const DcmLongString explanation = NULL,
const unsigned long  flags = 0,
const unsigned long  fstart = 0,
const unsigned long  fcount = 0
 

constructor, use a given DcmObject with specified modality LUT.

NB: This constructor ignores the Photometric Interpretation stored in the DICOM dataset and always creates a MONOCHROME2 image - useful in combination with Presentation States.

Parameters:
object pointer to DICOM data structures (do not delete while referenced, i.e. while this image object or any descendant exists; not deleted within dcmimage unless configuration flag CIF_TakeOverExternalDataset is set - in this case do not delete it at all)
xfer transfer syntax
data dataset element containing modality LUT data
descriptor dataset element containing modality LUT descriptor
explanation dataset element containing modality LUT explanation
flags configuration flags (CIF_xxx, see diutils.h)
fstart first frame to be processed (optional, 0 = 1st frame), all subsequent use of parameters labeled 'frame' in this class refers to this start frame.
fcount number of frames (optional, 0 = all frames)

DicomImage::DicomImage const DicomImage dicom,
DiImage image,
const EP_Interpretation  interpret = EPI_Unknown
[protected]
 

constructor, create copy of given image object with different image data and photometric interpretation

Parameters:
dicom source object to be copied
image new image data
interpret new photometric interpretation


Member Function Documentation

int DicomImage::addOverlay const unsigned int  group,
const signed int  left_pos,
const signed int  top_pos,
const unsigned int  width,
const unsigned int  height,
const DcmOverlayData data,
const DcmLongString label,
const DcmLongString description,
const EM_Overlay  mode = EMO_Default
[inline]
 

add specified plane to group of additional overlay planes.

replaces old overlay plane if group number already exists.

Parameters:
group group number (0x60nn) of overlay plane
width width of overlay plane (in pixels)
height height of overlay plane (in pixels)
left_pos x coordinate of plane orgin (referring to image origin)
top_pos y coordinate of plane origin
data overlay plane data (dcmdata element)
label overlay plane label
description overlay plane description
mode display mode (see 'diutils.h')
Returns:
false (0) if an error occurred, true otherwise (1 = added new plane, 2 = replaced existing plane)

Definition at line 920 of file dcmimage.h.

References DiMonoImage::addOverlay(), DiImage::getMonoImagePtr(), and Image.

int DicomImage::checkDataDictionary  )  [protected]
 

check whether data dictionary is present

Returns:
true if dictionary is present, false otherwise

int DicomImage::convertPValueToDDL const Uint16  pvalue,
Uint16 &  ddl,
const int  bits = 8
[inline]
 

convert P-value to DDL.

conversion uses display LUT if present, linear scaling otherwise.

Parameters:
pvalue P-value to be converted (0..65535)
ddl reference to resulting DDL
bits number of bits for output
Returns:
true if successful (1 = display function transformation, 2 = linear scaling), false otherwise

Definition at line 537 of file dcmimage.h.

References DiMonoImage::convertPValueToDDL(), DiImage::getMonoImagePtr(), and Image.

static void* DicomImage::create12BitPackedBitmap const void *  buffer,
const unsigned long  size,
const unsigned long  count
[inline, static]
 

create 12 bit packed (monochrome) bitmap for DICOM printers.

Memory is not handled internally - must be deleted from calling program.

Parameters:
buffer pointer to input memory buffer (16 bits allocated, 12 bits stored)
size size of memory buffer (will be checked whether it is sufficient)
count number of entries (pixels) in input buffer
Returns:
pointer to memory buffer containing the packed output bitmap data (NULL if an error occurred)

Definition at line 1529 of file dcmimage.h.

References DiMonoImage::createPackedBitmap().

unsigned long DicomImage::create6xxx3000OverlayData Uint8 *&  buffer,
const unsigned int  plane,
unsigned int &  width,
unsigned int &  height,
unsigned long &  frames,
const unsigned int  idx = 0
const [inline]
 

create bitmap for specified overlay plane and store it in (6xxx,3000) format.

(1 bit allocated and stored, foreground color is 1, background color is 0, data is 16 bit padded - even length) memory is allocated but not handled internally - must be deleted from calling program.

Parameters:
buffer stores pointer to overlay data (memory is allocated internally)
plane number (0..15) or group number (0x60nn) of overlay plane
width returns width of overlay plane (in pixels)
height returns height of overlay plane (in pixels)
frames returns number of frames
idx index of overlay group (0 = dataset, planes stored in the image dataset; 1 = additional, planes added by addOverlay()), default: 0
Returns:
number of bytes allocated for the 'buffer' if successful, 0 otherwise

Definition at line 1269 of file dcmimage.h.

References DiMonoImage::create6xxx3000OverlayData(), DiImage::getMonoImagePtr(), and Image.

DicomImage* DicomImage::createClippedImage const signed long  left_pos,
const signed long  top_pos,
unsigned long  width = 0,
unsigned long  height = 0,
const Uint16  pvalue = 0
const
 

create copy of specified area of the current image object (clipping).

memory is not handled internally - must be deleted from calling program.

Parameters:
left_pos x coordinate of top left corner of area to be copied (referring to image orgin, negative values create a border around the image)
top_pos y coordinate of top left corner of area to be copied
width width of area to be copied/clipped
height height of area to be copied/clipped
pvalue P-value used for the border outside the image (0..65535)
Returns:
pointer to new DicomImage object (NULL if an error occurred)

DicomImage* DicomImage::createDicomImage unsigned long  fstart = 0,
unsigned long  fcount = 0
const
 

create copy of current image object.

memory is not handled internally - must be deleted from calling program.

Parameters:
fstart first frame to be processed (0 = 1st frame)
fcount number of frames (0 = all frames)
Returns:
pointer to new DicomImage object (NULL if an error occurred)

DicomImage* DicomImage::createFlippedImage int  horz = 1,
int  vert = 0
const
 

create a flipped copy of the current image.

memory is not handled internally - must be deleted from calling program.

Parameters:
horz flip horizontally if true
vert flip vertically if true
Returns:
pointer to new DicomImage object (NULL if an error occurred)

unsigned long DicomImage::createJavaAWTBitmap void *&  data,
const unsigned long  frame = 0,
const int  bits = 32
[inline]
 

create true color (32 bit) or palette (8 bit) bitmap for Java (AWT default format).

32 bit images allocate 32 bits per pixel (RGB), but only use the upper 24 bits. The sample order for color images is: Red, Green, Blue. Memory is not handled internally - must be deleted from calling program. This method does not work if original YCbCr color model is retained (see CIF_KeepYCbCrColorModel).

Parameters:
data resulting pointer to bitmap data (set to NULL if an error occurred)
frame index of frame to be converted (default: 0 = first frame)
bits number of bits per pixel used for the output bitmap (8 or 32, default: 32)
Returns:
number of bytes allocated by the bitmap, or 0 if an error occured

Definition at line 1512 of file dcmimage.h.

References DiImage::createAWTBitmap(), and Image.

DicomImage* DicomImage::createMonochromeImage const double  red = 0.299,
const double  green = 0.587,
const double  blue = 0.114
const
 

create monochrome copy of the current image.

equal to createDicomImage() for monochrome images. memory is not handled internally - must be deleted from calling program. This method does not work if original YCbCr color model is retained (see CIF_KeepYCbCrColorModel).

Parameters:
red coefficient by which the red component is weighted (default: NTSC value)
green coefficient by which the green component is weighted (default: NTSC value)
blue coefficient by which the blue component is weighted (default: NTSC value)
Returns:
pointer to new DicomImage object (NULL if an error occurred)

DicomImage* DicomImage::createMonoOutputImage const unsigned long  frame,
const int  bits
 

create new single frame DicomImage with applied grayscale transformations.

The method getOutputData() is used internally for the new bitmap. Limited to monochrome images.

Parameters:
frame index of frame to be converted
bits number of bits per pixel used for the output bitmap
Returns:
pointer to new DicomImage object (NULL if an error occurred)

DicomImage* DicomImage::createRotatedImage signed int  degree  )  const
 

create a rotated copy of the current image.

memory is not handled internally - must be deleted from calling program.

Parameters:
degree angle by which the image shall be rotated (-360, -270, -180, -90, 0, 90, 180, 270, 360)
Returns:
pointer to new DicomImage object (NULL if an error occurred)

DicomImage* DicomImage::createScaledImage const signed long  left_pos,
const signed long  top_pos,
unsigned long  width,
unsigned long  height,
const double  xfactor,
const double  yfactor = 0,
const int  interpolate = 0,
const int  aspect = 0,
const Uint16  pvalue = 0
const
 

create scaled copy of specified (clipping) area of the current image object.

memory is not handled internally - must be deleted from calling program. NB: clipping and interpolated scaling at the same moment is not yet fully implemented!

Parameters:
left_pos x coordinate of top left corner of area to be scaled (referring to image orgin, negative values create a border around the image)
top_pos y coordinate of top left corner of area to be scaled
width width of area to be scaled
height height of area to be scaled
xfactor width of new image is multiplied with this factor (> 0)
yfactor height of new image is multiplied with this factor (> 0)
interpolate specifies whether scaling algorithm should use interpolation (if necessary) default: no interpolation (0), 1 = pbmplus algorithm, 2 = c't algorithm
aspect specifies whether pixel aspect ratio should be taken into consideration (if true, width OR height should be 0, i.e. this component will be calculated automatically)
pvalue P-value used for the border outside the image (0..65535)
Returns:
pointer to new DicomImage object (NULL if an error occurred)

DicomImage* DicomImage::createScaledImage const signed long  left_pos,
const signed long  top_pos,
unsigned long  clip_width,
unsigned long  clip_height,
unsigned long  scale_width = 0,
unsigned long  scale_height = 0,
const int  interpolate = 0,
int  aspect = 0,
const Uint16  pvalue = 0
const
 

create scaled copy of specified (clipping) area of the current image object.

memory is not handled internally - must be deleted from calling program. NB: clipping and interpolated scaling at the same moment is not yet fully implemented!

Parameters:
left_pos x coordinate of top left corner of area to be scaled (referring to image origin, negative values create a border around the image)
top_pos y coordinate of top left corner of area to be scaled
clip_width width of area to be scaled
clip_height height of area to be scaled
scale_width width of scaled image (in pixels)
scale_height height of scaled image (in pixels)
interpolate specifies whether scaling algorithm should use interpolation (if necessary) default: no interpolation (0), 1 = pbmplus algorithm, 2 = c't algorithm
aspect specifies whether pixel aspect ratio should be taken into consideration (if true, width OR height should be 0, i.e. this component will be calculated automatically)
pvalue P-value used for the border outside the image (0..65535)
Returns:
pointer to new DicomImage object (NULL if an error occurred)

DicomImage* DicomImage::createScaledImage const double  xfactor,
const double  yfactor = 0,
const int  interpolate = 0,
const int  aspect = 0
const
 

create scaled copy of current image object (given by scaling factors).

memory is not handled internally - must be deleted from calling program.

Parameters:
xfactor width of new image is multiplied with this factor (> 0)
yfactor height of new image is multiplied with this factor (> 0)
interpolate specifies whether scaling algorithm should use interpolation (if necessary) default: no interpolation (0), 1 = pbmplus algorithm, 2 = c't algorithm
aspect specifies whether pixel aspect ratio should be taken into consideration (if true, width OR height should be 0, i.e. this component will be calculated automatically)
Returns:
pointer to new DicomImage object (NULL if an error occurred)

DicomImage* DicomImage::createScaledImage const unsigned long  width,
const unsigned long  height = 0,
const int  interpolate = 0,
int  aspect = 0
const
 

create scaled copy of current image object (given by exact size).

memory is not handled internally - must be deleted from calling program.

Parameters:
width width of new image (in pixels)
height height of new image (in pixels)
interpolate specifies whether scaling algorithm should use interpolation (if necessary) default: no interpolation (0), 1 = pbmplus algorithm, 2 = c't algorithm
aspect specifies whether pixel aspect ratio should be taken into consideration (if true, width OR height should be 0, i.e. this component will be calculated automatically)
Returns:
pointer to new DicomImage object (NULL if an error occurred)

unsigned long DicomImage::createWindowsDIB void *&  data,
const unsigned long  size,
const unsigned long  frame = 0,
const int  bits = 24,
const int  upsideDown = 0,
const int  padding = 1
[inline]
 

create true color (24/32 bit) or palette (8 bit) bitmap for MS Windows.

8 bit images require an appropriate color palette (256 entries, values: 0 to 255) and are only applicable to monochrome images, the beginning of a each line starts on a 32-bit address (if 'padding' is true); 24 bit images store 24 bits per pixel (RGB) and do align each line to a 32-bit address (if 'padding' is true); 32 bit images store 32 bits per pixel (RGB), but only use the upper 24 bits. The sample order for color images is (i.e. reverse): Blue, Green, Red. The memory buffer can be allocated both externally (from the calling program) and internally (inside this class/module). If the 'data' parameter is not NULL and the 'size' parameter, which describes the size (in bytes) of the allocated buffer, is suffiently large, the bitmap is stored in this buffer. Otherwise (i.e. 'data' is NULL) the memory is allocated internally. Please note that in both cases the memory is not handled internally after this method has finished and, therefore, must be deleted from the calling program. This method does not work if original YCbCr color model is retained (see CIF_KeepYCbCrColorModel).

Parameters:
data untyped pointer memory buffer (set to NULL if not allocated externally)
size size of the memory buffer in bytes (if 0 'data' is set to NULL)
frame index of frame to be converted (default: 0 = first frame)
bits number of bits per pixel used for the output bitmap (8, 24 or 32, default: 24)
upsideDown flag indicating whether the first line stored is the top-most (default: 0) or the bottom-most of the source image (as required by the BMP file format)
padding align each line to a 32-bit address if true (default)
Returns:
number of bytes allocated by the bitmap, or 0 if an error occured

Definition at line 1489 of file dcmimage.h.

References DiImage::createDIB(), and Image.

int DicomImage::deleteDisplayLUT const int  bits = 0  )  [inline]
 

delete specified display LUT(s)

Parameters:
bits parameter of LUT to be deleted (0 = all)
Returns:
true if successful, false otherwise

Definition at line 520 of file dcmimage.h.

References DiMonoImage::deleteDisplayLUT(), DiImage::getMonoImagePtr(), and Image.

void DicomImage::deleteOutputData  )  const [inline]
 

delete internal memory buffer used for rendered images.

Save memory if data is no longer needed.

Definition at line 429 of file dcmimage.h.

References DiImage::deleteOutputData(), and Image.

void DicomImage::deleteOverlayData  )  const [inline]
 

delete buffer for overlay plane data.

Save memory if data is no longer needed.

Definition at line 1247 of file dcmimage.h.

References DiMonoImage::deleteOverlayData(), DiImage::getMonoImagePtr(), and Image.

int DicomImage::flipImage int  horz = 1,
int  vert = 0
const
 

flip current image (horizontally and/or vertically)

Parameters:
horz flip horizontally if true
vert flip vertically if true
Returns:
true if successful (1 = flipped at least direction, 2 = not flipped, because of image resolution - width and/or height equal to 1), false otherwise

int DicomImage::getDepth  )  const [inline]
 

get image depth

Returns:
number of bits per sample

Definition at line 253 of file dcmimage.h.

References DiImage::getBits(), and Image.

DiDisplayFunction* DicomImage::getDisplayFunction  )  const [inline]
 

get display function

Returns:
pointer to current display function, NULL if absent

Definition at line 483 of file dcmimage.h.

References DiMonoImage::getDisplayFunction(), DiImage::getMonoImagePtr(), and Image.

unsigned long DicomImage::getFirstFrame  )  const [inline]
 

get index of first frame.

This functions returns the index of the first frame processed by this class (see constructors for details).

Returns:
index of first frame (0..n-1)

Definition at line 212 of file dcmimage.h.

References DiImage::getFirstFrame(), and Image.

unsigned long DicomImage::getFrameCount  )  const [inline]
 

get number of frames.

Please note that this function does not return the number of frames stored in the DICOM file/dataset. It rather refers to the number of frames processed by this class (see constructors for details).

Returns:
number of frames

Definition at line 200 of file dcmimage.h.

References DiImage::getNumberOfFrames(), and Image.

const void* DicomImage::getFullOverlayData const unsigned int  plane,
unsigned int &  width,
unsigned int &  height,
const unsigned long  frame = 0,
const int  bits = 8,
const Uint16  fore = 0xff,
const Uint16  back = 0x0,
const unsigned int  idx = 0
const [inline]
 

create bitmap for specified overlay plane.

(up to 16 bits per pixel with two values: 'fore' and 'back') In contrast to the previous method the full bitmap data is always returned.

Parameters:
plane number (0..15) or group number (0x60nn) of overlay plane
width returns width of overlay plane (in pixels)
height returns height of overlay plane (in pixels)
frame index of frame used for output (default: 0 = first)
bits number of bits (stored) in the resulting array, default: 8, range: 1..16 Used to mask the values for foreground and background color. The resulting array is always padded to 8 or 16 bits with 1, 8 or 16 bits allocated depending on the value of 'bits'.
fore foreground color to be set in bitmap, default: 255, range: 0..2^bits-1
back background color to be set in bitmap (transparent), default: 0, range: 0..2^bits-1
idx index of overlay group (0 = dataset, planes stored in the image dataset; 1 = additional, planes added by addOverlay()), default: 0
Returns:
pointer to overlay plane data (internal memory buffer)

Definition at line 1231 of file dcmimage.h.

References DiMonoImage::getFullOverlayData(), DiImage::getMonoImagePtr(), and Image.

unsigned long DicomImage::getHeight  )  const [inline]
 

get image height in pixels

Returns:
number of pixels in one column

Definition at line 243 of file dcmimage.h.

References DiImage::getRows(), and Image.

Referenced by DcmQuantColorMapping< T1, T2 >::create().

double DicomImage::getHeightWidthRatio  )  const [inline]
 

get height width ratio (pixel aspect ratio: y/x)

Returns:
pixel aspect ratio (floating point value)

Definition at line 294 of file dcmimage.h.

References DiImage::getRowColumnRatio(), and Image.

const DiPixel* DicomImage::getInterData  )  const [inline]
 

get intermediate pixel data representation (read-only).

This function allows to access the pixel data after they have been extracted from the DICOM data element and the modality transformation has been applied (if present and not disabled). Please note that for monochrome images the internal representation might be signed whereas color images are automatically converted to unsigned RGB format. Pixels are aligned to 8, 16 or 32 bits.

Returns:
pointer to intermediate pixel data representation

Definition at line 470 of file dcmimage.h.

References DiImage::getInterData(), and Image.

int DicomImage::getMinMaxValues double &  min,
double &  max,
const int  mode = 0
const [inline]
 

get minimum and maximum pixel values.

the resulting pixel values are stored in 'double' variables to avoid problems with different number ranges, limited to monochrome images. Please note that the min/max values refer to the full pixel data (i.e. including all possible present frames as specified in the constructor of this class).

Parameters:
min minimum pixel value (reference parameter)
max maximum pixel value (reference parameter)
mode 0 = min/max 'used' pixel values, 1 = min/max 'possible' pixel values (absolute min/max)
Returns:
status code (true if successful)

Definition at line 272 of file dcmimage.h.

References DiMonoImage::getMinMaxValues(), DiImage::getMonoImagePtr(), and Image.

const char* DicomImage::getModalityLutExplanation  )  const [inline]
 

get description of performed modality LUT transformation

Returns:
pointer to description text (NULL if absent)

Definition at line 765 of file dcmimage.h.

References DiMonoImage::getModalityLutExplanation(), DiImage::getMonoImagePtr(), and Image.

int DicomImage::getOutputData void *  buffer,
const unsigned long  size,
const int  bits = 0,
const unsigned long  frame = 0,
const int  planar = 0
[inline]
 

render pixel data and output to given memory buffer.

apply VOI/PLUT transformation and (visible) overlay planes. output data is always padded to 8, 16, 32, ... bits (bits allocated). Supported output color models: Monochrome 2, RGB (and YCbCr_Full if flag CIF_KeepYCbCrColorModel set). The rendered pixel data is alway unsigned.

Parameters:
buffer pointer to memory buffer (must already be allocated)
size size of memory buffer (will be checked whether it is sufficient)
bits number of bits per sample used to render the pixel data (image depth, 1..MAX_BITS, 0 means 'bits stored' in the image) (MI_PastelColor = -1 for true color pastel mode, EXPERIMENTAL)
frame number of frame to be rendered (0..n-1)
planar 0 = color-by-pixel (R1G1B1...R2G2B2...R3G2B2...) 1 = color-by-plane (R1R2R3...G1G2G3...B1B2B3...) (only applicable to multi-planar/color images, otherwise ignored)
Returns:
status code (true if successful)

Definition at line 399 of file dcmimage.h.

References DiImage::getBits(), DiImage::getOutputData(), and Image.

const void* DicomImage::getOutputData const int  bits = 0,
const unsigned long  frame = 0,
const int  planar = 0
[inline]
 

render pixel data and return pointer to internal memory buffer.

apply VOI/PLUT transformation and (visible) overlay planes. internal memory buffer will be delete for the next getBitmap/Output operation. output data is always padded to 8, 16, 32, ... bits (bits allocated). Supported output color models: Monochrome 2, RGB (and YCbCr_Full if flag CIF_KeepYCbCrColorModel set). The rendered pixel data is alway unsigned.

Parameters:
bits number of bits per sample used to render the pixel data (image depth, 1..MAX_BITS, 0 means 'bits stored' in the image) (MI_PastelColor = -1 for true color pastel mode, EXPERIMENTAL)
frame number of frame to be rendered (0..n-1)
planar 0 = color-by-pixel (R1G1B1...R2G2B2...R3G2B2...) 1 = color-by-plane (R1R2R3...G1G2G3...B1B2B3...) (only applicable to multi-planar/color images, otherwise ignored)
Returns:
pointer to internal memory buffer containing rendered pixel data (if successful, NULL otherwise)

Definition at line 373 of file dcmimage.h.

References DiImage::getBits(), DiImage::getOutputData(), and Image.

Referenced by DcmQuantColorMapping< T1, T2 >::create().

unsigned long DicomImage::getOutputDataSize const int  bits = 0  )  const [inline]
 

get number of bytes required for the rendered output of a single frame.

This function determines the size of a rendered frame as created by getOutputData(). Therefore, it can be used to allocate a sufficiently large memory buffer and pass its size to the second variant of getOutputData().

Parameters:
bits number of bits per sample used to render the pixel data (image depth, 1..MAX_BITS, 0 means 'bits stored' in the image) (MI_PastelColor = -1 for true color pastel mode, EXPERIMENTAL)
Returns:
number of bytes if successful, 0 otherwise

Definition at line 349 of file dcmimage.h.

References DiImage::getBits(), DiImage::getOutputDataSize(), and Image.

const void* DicomImage::getOutputPlane const int  plane  )  const [inline]
 

render pixel data and return pointer to given plane (internal memory buffer).

apply VOI/PLUT transformation and (visible) overlay planes internal memory buffer will be delete for the next getBitmap/Output operation. Supported output color models: Monochrome 2, RGB (and YCbCr_Full if flag CIF_KeepYCbCrColorModel set). The rendered pixel data is alway unsigned.

Parameters:
plane number of plane to be rendered
Returns:
pointer to internal memory buffer containing rendered pixel data (if successful, NULL otherwise)

Definition at line 420 of file dcmimage.h.

References DiImage::getOutputPlane(), and Image.

unsigned int DicomImage::getOverlayCount const unsigned int  idx = 0  )  const [inline]
 

get number of overlay planes

Parameters:
idx index of overlay group (0 = dataset, 1 = additional), default: 0
Returns:
number of overlay planes stored in the image

Definition at line 1106 of file dcmimage.h.

References DiOverlay::getCount(), DiImage::getOverlayPtr(), and Image.

const void* DicomImage::getOverlayData const unsigned int  plane,
unsigned int &  left_pos,
unsigned int &  top_pos,
unsigned int &  width,
unsigned int &  height,
EM_Overlay &  mode,
const unsigned long  frame = 0,
const int  bits = 8,
const Uint16  fore = 0xff,
const Uint16  back = 0x0,
const unsigned int  idx = 2
const [inline]
 

create bitmap for specified overlay plane.

(up to 16 bits per pixel with two values: 'fore' and 'back') Please note that the current origin of the overlay plane is used. Furthermore, the size of the overlay plane is restricted to the size of the surrounding image. Use the method getFullOverlayData() if the complete bitmap data is required regardless of its position.

Parameters:
plane number (0..15) or group number (0x60nn) of overlay plane
width returns width of overlay plane (in pixels)
height returns height of overlay plane (in pixels)
left_pos returns x coordinate of plane's origin
top_pos returns y coordinate of plane's origin
mode returns display mode (see 'diutils.h')
frame index of frame used for output (default: 0 = first)
bits number of bits (stored) in the resulting array, default: 8, range: 1..16 Used to mask the values for foreground and background color. The resulting array is always padded to 8 or 16 bits with 1, 8 or 16 bits allocated depending on the value of 'bits'.
fore foreground color to be set in bitmap, default: 255, range: 0..2^bits-1
back background color to be set in bitmap (transparent), default: 0, range: 0..2^bits-1
idx index of overlay group (0 = dataset, planes stored in the image dataset; 1 = additional, planes added by addOverlay(); 2 = 'additional' overlay planes hide 'dataset' planes when the overlay group number exists in both), default: 2
Returns:
pointer to overlay plane data (internal memory buffer)

Definition at line 1195 of file dcmimage.h.

References DiImage::getMonoImagePtr(), DiMonoImage::getOverlayData(), and Image.

const char* DicomImage::getOverlayDescription const unsigned int  plane,
const unsigned int  idx = 0
const [inline]
 

get description of specified overlay plane

Parameters:
plane number (0..15) or group number (0x60nn) of overlay plane
idx index of overlay group (0 = dataset, 1 = additional), default: 0
Returns:
pointer to overlay plane description if successful, false (NULL) otherwise

Definition at line 1147 of file dcmimage.h.

References DiImage::getOverlayPtr(), DiOverlay::getPlaneDescription(), and Image.

unsigned int DicomImage::getOverlayGroupNumber const unsigned int  plane,
const unsigned int  idx = 0
const [inline]
 

get group number of specified overlay plane

Parameters:
plane number (0..15) or group number (0x60nn) of overlay plane
idx index of overlay group (0 = dataset, 1 = additional), default: 0
Returns:
group number of given overlay plane if successful, false (0) otherwise

Definition at line 1119 of file dcmimage.h.

References DiImage::getOverlayPtr(), DiOverlay::getPlaneGroupNumber(), and Image.

const char* DicomImage::getOverlayLabel const unsigned int  plane,
const unsigned int  idx = 0
const [inline]
 

get label of specified overlay plane

Parameters:
plane number (0..15) or group number (0x60nn) of overlay plane
idx index of overlay group (0 = dataset, 1 = additional), default: 0
Returns:
pointer to overlay plane label if successful, false (NULL) otherwise

Definition at line 1133 of file dcmimage.h.

References DiImage::getOverlayPtr(), DiOverlay::getPlaneLabel(), and Image.

EM_Overlay DicomImage::getOverlayMode const unsigned int  plane,
const unsigned int  idx = 0
const [inline]
 

get mode of specified overlay plane

Parameters:
plane number (0..15) or group number (0x60nn) of overlay plane
idx index of overlay group (0 = dataset, 1 = additional), default: 0
Returns:
mode of overlay plane if succesful, EMO_Default otherwise

Definition at line 1161 of file dcmimage.h.

References DiImage::getOverlayPtr(), DiOverlay::getPlaneMode(), and Image.

EP_Interpretation DicomImage::getPhotometricInterpretation  )  const [inline]
 

get code for photometric interpretation (color model).

Returns:
code for photometric interpretation of the image

Definition at line 450 of file dcmimage.h.

References PhotometricInterpretation.

EP_Polarity DicomImage::getPolarity  )  const [inline]
 

get polarity.

applicable to monochrome and color images. possible values are EPP_Normal and EPP_Reverse

Returns:
currently active polarity mode or EPP_Normal if not applicable

Definition at line 778 of file dcmimage.h.

References DiImage::getPolarity(), and Image.

const char* DicomImage::getPresentationLutExplanation  )  const [inline]
 

get description of active presentation LUT

Returns:
pointer to description text (NULL if absent)

Definition at line 876 of file dcmimage.h.

References DiImage::getMonoImagePtr(), DiMonoImage::getPresentationLutExplanation(), and Image.

ES_PresentationLut DicomImage::getPresentationLutShape  )  const [inline]
 

get shape for presentation transformation.

possible values are: ESP_Default, ESP_Identity, ESP_Inverse, ESP_LinOD. If a presentation LUT is currently active ESP_Default is always returned.

Returns:
currently active presentation LUT shape or ESP_Default if not set

Definition at line 827 of file dcmimage.h.

References DiImage::getMonoImagePtr(), DiMonoImage::getPresentationLutShape(), and Image.

unsigned long DicomImage::getRepresentativeFrame  )  const [inline]
 

get index of representative frame.

This attribute is optionally stored in the DICOM dataset (type 3).

Returns:
index of representative frame (0..n-1)

Definition at line 223 of file dcmimage.h.

References DiImage::getRepresentativeFrame(), and Image.

const char* DicomImage::getSOPclassUID  )  const [protected]
 

get SOP class UID of current image object

Returns:
SOP class UID (or NULL if an error occurred)

EI_Status DicomImage::getStatus  )  const [inline]
 

get current status information

Returns:
status code

Definition at line 187 of file dcmimage.h.

References DiImage::getStatus(), Image, and ImageStatus.

static const char* DicomImage::getString const EP_Interpretation  interpret  )  [static]
 

convert photometric interpretation code to interpretation string

Parameters:
interpret code of image's photometric interpretation
Returns:
pointer to photometric interpretation string

static const char* DicomImage::getString const EI_Status  status  )  [static]
 

convert status code to status string

Parameters:
status code of current internal status
Returns:
pointer to status string

unsigned long DicomImage::getVoiLutCount  )  const [inline]
 

get number of VOI LUTs (stored in image file)

Returns:
number of VOI LUTs

Definition at line 717 of file dcmimage.h.

References DiImage::getMonoImagePtr(), DiMonoImage::getVoiLutCount(), and Image.

const char* DicomImage::getVoiLutExplanation const unsigned long  table,
OFString explanation
const [inline]
 

get description of specified VOI LUT (stored in the image file)

Parameters:
table index of the stored VOI LUT (0..n-1)
explanation variable in which the explanation string is stored
Returns:
pointer to description text (NULL if absent or index invalid)

Definition at line 754 of file dcmimage.h.

References DiImage::getMonoImagePtr(), DiMonoImage::getVoiLutExplanation(), and Image.

const char* DicomImage::getVoiTransformationExplanation  )  const [inline]
 

get description of active VOI transformation

Returns:
pointer to description text (NULL if absent)

Definition at line 727 of file dcmimage.h.

References DiImage::getMonoImagePtr(), DiMonoImage::getVoiTransformationExplanation(), and Image.

const char* DicomImage::getVoiWindowExplanation const unsigned long  window,
OFString explanation
const [inline]
 

get description of specified VOI window (stored in the image file)

Parameters:
window index of the stored VOI window (0..n-1)
explanation variable in which the explanation string is stored
Returns:
pointer to description text (NULL if absent or index invalid)

Definition at line 740 of file dcmimage.h.

References DiImage::getMonoImagePtr(), DiMonoImage::getVoiWindowExplanation(), and Image.

unsigned long DicomImage::getWidth  )  const [inline]
 

get image width in pixels

Returns:
number of pixels in one row

Definition at line 233 of file dcmimage.h.

References DiImage::getColumns(), and Image.

Referenced by DcmQuantColorMapping< T1, T2 >::create().

double DicomImage::getWidthHeightRatio  )  const [inline]
 

get width height ratio (pixel aspect ratio: x/y)

Returns:
pixel aspect ratio (floating point value)

Definition at line 284 of file dcmimage.h.

References DiImage::getColumnRowRatio(), and Image.

int DicomImage::getWindow double &  center,
double &  width
[inline]
 

get current window center and width values

Parameters:
center return current window center value
width return current window width value
Returns:
true if successful, false otherwise

Definition at line 656 of file dcmimage.h.

References DiImage::getMonoImagePtr(), DiMonoImage::getWindow(), and Image.

unsigned long DicomImage::getWindowCount  )  const [inline]
 

get number of VOI windows (stored in image file).

NB: This function does nothing if the flag CIF_UsePresentationState is set.

Returns:
number of VOI windows

Definition at line 668 of file dcmimage.h.

References DiImage::getMonoImagePtr(), DiMonoImage::getWindowCount(), and Image.

int DicomImage::hasSOPclassUID const char *  uid  )  const
 

check whether image has given SOP class UID.

Returns:
true if image has given SOP class UID, false otherwise

int DicomImage::hideAllOverlays const unsigned int  idx = 0  )  [inline]
 

deactivate all overlay planes (make them invisible)

Parameters:
idx index of overlay group (0 = dataset, 1 = additional), default: 0
Returns:
false (0) if an error occurred, true otherwise (1 = planes have been successfully deactivated, 2 = no planes to be deactivated)

Definition at line 1075 of file dcmimage.h.

References DiImage::getOverlayPtr(), DiOverlay::hideAllPlanes(), and Image.

int DicomImage::hideOverlay const unsigned int  plane,
const unsigned int  idx = 0
[inline]
 

deactivate specified overlay plane

Parameters:
plane number (0..15) or group number (0x60nn) of overlay plane
idx index of overlay group (0 = dataset, 1 = additional), default: 0
Returns:
false (0) if an error occurred, true otherwise (1 = plane successfully deactivated, 2 = plane has already been invisible)

Definition at line 1061 of file dcmimage.h.

References DiImage::getOverlayPtr(), DiOverlay::hidePlane(), and Image.

void DicomImage::Init  )  [protected]
 

initialize object.

create internal image object depending on color model. is used for all 'real' constructors.

int DicomImage::isMonochrome  )  const [inline]
 

check whether image is monochrome or not.

Returns:
true if image is monochrome, false otherwise (i.e. color image)

Definition at line 441 of file dcmimage.h.

References PhotometricInterpretation.

int DicomImage::isOutputValueUnused const unsigned long  value  )  [inline]
 

check whether given output value is unused

Parameters:
value output value to be checked
Returns:
status, true if unused (1 = within output range, 2 = out of range), false otherwise

Definition at line 330 of file dcmimage.h.

References DiImage::getMonoImagePtr(), Image, and DiMonoImage::isValueUnused().

int DicomImage::isOverlayVisible const unsigned int  plane,
const unsigned int  idx = 0
[inline]
 

check whether specified overlay plane is visible/activated.

see show/hideOverlay() to modifiy the visibility status.

Parameters:
plane number (0..15) or group number (0x60nn) of overlay plane
idx index of overlay group (0 = dataset, 1 = additional), default: 0
Returns:
true (1) if overlay plane is visible, false (0) otherwise

Definition at line 965 of file dcmimage.h.

References DiImage::getOverlayPtr(), Image, and DiOverlay::isPlaneVisible().

int DicomImage::normalizeDegreeValue signed int &  degree  )  const [protected]
 

normalize given degree value (for internal use).

negative value are mapped to positive range (-360 -> 0, -270 -> 90, -180 -> 180, -90 -> 270), 360 is set to 0, all other value are rejected

Parameters:
degree value to be normalized, valid values are: 0, 90, 180, 270
Returns:
true if successful, false otherwise (invalid value)

int DicomImage::placeOverlay const unsigned int  plane,
const signed int  left_pos,
const signed int  top_pos,
const unsigned int  idx = 0
[inline]
 

move origin of specified overlay plane to given position

Parameters:
plane number (0..15) or group number (0x60nn) of overlay plane
left_pos x coordinate of new plane origin (origin = 0)
top_pos y coordinate of new plane origin (origin = 0)
idx index of overlay group (0 = dataset, 1 = additional), default: 0
Returns:
false (0) if an error occurred, true otherwise (1 = plane has been successfully moved, 2 = old and new position are equal, nothing to do)

Definition at line 1091 of file dcmimage.h.

References DiImage::getOverlayPtr(), Image, and DiOverlay::placePlane().

int DicomImage::removeAllOverlays  )  [inline]
 

remove all additional overlay planes

Returns:
false (0) if an error occurred, true otherwise (1 = all planes deleted, 2 = no planes to be deleted)

Definition at line 951 of file dcmimage.h.

References DiImage::getMonoImagePtr(), Image, and DiMonoImage::removeAllOverlays().

int DicomImage::removeOverlay const unsigned int  group  )  [inline]
 

remove specified (additional) overlay plane

Parameters:
group group number (0x60nn) of overlay plane
Returns:
false (0) if an error occurred (e.g. plane doesn't exist), true otherwise

Definition at line 940 of file dcmimage.h.

References DiImage::getOverlayPtr(), Image, and DiOverlay::removePlane().

int DicomImage::rotateImage signed int  degree  )  const
 

rotate current image (by steps of 90 degrees)

Parameters:
degree angle by which the image shall be rotated (-360, -270, -180, -90, 0, 90, 180, 270, 360)
Returns:
true if successful (1 = rotated by at least 90 degrees, 2 = not rotated, because of image resolution or angle), false otherwise

int DicomImage::setDisplayFunction DiDisplayFunction display  )  [inline]
 

set display function

Parameters:
display object describing the output device characteristic (only referenced!)
Returns:
true if successful, false otherwise

Definition at line 495 of file dcmimage.h.

References DiImage::getMonoImagePtr(), Image, and DiMonoImage::setDisplayFunction().

int DicomImage::setHardcopyParameters const unsigned int  min,
const unsigned int  max,
const unsigned int  reflect,
const unsigned int  illumin
[inline]
 

set hardcopy parameters.

only applicable to monochrome images. used to display LinOD images

Parameters:
min minimum density of the print-out (in hundreds of Optical Density, e.g. 150 means 1.5 OD)
max maximum density of the print-out (ditto)
reflect reflected ambient light (in candela per square meter - cd/m^2)
illumin illumination (ditto)
Returns:
true if successful (1 = at least one of the parameters has changed, 2 = no parameter has changed) false otherwise

Definition at line 810 of file dcmimage.h.

References DiImage::getMonoImagePtr(), Image, and DiMonoImage::setHardcopyParameters().

int DicomImage::setHeightWidthRatio const double  ratio  )  const [inline]
 

set height width ratio (pixel aspect ratio: y/x)

Parameters:
ratio pixel aspect ratio (y/x)
Returns:
status code (true if successful)

Definition at line 318 of file dcmimage.h.

References Image, and DiImage::setRowColumnRatio().

int DicomImage::setHistogramWindow const double  thresh = 0.05  )  [inline]
 

set automatically calculated histogram window.

possibly active VOI LUT is implicitly disabled.

Parameters:
thresh threshhold value specifying percentage of histogram border which shall be ignored (defaut: 5%).
Returns:
true if successful, false otherwise

Definition at line 586 of file dcmimage.h.

References DiImage::getMonoImagePtr(), Image, and DiMonoImage::setHistogramWindow().

int DicomImage::setInversePresentationLut const DcmUnsignedShort data,
const DcmUnsignedShort descriptor,
const OFBool  ignoreDepth = OFFalse
[inline]
 

set inverse LUT for presentation transformation.

this LUT transform is e.g. used for DICOM print (12->8, 8->12 bit) possibly active presentation LUT will not be considered !

Parameters:
data contains LUT data
descriptor describes LUT structure
ignoreDepth ignore third value of LUT descriptor if OFTrue. Determine bits per table entry automatically from max value.
Returns:
true if successful, false otherwise

Definition at line 893 of file dcmimage.h.

References DiImage::getMonoImagePtr(), Image, and DiMonoImage::setInversePresentationLut().

int DicomImage::setMinMaxWindow const int  idx = 0  )  [inline]
 

set automatically calculated minimum/maximum window.

possibly active VOI LUT is implicitly disabled. Please note that the min/max values refer to the full pixel data (i.e. including all possible present frames as specified in the constructor of this class).

Parameters:
idx ignore global min/max values if true (1)
Returns:
true if sucessful (1 = window has changed, 2 = new window is the same as previous one), false otherwise

Definition at line 572 of file dcmimage.h.

References DiImage::getMonoImagePtr(), Image, and DiMonoImage::setMinMaxWindow().

int DicomImage::setNoDisplayFunction  )  [inline]
 

set no display function.

disables display function transformation, object is not deleted!

Returns:
true if successful (1 = disabled current function, 2 = there was no function to disable) false otherwise

Definition at line 508 of file dcmimage.h.

References DiImage::getMonoImagePtr(), Image, and DiMonoImage::setNoDisplayFunction().

int DicomImage::setNoVoiTransformation  )  [inline]
 

unset all VOI transformations (windows and LUTs).

only applicable to monochrome images

Returns:
true if successful (1 = previous window/LUT has been valid, 2 = otherwise), false otherwise (image is invalid or not monochrome)

Definition at line 555 of file dcmimage.h.

References DiImage::getMonoImagePtr(), Image, and DiMonoImage::setNoVoiTransformation().

int DicomImage::setPolarity const EP_Polarity  polarity  )  [inline]
 

set polarity.

applicable to monochrome and color images.

Parameters:
polarity polarity (normal or reverse)
Returns:
true if successful (1 = polarity has changed, 2 = polarity has not changed) false otherwise

Definition at line 792 of file dcmimage.h.

References Image, and DiImage::setPolarity().

int DicomImage::setPresentationLut const DcmUnsignedShort data,
const DcmUnsignedShort descriptor,
const DcmLongString explanation = NULL,
const OFBool  ignoreDepth = OFFalse
[inline]
 

set LUT for presentation transformation.

possibly active presentation LUT is implicitly disabled. Given data is only referenced and not copied! Make sure that the corresponding DcmXXX objects exist as long as the presentation LUT is set.

Parameters:
data contains LUT data
descriptor describes LUT structure
explanation free form description of presentation LUT (optional)
ignoreDepth ignore third value of LUT descriptor if OFTrue. Determine bits per table entry automatically from max value.
Returns:
true if successful, false otherwise

Definition at line 863 of file dcmimage.h.

References DiImage::getMonoImagePtr(), Image, and DiMonoImage::setPresentationLut().

int DicomImage::setPresentationLutShape const ES_PresentationLut  shape  )  [inline]
 

set shape for presentation transformation.

possibly active presentation LUT is implicitly disabled.

Parameters:
shape presentation LUT shape (default, identity, inverse or lin OD). 'default' means that the output data is always created with 0 for black and maxvalue for white (i.e. monochrome2 data is created for output).
Returns:
true if successful (1 = shape has changed, 2 = shape has not changed) false otherwise

Definition at line 844 of file dcmimage.h.

References DiImage::getMonoImagePtr(), Image, and DiMonoImage::setPresentationLutShape().

int DicomImage::setRoiWindow const unsigned long  left_pos,
const unsigned long  top_pos,
const unsigned long  width,
const unsigned long  height,
const unsigned long  frame = 0
[inline]
 

set automatically calculated VOI window for the specified Region of Interest (ROI).

The ROI is specified by means of a rectangle (left, top, width, height). Only the part of the ROI that overlaps with the image is regarded - if the overlapping area is empty this method returns false (0). Possibly active VOI LUT is implicitly disabled.

Parameters:
left_pos x-coordinate of the top left-hand corner of the ROI (starting from 0)
top_pos y-coordinate of the top left-hand corner of the ROI (starting from 0)
width width in pixels of the rectangular ROI (minimum: 1)
height height in pixels of the rectangular ROI (minimum: 1)
frame index of the frame to be used for calculation (default: 0 = first)
Returns:
true if sucessful (1 = window has changed, 2 = new window is the same as previous one), false otherwise

Definition at line 608 of file dcmimage.h.

References DiImage::getMonoImagePtr(), Image, and DiMonoImage::setRoiWindow().

int DicomImage::setVoiLut const unsigned long  table,
const OFBool  ignoreDepth = OFFalse
[inline]
 

set VOI LUT (given by index to VOI LUT sequence stored in image file).

possibly active window/center is implicitly disabled. NB: This function does nothing if the flag CIF_UsePresentationState is set.

Parameters:
table index to VOI LUT sequence (0..n-1)
ignoreDepth ignore third value of LUT descriptor if OFTrue. Determine bits per table entry automatically from max value.
Returns:
true if successful, false otherwise (none monochrome or invalid index)

Definition at line 706 of file dcmimage.h.

References DiImage::getMonoImagePtr(), Image, and DiMonoImage::setVoiLut().

int DicomImage::setVoiLut const DcmUnsignedShort data,
const DcmUnsignedShort descriptor,
const DcmLongString explanation = NULL,
const OFBool  ignoreDepth = OFFalse
[inline]
 

set VOI LUT (given by dcmdata elements).

possibly active window/center is implicitly disabled. Given data is only referenced and not copied! Make sure that the corresponding DcmXXX objects exist as long as the VOI LUT is set.

Parameters:
data contains LUT data
descriptor describes LUT structure
explanation free form description of VOI LUT (optional)
ignoreDepth ignore third value of LUT descriptor if OFTrue. Determine bits per table entry automatically from max value.
Returns:
true if successful, false otherwise

Definition at line 687 of file dcmimage.h.

References DiImage::getMonoImagePtr(), Image, and DiMonoImage::setVoiLut().

int DicomImage::setWidthHeightRatio const double  ratio  )  const [inline]
 

set width height ratio (pixel aspect ratio: x/y)

Parameters:
ratio pixel aspect ratio (x/y)
Returns:
status code (true if successful)

Definition at line 306 of file dcmimage.h.

References Image, and DiImage::setColumnRowRatio().

int DicomImage::setWindow const double  center,
const double  width
[inline]
 

set specified window (given by window width and center).

possibly active VOI LUT is implicitly disabled.

Parameters:
center center of specified window
width width of specified window (> 0.0)
Returns:
true if sucessful (1 = window has changed, 2 = new window is the same as previous one), false otherwise

Definition at line 642 of file dcmimage.h.

References DiImage::getMonoImagePtr(), Image, and DiMonoImage::setWindow().

int DicomImage::setWindow const unsigned long  window  )  [inline]
 

set specified window (given by index to window width/center sequence stored in image file).

possibly active VOI LUT is implicitly disabled. NB: This function does nothing if the flag CIF_UsePresentationState is set.

Parameters:
window index to window width/center sequence (0..n-1)
Returns:
true if successful, false otherwise (none monochrome or invalid index)

Definition at line 626 of file dcmimage.h.

References DiImage::getMonoImagePtr(), Image, and DiMonoImage::setWindow().

int DicomImage::showAllOverlays const EM_Overlay  mode,
const double  fore = 1,
const double  thresh = 0.5,
const unsigned int  idx = 0
[inline]
 

activate all overlay planes and set specified parameters

Parameters:
mode display mode (see 'diutils.h')
fore plane's foreground color (in percent, default: 1.0)
thresh treshhold value (in percent, default: 0.5), only for EMO_TreshholdReplace
idx index of overlay group (0 = dataset, 1 = additional), default: 0
Returns:
false (0) if an error occurred, true otherwise (1 = planes have been successfully activated, 2 = no planes to be activated)

Definition at line 1044 of file dcmimage.h.

References DiImage::getOverlayPtr(), Image, and DiOverlay::showAllPlanes().

int DicomImage::showAllOverlays const unsigned int  idx = 0  )  [inline]
 

activate all overlay planes (make them visible)

Parameters:
idx index of overlay group (0 = dataset, 1 = additional), default: 0
Returns:
false (0) if an error occurred, true otherwise (1 = planes have been successfully activated, 2 = no planes to be activated)

Definition at line 1028 of file dcmimage.h.

References DiImage::getOverlayPtr(), Image, and DiOverlay::showAllPlanes().

int DicomImage::showOverlay const unsigned int  plane,
const Uint16  pvalue
[inline]
 

activate specified overlay plane and change 'pvalue' (only for bitmap shutters)

Parameters:
plane number (0..15) or group number (0x60nn) of overlay plane
pvalue P-value used to display overlay plane
Returns:
false (0) if an error occurred, true otherwise

Definition at line 1014 of file dcmimage.h.

References DiImage::getOverlayPtr(), Image, and DiOverlay::showPlane().

int DicomImage::showOverlay const unsigned int  plane,
const EM_Overlay  mode,
const double  fore = 1.0,
const double  thresh = 0.5,
const unsigned int  idx = 0
[inline]
 

activate specified overlay plane and change some parameters

Parameters:
plane number (0..15) or group number (0x60nn) of overlay plane
mode display mode (see 'diutils.h')
fore plane's foreground color (in percent, default: 1.0)
thresh treshhold value (in percent, default: 0.5), only for EMO_TreshholdReplace
idx index of overlay group (0 = dataset, 1 = additional), default: 0
Returns:
false (0) if an error occurred, true otherwise

Definition at line 997 of file dcmimage.h.

References DiImage::getOverlayPtr(), Image, and DiOverlay::showPlane().

int DicomImage::showOverlay const unsigned int  plane,
const unsigned int  idx = 0
[inline]
 

activate specified overlay plane

Parameters:
plane number (0..15) or group number (0x60nn) of overlay plane
idx index of overlay group (0 = dataset, 1 = additional), default: 0
Returns:
false (0) if an error occurred, true otherwise (1 = plane successfully activated, 2 = plane has already been visible)

Definition at line 980 of file dcmimage.h.

References DiImage::getOverlayPtr(), Image, and DiOverlay::showPlane().

int DicomImage::writeBMP const char *  filename,
const int  bits = 0,
const unsigned long  frame = 0
 

write pixel data to BMP file (specified by filename).

pixel data is written in palette or truecolor mode. This method does not work if original YCbCr color model is retained (see CIF_KeepYCbCrColorModel).

Parameters:
filename name of output file (d is replaced by frame number if present)
bits number of bits used for output of pixel data (8 or 24, default (0): 8 for monochrome and 24 for color images)
frame index of frame used for output (default: first frame = 0)
Returns:
true if successful, false otherwise

int DicomImage::writeBMP FILE *  stream,
const int  bits = 0,
const unsigned long  frame = 0
 

write pixel data to BMP file (specified by open C stream).

pixel data is written in palette or truecolor mode. This method does not work if original YCbCr color model is retained (see CIF_KeepYCbCrColorModel).

Parameters:
stream open C output stream (binary mode required!)
bits number of bits used for output of pixel data (8 or 24, default (0): 8 for monochrome and 24 for color images)
frame index of frame used for output (default: first frame = 0)
Returns:
true if successful, false otherwise

int DicomImage::writeFrameToDataset DcmItem dataset,
const int  bits = 0,
const unsigned long  frame = 0,
const int  planar = 0
[inline]
 

render pixel data of the given frame and write image related attributes to DICOM dataset.

Applies VOI/PLUT transformation and (visible) overlay planes, output data is always padded to 8, 16, 32, ... bits (bits allocated). Replaces any modality transformation in the dataset by a linear rescale/slope since the modality transformation is rendered into the pixel data. Replaces the VOI transformations in the dataset by a "max range" VOI window. Removes all Overlay Plane Module attributes for embedded overlay planes from the dataset. Writes the following DICOM attributes (from Image Pixel Module):

  • Photometric Interpretation, Samples per Pixel
  • Columns, Rows, Number of Frames
  • Bits Allocated, Bits Stored, High Bit
  • Planar Configuration (only if "Samples per Pixel" is greater than 1)
  • Pixel Representation, Pixel Data Updates the following DICOM attributes (if present in the original image dataset):
  • Imager Pixel Spacing and/or Imager Pixel Spacing and/or Pixel Aspect Ratio Supported output color models: Monochrome 2, RGB (and YCbCr_Full if flag CIF_KeepYCbCrColorModel set).

Parameters:
dataset reference to DICOM dataset where the image attributes are stored
bits number of bits per sample (image depth, 1..MAX_BITS)
frame number of frame to be rendered (0..n-1)
planar 0 = color-by-pixel (R1G1B1...R2G2B2...R3G2B2...) 1 = color-by-plane (R1R2R3...G1G2G3...B1B2B3...) (only applicable to multi-planar/color images, otherwise ignored)
Returns:
true if successful, false otherwise

Definition at line 1577 of file dcmimage.h.

References Image, and DiImage::writeFrameToDataset().

int DicomImage::writeImageToDataset DcmItem dataset,
const int  mode = 0
[inline]
 

write current image and related attributes to DICOM dataset.

Uses the internal representation of the pixel data, therefore the output data is always padded to 8, 16, 32, ... bits (bits allocated). Replaces any modality transformation in the dataset by a linear rescale/slope since the modality transformation is rendered into the pixel data. Removes all Overlay Plane Module attributes for embedded overlay planes from the dataset. Writes the following DICOM attributes (from Image Pixel Module):

  • Photometric Interpretation, Samples per Pixel
  • Columns, Rows, Number of Frames
  • Bits Allocated, Bits Stored, High Bit
  • Planar Configuration (only if "Samples per Pixel" is greater than 1)
  • Pixel Representation, Pixel Data Updates the following DICOM attributes (if present in the original image dataset):
  • Imager Pixel Spacing and/or Imager Pixel Spacing and/or Pixel Aspect Ratio Supported output color models: Monochrome 1/2, RGB (and YCbCr_Full if flag CIF_KeepYCbCrColorModel set).

Parameters:
dataset reference to DICOM dataset where the image attributes are stored
mode 0 = determine value of BitsStored from 'used' pixel values, 1 = determine value of BitsStored from 'possible' pixel values (used for monochrome images only)
Returns:
true if successful, false otherwise

Definition at line 1610 of file dcmimage.h.

References Image, and DiImage::writeImageToDataset().

int DicomImage::writePluginFormat const DiPluginFormat plugin,
const char *  filename,
const unsigned long  frame = 0
 

write pixel data to plugable image format file (specified by filename).

Format specific parameters may be set directly in the instantiated 'plugin' class.

Parameters:
plugin pointer to image format plugin (derived from abstract class DiPluginFormat)
filename name of output file (d is replaced by frame number if present)
frame index of frame used for output (default: first frame = 0)
Returns:
true if successful, false otherwise

int DicomImage::writePluginFormat const DiPluginFormat plugin,
FILE *  stream,
const unsigned long  frame = 0
 

write pixel data to plugable image format file (specified by open C stream).

Format specific parameters may be set directly in the instantiated 'plugin' class.

Parameters:
plugin pointer to image format plugin (derived from abstract class DiPluginFormat)
stream open C output stream (binary mode required!)
frame index of frame used for output (default: first frame = 0)
Returns:
true if successful, false otherwise

int DicomImage::writePPM FILE *  stream,
const int  bits = 0,
const unsigned long  frame = 0
 

write pixel data to PPM file (specified by open C stream).

pixel data is written in ASCII format. This method does not work if original YCbCr color model is retained (see CIF_KeepYCbCrColorModel).

Parameters:
stream open C output stream
bits number of bits used for output of pixel data (default: full resolution, max: 32; MI_PastelColor = -1 for true color pastel mode, EXPERIMENTAL)
frame index of frame used for output (default: first frame = 0)
Returns:
true if successful, false otherwise

int DicomImage::writePPM ostream &  stream,
const int  bits = 0,
const unsigned long  frame = 0
 

write pixel data to PPM file (specified by open C++ stream).

pixel data is written in ASCII format. This method does not work if original YCbCr color model is retained (see CIF_KeepYCbCrColorModel).

Parameters:
stream open C++ output stream
bits number of bits used for output of pixel data (default: full resolution, max: 32; MI_PastelColor = -1 for true color pastel mode, EXPERIMENTAL)
frame index of frame used for output (default: first frame = 0)
Returns:
true if successful, false otherwise

int DicomImage::writePPM const char *  filename,
const int  bits = 0,
const unsigned long  frame = 0
 

write pixel data to PPM file (specified by filename).

pixel data is written in ASCII format. This method does not work if original YCbCr color model is retained (see CIF_KeepYCbCrColorModel).

Parameters:
filename name of output file (d is replaced by frame number if present)
bits number of bits used for output of pixel data (default: full resolution, max: 32; MI_PastelColor = -1 for true color pastel mode, EXPERIMENTAL)
frame index of frame used for output (default: first frame = 0)
Returns:
true if successful, false otherwise

int DicomImage::writeRawPPM FILE *  stream,
const int  bits = 0,
const unsigned long  frame = 0
 

write pixel data to raw PPM file (specified by open C stream).

pixel data is written in binary format. This method does not work if original YCbCr color model is retained (see CIF_KeepYCbCrColorModel).

Parameters:
stream open C output stream (binary mode required!)
bits number of bits used for output of pixel data (default: full resolution, max: 8; MI_PastelColor = -1 for true color pastel mode, EXPERIMENTAL)
frame index of frame used for output (default: first frame = 0)
Returns:
true if successful, false otherwise

int DicomImage::writeRawPPM const char *  filename,
const int  bits = 0,
const unsigned long  frame = 0
 

write pixel data to raw PPM file (specified by filename).

pixel data is written in binary format. This method does not work if original YCbCr color model is retained (see CIF_KeepYCbCrColorModel).

Parameters:
filename name of output file (d is replaced by frame number if present)
bits number of bits used for output of pixel data (default: full resolution, max: 8; MI_PastelColor = -1 for true color pastel mode, EXPERIMENTAL)
frame index of frame used for output (default: first frame = 0)
Returns:
true if successful, false otherwise


The documentation for this class was generated from the following file:


Generated on 20 Dec 2005 for OFFIS DCMTK Version 3.5.4 by Doxygen 1.4.5