| DCMTK Version 3.6.9
    OFFIS DICOM Toolkit | 
Base class for images. More...
 Inheritance diagram for DiImage:
 Inheritance diagram for DiImage:| Public Member Functions | |
| DiImage (const DiDocument *docu, const EI_Status status, const int spp) | |
| constructor | |
| virtual | ~DiImage () | 
| destructor | |
| virtual int | processNextFrames (const unsigned long fcount) | 
| process next couple of frames | |
| EI_Status | getStatus () const | 
| get status of the image object | |
| Uint32 | getNumberOfFrames () const | 
| get number of frames | |
| Uint32 | getFirstFrame () const | 
| get index of first frame | |
| Uint32 | getTotalNumberOfFrames () const | 
| get total number of frames | |
| Uint32 | getRepresentativeFrame () const | 
| get representative frame | |
| double | getFrameTime () const | 
| get frame time | |
| Uint16 | getRows () const | 
| get number of rows | |
| Uint16 | getColumns () const | 
| get number of columns | |
| double | getPixelWidth () const | 
| get pixel's width | |
| double | getPixelHeight () const | 
| get pixel's height | |
| double | getRowColumnRatio () const | 
| get pixel's rows/column ratio | |
| double | getColumnRowRatio () const | 
| get pixel's column/rows ratio | |
| int | setRowColumnRatio (const double ratio) | 
| set pixel's rows/column ratio | |
| int | setColumnRowRatio (const double ratio) | 
| set pixel's column/rows ratio | |
| EP_Polarity | getPolarity () const | 
| get polarity. | |
| int | setPolarity (const EP_Polarity polarity) | 
| set polarity. | |
| virtual int | getBits (const int bits=0) const | 
| get number of bits per sample. | |
| virtual EP_Interpretation | getInternalColorModel () const =0 | 
| get color model of internal pixel representation. | |
| virtual const DiPixel * | getInterData () const =0 | 
| get access to intermediate pixel data representation (abstract) | |
| virtual unsigned long | getOutputDataSize (const int bits=0) const =0 | 
| get number of bytes required for the rendered output of a single frame | |
| virtual const void * | getOutputData (const unsigned long frame, const int bits, const int planar)=0 | 
| get pixel data with specified format (abstract). | |
| virtual int | getOutputData (void *buffer, const unsigned long size, const unsigned long frame, const int bits, const int planar)=0 | 
| get pixel data with specified format (abstract). | |
| virtual const void * | getOutputPlane (const int plane) const =0 | 
| get pixel data of specified plane (abstract). | |
| virtual void | deleteOutputData ()=0 | 
| delete internally handled output memory buffer (abstract) | |
| virtual DiOverlay * | getOverlayPtr (const unsigned int) | 
| get pointer to the object managing the overlay planes | |
| virtual DiMonoImage * | getMonoImagePtr () | 
| get pointer to monochrome image object | |
| virtual DiImage * | createImage (const unsigned long fstart, const unsigned long fcount) const =0 | 
| create copy of current image object (abstract) | |
| virtual DiImage * | createScale (const signed long left_pos, const signed long top_pos, const unsigned long clip_width, const unsigned long clip_height, const unsigned long scale_width, const unsigned long scale_height, const int interpolate, const int aspect, const Uint16 pvalue) const =0 | 
| create scaled copy of specified (clipping) area of the current image object (abstract). | |
| virtual int | flip (const int horz, const int vert)=0 | 
| flip current image horizontally and/or vertically (abstract) | |
| virtual DiImage * | createFlip (const int horz, const int vert) const =0 | 
| create a flipped copy of the current image (abstract). | |
| virtual int | rotate (const int degree) | 
| rotate current image (by steps of 90 degrees) | |
| virtual DiImage * | createRotate (const int degree) const =0 | 
| create a rotated copy of the current image (abstract). | |
| virtual DiImage * | createMono (const double red, const double green, const double blue) const =0 | 
| create monochrome copy of the current image (abstract). | |
| virtual unsigned long | createDIB (void *&data, const unsigned long size, const unsigned long frame, const int bits, const int upsideDown, const int padding=1)=0 | 
| create true color (24/32 bit) or palette (8 bit) bitmap for MS Windows (abstract). | |
| virtual unsigned long | createAWTBitmap (void *&data, const unsigned long frame, const int bits)=0 | 
| create true color (32 bit) bitmap for Java AWT (abstract). | |
| int | writeFrameToDataset (DcmItem &dataset, const unsigned long frame=0, const int bits=0, const int planar=0) | 
| render pixel data of given frame and write image related attributes to DICOM dataset. | |
| virtual int | writeImageToDataset (DcmItem &dataset, const int mode=0, const int planar=2)=0 | 
| write current image and related attributes to DICOM dataset. | |
| virtual int | writePPM (STD_NAMESPACE ostream &stream, const unsigned long frame, const int bits)=0 | 
| write pixel data to PPM file (abstract). | |
| virtual int | writePPM (FILE *stream, const unsigned long frame, const int bits)=0 | 
| write pixel data to PPM file (abstract). | |
| virtual int | writeRawPPM (FILE *stream, const unsigned long frame, const int bits)=0 | 
| write pixel data to raw PPM file (abstract) | |
| virtual int | writeBMP (FILE *stream, const unsigned long frame, const int bits) | 
| write pixel data to BMP file | |
| Protected Member Functions | |
| DiImage (const DiDocument *docu, const EI_Status status) | |
| constructor | |
| DiImage (const DiImage *image, const unsigned long fstart, const unsigned long fcount) | |
| constructor, copy | |
| DiImage (const DiImage *image, const Uint16 width, const Uint16 height, const int aspect=0) | |
| constructor, scale/clip | |
| DiImage (const DiImage *image, const int degree=0) | |
| constructor, rotate | |
| DiImage (const DiImage *image, const unsigned long frame, const int stored, const int alloc) | |
| constructor, createMonoOutput | |
| void | deleteInputData () | 
| delete internally handled object for the input pixel data conversion | |
| void | checkPixelExtension () | 
| check and possibly correct values for pixel spacing, aspect ratio etc. | |
| void | convertPixelData () | 
| create input pixel data representation from DICOM dataset structures | |
| virtual void | updateImagePixelModuleAttributes (DcmItem &dataset) | 
| update Image Pixel Module attributes in the given dataset. | |
| int | detachPixelData () | 
| detach pixel data. | |
| Protected Attributes | |
| EI_Status | ImageStatus | 
| copy of status variable declared in class 'DicomImage' | |
| const DiDocument * | Document | 
| points to special object, which encapsulates the dcmdata module | |
| Uint32 | FirstFrame | 
| first frame to be processed | |
| Uint32 | NumberOfFrames | 
| number of frames in case of multi-frame images (otherwise '1') | |
| Uint32 | TotalNumberOfFrames | 
| total number of frames stored in the dataset | |
| Uint32 | RepresentativeFrame | 
| number of representative frame, type 3 attribute (default '0') | |
| double | FrameTime | 
| nominal time between individual frames (0 if absent) | |
| Uint16 | Rows | 
| number of rows (in pixel) | |
| Uint16 | Columns | 
| number of columns (in pixel) | |
| double | PixelWidth | 
| width of each pixel according to 'PixelSpacing/AspectRatio' | |
| double | PixelHeight | 
| height of each pixel according to 'PixelSpacing/AspectRatio' | |
| Uint16 | BitsAllocated | 
| number of bits allocated for each pixel | |
| Uint16 | BitsStored | 
| number of bits stored for each pixel (see 'BitsPerSample') | |
| Uint16 | HighBit | 
| position of highest stored bit | |
| int | BitsPerSample | 
| actual number of bits per sample (depth) | |
| int | SamplesPerPixel | 
| number of samples per pixel (1, 3 or 4) | |
| EP_Polarity | Polarity | 
| polarity (normal or reverse) | |
| int | hasSignedRepresentation | 
| is 'true' if pixel data is signed | |
| int | hasPixelSpacing | 
| is 'true' if attribute 'PixelSpacing' is present | |
| int | hasImagerPixelSpacing | 
| is 'true' if attribute 'ImagerPixelSpacing' is present | |
| int | hasNominalScannedPixelSpacing | 
| is 'true' if attribute 'hasNominalScannedPixelSpacing' is present | |
| int | hasPixelAspectRatio | 
| is 'true' if attribute 'PixelAspectRatio' is present | |
| int | isOriginal | 
| is 'false' if derived from original image data (e.g. scaled) | |
| DiInputPixel * | InputData | 
| points to intermediate pixel representation (template object) | |
| DcmFileCache | FileCache | 
| file cache object used for partial read | |
| Uint32 | CurrentFragment | 
| current pixel item fragment (for encapsulated pixel data) | |
Base class for images.
NB: This is an internal class of module dcmimgle/dcmimage. Please do not use it directly. Instead use the main interface class DicomImage.
| DiImage::DiImage | ( | const DiDocument * | docu, | 
| const EI_Status | status, | ||
| const int | spp ) | 
constructor
| docu | pointer to the DICOM document | 
| status | status of the image object | 
| spp | samples per pixel | 
Referenced by DiImage(), DiImage(), DiImage(), DiImage(), DiColorImage::createFlip(), createFlip(), DiMono1Image::createFlip(), DiMono2Image::createFlip(), DiColorImage::createImage(), createImage(), DiMono1Image::createImage(), DiMono2Image::createImage(), DiColorImage::createMono(), createMono(), DiMono1Image::createMono(), DiMono2Image::createMono(), DiMonoImage::createOutputImage(), DiColorImage::createRotate(), createRotate(), DiMono1Image::createRotate(), DiMono2Image::createRotate(), DiColorImage::createScale(), createScale(), DiMono1Image::createScale(), and DiMono2Image::createScale().
| 
 | protected | 
