DCMTK
Version 3.6.5
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 More... | |
virtual | ~DiColorImage () |
destructor | |
virtual EP_Interpretation | getInternalColorModel () const |
get color model of internal pixel representation. More... | |
virtual unsigned long | getOutputDataSize (const int bits=0) const |
get number of bytes required for the rendered output of a single frame More... | |
const void * | getOutputData (const unsigned long frame, const int bits, const int planar=0) |
get pixel data with specified format. More... | |
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. More... | |
const void * | getOutputPlane (const int plane) const |
get pixel data of specified plane. More... | |
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 More... | |
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. More... | |
int | flip (const int horz, const int vert) |
flip current image (horizontally and/or vertically) More... | |
DiImage * | createFlip (const int horz, const int vert) const |
create a flipped copy of the current image More... | |
int | rotate (const int degree) |
rotate current image (by steps of 90 degrees) More... | |
DiImage * | createRotate (const int degree) const |
create a rotated copy of the current image. More... | |
DiImage * | createMono (const double red, const double green, const double blue) const |
create monochrome copy of the current image More... | |
const DiPixel * | getInterData () const |
get pointer to intermediate pixel data representation More... | |
const DiColorPixel * | getColorInterData () const |
get pointer to intermediate pixel data representation More... | |
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. More... | |
unsigned long | createAWTBitmap (void *&data, const unsigned long frame, const int bits) |
create true color (32 bit) bitmap for Java (AWT default format). More... | |
int | writeImageToDataset (DcmItem &dataset, const int mode, const int planar) |
write current image and related attributes to DICOM dataset. More... | |
int | writePPM (STD_NAMESPACE ostream &stream, const unsigned long frame, const int bits) |
write pixel data to PPM file. More... | |
int | writePPM (FILE *stream, const unsigned long frame, const int bits) |
write pixel data to PPM file. More... | |
int | writeRawPPM (FILE *stream, const unsigned long frame, const int bits) |
write pixel data to raw PPM file More... | |
int | writeBMP (FILE *stream, const unsigned long frame, const int bits) |
write pixel data to BMP file More... | |
![]() | |
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 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... | |
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... | |
Protected Member Functions | |
DiColorImage (const DiColorImage *image, const unsigned long fstart, const unsigned long fcount) | |
constructor, copy More... | |
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 More... | |
DiColorImage (const DiColorImage *image, const int horz, const int vert) | |
constructor, flip More... | |
DiColorImage (const DiColorImage *image, const int degree) | |
constructor, rotate More... | |
int | checkInterData (const int mode=1) |
check intermediate pixel representation for consistency More... | |
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. More... | |
virtual void | updateImagePixelModuleAttributes (DcmItem &dataset) |
update Image Pixel Module attributes in the given dataset. More... | |
![]() | |
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 | |
int | detachPixelData () |
detach pixel data. More... | |
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) | |
![]() | |
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) | |
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 |
|
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 |
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) |
|
protected |
constructor, flip
image | pointer to reference image |
horz | flip horizontally if true |
vert | flip vertically if true |
|
protected |
constructor, rotate
image | pointer to reference image |
degree | angle by which the image shall be rotated |
|
protected |
check intermediate pixel representation for consistency
mode | check number of pixels stored in the dataset if true |
|
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.
|
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.
|
virtual |
|
virtual |
create copy of current image object
fstart | first frame to be processed |
fcount | number of frames |
Implements DiImage.
|
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.
|
virtual |
|
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.
|
virtual |
flip current image (horizontally and/or vertically)
horz | flip horizontally if true |
vert | flip vertically if true |
Implements DiImage.
|
inline |
get pointer to intermediate pixel data representation
|
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 |
|
inlinevirtual |
get pointer to intermediate pixel data representation
Implements DiImage.
|
inlinevirtual |
get color model of internal pixel representation.
Implements DiImage.
References EPI_RGB, and EPI_YBR_Full.
|
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.
|
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 |
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.
|
virtual |
get pixel data of specified plane.
(memory is handled internally)
plane | index of color plane |
Implements DiImage.
|
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.
|
protectedvirtual |
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.
|
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.
|
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.
|
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.
|
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.
|
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.