DCMTK
Version 3.6.6
OFFIS DICOM Toolkit
|
Base class for images. More...
Public Member Functions | |
DiImage (const DiDocument *docu, const EI_Status status, const int spp) | |
constructor More... | |
virtual | ~DiImage () |
destructor | |
virtual int | processNextFrames (const unsigned long fcount) |
process next couple of frames More... | |
EI_Status | getStatus () const |
get status of the image object More... | |
Uint32 | getNumberOfFrames () const |
get number of frames More... | |
Uint32 | getFirstFrame () const |
get index of first frame More... | |
Uint32 | getTotalNumberOfFrames () const |
get total number of frames More... | |
Uint32 | getRepresentativeFrame () const |
get representative frame More... | |
double | getFrameTime () const |
get frame time More... | |
Uint16 | getRows () const |
get number of rows More... | |
Uint16 | getColumns () const |
get number of columns More... | |
double | getPixelWidth () const |
get pixel's width More... | |
double | getPixelHeight () const |
get pixel's height More... | |
double | getRowColumnRatio () const |
get pixel's rows/column ratio More... | |
double | getColumnRowRatio () const |
get pixel's column/rows ratio More... | |
int | setRowColumnRatio (const double ratio) |
set pixel's rows/column ratio More... | |
int | setColumnRowRatio (const double ratio) |
set pixel's column/rows ratio More... | |
EP_Polarity | getPolarity () const |
get polarity. More... | |
int | setPolarity (const EP_Polarity polarity) |
set polarity. More... | |
virtual int | getBits (const int bits=0) const |
get number of bits per sample. More... | |
virtual EP_Interpretation | getInternalColorModel () const =0 |
get color model of internal pixel representation. More... | |
virtual const DiPixel * | getInterData () const =0 |
get access to intermediate pixel data representation (abstract) More... | |
virtual unsigned long | getOutputDataSize (const int bits=0) const =0 |
get number of bytes required for the rendered output of a single frame More... | |
virtual const void * | getOutputData (const unsigned long frame, const int bits, const int planar)=0 |
get pixel data with specified format (abstract). More... | |
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). More... | |
virtual const void * | getOutputPlane (const int plane) const =0 |
get pixel data of specified plane (abstract). More... | |
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 More... | |
virtual DiMonoImage * | getMonoImagePtr () |
get pointer to monochrome image object More... | |
virtual DiImage * | createImage (const unsigned long fstart, const unsigned long fcount) const =0 |
create copy of current image object (abstract) More... | |
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). More... | |
virtual int | flip (const int horz, const int vert)=0 |
flip current image horizontally and/or vertically (abstract) More... | |
virtual DiImage * | createFlip (const int horz, const int vert) const =0 |
create a flipped copy of the current image (abstract). More... | |
virtual int | rotate (const int degree) |
rotate current image (by steps of 90 degrees) More... | |
virtual DiImage * | createRotate (const int degree) const =0 |
create a rotated copy of the current image (abstract). More... | |
virtual DiImage * | createMono (const double red, const double green, const double blue) const =0 |
create monochrome copy of the current image (abstract). More... | |
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). More... | |
virtual unsigned long | createAWTBitmap (void *&data, const unsigned long frame, const int bits)=0 |
create true color (32 bit) bitmap for Java AWT (abstract). More... | |
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. More... | |
virtual int | writeImageToDataset (DcmItem &dataset, const int mode=0, const int planar=2)=0 |
write current image and related attributes to DICOM dataset. More... | |
virtual int | writePPM (STD_NAMESPACE ostream &stream, const unsigned long frame, const int bits)=0 |
write pixel data to PPM file (abstract). More... | |
virtual int | writePPM (FILE *stream, const unsigned long frame, const int bits)=0 |
write pixel data to PPM file (abstract). More... | |
virtual int | writeRawPPM (FILE *stream, const unsigned long frame, const int bits)=0 |
write pixel data to raw PPM file (abstract) More... | |
virtual int | writeBMP (FILE *stream, const unsigned long frame, const int bits) |
write pixel data to BMP file More... | |
Protected Member Functions | |
DiImage (const DiDocument *docu, const EI_Status status) | |
constructor More... | |
DiImage (const DiImage *image, const unsigned long fstart, const unsigned long fcount) | |
constructor, copy More... | |
DiImage (const DiImage *image, const Uint16 width, const Uint16 height, const int aspect=0) | |
constructor, scale/clip More... | |
DiImage (const DiImage *image, const int degree=0) | |
constructor, rotate More... | |
DiImage (const DiImage *image, const unsigned long frame, const int stored, const int alloc) | |
constructor, createMonoOutput More... | |
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. More... | |
int | detachPixelData () |
detach pixel data. More... | |
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 |
|
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 |
|
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 |
|
protected |
constructor, rotate
image | pointer to reference image |
degree | angle by which the image shall be rotated |
|
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 |
|
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 DiMonoImage, and DiColorImage.
|
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 DiMonoImage, and DiColorImage.
|
pure virtual |
create a flipped copy of the current image (abstract).
horz | flip horizontally if true |
vert | flip vertically if true |
Implemented in DiColorImage, DiMono2Image, and DiMono1Image.
|
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 DiMono2Image, DiColorImage, and DiMono1Image.
|
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, DiMono2Image, and DiMono1Image.
|
pure virtual |
create a rotated copy of the current image (abstract).
degree | angle by which the image shall be rotated |
Implemented in DiColorImage, DiMono2Image, and DiMono1Image.
|
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, DiMono2Image, and DiMono1Image.
|
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 DiMonoImage, and DiColorImage.
|
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.
|
inline |
get pixel's column/rows ratio
|
inline |
get number of columns
|
inline |
get index of first frame
|
inline |
get frame time
|
pure virtual |
get access to intermediate pixel data representation (abstract)
Implemented in DiMonoImage, and DiColorImage.
|
pure virtual |
get color model of internal pixel representation.
Possible values are: EPI_Monochrome1, EPI_Monochrome2, EPI_RGB and EPI_YBR_Full
Implemented in DiMono2Image, DiColorImage, and DiMono1Image.
|
inlinevirtual |
get pointer to monochrome image object
Reimplemented in DiMonoImage.
|
inline |
get number of frames
|
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 DiMonoImage, DiMono2Image, DiColorImage, and DiMono1Image.
|
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 DiMonoImage, DiMono2Image, DiColorImage, and DiMono1Image.
|
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 DiMonoImage, and DiColorImage.
|
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
|
inline |
get pixel's width
|
inline |
get polarity.
possible values are EPP_Normal and EPP_Reverse
|
inline |
get representative frame
|
inline |
get pixel's rows/column ratio
|
inline |
get number of rows
|
inline |
get status of the image object
|
inline |
get total number of frames
|
virtual |
process next couple of frames
fcount | number of frames to be processed (0 = same number as before) |
Reimplemented in DiMonoImage, DiARGBImage, DiPaletteImage, DiCMYKImage, DiHSVImage, DiRGBImage, DiYBRImage, DiYBR422Image, and DiYBRPart422Image.
|
virtual |
rotate current image (by steps of 90 degrees)
degree | angle by which the image shall be rotated |
Reimplemented in DiMonoImage, and DiColorImage.
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 DiMonoImage, and DiColorImage.
|
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 DiMonoImage, and DiColorImage.
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 DiMonoImage, and DiColorImage.
|
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 DiMonoImage, and DiColorImage.
|
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 DiMonoImage, and DiColorImage.
|
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 DiMonoImage, and DiColorImage.