constructor
| docu | pointer to the DICOM document | 
| status | status of the image object | 
| 
 | protected | 
constructor, copy
| image | pointer to reference image | 
| fstart | first frame to be processed | 
| fcount | number of frames | 
References DiImage().
| 
 | protected | 
constructor, scale/clip
| image | pointer to reference image | 
| width | number of columns of the new image | 
| height | number of rows of the new image | 
| aspect | flag indicating whether pixel aspect ratio should be used or not | 
References DiImage().
| 
 | protected | 
constructor, rotate
| image | pointer to reference image | 
| degree | angle by which the image shall be rotated | 
References DiImage().
| 
 | protected | 
constructor, createMonoOutput
| image | pointer to reference image | 
| frame | number of frame stored in the new image object | 
| stored | number of bits stored | 
| alloc | number of bits allocated | 
References DiImage().
| 
 | pure virtual | 
create true color (32 bit) bitmap for Java AWT (abstract).
| data | resulting pointer to bitmap data (set to NULL if an error occurred) | 
| frame | index of frame to be converted | 
| bits | number of bits per pixel used for the output bitmap (8 or 32) | 
Implemented in DiColorImage, and DiMonoImage.
| 
 | pure virtual | 
create true color (24/32 bit) or palette (8 bit) bitmap for MS Windows (abstract).
| 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 (starting from 0) | 
| bits | number of bits per pixel used for the output bitmap (8, 24 or 32) | 
| upsideDown | specifies the order of lines in the images (0 = top-down, bottom-up otherwise) | 
| padding | align each line to a 32-bit address if true (default) | 
Implemented in DiColorImage, and DiMonoImage.
| 
 | pure virtual | 
