OFFIS DCMTK
Version 3.6.0
|
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 | getRepresentativeFrame () const |
get representative frame 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... | |
DiImage (const DiImage &) | |
DiImage & | operator= (const DiImage &) |
Protected Attributes | |
EI_Status | ImageStatus |
copy of status variable declared in class 'DicomImage' | |
const DiDocument * | Document |
points to special object, which capsulates 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') | |
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 getMonoImagePtr().
|
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.
Referenced by DicomImage::createJavaAWTBitmap(), and getMonoImagePtr().
|
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.
Referenced by DicomImage::createWindowsDIB(), and getMonoImagePtr().
|
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.
Referenced by getMonoImagePtr().
|
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.
Referenced by getMonoImagePtr().
|
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.
Referenced by getMonoImagePtr().
|
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.
Referenced by getMonoImagePtr().
|
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 DiMono2Image, DiColorImage, and DiMono1Image.
Referenced by getMonoImagePtr().
|
protected |
detach pixel data.
removes storage area used for the pixel data from memory
Referenced by getMonoImagePtr().
|
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.
Referenced by getMonoImagePtr().
|
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.
Definition at line 238 of file diimage.h.
References BitsPerSample, deleteOutputData(), getInterData(), getInternalColorModel(), getOutputData(), getOutputDataSize(), and getOutputPlane().
Referenced by DicomImage::getDepth(), DicomImage::getOutputData(), and DicomImage::getOutputDataSize().
|
inline |
get pixel's column/rows ratio
Definition at line 187 of file diimage.h.
References getPixelHeight(), getPixelWidth(), setColumnRowRatio(), and setRowColumnRatio().
Referenced by DicomImage::getWidthHeightRatio().
|
inline |
get number of columns
Definition at line 151 of file diimage.h.
References Columns.
Referenced by DicomImage::getWidth().
|
inline |
get index of first frame
Definition at line 124 of file diimage.h.
References FirstFrame.
Referenced by DicomImage::getFirstFrame().
|
pure virtual |
get access to intermediate pixel data representation (abstract)
Implemented in DiMonoImage, and DiColorImage.
Referenced by getBits(), and DicomImage::getInterData().
|
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.
Referenced by getBits().
|
inlinevirtual |
get pointer to monochrome image object
Reimplemented in DiMonoImage.
Definition at line 322 of file diimage.h.
References checkPixelExtension(), convertPixelData(), createAWTBitmap(), createDIB(), createFlip(), createImage(), createMono(), createRotate(), createScale(), deleteInputData(), detachPixelData(), DiImage(), flip(), rotate(), updateImagePixelModuleAttributes(), writeBMP(), writeFrameToDataset(), writeImageToDataset(), writePPM(), and writeRawPPM().
Referenced by DicomImage::addOverlay(), DicomImage::convertPValueToDDL(), DicomImage::create6xxx3000OverlayData(), DicomImage::deleteDisplayLUT(), DicomImage::deleteOverlayData(), DicomImage::getDisplayFunction(), DicomImage::getFullOverlayData(), DicomImage::getMinMaxValues(), DicomImage::getModalityLutExplanation(), DicomImage::getOverlayData(), DicomImage::getPresentationLutExplanation(), DicomImage::getPresentationLutShape(), DicomImage::getVoiLutCount(), DicomImage::getVoiLutExplanation(), DicomImage::getVoiLutFunction(), DicomImage::getVoiTransformationExplanation(), DicomImage::getVoiWindowExplanation(), DicomImage::getWindow(), DicomImage::getWindowCount(), DicomImage::isOutputValueUnused(), DicomImage::removeAllOverlays(), DicomImage::setDisplayFunction(), DicomImage::setHardcopyParameters(), DicomImage::setHistogramWindow(), DicomImage::setInversePresentationLut(), DicomImage::setMinMaxWindow(), DicomImage::setNoDisplayFunction(), DicomImage::setNoVoiTransformation(), DicomImage::setPresentationLut(), DicomImage::setPresentationLutShape(), DicomImage::setRoiWindow(), DicomImage::setVoiLut(), DicomImage::setVoiLutFunction(), and DicomImage::setWindow().
|
inline |
get number of frames
Definition at line 115 of file diimage.h.
References NumberOfFrames.
Referenced by DicomImage::getFrameCount().
|
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.
Referenced by getBits(), and DicomImage::getOutputData().
|
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.
Referenced by getBits(), and DicomImage::getOutputDataSize().
|
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 DiMonoImage, and DiColorImage.
Referenced by getBits(), and DicomImage::getOutputPlane().
|
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.
Definition at line 313 of file diimage.h.
Referenced by DicomImage::getOverlayCount(), DicomImage::getOverlayDescription(), DicomImage::getOverlayGroupNumber(), DicomImage::getOverlayLabel(), DicomImage::getOverlayMode(), DicomImage::hideAllOverlays(), DicomImage::hideOverlay(), DicomImage::isOverlayVisible(), DicomImage::placeOverlay(), DicomImage::removeOverlay(), DicomImage::showAllOverlays(), and DicomImage::showOverlay().
|
inline |
get pixel's height
Definition at line 169 of file diimage.h.
References PixelHeight.
Referenced by getColumnRowRatio(), and getRowColumnRatio().
|
inline |
get pixel's width
Definition at line 160 of file diimage.h.
References PixelWidth.
Referenced by getColumnRowRatio(), and getRowColumnRatio().
|
inline |
get polarity.
possible values are EPP_Normal and EPP_Reverse
Definition at line 213 of file diimage.h.
References Polarity, and setPolarity().
Referenced by DicomImage::getPolarity().
|
inline |
get representative frame
Definition at line 133 of file diimage.h.
References RepresentativeFrame.
Referenced by DicomImage::getRepresentativeFrame().
|
inline |
get pixel's rows/column ratio
Definition at line 178 of file diimage.h.
References getPixelHeight(), and getPixelWidth().
Referenced by DicomImage::getHeightWidthRatio().
|
inline |
get number of rows
Definition at line 142 of file diimage.h.
References Rows.
Referenced by DicomImage::getHeight().
|
inline |
get status of the image object
Definition at line 106 of file diimage.h.
References ImageStatus.
Referenced by DicomImage::getStatus().
|
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.
Referenced by DicomImage::processNextFrames().
|
virtual |
rotate current image (by steps of 90 degrees)
degree | angle by which the image shall be rotated |
Reimplemented in DiMonoImage, and DiColorImage.
Referenced by getMonoImagePtr().
int DiImage::setColumnRowRatio | ( | const double | ratio | ) |
set pixel's column/rows ratio
ratio | pixel's column/rows ratio |
Referenced by getColumnRowRatio(), and DicomImage::setWidthHeightRatio().
int DiImage::setPolarity | ( | const EP_Polarity | polarity | ) |
set polarity.
polarity | polarity (normal or reverse) |
Referenced by getPolarity(), and DicomImage::setPolarity().
int DiImage::setRowColumnRatio | ( | const double | ratio | ) |
set pixel's rows/column ratio
ratio | pixel's rows/column ratio |
Referenced by getColumnRowRatio(), and DicomImage::setHeightWidthRatio().
|
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.
Referenced by getMonoImagePtr().
|
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.
Referenced by getMonoImagePtr().
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 |
Referenced by getMonoImagePtr(), and DicomImage::writeFrameToDataset().
|
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.
Referenced by getMonoImagePtr(), and DicomImage::writeImageToDataset().
|
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.
Referenced by getMonoImagePtr().
|
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.
Referenced by getMonoImagePtr().