DCMTK
Version 3.6.3
OFFIS DICOM Toolkit
|
Class representing an object of the "Segmentation SOP Class". More...
Public Member Functions | |
virtual | ~DcmSegmentation () |
Destructor, frees memory. | |
OFCondition | saveFile (const OFString &filename, const E_TransferSyntax writeXfer=EXS_LittleEndianExplicit) |
Save current object to given filename. More... | |
OFCondition | writeDataset (DcmItem &dataset) |
Write current object to given item. More... | |
size_t | getNumberOfFrames () |
Get number of frames, based on the number of items in the shared functional functional groups sequence (i.e. the attribute Number of Frames) is not trusted). More... | |
DcmSegTypes::E_SegmentationType | getSegmentationType () |
Get Segmentation Type. More... | |
DcmSegTypes::E_SegmentationFractionalType | getSegmentationFractionalType () |
Get Fractional Segmentation Type. More... | |
size_t | getNumberOfSegments () |
Get the Number of Segments. More... | |
virtual OFBool | check () |
Perform some basic checking. More... | |
virtual FGInterface & | getFunctionalGroups () |
Get access to functional groups. More... | |
virtual IODGeneralEquipmentModule & | getEquipment () |
Get General Equipment Module. More... | |
virtual IODSegmentationSeriesModule & | getSegmentationSeriesModule () |
Get Segmentation Series Module. More... | |
virtual OFCondition | getModality (OFString &value, const signed long pos=0) const |
Get modality (overwrite from DcmIODCommon. More... | |
virtual DcmSegment * | getSegment (const unsigned int segmentNumber) |
Get segment by providing the logical segment number. More... | |
virtual OFBool | getSegmentNumber (const DcmSegment *segment, unsigned int &segmentNumber) |
Get logical segment number by providing a pointer to a given segment. More... | |
virtual SOPInstanceReferenceMacro & | getReferencedPPS () |
Reference to the Performed Procedure Step that led to the creation of this segmentation object. More... | |
virtual const DcmIODTypes::Frame * | getFrame (const size_t &frameNo) |
Get (const) frame data of a specific frame. More... | |
virtual void | getFramesForSegment (const size_t &segmentNumber, OFVector< size_t > &frameNumbers) |
Get the frame numbers that belong to a specific segment number. More... | |
virtual OFCondition | addSegment (DcmSegment *seg, Uint16 &segmentNumber) |
Add segment to segmentation object. More... | |
virtual OFCondition | addForAllFrames (const FGBase &group) |
Add a functional group for all frames. More... | |
virtual OFCondition | addFrame (Uint8 *pixData, const Uint16 segmentNumber, const OFVector< FGBase *> &perFrameInformation) |
Add frame to segmentation object. More... | |
virtual ContentIdentificationMacro & | getContentIdentification () |
Return reference to content content identification of this segmentation object. More... | |
virtual IODMultiframeDimensionModule & | getDimensions () |
Return reference to multi-fame dimension module. More... | |
virtual OFCondition | setLossyImageCompressionFlag (const OFString &ratios, const OFString &methods, const OFBool checkValues=OFTrue) |
Set lossy compression flag of the segmentation object to "01". More... | |
virtual OFCondition | setEquipmentInfo (const IODGeneralEquipmentModule::EquipmentInfo &equipmentInfo, const OFBool checkValue=OFTrue) |
Set equipment info for this segmentation object. More... | |
virtual OFCondition | setContentIdentification (const ContentIdentificationMacro &contentIdentification, const OFBool checkValue=OFTrue) |
Set content identification info for this segmentation object. More... | |
![]() | |
DcmIODImage () | |
Constructor, creates new DcmIODImage instance with integer-based pixel data. | |
DcmIODImage (OFin_place_type_t(ImagePixel)) | |
Constructor, constructs new DcmIODImage instance with integer, float or double based Image Pixel Module (i. More... | |
virtual | ~DcmIODImage () |
Virtual Destructor. | |
IODGeneralImageModule & | getGeneralImage () |
Get General Image Module. More... | |
IODImagePixelModuleType & | getImagePixel () |
Get Image Pixel Module (variant) More... | |
![]() | |
DcmIODCommon () | |
Constructor. | |
DcmIODCommon (const DcmIODCommon &rhs) | |
Copy Constructor. More... | |
OFshared_ptr< IODRules > | getRules () |
Get rules handled by this IOD. More... | |
OFshared_ptr< DcmItem > | getData () |
Get item managed by this IOD. More... | |
IODPatientModule & | getPatient () |
Get Patient Module. More... | |
IODPatientStudyModule & | getPatientStudy () |
Get Patient Study Module. More... | |
IODGeneralStudyModule & | getStudy () |
Get General Study Module. More... | |
IODGeneralEquipmentModule & | getEquipment () |
Get General Equipment Module. More... | |
IODGeneralSeriesModule & | getSeries () |
Get Series Module. More... | |
IODFoRModule & | getFrameOfReference () |
Get Frame of Reference Module. More... | |
IODSOPCommonModule & | getSOPCommon () |
Get SOP Common Module. More... | |
IODCommonInstanceReferenceModule & | getCommonInstanceReference () |
Get Common Instance Reference Module. More... | |
virtual | ~DcmIODCommon () |
Destructor. | |
virtual void | createNewStudy (const OFBool clearEquipment=OFTrue) |
Create new study. More... | |
virtual void | createNewSeries (const OFBool clearFoR=OFTrue) |
Create a new series. More... | |
virtual void | createNewSOPInstance () |
Create a new SOP instance. More... | |
virtual void | ensureInstanceUIDs (const OFBool correctInvalid=OFFalse) |
Make sure that the IOD contains a SOP Instance, Series Instance and Study Instance UID. More... | |
virtual OFCondition | importHierarchy (DcmItem &dataset, const OFBool readPatient, const OFBool readStudy, const OFBool readFoR=OFFalse, const OFBool readSeries=OFFalse, const OFBool takeOverCharset=OFTrue) |
Import common module attributes from dataset but only read Patient, Study, Series and/or Frame of Reference level portions. More... | |
virtual OFCondition | importHierarchy (const OFString &filename, const OFBool readPatient, const OFBool readStudy, const OFBool readFoR=OFFalse, const OFBool readSeries=OFFalse, const OFBool takeOverCharset=OFTrue) |
CAUTION: Parameter order (readFoR and readSeries) changed compared to the old import() function. More... | |
Static Public Member Functions | |
static OFCondition | loadFile (const OFString &filename, DcmSegmentation *&segmentation) |
Static method to load a Segmentation object from a file. More... | |
static OFCondition | loadDataset (DcmDataset &dataset, DcmSegmentation *&segmentation) |
Static method to load a Segmentation object from a dataset object. More... | |
static OFCondition | createBinarySegmentation (DcmSegmentation *&segmentation, const Uint16 rows, const Uint16 columns, const IODGeneralEquipmentModule::EquipmentInfo &equipmentInfo, const ContentIdentificationMacro &contentIdentification) |
Factory method to create a binary segmentation object from the minimal set of information required. More... | |
static OFCondition | createFractionalSegmentation (DcmSegmentation *&segmentation, const Uint16 rows, const Uint16 columns, const DcmSegTypes::E_SegmentationFractionalType fractType, const Uint16 &maxFractionalValue, const IODGeneralEquipmentModule::EquipmentInfo &equipmentInfo, const ContentIdentificationMacro &contentIdentification) |
Factory method to create a fractional segmentation object from the minimal set of information required. More... | |
static FGDerivationImage * | createDerivationImageFG (const OFVector< ImageSOPInstanceReferenceMacro > &derivationImages, const OFString &derivationDescription) |
Helps to create a valid Derivation Image Functional Group Macro The memory of the resulting functional group object has to be freed by the caller. More... | |
Protected Member Functions | |
DcmSegmentation () | |
Protected default constructor. More... | |
OFCondition | read (DcmItem &dataset) |
Overwrites DcmIODImage::read() More... | |
OFCondition | write (DcmItem &dataset) |
Overwrites DcmIODImage::write() More... | |
virtual IODImagePixelModule< Uint8 > & | getImagePixel () |
Hide same function from IODImage since do not want the user to access the image pixel module manually. More... | |
virtual void | initIODRules () |
Initialize IOD rules. | |
virtual OFCondition | readSegments (DcmItem &item) |
Read segments from given item. More... | |
virtual OFCondition | writeFractionalFrames (DcmItem &dataset) |
Write fractional frames to given item. More... | |
virtual OFCondition | writeBinaryFrames (DcmItem &dataset) |
Write binary frames to given item. More... | |
virtual OFCondition | writeSegmentationImageModule (DcmItem &dataset) |
Write Segmentation Image Module. More... | |
virtual OFCondition | writeSegments (DcmItem &item) |
Write Segments. More... | |
virtual OFCondition | writeMultiFrameFunctionalGroupsModule (DcmItem &dataset) |
Write Multi-Frame Functional Groups. More... | |
virtual OFCondition | writeMultiFrameDimensionModule (DcmItem &dataset) |
Write Multi-Frame Dimension Module. More... | |
virtual OFCondition | readFrames (DcmItem &dataset) |
Read frames. More... | |
virtual OFCondition | getAndCheckImagePixelAttributes (DcmItem &dataset, Uint16 &allocated, Uint16 &stored, Uint16 &high, Uint16 &spp, Uint16 &pixelRep, Uint16 &rows, Uint16 &cols, Uint16 &numberOfFrames, OFString &colorModel) |
Get Image Pixel module attributes and perform some basic checking. More... | |
virtual void | extractFrames (Uint8 *pixData, const size_t numFrames, const size_t bitsPerFrame, OFVector< DcmIODTypes::Frame * > &results) |
Extracts Frame structures from the given pixel data element. More... | |
virtual void | concatFrames (OFVector< DcmIODTypes::Frame * > frames, Uint8 *pixData, const size_t bitsPerFrame) |
This is the counterpart to the extractFrames() function. More... | |
virtual OFCondition | addFrame (Uint8 *pixData) |
Add frame to segmentation object. More... | |
Static Protected Member Functions | |
static OFCondition | createCommon (DcmSegmentation *&segmentation, const Uint16 rows, const Uint16 columns, const IODGeneralEquipmentModule::EquipmentInfo &equipmentInfo, const ContentIdentificationMacro &contentIdentification) |
Create those data structures common for binary and fractional segmentations. More... | |
Protected Attributes | |
const CodeSequenceMacro | DERIVATION_CODE |
Constant code (required by Segmentation IOD) used to fill Derivation Image Functional Group. | |
const CodeSequenceMacro | PURPOSE_OF_REFERENCE_CODE |
Constant code (required by Segmentation IOD) used to fill Derivation Image Functional Group. | |
Private Member Functions | |
void | clearData () |
Clear old data. | |
OFBool | checkPixDataLength (DcmElement *pixelData, const Uint16 rows, const Uint16 cols, const Uint16 &numberOfFrames) |
Check the length of the pixel data. More... | |
size_t | getBitsPerFrame (const Uint16 &rows, const Uint16 &cols) |
Returns the number of bits per frame, taking into account binary versus fractional segmentation (member variables) and the dimensions of the image (parameters) More... | |
size_t | getTotalBytesRequired (const Uint16 &rows, const Uint16 &cols, const Uint16 &numberOfFrames) |
Returns the number of total bytes required for the frame data of this segmentation object. More... | |
OFCondition | readSegmentationFractionalType (DcmItem &item) |
Read Fractional Type of segmentation. More... | |
OFCondition | readSegmentationType (DcmItem &item) |
Read Segmentation Type of segmentation object. More... | |
Static Private Member Functions | |
static OFCondition | loadFile (DcmFileFormat &dcmff, const OFString &filename, DcmDataset *&dset) |
Loads file. More... | |
static OFCondition | decompress (DcmDataset &dset) |
Decompress the given dataset. More... | |
Private Attributes | |
IODSegmentationSeriesModule | m_SegmentationSeries |
Segmentation Series Module. | |
IODEnhGeneralEquipmentModule | m_EnhancedGeneralEquipmentModule |
IODEnhancedEquipmentModule. | |
IODMultiFrameFGModule | m_FG |
Multi-frame Functional Groups module. | |
IODMultiframeDimensionModule | m_DimensionModule |
Multi-frame Dimension Module. | |
OFVector< DcmIODTypes::Frame * > | m_Frames |
Binary frame data. | |
const OFString | m_ImageType |
Image Type: (CS, VM 2-n, Type 1), in Segmentations fixed to "DERIVED\PRIMARY". | |
ContentIdentificationMacro | m_ContentIdentificationMacro |
Content Identification Macro. | |
DcmSegTypes::E_SegmentationType | m_SegmentationType |
Segmentation Type: (CS, 1, 1) | |
DcmSegTypes::E_SegmentationFractionalType | m_SegmentationFractionalType |
Segmentation Fractional Type: (CS, 1, 1C) (required if FRACTIONAL) | |
DcmUnsignedShort | m_MaximumFractionalValue |
Maximum Fractional Value: (US, 1, 1C) (required if fractional type is FRACTIONAL) | |
OFVector< DcmSegment * > | m_Segments |
Segment descriptions from Segment Sequence. | |
FGInterface | m_FGInterface |
Multi-frame Functional Groups high level interface. | |
Additional Inherited Members | |
![]() | |
typedef DcmIODImage | IODImage |
typedef for old compilers that do not define the type 'DcmIODImage' in derived classes. | |
typedef IODImagePixelVariant< OFVARIADIC_TEMPLATE_PARAMETER_PACK(T)> | IODImagePixelModuleType |
A good comment would be nice, but I have nothing in mind. | |
Class representing an object of the "Segmentation SOP Class".
|
protected |
Protected default constructor.
Library users should the factory create..() method in order to create an object from scratch
|
virtual |
Add a functional group for all frames.
group | The group to be added as shared functional group. The |
|
virtual |
Add frame to segmentation object.
pixData | Pixel data to be added. Length must be rows*columns bytes. For binary segmentations (bit depth i.e. Bits Allocated/Stored=1), each byte equal to 0 will be interpreted as "not set", while every other value is interpreted as "set". For fractional segmentations the full byte is copied as is. |
segmentNumber | The logical segment number (>=1) this frame refers to. The segment identified by the segmentNumber must already exist. |
perFrameInformation | The functional groups that identify this frame (i.e. which are planned to be not common for all other frames). The functional groups are copied, so ownership of each group stays with the caller no matter what the method returns. |
|
protectedvirtual |
Add frame to segmentation object.
pixData | Pixel data to be added. Length must be rows*columns bytes. Pixel data is copied so it must be freed by the caller. |
|
virtual |
Add segment to segmentation object.
seg | The segment that should be added |
segmentNumber | The logical segment number that was assigned for this segment. Contains 0 if adding failed. |
|
virtual |
Perform some basic checking.
This method is also invoked when writing the object to a DICOM dataset or file.
|
private |
Check the length of the pixel data.
pixelData | The Pixel Data element |
rows | Number of rows |
cols | Number of columns |
numberOfFrames | Number of frames |
|
protectedvirtual |
This is the counterpart to the extractFrames() function.
It takes a number of frames that are in binary segmentation format (i.e. "bit-packed") and concatenates them together so the resulting memory block fits the Pixel Data format for binary segmentations. Thus method ensure that frames are aligned bit for bit concatenated to each other with only (if applicable) having unused bits after the last frame.
frames | The source frames |
pixData | The pixel data element data to be filled. Size must be at least bitsPerFrame * number of frames. |
bitsPerFrame | Bits required per frame, usually rows * columns |
|
static |
Factory method to create a binary segmentation object from the minimal set of information required.
The actual segments and the frame data is added separately. The memory of the resulting Segmentation object has to be freed by the caller.
segmentation | The resulting segmentation object if provided data is valid. Otherwise NULL is returned. |
rows | Number of rows of segmentation frame data |
columns | Number of rows of segmentation frame data |
equipmentInfo | Equipment that is responsible for creating the segmentation |
contentIdentification | Basic content identification information |
|
staticprotected |
Create those data structures common for binary and fractional segmentations.
segmentation | The segmentation object created |
rows | The number of rows for the segmentation |
columns | The number of columns for the segmentation |
equipmentInfo | Equipment information |
contentIdentification | Content meta information |
|
static |
Helps to create a valid Derivation Image Functional Group Macro The memory of the resulting functional group object has to be freed by the caller.
derivationImages | to image SOP instances |
derivationDescription | Free text describing how the derivation was achieved. |
|
static |
Factory method to create a fractional segmentation object from the minimal set of information required.
The actual segments and the frame data is added separately. The memory of the resulting Segmentation object has to be freed by the caller.
segmentation | The resulting segmentation object if provided data is valid. Otherwise NULL is returned. |
rows | Number of rows of segmentation frame data |
columns | Number of rows of segmentation frame data |
fractType | Either probability (SFT_PROBABILITY) or occupancy (SFT_OCCUPANCY) |
maxFractionalValue | The value inside the frame data of this segmentation that represents 100% occupancy/probability |
equipmentInfo | Equipment that is responsible for creating the segmentation |
contentIdentification | Basic content identification information |
|
staticprivate |
Decompress the given dataset.
dset | The dataset to be decompressed |
|
protectedvirtual |
Extracts Frame structures from the given pixel data element.
Only applicable for binary segmentations. Within the pixel data element, all frames are packed next to each other, with the end of one frame and the beginning of the next frame packed bit by bit next to each other. The resulting Frames are a bit-by-bit copy of their original counterpart. However, their first bit is aligned to the first bit/byte in the Frame, and the unused bits in the last byte (if any) are zeroed out.
pixData | The pixel data to read from |
numFrames | The number of frames to read |
bitsPerFrame | The number of bits per frame (usually rows * columns) |
results | The resulting frames. Memory for the frames is allocated by the method, so the Vector can/should be empty before calling. |
|
protectedvirtual |
Get Image Pixel module attributes and perform some basic checking.
dataset | Item to read from, usually main dataset level |
allocated | Bits Allocated |
stored | Bits Stored |
high | High Bit |
spp | Samples Per Pixel |
pixelRep | Pixel Representation |
rows | Rows |
cols | Columns |
numberOfFrames | The number of frames (as set in the dataset) |
colorModel | The color model used |
|
private |
Returns the number of bits per frame, taking into account binary versus fractional segmentation (member variables) and the dimensions of the image (parameters)
rows | The number of rows returned |
cols | The number of columns returned |
|
virtual |
Return reference to content content identification of this segmentation object.
|
virtual |
Return reference to multi-fame dimension module.
|
virtual |
Get General Equipment Module.
|
virtual |
Get (const) frame data of a specific frame.
frameNo | The number of the frame to get (starting with 0) |
|
virtual |
Get the frame numbers that belong to a specific segment number.
segmentNumber | The segment to search frames for |
frameNumbers | The frame numbers belonging to that segment |
|
virtual |
Get access to functional groups.
This is meant for reading data from functional groups that are not actively managed, i.e. made accessible by DcmSegmentation. In rare cases, however, it makes sense to access it for writing too, e.g. in order to add Stacks; use with care!
|
protectedvirtual |
Hide same function from IODImage since do not want the user to access the image pixel module manually.
|
virtual |
Get modality (overwrite from DcmIODCommon.
We always return "SEG" here)
value | Reference to variable in which the value should be stored |
pos | Index of the value to get. Not evaluated (here for consistency with other setter functions). |
size_t DcmSegmentation::getNumberOfFrames | ( | ) |
Get number of frames, based on the number of items in the shared functional functional groups sequence (i.e. the attribute Number of Frames) is not trusted).
size_t DcmSegmentation::getNumberOfSegments | ( | ) |
Get the Number of Segments.
|
virtual |
Reference to the Performed Procedure Step that led to the creation of this segmentation object.
This is required if this object is created in an MPPS or GPPS workflow.
|
virtual |
Get segment by providing the logical segment number.
segmentNumber | The logical segment number |
|
inline |
Get Fractional Segmentation Type.
|
virtual |
Get Segmentation Series Module.
|
inline |
Get Segmentation Type.
|
virtual |
Get logical segment number by providing a pointer to a given segment.
segment | The segment to find the logical segment number for |
segmentNumber | The segment number. 0 if segment could not be found. |
|
private |
Returns the number of total bytes required for the frame data of this segmentation object.
Takes into account dimensions and number of frames, as well as the type of segmentation (member variables).
rows | Number of rows of a frame |
cols | Number of cols of a frame |
numberOfFrames | The number of frames of the object |
|
static |
Static method to load a Segmentation object from a dataset object.
The memory of the resulting Segmentation object has to be freed by the caller.
dataset | The dataset to read from |
segmentation | The resulting segmentation object. NULL if dataset could not be read successfully. |
|
static |
Static method to load a Segmentation object from a file.
The memory of the resulting Segmentation object has to be freed by the caller.
filename | The file to read from |
segmentation | The resulting segmentation object. NULL if dataset could not be read successfully. |
|
staticprivate |
Loads file.
dcmff | The file format to load into |
filename | The filename of the file to load |
dset | Pointer to dataset after loading |
|
protectedvirtual |
Overwrites DcmIODImage::read()
dataset | The dataset to read from |
Reimplemented from DcmIODImage< IODImagePixelModule< Uint8 > >.
|
protectedvirtual |
Read frames.
dataset | Item to read from, usually main dataset level |
|
private |
Read Fractional Type of segmentation.
item | The item to read from |
|
private |
Read Segmentation Type of segmentation object.
item | The item to read from |
|
protectedvirtual |
Read segments from given item.
item | The item to read from |
OFCondition DcmSegmentation::saveFile | ( | const OFString & | filename, |
const E_TransferSyntax | writeXfer = EXS_LittleEndianExplicit |
||
) |
Save current object to given filename.
filename | The file to write to |
writeXfer | The transfer syntax to be used |
|
virtual |
Set content identification info for this segmentation object.
contentIdentification | The content identification of this segmentation |
checkValue | If OFTrue, the data provided is checked for validity (as possible) |
|
virtual |
Set equipment info for this segmentation object.
equipmentInfo | The description of the equipment used to create this segmentation |
checkValue | If OFTrue, the data provided is checked for validity |
|
virtual |
Set lossy compression flag of the segmentation object to "01".
If one of the source images of this segmentation has undergone lossy compression then this function should be called.
ratios | Compression ratios (separated by backslash) of the applied lossy compression steps. Only one value (and no backslash) if only one step was performed. |
methods | Methods (separated by backslash) of the applied lossy compression steps. Only one value (and no backslash) if only one step was performed. |
checkValues | If OFTrue, the data provided is checked for validity |
|
protectedvirtual |
Overwrites DcmIODImage::write()
dataset | The dataset to write to |
Reimplemented from DcmIODImage< IODImagePixelModule< Uint8 > >.
|
protectedvirtual |
Write binary frames to given item.
dataset | The item to write to, usually main dataset level |
OFCondition DcmSegmentation::writeDataset | ( | DcmItem & | dataset | ) |
Write current object to given item.
dataset | The item to write to |
|
protectedvirtual |
Write fractional frames to given item.
dataset | The item to write to, usually main dataset level |
|
protectedvirtual |
Write Multi-Frame Dimension Module.
dataset | The item to write to, usually main dataset level |
|
protectedvirtual |
Write Multi-Frame Functional Groups.
dataset | The item to write to, usually main dataset level |
|
protectedvirtual |
Write Segmentation Image Module.
dataset | The item to write to, usually main dataset level |
|
protectedvirtual |
Write Segments.
item | The item to write to |