create a flipped copy of the current image (abstract).
| horz | flip horizontally if true | 
| vert | flip vertically if true | 
Implemented in DiColorImage, DiMono1Image, and DiMono2Image.
References DiImage().
| 
 | pure virtual | 
create copy of current image object (abstract)
| fstart | first frame to be processed (not fully implemented!) | 
| fcount | number of frames (not fully implemented!) | 
Implemented in DiColorImage, DiMono1Image, and DiMono2Image.
References DiImage().
| 
 | pure virtual | 
create monochrome copy of the current image (abstract).
| red | coefficient by which the red component is weighted | 
| green | coefficient by which the green component is weighted | 
| blue | coefficient by which the blue component is weighted | 
Implemented in DiColorImage, DiMono1Image, and DiMono2Image.
References DiImage().
| 
 | pure virtual | 
create a rotated copy of the current image (abstract).
| degree | angle by which the image shall be rotated | 
Implemented in DiColorImage, DiMono1Image, and DiMono2Image.
References DiImage().
| 
 | pure virtual | 
create scaled copy of specified (clipping) area of the current image object (abstract).
| 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), preferred interpolation algorithm (if applicable): 1 = pbmplus algorithm, 2 = c't algorithm, 3 = bilinear magnification, 4 = bicubic magnification | 
| 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) | 
Implemented in DiColorImage, DiMono1Image, and DiMono2Image.
References DiImage().
| 
 | protected | 
