33 #include "dcmtk/config/osconfig.h" 35 #include "dcmtk/dcmdata/dcitem.h" 36 #include "dcmtk/dcmdata/dcfcache.h" 39 #include "dcmtk/dcmimgle/didocu.h" 42 #include "dcmtk/dcmimgle/diovlay.h" 43 #include "dcmtk/dcmimgle/diutils.h" 45 #define INCLUDE_CSTDIO 46 #include "dcmtk/ofstd/ofstdinc.h" 48 #include "dcmtk/ofstd/ofstream.h" 87 const EI_Status status,
240 return ((bits < 1) || (bits > MAX_BITS)) ?
BitsPerSample : bits;
275 const int planar) = 0;
289 const unsigned long size,
290 const unsigned long frame,
292 const int planar) = 0;
335 const unsigned long fcount)
const = 0;
358 const signed long top_pos,
359 const unsigned long clip_width,
360 const unsigned long clip_height,
361 const unsigned long scale_width,
362 const unsigned long scale_height,
363 const int interpolate,
365 const Uint16 pvalue)
const = 0;
374 virtual int flip(
const int horz,
385 const int vert)
const = 0;
393 virtual int rotate(
const int degree);
413 const double blue)
const = 0;
426 virtual unsigned long createDIB(
void *&data,
427 const unsigned long size,
428 const unsigned long frame,
430 const int upsideDown,
431 const int padding = 1) = 0;
442 const unsigned long frame,
455 const unsigned long frame = 0,
457 const int planar = 0);
469 const int planar = 2) = 0;
480 virtual int writePPM(STD_NAMESPACE ostream& stream,
481 const unsigned long frame,
494 const unsigned long frame,
506 const unsigned long frame,
518 const unsigned long frame,
530 const EI_Status status);
539 const unsigned long fstart,
540 const unsigned long fcount);
552 const int aspect = 0);
560 const int degree = 0);
570 const unsigned long frame,
Uint32 getNumberOfFrames() const
get number of frames
virtual DiImage * createMono(const double red, const double green, const double blue) const =0
create monochrome copy of the current image (abstract).
virtual const void * getOutputData(const unsigned long frame, const int bits, const int planar)=0
get pixel data with specified format (abstract).
a class representing a list of DICOM elements in which each element has a different tag and elements ...
virtual DiImage * createImage(const unsigned long fstart, const unsigned long fcount) const =0
create copy of current image object (abstract)
Uint16 getRows() const
get number of rows
Uint16 getColumns() const
get number of columns
virtual DiImage * createRotate(const int degree) const =0
create a rotated copy of the current image (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).
void deleteInputData()
delete internally handled object for the input pixel data conversion
int hasImagerPixelSpacing
is 'true' if attribute 'ImagerPixelSpacing' is present
int detachPixelData()
detach pixel data.
int hasNominalScannedPixelSpacing
is 'true' if attribute 'hasNominalScannedPixelSpacing' is present
int BitsPerSample
actual number of bits per sample (depth)
void convertPixelData()
create input pixel data representation from DICOM dataset structures
This class implements a simple container that stores an input stream, the position of that input stre...
int isOriginal
is 'false' if derived from original image data (e.g. scaled)
double PixelWidth
width of each pixel according to 'PixelSpacing/AspectRatio'
virtual int flip(const int horz, const int vert)=0
flip current image horizontally and/or vertically (abstract)
virtual int writeImageToDataset(DcmItem &dataset, const int mode=0, const int planar=2)=0
write current image and related attributes to DICOM dataset.
virtual unsigned long createAWTBitmap(void *&data, const unsigned long frame, const int bits)=0
create true color (32 bit) bitmap for Java AWT (abstract).
virtual int getBits(const int bits=0) const
get number of bits per sample.
void checkPixelExtension()
check and possibly correct values for pixel spacing, aspect ratio etc.
virtual const void * getOutputPlane(const int plane) const =0
get pixel data of specified plane (abstract).
virtual const DiPixel * getInterData() const =0
get access to intermediate pixel data representation (abstract)
The class DcmPixelData stores different pixel representations identified by a type (the transfer synt...
EI_Status ImageStatus
copy of status variable declared in class 'DicomImage'
double getPixelWidth() const
get pixel's width
Interface class to DICOM data management (dcmdata).
DiInputPixel * InputData
points to intermediate pixel representation (template object)
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).
Uint32 FirstFrame
first frame to be processed
const DiDocument * Document
points to special object, which capsulates the dcmdata module
double getRowColumnRatio() const
get pixel's rows/column ratio
Uint16 HighBit
position of highest stored bit
virtual ~DiImage()
destructor
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 unsigned long getOutputDataSize(const int bits=0) const =0
get number of bytes required for the rendered output of a single frame
Uint32 RepresentativeFrame
number of representative frame, type 3 attribute (default '0')
Uint16 BitsAllocated
number of bits allocated for each pixel
double getColumnRowRatio() const
get pixel's column/rows ratio
int setColumnRowRatio(const double ratio)
set pixel's column/rows ratio
int hasSignedRepresentation
is 'true' if pixel data is signed
virtual void deleteOutputData()=0
delete internally handled output memory buffer (abstract)
Base class for monochrome images.
Uint32 TotalNumberOfFrames
total number of frames stored in the dataset
virtual DiMonoImage * getMonoImagePtr()
get pointer to monochrome image object
int setPolarity(const EP_Polarity polarity)
set polarity.
virtual EP_Interpretation getInternalColorModel() const =0
get color model of internal pixel representation.
Uint16 Columns
number of columns (in pixel)
double getPixelHeight() const
get pixel's height
EI_Status getStatus() const
get status of the image object
EP_Polarity Polarity
polarity (normal or reverse)
virtual int writePPM(STD_NAMESPACE ostream &stream, const unsigned long frame, const int bits)=0
write pixel data to PPM file (abstract).
Uint32 getFirstFrame() const
get index of first frame
DcmFileCache FileCache
file cache object used for partial read
virtual int rotate(const int degree)
rotate current image (by steps of 90 degrees)
double PixelHeight
height of each pixel according to 'PixelSpacing/AspectRatio'
a class representing the DICOM value representation 'Unsigned Short' (US)
int setRowColumnRatio(const double ratio)
set pixel's rows/column ratio
Uint16 Rows
number of rows (in pixel)
Class to handle a set of overlay planes.
Uint32 getRepresentativeFrame() const
get representative frame
int SamplesPerPixel
number of samples per pixel (1, 3 or 4)
virtual int processNextFrames(const unsigned long fcount)
process next couple of frames
Uint32 NumberOfFrames
number of frames in case of multi-frame images (otherwise '1')
Abstract base class to handle pixel data.
virtual int writeBMP(FILE *stream, const unsigned long frame, const int bits)
write pixel data to BMP file
DiImage(const DiDocument *docu, const EI_Status status, const int spp)
constructor
virtual DiImage * createFlip(const int horz, const int vert) const =0
create a flipped copy of the current image (abstract).
Uint32 CurrentFragment
current pixel item fragment (for encapsulated pixel data)
Uint16 BitsStored
number of bits stored for each pixel (see 'BitsPerSample')
int hasPixelAspectRatio
is 'true' if attribute 'PixelAspectRatio' is present
virtual void updateImagePixelModuleAttributes(DcmItem &dataset)
update Image Pixel Module attributes in the given dataset.
virtual DiOverlay * getOverlayPtr(const unsigned int)
get pointer to the object managing the overlay planes
int hasPixelSpacing
is 'true' if attribute 'PixelSpacing' is present
virtual int writeRawPPM(FILE *stream, const unsigned long frame, const int bits)=0
write pixel data to raw PPM file (abstract)
EP_Polarity getPolarity() const
get polarity.