Medical Imaging Interaction Toolkit
2023.12.00
Medical Imaging Interaction Toolkit
|
LabelSetImage class for handling labels and layers in a segmentation session. More...
#include <mitkLabelSetImage.h>
Public Types | |
typedef mitk::Label::PixelType | PixelType |
using | GroupIndexType = std::size_t |
using | LabelValueType = mitk::Label::PixelType |
using | ConstLabelVectorType = std::vector< Label::ConstPointer > |
using | LabelVectorType = std::vector< Label::Pointer > |
using | LabelValueVectorType = std::vector< LabelValueType > |
using | LabelEventType = Message1< LabelValueType > |
using | LabelsEventType = Message1< LabelValueVectorType > |
using | GroupEventType = Message1< GroupIndexType > |
Public Types inherited from mitk::Image | |
enum | ImportMemoryManagementType { CopyMemory, ManageMemory, ReferenceMemory, DontManageMemory } |
typedef Image | Self |
typedef SlicedData | Superclass |
typedef itk::SmartPointer< Self > | Pointer |
typedef itk::SmartPointer< const Self > | ConstPointer |
typedef itk::SmartPointer< ImageDataItem > | ImageDataItemPointer |
typedef itk::Statistics::Histogram< double > | HistogramType |
typedef mitk::ImageStatisticsHolder * | StatisticsHolderPointer |
typedef std::vector< ImageDataItemPointer > | ImageDataItemPointerArray |
Vector container of SmartPointers to ImageDataItems; Class is only for internal usage to allow convenient access to all slices over iterators; See documentation of ImageDataItem for details. More... | |
Public Types inherited from mitk::SlicedData | |
typedef SlicedData | Self |
typedef BaseData | Superclass |
typedef itk::SmartPointer< Self > | Pointer |
typedef itk::SmartPointer< const Self > | ConstPointer |
typedef itk::ImageRegion< RegionDimension > | RegionType |
typedef itk::Index< RegionDimension > | IndexType |
typedef IndexType::IndexValueType | IndexValueType |
typedef itk::Offset< RegionDimension > | OffsetType |
typedef OffsetType::OffsetValueType | OffsetValueType |
typedef itk::Size< RegionDimension > | SizeType |
typedef SizeType::SizeValueType | SizeValueType |
Public Types inherited from mitk::BaseData | |
typedef BaseData | Self |
typedef itk::DataObject | Superclass |
typedef itk::SmartPointer< Self > | Pointer |
typedef itk::SmartPointer< const Self > | ConstPointer |
Public Types inherited from mitk::Identifiable | |
using | UIDType = std::string |
Public Member Functions | |
mitkClassMacro (LabelSetImage, Image) | |
void | RemoveLabel (LabelValueType labelValue) |
Removes the label with the given value. The label is removed from the labelset and the pixel with the value of the label are set to UnlabeledValue. More... | |
void | RemoveLabels (const LabelValueVectorType &vectorOfLabelPixelValues) |
Removes labels from the mitk::MultiLabelSegmentation. If a label value does not exist, it will be ignored. More... | |
void | RemoveGroup (GroupIndexType group) |
Removes a whole group including all its labels. More... | |
bool | ExistGroup (GroupIndexType index) const |
** More... | |
bool | IsLabelInGroup (LabelValueType value) const |
bool | IsLabelInGroup (LabelValueType value, GroupIndexType &groupIndex) const |
GroupIndexType | GetGroupIndexOfLabel (LabelValueType value) const |
const mitk::Label * | GetLabel (LabelValueType value) const |
Returns the mitk::Label with the given value. More... | |
mitk::Label * | GetLabel (LabelValueType value) |
bool | IsLabelLocked (LabelValueType value) const |
const ConstLabelVectorType | GetLabels () const |
const LabelVectorType | GetLabels () |
const ConstLabelVectorType | GetLabelsInGroup (GroupIndexType index) const |
Returns a vector of all labels located on the specified group. More... | |
const LabelVectorType | GetLabelsInGroup (GroupIndexType index) |
virtual bool | GetUnlabeledLabelLock () const |
virtual void | SetUnlabeledLabelLock (bool _arg) |
virtual void | UnlabeledLabelLockOn () |
virtual void | UnlabeledLabelLockOff () |
mitkNewMessage1Macro (LabelAdded, LabelValueType) | |
LabelAdded is emitted whenever a new label has been added. More... | |
mitkNewMessage1Macro (LabelModified, LabelValueType) | |
LabelModified is emitted whenever a label has been modified. More... | |
mitkNewMessage1Macro (LabelRemoved, LabelValueType) | |
LabelRemoved is emitted whenever a label has been removed. More... | |
mitkNewMessage1Macro (LabelsChanged, LabelValueVectorType) | |
LabelsChanged is emitted when labels are changed (added, removed, modified). More... | |
mitkNewMessage1Macro (GroupAdded, GroupIndexType) | |
GroupAdded is emitted whenever a new group has been added. More... | |
mitkNewMessage1Macro (GroupModified, GroupIndexType) | |
GroupModified is emitted whenever a group has been modified. More... | |
mitkNewMessage1Macro (GroupRemoved, GroupIndexType) | |
GroupRemoved is emitted whenever a label has been removed. More... | |
void | UpdateCenterOfMass (PixelType pixelValue) |
More... | |
void | Initialize (const mitk::Image *image) override |
void | ClearBuffer () |
More... | |
void | MergeLabel (PixelType pixelValue, PixelType sourcePixelValue, unsigned int layer=0) |
Merges the mitk::Label with a given target value with the active label. More... | |
void | MergeLabels (PixelType pixelValue, const std::vector< PixelType > &vectorOfSourcePixelValues, unsigned int layer=0) |
Merges a list of mitk::Labels with the mitk::Label that has a specific value. More... | |
void | UpdateCenterOfMass (PixelType pixelValue, unsigned int layer) |
More... | |
void | EraseLabel (PixelType pixelValue) |
Erases the label with the given value from the labelset image. The label itself will not be erased from the respective mitk::LabelSet. In order to remove the label itself use mitk::LabelSetImage::RemoveLabels() More... | |
void | EraseLabels (const std::vector< PixelType > &VectorOfLabelPixelValues) |
Erases a list of labels with the given values from the labelset image. More... | |
bool | ExistLabel (PixelType pixelValue) const |
Returns true if the value exists in one of the labelsets. More... | |
bool | ExistLabel (PixelType pixelValue, unsigned int layer) const |
Checks if a label exists in a certain layer. More... | |
bool | ExistLabelSet (unsigned int layer) const |
Returns true if the labelset exists. More... | |
mitk::Label * | GetActiveLabel (unsigned int layer=0) |
Returns the active label of a specific layer. More... | |
const mitk::Label * | GetActiveLabel (unsigned int layer=0) const |
mitk::Label * | GetLabel (PixelType pixelValue, unsigned int layer) const |
Returns the mitk::Label with the given pixelValue and for the given layer. More... | |
mitk::LabelSet * | GetActiveLabelSet () |
Returns the currently active mitk::LabelSet. More... | |
const mitk::LabelSet * | GetActiveLabelSet () const |
mitk::LabelSet * | GetLabelSet (unsigned int layer=0) |
Gets the mitk::LabelSet for the given layer. More... | |
const mitk::LabelSet * | GetLabelSet (unsigned int layer=0) const |
unsigned int | GetActiveLayer () const |
Gets the ID of the currently active layer. More... | |
unsigned int | GetNumberOfLabels (unsigned int layer=0) const |
Get the number of all existing mitk::Labels for a given layer. More... | |
unsigned int | GetTotalNumberOfLabels () const |
Returns the number of all labels summed up across all layers. More... | |
mitk::Image::Pointer | CreateLabelMask (PixelType index, bool useActiveLayer=true, unsigned int layer=0) |
** More... | |
void | InitializeByLabeledImage (mitk::Image::Pointer image) |
Initialize a new mitk::LabelSetImage by an given image. For all distinct pixel values of the parameter image new labels will be created. If the number of distinct pixel values exceeds mitk::Label::MAX_LABEL_VALUE a new layer will be created. More... | |
void | MaskStamp (mitk::Image *mask, bool forceOverwrite) |
More... | |
void | SetActiveLayer (unsigned int layer) |
More... | |
unsigned int | GetNumberOfLayers () const |
More... | |
unsigned int | AddLayer (mitk::LabelSet::Pointer labelSet=nullptr) |
Adds a new layer to the LabelSetImage. The new layer will be set as the active one. More... | |
unsigned int | AddLayer (mitk::Image::Pointer layerImage, mitk::LabelSet::Pointer labelSet=nullptr) |
Adds a layer based on a provided mitk::Image. More... | |
void | AddLabelSetToLayer (const unsigned int layerIdx, const mitk::LabelSet *labelSet) |
Add a cloned LabelSet to an existing layer. More... | |
void | RemoveLayer () |
Removes the active layer and the respective mitk::LabelSet and image information. The new active layer is the one below, if exists. More... | |
mitk::Image * | GetLayerImage (unsigned int layer) |
More... | |
const mitk::Image * | GetLayerImage (unsigned int layer) const |
void | OnLabelSetModified () |
Public Member Functions inherited from mitk::Image | |
virtual std::vector< std::string > | GetClassHierarchy () const override |
virtual const char * | GetClassName () const |
Pointer | Clone () const |
const mitk::PixelType | GetPixelType (int n=0) const |
Returns the PixelType of channel n. More... | |
unsigned int | GetDimension () const |
Get dimension of the image. More... | |
unsigned int | GetDimension (int i) const |
Get the size of dimension i (e.g., i=0 results in the number of pixels in x-direction). More... | |
virtual vtkImageData * | GetVtkImageData (int t=0, int n=0) |
Get a volume at a specific time t of channel n as a vtkImageData. More... | |
virtual const vtkImageData * | GetVtkImageData (int t=0, int n=0) const |
bool | IsSliceSet (int s=0, int t=0, int n=0) const override |
Check whether slice s at time t in channel n is set. More... | |
bool | IsVolumeSet (int t=0, int n=0) const override |
Check whether volume at time t in channel n is set. More... | |
bool | IsChannelSet (int n=0) const override |
Check whether the channel n is set. More... | |
virtual bool | SetSlice (const void *data, int s=0, int t=0, int n=0) |
Set data as slice s at time t in channel n. It is in the responsibility of the caller to ensure that the data vector data is really a slice (at least is not smaller than a slice), since there is no chance to check this. More... | |
virtual bool | SetVolume (const void *data, int t=0, int n=0) |
Set data as volume at time t in channel n. It is in the responsibility of the caller to ensure that the data vector data is really a volume (at least is not smaller than a volume), since there is no chance to check this. More... | |
virtual bool | SetChannel (const void *data, int n=0) |
Set data in channel n. It is in the responsibility of the caller to ensure that the data vector data is really a channel (at least is not smaller than a channel), since there is no chance to check this. More... | |
virtual bool | SetImportSlice (void *data, int s=0, int t=0, int n=0, ImportMemoryManagementType importMemoryManagement=CopyMemory) |
Set data as slice s at time t in channel n. It is in the responsibility of the caller to ensure that the data vector data is really a slice (at least is not smaller than a slice), since there is no chance to check this. More... | |
virtual bool | SetImportVolume (void *data, int t=0, int n=0, ImportMemoryManagementType importMemoryManagement=CopyMemory) |
Set data as volume at time t in channel n. It is in the responsibility of the caller to ensure that the data vector data is really a volume (at least is not smaller than a volume), since there is no chance to check this. More... | |
virtual bool | SetImportVolume (const void *const_data, int t=0, int n=0) |
virtual bool | SetImportChannel (void *data, int n=0, ImportMemoryManagementType importMemoryManagement=CopyMemory) |
Set data in channel n. It is in the responsibility of the caller to ensure that the data vector data is really a channel (at least is not smaller than a channel), since there is no chance to check this. More... | |
virtual void | Initialize (const mitk::PixelType &type, unsigned int dimension, const unsigned int *dimensions, unsigned int channels=1) |
virtual void | Initialize (const mitk::PixelType &type, const mitk::BaseGeometry &geometry, unsigned int channels=1, int tDim=1) |
virtual void | Initialize (const mitk::PixelType &type, const mitk::TimeGeometry &geometry, unsigned int channels=1, int tDim=-1) |
Initialize new (or re-initialize) image information by a TimeGeometry. More... | |
virtual void | Initialize (const mitk::PixelType &type, int sDim, const mitk::PlaneGeometry &geometry2d, unsigned int channels=1, int tDim=1) |
virtual void | Initialize (const mitk::ImageDescriptor::Pointer inDesc) |
virtual void | Initialize (vtkImageData *vtkimagedata, int channels=1, int tDim=-1, int sDim=-1, int pDim=-1) |
template<typename itkImageType > | |
void | InitializeByItk (const itkImageType *itkimage, int channels=1, int tDim=-1, int sDim=-1) |
virtual bool | IsValidSlice (int s=0, int t=0, int n=0) const |
Check whether slice s at time t in channel n is valid, i.e., is (or can be) inside of the image. More... | |
virtual bool | IsValidVolume (int t=0, int n=0) const |
Check whether volume at time t in channel n is valid, i.e., is (or can be) inside of the image. More... | |
virtual bool | IsValidChannel (int n=0) const |
Check whether the channel n is valid, i.e., is (or can be) inside of the image. More... | |
bool | IsRotated () const |
Returns true if an image is rotated, i.e. its geometry's transformation matrix has nonzero elements besides the diagonal. Non-diagonal elements are checked if larger then 1/1000 of the matrix' trace. More... | |
unsigned int * | GetDimensions () const |
Get the sizes of all dimensions as an integer-array. More... | |
ImageDescriptor::Pointer | GetImageDescriptor () const |
ChannelDescriptor | GetChannelDescriptor (int id=0) const |
void | SetGeometry (BaseGeometry *aGeometry3D) override |
Sets a geometry to an image. More... | |
virtual ImageDataItemPointer | GetSliceData (int s=0, int t=0, int n=0, void *data=nullptr, ImportMemoryManagementType importMemoryManagement=CopyMemory) const |
virtual ImageDataItemPointer | GetVolumeData (int t=0, int n=0, void *data=nullptr, ImportMemoryManagementType importMemoryManagement=CopyMemory) const |
virtual ImageDataItemPointer | GetChannelData (int n=0, void *data=nullptr, ImportMemoryManagementType importMemoryManagement=CopyMemory) const |
StatisticsHolderPointer | GetStatistics () const |
Returns a pointer to the ImageStatisticsHolder object that holds all statistics information for the image. More... | |
Public Member Functions inherited from mitk::SlicedData | |
itkStaticConstMacro (RegionDimension, unsigned int, 5) | |
void | UpdateOutputInformation () override |
void | PrepareForNewData () override |
void | SetRequestedRegionToLargestPossibleRegion () override |
bool | RequestedRegionIsOutsideOfTheBufferedRegion () override |
bool | VerifyRequestedRegion () override |
Verify that the RequestedRegion is within the LargestPossibleRegion. More... | |
void | SetRequestedRegion (const itk::DataObject *data) override |
virtual void | SetRequestedRegion (SlicedData::RegionType *region) |
void | SetLargestPossibleRegion (SlicedData::RegionType *region) |
Sets the largest possible region. The largest possible region is the entire region occupied by the data object. Note that the largest possible region should always be bigger then the requested region of a certain operation. More... | |
const RegionType & | GetLargestPossibleRegion () const |
virtual const RegionType & | GetRequestedRegion () const |
void | CopyInformation (const itk::DataObject *data) override |
unsigned int | GetNumberOfChannels () const |
Get the number of channels. More... | |
SlicedGeometry3D * | GetSlicedGeometry (unsigned int t=0) const |
Convenience access method for the geometry, which is of type SlicedGeometry3D (or a sub-class of it). More... | |
const SlicedGeometry3D * | GetUpdatedSlicedGeometry (unsigned int t=0) |
Convenience access method for the geometry, which is of type SlicedGeometry3D (or a sub-class of it). More... | |
void | SetGeometry (BaseGeometry *aGeometry3D) override |
Set the BaseGeometry of the data, which will be referenced (not copied!). It has to be a sub-class of SlicedGeometry3D. More... | |
void | SetOrigin (const Point3D &origin) override |
Convenience method for setting the origin of the SlicedGeometry3D instances of all time steps. More... | |
virtual void | SetSpacing (const ScalarType aSpacing[]) |
Convenience method for setting the spacing of the SlicedGeometry3D instances of all time steps. More... | |
virtual void | SetSpacing (mitk::Vector3D aSpacing) |
Convenience method for setting the spacing of the SlicedGeometry3D instances of all time steps. More... | |
Public Member Functions inherited from mitk::BaseData | |
BaseProperty::ConstPointer | GetConstProperty (const std::string &propertyKey, const std::string &contextName="", bool fallBackOnDefaultContext=true) const override |
Get property by its key. More... | |
std::vector< std::string > | GetPropertyKeys (const std::string &contextName="", bool includeDefaultContext=false) const override |
Query keys of existing properties. More... | |
std::vector< std::string > | GetPropertyContextNames () const override |
Query names of existing contexts. More... | |
BaseProperty * | GetNonConstProperty (const std::string &propertyKey, const std::string &contextName="", bool fallBackOnDefaultContext=true) override |
Get property by its key. More... | |
void | SetProperty (const std::string &propertyKey, BaseProperty *property, const std::string &contextName="", bool fallBackOnDefaultContext=false) override |
Add new or change existent property. More... | |
void | RemoveProperty (const std::string &propertyKey, const std::string &contextName="", bool fallBackOnDefaultContext=false) override |
Removes a property. If the property does not exist, nothing will be done. More... | |
const mitk::TimeGeometry * | GetTimeGeometry () const |
Return the TimeGeometry of the data as const pointer. More... | |
mitk::TimeGeometry * | GetTimeGeometry () |
Return the TimeGeometry of the data as pointer. More... | |
const mitk::TimeGeometry * | GetUpdatedTimeGeometry () |
Return the TimeGeometry of the data. More... | |
const mitk::BaseGeometry * | GetUpdatedGeometry (int t=0) |
Return the BaseGeometry of the data at time t. More... | |
mitk::BaseGeometry * | GetGeometry (int t=0) const |
Return the geometry, which is a TimeGeometry, of the data as non-const pointer. More... | |
void | UpdateOutputInformation () override |
Update the information for this BaseData (the geometry in particular) so that it can be used as an output of a BaseProcess. More... | |
void | CopyInformation (const itk::DataObject *data) override |
Copy information from the specified data set. More... | |
virtual bool | IsInitialized () const |
Check whether the data has been initialized, i.e., at least the Geometry and other header data has been set. More... | |
virtual bool | IsEmptyTimeStep (unsigned int t) const |
Check whether object contains data (at a specified time), e.g., a set of points may be empty. More... | |
virtual bool | IsEmpty () const |
Check whether object contains data (at least at one point in time), e.g., a set of points may be empty. More... | |
void | ExecuteOperation (Operation *operation) override |
overwrite if the Data can be called by an Interactor (StateMachine). More... | |
virtual void | SetTimeGeometry (TimeGeometry *geometry) |
Set the TimeGeometry of the data, which will be referenced (not copied!). More... | |
virtual void | SetClonedGeometry (const BaseGeometry *aGeometry3D) |
Set a clone of the provided Geometry as Geometry of the data. Assumes the data object has only 1 time step ( is a 3D object ) and creates a new TimeGeometry. If an TimeGeometry has already been set for the object, it will be replaced after calling this function. More... | |
virtual void | SetClonedTimeGeometry (const TimeGeometry *geometry) |
Set a clone of the provided TimeGeometry as TimeGeometry of the data. More... | |
virtual void | SetClonedGeometry (const BaseGeometry *aGeometry3D, unsigned int time) |
Set a clone of the provided geometry as BaseGeometry of a given time step. More... | |
mitk::PropertyList::Pointer | GetPropertyList () const |
Get the data's property list. More... | |
void | SetPropertyList (PropertyList *propertyList) |
Set the data's property list. More... | |
mitk::BaseProperty::Pointer | GetProperty (const char *propertyKey) const |
Get the property (instance of BaseProperty) with key propertyKey from the PropertyList, and set it to this, respectively;. More... | |
void | SetProperty (const char *propertyKey, BaseProperty *property) |
itk::SmartPointer< mitk::BaseDataSource > | GetSource () const |
Get the process object that generated this data object. More... | |
unsigned int | GetTimeSteps () const |
Get the number of time steps from the TimeGeometry As the base data has not a data vector given by itself, the number of time steps is defined over the time sliced geometry. In sub classes, a better implementation could be over the length of the data vector. More... | |
itk::ModifiedTimeType | GetMTime () const override |
Get the modified time of the last change of the contents this data object or its geometry. More... | |
void | Graft (const DataObject *) override |
Public Member Functions inherited from mitk::OperationActor | |
itkTypeMacroNoParent (OperationActor) virtual ~OperationActor() | |
Public Member Functions inherited from mitk::Identifiable | |
Identifiable () | |
Identifiable (const UIDType &uid) | |
Identifiable (const Identifiable &)=delete | |
Identifiable (Identifiable &&) noexcept | |
virtual | ~Identifiable () |
Identifiable & | operator= (const Identifiable &)=delete |
Identifiable & | operator= (Identifiable &&other) noexcept |
virtual UIDType | GetUID () const |
Get unique ID of an object. More... | |
Public Member Functions inherited from mitk::IPropertyOwner | |
~IPropertyOwner () override | |
Public Member Functions inherited from mitk::IPropertyProvider | |
virtual | ~IPropertyProvider () |
Static Public Member Functions | |
static Pointer | New () |
Static Public Member Functions inherited from mitk::Image | |
static const char * | GetStaticNameOfClass () |
static Pointer | New () |
Static Public Member Functions inherited from mitk::SlicedData | |
static const char * | GetStaticNameOfClass () |
Static Public Member Functions inherited from mitk::BaseData | |
static const char * | GetStaticNameOfClass () |
Public Attributes | |
Message | BeforeChangeLayerEvent |
BeforeChangeLayerEvent (e.g. used for GUI integration) As soon as active labelset should be changed, the signal emits. Emitted by SetActiveLayer(int layer);. More... | |
Message | AfterChangeLayerEvent |
AfterchangeLayerEvent (e.g. used for GUI integration) As soon as active labelset was changed, the signal emits. Emitted by SetActiveLayer(int layer);. More... | |
Static Public Attributes | |
const static LabelValueType | UnlabeledValue |
Protected Types | |
using | LabelMapType = std::map< LabelValueType, Label::Pointer > |
using | GroupToLabelMapType = std::map< GroupIndexType, LabelValueVectorType > |
using | LabelToGroupMapType = std::map< LabelValueType, GroupIndexType > |
Protected Types inherited from mitk::Image | |
typedef std::lock_guard< std::mutex > | MutexHolder |
Protected Member Functions | |
void | OnLabelAdded (LabelValueType labelValue) |
void | AddLabelToMap (LabelValueType labelValue, mitk::Label *label, GroupIndexType groupID) |
void | OnLabelModified (LabelValueType labelValue) |
void | OnLabelRemoved (LabelValueType labelValue) |
void | OnGroupAdded (GroupIndexType groupIndex) |
void | OnGroupModified (GroupIndexType groupIndex) |
void | OnGroupRemoved (GroupIndexType groupIndex) |
void | ReinitMaps () |
mitkCloneMacro (Self) | |
LabelSetImage () | |
LabelSetImage (const LabelSetImage &other) | |
~LabelSetImage () override | |
template<typename TPixel , unsigned int VImageDimension> | |
void | LayerContainerToImageProcessing (itk::Image< TPixel, VImageDimension > *source, unsigned int layer) |
template<typename TPixel , unsigned int VImageDimension> | |
void | ImageToLayerContainerProcessing (itk::Image< TPixel, VImageDimension > *source, unsigned int layer) const |
template<typename ImageType > | |
void | CalculateCenterOfMassProcessing (ImageType *input, PixelType index, unsigned int layer) |
template<typename ImageType > | |
void | ClearBufferProcessing (ImageType *input) |
template<typename ImageType > | |
void | EraseLabelProcessing (ImageType *input, PixelType index) |
template<typename ImageType > | |
void | MergeLabelProcessing (ImageType *input, PixelType pixelValue, PixelType index) |
template<typename ImageType > | |
void | MaskStampProcessing (ImageType *input, mitk::Image *mask, bool forceOverwrite) |
template<typename LabelSetImageType , typename ImageType > | |
void | InitializeByLabeledImageProcessing (LabelSetImageType *input, ImageType *other) |
LabelValueVectorType | GetUsedLabelValues () const |
void | RegisterLabelSet (mitk::LabelSet *ls) |
void | ReleaseLabelSet (mitk::LabelSet *ls) |
Protected Member Functions inherited from mitk::Image | |
virtual itk::LightObject::Pointer | InternalClone () const override |
int | GetSliceIndex (int s=0, int t=0, int n=0) const |
int | GetVolumeIndex (int t=0, int n=0) const |
void | ComputeOffsetTable () |
virtual bool | IsValidTimeStep (int t) const |
void | Expand (unsigned int timeSteps) override |
Expands the TimeGeometry to a number of TimeSteps. More... | |
virtual ImageDataItemPointer | AllocateSliceData (int s=0, int t=0, int n=0, void *data=nullptr, ImportMemoryManagementType importMemoryManagement=CopyMemory) const |
virtual ImageDataItemPointer | AllocateVolumeData (int t=0, int n=0, void *data=nullptr, ImportMemoryManagementType importMemoryManagement=CopyMemory) const |
virtual ImageDataItemPointer | AllocateChannelData (int n=0, void *data=nullptr, ImportMemoryManagementType importMemoryManagement=CopyMemory) const |
Image () | |
Image (const Image &other) | |
~Image () override | |
void | Clear () override |
Calls ClearData() and InitializeEmpty();. More... | |
void | Initialize () override |
void | PrintSelf (std::ostream &os, itk::Indent indent) const override |
Protected Member Functions inherited from mitk::SlicedData | |
SlicedData () | |
SlicedData (const SlicedData &other) | |
~SlicedData () override | |
Protected Member Functions inherited from mitk::BaseData | |
BaseData () | |
BaseData (const BaseData &other) | |
~BaseData () override | |
virtual void | InitializeTimeGeometry (unsigned int timeSteps=1) |
Initialize the TimeGeometry for a number of time steps. The TimeGeometry is initialized empty and evenly timed. In many cases it will be necessary to overwrite this in sub-classes. More... | |
virtual void | ClearData () |
reset to non-initialized state, release memory More... | |
virtual void | InitializeEmpty () |
Pure virtual; Must be used in subclasses to get a data object to a valid state. Should at least create one empty object and call Superclass::InitializeTimeGeometry() to ensure an existing valid geometry. More... | |
void | PrintSelf (std::ostream &os, itk::Indent indent) const override |
Protected Member Functions inherited from mitk::Identifiable | |
virtual void | SetUID (const UIDType &uid) |
LabelSetImage class for handling labels and layers in a segmentation session.
Handles operations for adding, removing, erasing and editing labels and layers.
Definition at line 29 of file mitkLabelSetImage.h.
using mitk::LabelSetImage::ConstLabelVectorType = std::vector<Label::ConstPointer> |
Definition at line 64 of file mitkLabelSetImage.h.
Definition at line 157 of file mitkLabelSetImage.h.
using mitk::LabelSetImage::GroupIndexType = std::size_t |
Definition at line 61 of file mitkLabelSetImage.h.
|
protected |
This type is internally used to track which label is currently associated with which layer.
Definition at line 272 of file mitkLabelSetImage.h.
Definition at line 155 of file mitkLabelSetImage.h.
|
protected |
Definition at line 267 of file mitkLabelSetImage.h.
Definition at line 156 of file mitkLabelSetImage.h.
|
protected |
Definition at line 274 of file mitkLabelSetImage.h.
Definition at line 62 of file mitkLabelSetImage.h.
using mitk::LabelSetImage::LabelValueVectorType = std::vector<LabelValueType> |
Definition at line 66 of file mitkLabelSetImage.h.
using mitk::LabelSetImage::LabelVectorType = std::vector<Label::Pointer> |
Definition at line 65 of file mitkLabelSetImage.h.
Definition at line 33 of file mitkLabelSetImage.h.
|
protected |
|
protected |
|
overrideprotected |
void mitk::LabelSetImage::AddLabelSetToLayer | ( | const unsigned int | layerIdx, |
const mitk::LabelSet * | labelSet | ||
) |
Add a cloned LabelSet to an existing layer.
Remark: The passed LabelSet instance will be cloned before added to ensure clear ownership of the new LabelSet addition.
This will replace an existing labelSet if one exists. Throws an exceptions if you are trying to add a labelSet to a non-existing layer.
If there are no labelSets for layers with an id less than layerIdx default ones will be added for them.
|
protected |
unsigned int mitk::LabelSetImage::AddLayer | ( | mitk::Image::Pointer | layerImage, |
mitk::LabelSet::Pointer | labelSet = nullptr |
||
) |
Adds a layer based on a provided mitk::Image.
layerImage | is added to the vector of label images |
labelSet | a labelset that will be added to the new layer if provided |
unsigned int mitk::LabelSetImage::AddLayer | ( | mitk::LabelSet::Pointer | labelSet = nullptr | ) |
Adds a new layer to the LabelSetImage. The new layer will be set as the active one.
labelSet | a labelset that will be added to the new layer if provided |
|
protected |
void mitk::LabelSetImage::ClearBuffer | ( | ) |
|
protected |
mitk::Image::Pointer mitk::LabelSetImage::CreateLabelMask | ( | PixelType | index, |
bool | useActiveLayer = true , |
||
unsigned int | layer = 0 |
||
) |
**
void mitk::LabelSetImage::EraseLabel | ( | PixelType | pixelValue | ) |
Erases the label with the given value from the labelset image. The label itself will not be erased from the respective mitk::LabelSet. In order to remove the label itself use mitk::LabelSetImage::RemoveLabels()
pixelValue | the pixel value of the label that will be erased from the labelset image |
|
protected |
void mitk::LabelSetImage::EraseLabels | ( | const std::vector< PixelType > & | VectorOfLabelPixelValues | ) |
Erases a list of labels with the given values from the labelset image.
VectorOfLabelPixelValues | the list of pixel values of the labels that will be erased from the labelset image |
bool mitk::LabelSetImage::ExistGroup | ( | GroupIndexType | index | ) | const |
**
**
Returns true if the spatial group exists in the MultiLabelSegmentation instance.
index | Group index of the group that should be checked for existance. |
bool mitk::LabelSetImage::ExistLabel | ( | PixelType | pixelValue | ) | const |
Returns true if the value exists in one of the labelsets.
bool mitk::LabelSetImage::ExistLabel | ( | PixelType | pixelValue, |
unsigned int | layer | ||
) | const |
Checks if a label exists in a certain layer.
pixelValue | the label value |
layer | the layer in which should be searched for the label |
bool mitk::LabelSetImage::ExistLabelSet | ( | unsigned int | layer | ) | const |
Returns true if the labelset exists.
mitk::Label* mitk::LabelSetImage::GetActiveLabel | ( | unsigned int | layer = 0 | ) |
Returns the active label of a specific layer.
layer | the layer ID for which the active label should be returned |
const mitk::Label* mitk::LabelSetImage::GetActiveLabel | ( | unsigned int | layer = 0 | ) | const |
mitk::LabelSet* mitk::LabelSetImage::GetActiveLabelSet | ( | ) |
Returns the currently active mitk::LabelSet.
const mitk::LabelSet* mitk::LabelSetImage::GetActiveLabelSet | ( | ) | const |
unsigned int mitk::LabelSetImage::GetActiveLayer | ( | ) | const |
Gets the ID of the currently active layer.
GroupIndexType mitk::LabelSetImage::GetGroupIndexOfLabel | ( | LabelValueType | value | ) | const |
Returns the group id of the based label value.
mitk::Label* mitk::LabelSetImage::GetLabel | ( | LabelValueType | value | ) |
const mitk::Label* mitk::LabelSetImage::GetLabel | ( | LabelValueType | value | ) | const |
Returns the mitk::Label with the given value.
value | the pixel value of the label |
mitk::Label* mitk::LabelSetImage::GetLabel | ( | PixelType | pixelValue, |
unsigned int | layer | ||
) | const |
Returns the mitk::Label with the given pixelValue and for the given layer.
pixelValue | the pixel value of the label |
layer | the layer in which the labels should be located |
const LabelVectorType mitk::LabelSetImage::GetLabels | ( | ) |
const ConstLabelVectorType mitk::LabelSetImage::GetLabels | ( | ) | const |
Returns a vector with all labels currently defined in the MultiLabelSegmentation instance.
mitk::LabelSet* mitk::LabelSetImage::GetLabelSet | ( | unsigned int | layer = 0 | ) |
Gets the mitk::LabelSet for the given layer.
layer | the layer for which the mitk::LabelSet should be retrieved |
const mitk::LabelSet* mitk::LabelSetImage::GetLabelSet | ( | unsigned int | layer = 0 | ) | const |
const LabelVectorType mitk::LabelSetImage::GetLabelsInGroup | ( | GroupIndexType | index | ) |
const ConstLabelVectorType mitk::LabelSetImage::GetLabelsInGroup | ( | GroupIndexType | index | ) | const |
Returns a vector of all labels located on the specified group.
index | the index of the group for which the vector of labels should be retrieved. If an invalid index is passed an exception will be raised. |
mitk::Image* mitk::LabelSetImage::GetLayerImage | ( | unsigned int | layer | ) |
const mitk::Image* mitk::LabelSetImage::GetLayerImage | ( | unsigned int | layer | ) | const |
unsigned int mitk::LabelSetImage::GetNumberOfLabels | ( | unsigned int | layer = 0 | ) | const |
Get the number of all existing mitk::Labels for a given layer.
layer | the layer ID for which the active mitk::Labels should be retrieved |
unsigned int mitk::LabelSetImage::GetNumberOfLayers | ( | ) | const |
unsigned int mitk::LabelSetImage::GetTotalNumberOfLabels | ( | ) | const |
Returns the number of all labels summed up across all layers.
|
virtual |
|
protected |
helper needed for ensuring unique values in all layers until the refactoring is done. returns a sorted list of all labels.
|
protected |
|
overridevirtual |
initialize new (or re-initialize) image information by another mitk-image. Only the header is used, not the data vector!
Reimplemented from mitk::Image.
void mitk::LabelSetImage::InitializeByLabeledImage | ( | mitk::Image::Pointer | image | ) |
Initialize a new mitk::LabelSetImage by an given image. For all distinct pixel values of the parameter image new labels will be created. If the number of distinct pixel values exceeds mitk::Label::MAX_LABEL_VALUE a new layer will be created.
image | the image which is used for initialization |
|
protected |
bool mitk::LabelSetImage::IsLabelInGroup | ( | LabelValueType | value | ) | const |
bool mitk::LabelSetImage::IsLabelInGroup | ( | LabelValueType | value, |
GroupIndexType & | groupIndex | ||
) | const |
bool mitk::LabelSetImage::IsLabelLocked | ( | LabelValueType | value | ) | const |
Returns the lock state of the label (including UnlabeledLabel value).
|
protected |
void mitk::LabelSetImage::MaskStamp | ( | mitk::Image * | mask, |
bool | forceOverwrite | ||
) |
|
protected |
void mitk::LabelSetImage::MergeLabel | ( | PixelType | pixelValue, |
PixelType | sourcePixelValue, | ||
unsigned int | layer = 0 |
||
) |
Merges the mitk::Label with a given target value with the active label.
pixelValue | the value of the label that should be the new merged label |
sourcePixelValue | the value of the label that should be merged into the specified one |
layer | the layer in which the merge should be performed |
|
protected |
void mitk::LabelSetImage::MergeLabels | ( | PixelType | pixelValue, |
const std::vector< PixelType > & | vectorOfSourcePixelValues, | ||
unsigned int | layer = 0 |
||
) |
Merges a list of mitk::Labels with the mitk::Label that has a specific value.
pixelValue | the value of the label that should be the new merged label |
vectorOfSourcePixelValues | the list of label values that should be merge into the specified one |
layer | the layer in which the merge should be performed |
mitk::LabelSetImage::mitkClassMacro | ( | LabelSetImage | , |
Image | |||
) |
|
protected |
mitk::LabelSetImage::mitkNewMessage1Macro | ( | GroupAdded | , |
GroupIndexType | |||
) |
GroupAdded is emitted whenever a new group has been added.
Observers should register to this event by calling this->AddGroupAddedListener(myObject, MyObject::MyMethod). After registering, myObject->MyMethod() will be called every time a new group has been added to the MultiLabelSegmentation. Observers should unregister by calling this->RemoveGroupAddedListener(myObject, MyObject::MyMethod). The registered method will be called with the group index of the added group.
mitk::LabelSetImage::mitkNewMessage1Macro | ( | GroupModified | , |
GroupIndexType | |||
) |
GroupModified is emitted whenever a group has been modified.
A group is modified if the set of labels associated with it are changed or the group's meta data. Observers should register to this event by calling this->AddGroupModifiedListener(myObject, MyObject::MyMethod). After registering, myObject->MyMethod() will be called every time a new label has been added to the MultiLabelSegmentation. Observers should unregister by calling this->RemoveGroupModifiedListener(myObject, MyObject::MyMethod). The registered method will be called with the group index of the added group.
mitk::LabelSetImage::mitkNewMessage1Macro | ( | GroupRemoved | , |
GroupIndexType | |||
) |
GroupRemoved is emitted whenever a label has been removed.
Observers should register to this event by calling this->AddGroupRemovedListener(myObject, MyObject::MyMethod). After registering, myObject->MyMethod() will be called every time a new label has been added to the MultiLabelSegmentation. Observers should unregister by calling this->RemoveGroupRemovedListener(myObject, MyObject::MyMethod). The registered method will be called with the group index of the removed group.*
mitk::LabelSetImage::mitkNewMessage1Macro | ( | LabelAdded | , |
LabelValueType | |||
) |
LabelAdded is emitted whenever a new label has been added.
Observers should register to this event by calling this->AddLabelAddedListener(myObject, MyObject::MyMethod). After registering, myObject->MyMethod() will be called every time a new label has been added to the MultiLabelSegmentation. Observers should unregister by calling this->RemoveLabelAddedListener(myObject, MyObject::MyMethod). The registered method will be called with the label value of the added label.
mitk::LabelSetImage::mitkNewMessage1Macro | ( | LabelModified | , |
LabelValueType | |||
) |
LabelModified is emitted whenever a label has been modified.
A label is modified if either its pixel content was changed, its spatial group or the label instance information. If you just want to get notified at the end of a MultiLabelSegmentation instance manipulation in the case that at least one label was modified (e.g. to avoid getting a signal for each label individually), use LabelsChanged instead. Observers should register to this event by calling this->AddLabelModifiedListener(myObject, MyObject::MyMethod). After registering, myObject->MyMethod() will be called every time a new label has been added to the MultiLabelSegmentation. Observers should unregister by calling this->RemoveLabelModifiedListener(myObject, MyObject::MyMethod). The registered method will be called with the label value of the modified label.
mitk::LabelSetImage::mitkNewMessage1Macro | ( | LabelRemoved | , |
LabelValueType | |||
) |
LabelRemoved is emitted whenever a label has been removed.
Observers should register to this event by calling this->AddLabelRemovedListener(myObject, MyObject::MyMethod). After registering, myObject->MyMethod() will be called every time a new label has been added to the MultiLabelSegmentation. Observers should unregister by calling this->RemoveLabelRemovedListener(myObject, MyObject::MyMethod). The registered method will be called with the label value of the removed label.*
mitk::LabelSetImage::mitkNewMessage1Macro | ( | LabelsChanged | , |
LabelValueVectorType | |||
) |
LabelsChanged is emitted when labels are changed (added, removed, modified).
In difference to the other label events LabelsChanged is send only one time after the modification of the MultiLableImage instance is finished. So e.g. even if 4 labels are changed by a merge operation, this event will only be sent once (compared to LabelRemoved or LabelModified). Observers should register to this event by calling myMultiLabelSegmentation->AddLabelsChangedListener(myObject, MyObject::MyMethod). After registering, myObject->MyMethod() will be called every time a new label has been removed from the MultiLabelSegmentation. Observers should unregister by calling myMultiLabelSegmentation->RemoveLabelsChangedListener(myObject, MyObject::MyMethod). The registered method will be called with the vector of label values of the modified labels.*
|
static |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
void mitk::LabelSetImage::OnLabelSetModified | ( | ) |
|
protected |
|
protected |
Reeinitalizes the internal maps based on the current layer/label content of the instance.
|
protected |
void mitk::LabelSetImage::RemoveGroup | ( | GroupIndexType | group | ) |
Removes a whole group including all its labels.
group | Group index of the spatial group that should be removed. If the spatial group does not exist, an exception will be raised. |
void mitk::LabelSetImage::RemoveLabel | ( | LabelValueType | labelValue | ) |
Removes the label with the given value. The label is removed from the labelset and the pixel with the value of the label are set to UnlabeledValue.
labelValue | the pixel value of the label to be removed |
void mitk::LabelSetImage::RemoveLabels | ( | const LabelValueVectorType & | vectorOfLabelPixelValues | ) |
Removes labels from the mitk::MultiLabelSegmentation. If a label value does not exist, it will be ignored.
vectorOfLabelPixelValues | a list of labels to be removed |
void mitk::LabelSetImage::RemoveLayer | ( | ) |
Removes the active layer and the respective mitk::LabelSet and image information. The new active layer is the one below, if exists.
void mitk::LabelSetImage::SetActiveLayer | ( | unsigned int | layer | ) |
|
virtual |
|
virtual |
|
virtual |
void mitk::LabelSetImage::UpdateCenterOfMass | ( | PixelType | pixelValue | ) |
void mitk::LabelSetImage::UpdateCenterOfMass | ( | PixelType | pixelValue, |
unsigned int | layer | ||
) |
Message mitk::LabelSetImage::AfterChangeLayerEvent |
AfterchangeLayerEvent (e.g. used for GUI integration) As soon as active labelset was changed, the signal emits. Emitted by SetActiveLayer(int layer);.
Definition at line 49 of file mitkLabelSetImage.h.
Message mitk::LabelSetImage::BeforeChangeLayerEvent |
BeforeChangeLayerEvent (e.g. used for GUI integration) As soon as active labelset should be changed, the signal emits. Emitted by SetActiveLayer(int layer);.
Definition at line 42 of file mitkLabelSetImage.h.
|
protected |
Definition at line 535 of file mitkLabelSetImage.h.
|
protected |
Definition at line 537 of file mitkLabelSetImage.h.
|
protected |
Definition at line 273 of file mitkLabelSetImage.h.
|
protected |
Definition at line 268 of file mitkLabelSetImage.h.
|
protected |
Definition at line 532 of file mitkLabelSetImage.h.
|
protected |
Definition at line 275 of file mitkLabelSetImage.h.
|
protected |
Definition at line 533 of file mitkLabelSetImage.h.
|
static |
Definition at line 63 of file mitkLabelSetImage.h.