detach pixel data.
removes storage area used for the pixel data from memory
| 
 | pure virtual | 
flip current image horizontally and/or vertically (abstract)
| horz | flip horizontally if true | 
| vert | flip vertically if true | 
Implemented in DiColorImage, and DiMonoImage.
| 
 | inlinevirtual | 
get number of bits per sample.
If the optional parameter is specified the value will be checked and in any case a valid value will be returned.
| bits | value to be returned (if less than 1 or greater than the maximum (32) the default value will be used which is equal to the bits per sample value stored in the DICOM dataset) | 
Reimplemented in DiMonoImage.
References BitsPerSample.
| 
 | inline | 
get pixel's column/rows ratio
References getPixelHeight(), and getPixelWidth().
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
| 
 | pure virtual | 
get access to intermediate pixel data representation (abstract)
Implemented in DiColorImage, and DiMonoImage.
| 
 | pure virtual | 
get color model of internal pixel representation.
Possible values are: EPI_Monochrome1, EPI_Monochrome2, EPI_RGB and EPI_YBR_Full
Implemented in DiColorImage, DiMono1Image, and DiMono2Image.
| 
 | inlinevirtual | 
get pointer to monochrome image object
Reimplemented in DiMonoImage.
| 
 | inline | 
| 
 | pure virtual | 
get pixel data with specified format (abstract).
(memory is handled internally)
| frame | number of frame to be rendered | 
| bits | number of bits for the output pixel data (depth) | 
| planar | flag, whether the output data (for multi-planar images) should be planar or not | 
Implemented in DiColorImage, DiMono1Image, DiMono2Image, and DiMonoImage.
| 
 | pure virtual | 
get pixel data with specified format (abstract).
(memory is handled externally)
| buffer | untyped pointer to the externally allocated memory buffer | 
| size | size of the memory buffer in bytes (will be checked) | 
| frame | number of frame to be rendered | 
| bits | number of bits for the output pixel data (depth) | 
| planar | flag, whether the output data (for multi-planar images) should be planar or not | 
Implemented in DiColorImage, DiMono1Image, DiMono2Image, and DiMonoImage.
| 
 | pure virtual | 
get number of bytes required for the rendered output of a single frame
| bits | number of bits for the output pixel data (depth) | 
Implemented in DiColorImage, and DiMonoImage.
| 
 | pure virtual | 
get pixel data of specified plane (abstract).
(memory is handled internally)
| plane | number of plane which should be rendered (starting from 0) | 
Implemented in DiColorImage, and DiMonoImage.
| 
 | inlinevirtual | 
