DCMTK
Version 3.6.1 20120515
OFFIS DICOM Toolkit
|
Base class for color images. More...
Public Member Functions | |
DiColorImage (const DiDocument *docu, const EI_Status status, const int spp, const OFBool rgb=OFTrue) | |
constructor | |
virtual | ~DiColorImage () |
destructor | |
virtual EP_Interpretation | getInternalColorModel () const |
get color model of internal pixel representation. | |
virtual 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 unsigned long frame, const int bits, const int planar=0) |
get pixel data with specified format. | |
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. | |
const void * | getOutputPlane (const int plane) const |
get pixel data of specified plane. | |
void | deleteOutputData () |
delete internally handled output memory buffer Save memory if data is no longer needed. | |
DiImage * | createImage (const unsigned long fstart, const unsigned long fcount) const |
create copy of current image object | |
DiImage * | createScale (const signed long left_pos, const signed long top_pos, const unsigned long src_cols, const unsigned long src_rows, const unsigned long dest_cols, const unsigned long dest_rows, const int interpolate, const int aspect, const Uint16 pvalue) const |
create scaled copy of specified (clipping) area of the current image object. | |
int | flip (const int horz, const int vert) |
flip current image (horizontally and/or vertically) | |
DiImage * | createFlip (const int horz, const int vert) const |
create a flipped copy of the current image | |
int | rotate (const int degree) |
rotate current image (by steps of 90 degrees) | |
DiImage * | createRotate (const int degree) const |
create a rotated copy of the current image. | |
DiImage * | createMono (const double red, const double green, const double blue) const |
create monochrome copy of the current image | |
const DiPixel * | getInterData () const |
get pointer to intermediate pixel data representation | |
const DiColorPixel * | getColorInterData () const |
get pointer to intermediate pixel data representation | |
unsigned long | createDIB (void *&data, const unsigned long size, const unsigned long frame, const int bits, const int upsideDown, const int padding=1) |
create true color (24/32 bit) bitmap for MS Windows. | |
unsigned long | createAWTBitmap (void *&data, const unsigned long frame, const int bits) |
create true color (32 bit) bitmap for Java (AWT default format). | |
int | writeImageToDataset (DcmItem &dataset, const int mode, const int planar) |
write current image and related attributes to DICOM dataset. | |
int | writePPM (STD_NAMESPACE ostream &stream, const unsigned long frame, const int bits) |
write pixel data to PPM file. | |
int | writePPM (FILE *stream, const unsigned long frame, const int bits) |
write pixel data to PPM file. | |
int | writeRawPPM (FILE *stream, const unsigned long frame, const int bits) |
write pixel data to raw PPM file | |
int | writeBMP (FILE *stream, const unsigned long frame, const int bits) |
write pixel data to BMP file | |
Protected Member Functions | |
DiColorImage (const DiColorImage *image, const unsigned long fstart, const unsigned long fcount) | |
constructor, copy | |
DiColorImage (const DiColorImage *image, const signed long left_pos, const signed long top_pos, const Uint16 src_cols, const Uint16 src_rows, const Uint16 dest_cols, const Uint16 dest_rows, const int interpolate=0, const int aspect=0) | |
constructor, scale/clip | |
DiColorImage (const DiColorImage *image, const int horz, const int vert) | |
constructor, flip | |
DiColorImage (const DiColorImage *image, const int degree) | |
constructor, rotate | |
int | checkInterData (const int mode=1) |
check intermediate pixel representation for consistency | |
const void * | getData (void *buffer, const unsigned long size, const unsigned long frame, const int bits, const int planar) |
get pixel data with specified format. | |
virtual void | updateImagePixelModuleAttributes (DcmItem &dataset) |
update Image Pixel Module attributes in the given dataset. | |
Protected Attributes | |
const OFBool | RGBColorModel |
flag, indicating whether the intermediate representation uses the RGB color model | |
DiColorPixel * | InterData |
points to intermediate pixel data representation (object) | |
Private Member Functions | |
DiColorImage (const DiColorImage &) | |
DiColorImage & | operator= (const DiColorImage &) |
Private Attributes | |
DiColorOutputPixel * | OutputData |
points to current output data (object) |
Base class for color images.
DiColorImage::DiColorImage | ( | const DiDocument * | docu, |
const EI_Status | status, | ||
const int | spp, | ||
const OFBool | rgb = OFTrue |
||
) |
constructor
docu | pointer to the DICOM document |
status | status of the image object |
spp | sample per pixel (1, 3 or 4 depending on the color model) |
rgb | specifies whether internal image representation is in RGB format |
DiColorImage::DiColorImage | ( | const DiColorImage * | image, |
const unsigned long | fstart, | ||
const unsigned long | fcount | ||
) | [protected] |
constructor, copy
image | pointer to reference image |
fstart | first frame to be processed |
fcount | number of frames |
DiColorImage::DiColorImage | ( | const DiColorImage * | image, |
const signed long | left_pos, | ||
const signed long | top_pos, | ||
const Uint16 | src_cols, | ||
const Uint16 | src_rows, | ||
const Uint16 | dest_cols, | ||
const Uint16 | dest_rows, | ||
const int | interpolate = 0 , |
||
const int | aspect = 0 |
||
) | [protected] |
constructor, scale/clip
image | pointer to reference image |
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 |
src_cols | width of area to be scaled |
src_rows | height of area to be scaled |
dest_cols | width of scaled image (in pixels) |
dest_rows | 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) |
DiColorImage::DiColorImage | ( | const DiColorImage * | image, |
const int | horz, | ||
const int | vert | ||
) | [protected] |
constructor, flip
image | pointer to reference image |
horz | flip horizontally if true |
vert | flip vertically if true |
DiColorImage::DiColorImage | ( | const DiColorImage * | image, |
const int | degree | ||
) | [protected] |
constructor, rotate
image | pointer to reference image |
degree | angle by which the image shall be rotated |
int DiColorImage::checkInterData | ( | const int | mode = 1 | ) | [protected] |
check intermediate pixel representation for consistency
mode | check number of pixels stored in the dataset if true |
unsigned long DiColorImage::createAWTBitmap | ( | void *& | data, |
const unsigned long | frame, | ||
const int | bits | ||
) | [virtual] |
create true color (32 bit) bitmap for Java (AWT default format).
Memory is not handled internally - must be deleted from calling program.
data | resulting pointer to bitmap data (set to NULL if an error occurred) |
frame | index of frame to be converted (default: first frame) |
bits | number of bits per pixel used for the output bitmap (32) |
Implements DiImage.
unsigned long DiColorImage::createDIB | ( | void *& | data, |
const unsigned long | size, | ||
const unsigned long | frame, | ||
const int | bits, | ||
const int | upsideDown, | ||
const int | padding = 1 |
||
) | [virtual] |
create true color (24/32 bit) bitmap for MS Windows.
memory is not handled internally - must be deleted from calling program.
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 (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) |
Implements DiImage.
DiImage* DiColorImage::createFlip | ( | const int | horz, |
const int | vert | ||
) | const [virtual] |
DiImage* DiColorImage::createImage | ( | const unsigned long | fstart, |
const unsigned long | fcount | ||
) | const [virtual] |
create copy of current image object
fstart | first frame to be processed |
fcount | number of frames |
Implements DiImage.
DiImage* DiColorImage::createMono | ( | const double | red, |
const double | green, | ||
const double | blue | ||
) | const [virtual] |
create monochrome copy of the current image
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 |
Implements DiImage.
DiImage* DiColorImage::createRotate | ( | const int | degree | ) | const [virtual] |
DiImage* DiColorImage::createScale | ( | const signed long | left_pos, |
const signed long | top_pos, | ||
const unsigned long | src_cols, | ||
const unsigned long | src_rows, | ||
const unsigned long | dest_cols, | ||
const unsigned long | dest_rows, | ||
const int | interpolate, | ||
const int | aspect, | ||
const Uint16 | pvalue | ||
) | const [virtual] |
create scaled copy of specified (clipping) area of the current image object.
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 |
src_cols | width of area to be scaled |
src_rows | height of area to be scaled |
dest_cols | width of scaled image (in pixels) |
dest_rows | 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 | dummy parameter (only used for monochrome images) |
Implements DiImage.
int DiColorImage::flip | ( | const int | horz, |
const int | vert | ||
) | [virtual] |
flip current image (horizontally and/or vertically)
horz | flip horizontally if true |
vert | flip vertically if true |
Implements DiImage.
const DiColorPixel* DiColorImage::getColorInterData | ( | ) | const [inline] |
get pointer to intermediate pixel data representation
const void* DiColorImage::getData | ( | void * | buffer, |
const unsigned long | size, | ||
const unsigned long | frame, | ||
const int | bits, | ||
const int | planar | ||
) | [protected] |
get pixel data with specified format.
(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, 0 = color-by-pixel and 1 = color-by-plane |
const DiPixel* DiColorImage::getInterData | ( | ) | const [inline, virtual] |
get pointer to intermediate pixel data representation
Implements DiImage.
virtual EP_Interpretation DiColorImage::getInternalColorModel | ( | ) | const [inline, virtual] |
get color model of internal pixel representation.
Implements DiImage.
const void* DiColorImage::getOutputData | ( | const unsigned long | frame, |
const int | bits, | ||
const int | planar = 0 |
||
) | [virtual] |
get pixel data with specified format.
(memory is handled internally) The standard color model of the pixel data is RGB, but if the flag "rgb" is OFFalse and the original color model was YCbCr_Full or YCbCr_Full_422 YCbCr_Full is used instead.
frame | number of frame to be rendered |
bits | number of bits per sample for the output pixel data (depth) |
planar | 0 = color-by-pixel (R1G1B1...R2G2B2...R3G3B3...), 1 = color-by-plane (R1R2R3...G1G2G3...B1B2B3...) |
Implements DiImage.
int DiColorImage::getOutputData | ( | void * | buffer, |
const unsigned long | size, | ||
const unsigned long | frame, | ||
const int | bits, | ||
const int | planar = 0 |
||
) | [virtual] |
get pixel data with specified format.
(memory is handled externally) The standard color model of the pixel data is RGB, but if the flag "rgb" is OFFalse and the original color model was YCbCr_Full or YCbCr_Full_422 YCbCr_Full is used instead.
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 per sample for the output pixel data (depth) |
planar | 0 = color-by-pixel (R1G1B1...R2G2B2...R3G3B3...) 1 = color-by-plane (R1R2R3...G1G2G3...B1B2B3...) |
Implements DiImage.
virtual unsigned long DiColorImage::getOutputDataSize | ( | const int | bits = 0 | ) | const [virtual] |
get number of bytes required for the rendered output of a single frame
bits | number of bits for the output pixel data (depth) |
Implements DiImage.
const void* DiColorImage::getOutputPlane | ( | const int | plane | ) | const [virtual] |
get pixel data of specified plane.
(memory is handled internally)
plane | index of color plane |
Implements DiImage.
int DiColorImage::rotate | ( | const int | degree | ) | [virtual] |
rotate current image (by steps of 90 degrees)
degree | angle by which the image shall be rotated (-360, -270, -180, -90, 0, 90, 180, 270, 360) |
Reimplemented from DiImage.
virtual void DiColorImage::updateImagePixelModuleAttributes | ( | DcmItem & | dataset | ) | [protected, virtual] |
update Image Pixel Module attributes in the given dataset.
Removes color palette lookup tables. Used in writeXXXToDataset() routines.
dataset | reference to DICOM image dataset |
Reimplemented from DiImage.
int DiColorImage::writeBMP | ( | FILE * | stream, |
const unsigned long | frame, | ||
const int | bits | ||
) | [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 (24 or 32, default (0) = 24) |
Reimplemented from DiImage.
int DiColorImage::writeImageToDataset | ( | DcmItem & | dataset, |
const int | mode, | ||
const int | planar | ||
) | [virtual] |
write current image and related attributes to DICOM dataset.
dataset | reference to DICOM dataset where the image attributes are stored |
mode | dummy parameter (only used for monochrome images) |
planar | flag, whether the output data (for multi-planar images) should be planar or not |
Implements DiImage.
int DiColorImage::writePPM | ( | STD_NAMESPACE ostream & | stream, |
const unsigned long | frame, | ||
const int | bits | ||
) | [virtual] |
write pixel data to PPM file.
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 |
Implements DiImage.
int DiColorImage::writePPM | ( | FILE * | stream, |
const unsigned long | frame, | ||
const int | bits | ||
) | [virtual] |
write pixel data to PPM file.
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 |
Implements DiImage.
int DiColorImage::writeRawPPM | ( | FILE * | stream, |
const unsigned long | frame, | ||
const int | bits | ||
) | [virtual] |
write pixel data to raw PPM file
stream | open C output stream |
frame | index of frame used for output |
bits | number of bits used for output of pixel data |
Implements DiImage.