get pointer to the object managing the overlay planes
(#)param idx index of overlay group (here: not used, since only applicable for monochrome images)
Reimplemented in DiMonoImage.
| 
 | inline | 
get pixel's height
References PixelHeight.
Referenced by getColumnRowRatio(), and getRowColumnRatio().
| 
 | inline | 
get pixel's width
References PixelWidth.
Referenced by getColumnRowRatio(), and getRowColumnRatio().
| 
 | inline | 
get polarity.
possible values are EPP_Normal and EPP_Reverse
References Polarity.
| 
 | inline | 
| 
 | inline | 
get pixel's rows/column ratio
References getPixelHeight(), and getPixelWidth().
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
| 
 | virtual | 
process next couple of frames
| fcount | number of frames to be processed (0 = same number as before) | 
Reimplemented in DiARGBImage, DiCMYKImage, DiHSVImage, DiMonoImage, DiPaletteImage, DiRGBImage, DiYBR422Image, DiYBRImage, and DiYBRPart422Image.
| 
 | virtual | 
rotate current image (by steps of 90 degrees)
| degree | angle by which the image shall be rotated | 
Reimplemented in DiColorImage, and DiMonoImage.
| int DiImage::setColumnRowRatio | ( | const double | ratio | ) | 
set pixel's column/rows ratio
| ratio | pixel's column/rows ratio | 
| int DiImage::setPolarity | ( | const EP_Polarity | polarity | ) | 
set polarity.
| polarity | polarity (normal or reverse) | 
| int DiImage::setRowColumnRatio | ( | const double | ratio | ) | 
set pixel's rows/column ratio
| ratio | pixel's rows/column ratio | 
| 
 | protectedvirtual | 
update Image Pixel Module attributes in the given dataset.
Removes smallest/largest pixel value and updates pixel aspect ratio as well as pixel spacing (if required). Used in writeXXXToDataset() routines.
| dataset | reference to DICOM image dataset | 
Reimplemented in DiColorImage, and DiMonoImage.
| 
 | virtual | 
write pixel data to BMP file
| stream | open C output stream | 
| frame | index of frame used for output (default: first frame = 0) | 
| bits | number of bits used for output of pixel data (8, 24 or 32) | 
Reimplemented in DiColorImage, and DiMonoImage.
| int DiImage::writeFrameToDataset | ( | DcmItem & | dataset, | 
| const unsigned long | frame = 0, | ||
| const int | bits = 0, | ||
| const int | planar = 0 ) | 
render pixel data of given frame and write image related attributes to DICOM dataset.
| dataset | reference to DICOM dataset where the image attributes are stored | 
| frame | index of frame used for output | 
| bits | number of bits used for output of pixel data | 
| planar | flag, whether the output data (for multi-planar images) should be planar or not | 
| 
 | pure virtual | 
write current image and related attributes to DICOM dataset.
| dataset | reference to DICOM dataset where the image attributes are stored | 
| mode | determine value of BitsStored from 'used' or 'possible' pixel values | 
| planar | flag, whether the output data (for multi-planar images) should be planar or not | 
Implemented in DiColorImage, and DiMonoImage.
| 
 | pure virtual | 
write pixel data to PPM file (abstract).
pixel data is written in ASCII format.
| stream | open C output stream | 
| frame | index of frame used for output | 
| bits | number of bits used for output of pixel data | 
Implemented in DiColorImage, and DiMonoImage.
| 
 | pure virtual | 
write pixel data to PPM file (abstract).
pixel data is written in ASCII format.
| stream | open C++ output stream | 
| frame | index of frame used for output | 
| bits | number of bits used for output of pixel data | 
Implemented in DiColorImage, and DiMonoImage.
| 
 | pure virtual | 
write pixel data to raw PPM file (abstract)
| stream | open C output stream | 
| frame | index of frame used for output | 
| bits | number of bits used for output of pixel data | 
Implemented in DiColorImage, and DiMonoImage.