Medical Imaging Interaction Toolkit
2024.12.99-e34d570b
Medical Imaging Interaction Toolkit
|
MultiLabelSegmentation class for handling labels and layers in a segmentation session. More...
#include <mitkLabelSetImage.h>
Public Types | |
enum | MergeStyle { MergeStyle::Replace, MergeStyle::Merge } |
enum | OverwriteStyle { OverwriteStyle::RegardLocks, OverwriteStyle::IgnoreLocks } |
using | GroupIndexType = std::size_t |
using | LabelValueType = mitk::Label::PixelType |
using | ConstLabelVectorType = ConstLabelVector |
using | LabelVectorType = LabelVector |
using | LabelValueVectorType = std::vector< LabelValueType > |
using | GroupImageDimensionVectorType = std::vector< unsigned int > |
![]() | |
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 |
![]() | |
typedef BaseData | Self |
typedef itk::DataObject | Superclass |
typedef itk::SmartPointer< Self > | Pointer |
typedef itk::SmartPointer< const Self > | ConstPointer |
![]() | |
using | UIDType = std::string |
Public Member Functions | |
mitkClassMacro (MultiLabelSegmentation, SlicedData) | |
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... | |
unsigned int | GetDimension () const |
Get dimension of the MultiLabelSegmentation instance. More... | |
const GroupImageDimensionVectorType & | GetDimensions () const |
Returns a vector of that contains the size (in pixel) for all dimensions of the MultiLabelSegmentation instance. It is simelar to mitk::Image::GetDimensions. More... | |
mitk::Label * | AddLabel (Label *label, GroupIndexType groupID, bool addAsClone=true, bool correctLabelValue=true) |
Adds a label instance to a group of the multi label image. More... | |
mitk::Label * | AddLabelWithContent (Label *label, const Image *labelContent, GroupIndexType groupID, LabelValueType contentLabelValue, bool addAsClone=true, bool correctLabelValue=true) |
Adds a label instance to a group of the multi label image including its pixel content. More... | |
mitk::Label * | AddLabel (const std::string &name, const Color &color, GroupIndexType groupID) |
Adds a new label to a group of the image by providing name and color. More... | |
void | RenameLabel (LabelValueType labelValue, const std::string &name, const Color &color) |
allows to adapt name and color of a certain label More... | |
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 UNLABELED_VALUE. More... | |
void | RemoveLabels (const LabelValueVectorType &vectorOfLabelPixelValues) |
Removes labels from the mitk::MultiLabelSegmentation. The label is removed from the labelset and the pixel with the value of the label are set to UNLABELED_VALUE. If a label value does not exist, it will be ignored. More... | |
void | EraseLabel (LabelValueType labelValue) |
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::MultiLabelSegmentation::RemoveLabels() More... | |
void | EraseLabels (const LabelValueVectorType &labelValues) |
Erases a list of labels with the given values from the labelset image. More... | |
void | MergeLabel (LabelValueType targetLabelValue, LabelValueType sourceLabelValue, OverwriteStyle overwriteStyle=OverwriteStyle::RegardLocks) |
Merges the content of a source label into the target label. More... | |
void | MergeLabels (LabelValueType targetLabelValue, const LabelValueVectorType &sourceLabelValues, OverwriteStyle overwriteStyle=OverwriteStyle::RegardLocks) |
Merges the content of a source labels into the target label. More... | |
GroupIndexType | AddGroup (ConstLabelVector labels={}) |
Adds a new group to the MultiLabelSegmentation. The new group will be set as the active one, if also labels are added. More... | |
GroupIndexType | AddGroup (mitk::Image *layerImage, ConstLabelVector labels={}) |
Adds a group based on a provided mitk::Image. More... | |
void | InsertGroup (GroupIndexType groupID, ConstLabelVector labels={}, std::string name="") |
Inserts a new group to the MultiLabelSegmentation. The new group will be set as the active one, if also labels are added,. More... | |
void | InsertGroup (GroupIndexType groupID, mitk::Image *layerImage, ConstLabelVector labels={}, std::string name="") |
Inserts a new group to the MultiLabelSegmentation. The new group will be set as the active one, if also labels are added. More... | |
void | RemoveGroup (GroupIndexType group) |
Removes a whole group including all its labels. More... | |
bool | ExistLabel (LabelValueType value) const |
Returns true if the value exists in the MultiLabelSegmentation instance. More... | |
bool | ExistLabel (LabelValueType value, GroupIndexType groupIndex) const |
Checks if a label belongs in a certain spatial group. More... | |
bool | ExistGroup (GroupIndexType index) const |
Returns true if the spatial group exists in the MultiLabelSegmentation instance. More... | |
GroupIndexType | GetGroupIndexOfLabel (LabelValueType value) const |
mitk::Label::ConstPointer | GetLabel (LabelValueType value) const |
Returns the mitk::Label with the given value. More... | |
mitk::Label::Pointer | GetLabel (LabelValueType value) |
const ConstLabelVectorType | GetLabels () const |
const LabelVectorType | GetLabels () |
const LabelValueVectorType | GetAllLabelValues () const |
const LabelVectorType | GetLabelsByValue (const LabelValueVectorType &labelValues, bool ignoreMissing=true) |
Returns a vector with pointers to all labels in the MultiLabelSegmentation indicated by the passed label value vector. More... | |
const ConstLabelVectorType | GetConstLabelsByValue (const LabelValueVectorType &labelValues, bool ignoreMissing=false) const |
Returns a vector with const pointers to all labels in the MultiLabelSegmentation indicated by the passed label value vector. For details see GetLabelsByValue();. More... | |
const LabelValueVectorType | GetLabelValuesByGroup (GroupIndexType index) const |
Returns a vector of all label values located on the specified group. More... | |
const LabelValueVectorType | GetLabelValuesByName (GroupIndexType index, const std::string_view name) const |
Returns a vector of all label values located on the specified group having a certain name. More... | |
std::vector< std::string > | GetLabelClassNames () const |
std::vector< std::string > | GetLabelClassNamesByGroup (GroupIndexType index) const |
LabelValueType | GetUnusedLabelValue () const |
virtual bool | GetUnlabeledLabelLock () const |
virtual void | SetUnlabeledLabelLock (bool _arg) |
virtual void | UnlabeledLabelLockOn () |
virtual void | UnlabeledLabelLockOff () |
void | SetAllLabelsVisible (bool visible) |
void | SetAllLabelsVisibleByGroup (GroupIndexType group, bool visible) |
void | SetAllLabelsVisibleByName (GroupIndexType group, const std::string_view name, bool visible) |
bool | IsLabelLocked (LabelValueType value) const |
void | SetAllLabelsLocked (bool locked) |
void | SetAllLabelsLockedByGroup (GroupIndexType group, bool locked) |
void | SetAllLabelsLockedByName (GroupIndexType group, const std::string_view name, bool locked) |
void | ReplaceGroupLabels (const GroupIndexType groupID, const ConstLabelVectorType &newLabels) |
Replaces the labels of a group with a given vector of labels. More... | |
void | ReplaceGroupLabels (const GroupIndexType groupID, const LabelVectorType &newLabels) |
void | ReplaceLabels (const ConstLabelVectorType &labelsUpdates) |
Replaces the labels in the segmentation by their passed counterparts. More... | |
void | ReplaceLabels (const LabelVectorType &newLabels) |
mitk::Image * | GetGroupImage (GroupIndexType groupID) |
const mitk::Image * | GetGroupImage (GroupIndexType groupID) const |
void | UpdateGroupImage (GroupIndexType groupID, const mitk::Image *sourceImage, TimeStepType timestep, TimeStepType sourceTimestep=0) |
void | ClearGroupImage (GroupIndexType groupID) |
clears all label pixel content from the indicated group. More... | |
void | ClearGroupImage (GroupIndexType groupID, TimeStepType timestep) |
clears all label pixel content from the indicated group. More... | |
void | ClearGroupImages () |
clears all label pixel content of all groups. More... | |
void | ClearGroupImages (TimeStepType timestep) |
clears all label pixel content of all groups in one time step. More... | |
const std::string & | GetGroupName (GroupIndexType groupID) const |
void | SetGroupName (GroupIndexType groupID, const std::string &name) |
itkGetModifiableObjectMacro (LookupTable, mitk::LookupTable) | |
void | SetLookupTable (LookupTable *lut) |
void | UpdateLookupTable (LabelValueType pixelValue) |
void | Initialize () override |
void | Initialize (const mitk::Image *templateImage, bool resetLabels=true, bool ensure1stGroup=true) |
Initialize new (or re-initialize) the segmentation based on the properties and geometric information of a passed image. The pixel content will be reseted. More... | |
void | Initialize (const mitk::TimeGeometry *geometry, bool resetLabels=true, bool ensure1stGroup=true) |
Initialize new (or re-initialize) the segmentation based on the passed time geometry information. The pixel content will be reseted. More... | |
void | InitializeByLabeledImage (const mitk::Image *image) |
Initialize a new mitk::MultiLabelSegmentation by a 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 an exception will be raised. More... | |
itk::ModifiedTimeType | GetMTime () const override |
void | UpdateCenterOfMass (LabelValueType pixelValue) |
More... | |
bool | IsEmpty (const Label *label, TimeStepType t=0) const |
Checks if a label is empty at a given time step (does not contain any pixels). More... | |
bool | IsEmpty (LabelValueType pixelValue, TimeStepType t=0) const |
unsigned int | GetActiveLayer () const |
Gets the ID of the currently active group. More... | |
void | SetActiveLabel (LabelValueType label) |
Label * | GetActiveLabel () |
const Label * | GetActiveLabel () const |
unsigned int | GetNumberOfLabels (unsigned int group) const |
Get the number of all existing mitk::Labels for a given group. More... | |
unsigned int | GetTotalNumberOfLabels () const |
Returns the number of all labels summed up across all layers. More... | |
unsigned int | GetNumberOfGroups () const |
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... | |
![]() | |
virtual std::vector< std::string > | GetClassHierarchy () const override |
virtual const char * | GetClassName () const |
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... | |
![]() | |
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... | |
virtual void | Expand (unsigned int timeSteps) |
Expands the TimeGeometry to a number of TimeSteps. 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 void | Clear () |
Calls ClearData() and InitializeEmpty();. 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 |
![]() | |
itkTypeMacroNoParent (OperationActor) virtual ~OperationActor() | |
![]() | |
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... | |
![]() | |
~IPropertyOwner () override | |
virtual bool | PropertyIsOwned (const std::string &propertyKey, const std::string &contextName="", bool fallBackOnDefaultContext=true) const |
Checks if a certain property exists. More... | |
![]() | |
virtual | ~IPropertyProvider () |
Static Public Member Functions | |
static Pointer | New () |
static PixelType | GetPixelType () |
static LabelValueVectorType | ExtractLabelValuesFromLabelVector (const ConstLabelVectorType &labels) |
static LabelValueVectorType | ExtractLabelValuesFromLabelVector (const LabelVectorType &labels) |
static ConstLabelVectorType | ConvertLabelVectorConst (const LabelVectorType &labels) |
![]() | |
static const char * | GetStaticNameOfClass () |
![]() | |
static const char * | GetStaticNameOfClass () |
Public Attributes | |
Message | AfterChangeLayerEvent |
AfterchangeLayerEvent (e.g. used for GUI integration) As soon as active labelset was changed, the signal emits. Emitted by SetActiveLabel();. More... | |
Static Public Attributes | |
const static LabelValueType | UNLABELED_VALUE |
Protected Member Functions | |
mitkCloneMacro (Self) | |
MultiLabelSegmentation () | |
MultiLabelSegmentation (const MultiLabelSegmentation &other) | |
~MultiLabelSegmentation () override | |
void | OnLabelModified (const Object *sender, const itk::EventObject &) |
void | AddLabelToMap (LabelValueType labelValue, Label *label, GroupIndexType groupID) |
void | RemoveLabelFromMap (LabelValueType labelValue) |
void | RegisterLabel (Label *label) |
void | ReleaseLabel (Label *label) |
void | ApplyToLabels (const LabelValueVectorType &values, std::function< void(Label *)> &&lambda) |
void | VisitLabels (const LabelValueVectorType &values, std::function< void(const Label *)> &&lambda) const |
template<typename ImageType > | |
void | CalculateCenterOfMassProcessing (ImageType *input, LabelValueType index) |
template<typename ImageType > | |
void | EraseLabelProcessing (ImageType *input, LabelValueType index) |
template<typename MultiLabelSegmentationType , typename ImageType > | |
void | InitializeByLabeledImageProcessing (MultiLabelSegmentationType *input, const ImageType *other) |
LabelValueVectorType | GetUsedLabelValues () const |
![]() | |
SlicedData () | |
SlicedData (const SlicedData &other) | |
~SlicedData () override | |
![]() | |
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 |
![]() | |
virtual void | SetUID (const UIDType &uid) |
Protected Attributes | |
LabelValueType | m_ActiveLabelValue |
![]() | |
RegionType | m_LargestPossibleRegion |
RegionType | m_RequestedRegion |
bool | m_RequestedRegionInitialized |
RegionType | m_BufferedRegion |
bool | m_UseLargestPossibleRegion |
![]() | |
bool | m_LastRequestedRegionWasOutsideOfTheBufferedRegion |
unsigned int | m_SourceOutputIndexDuplicate |
bool | m_Initialized |
MultiLabelSegmentation class for handling labels and layers in a segmentation session.
Events that are potentially send by the class in regard to groups or labels:
Definition at line 43 of file mitkLabelSetImage.h.
Definition at line 58 of file mitkLabelSetImage.h.
using mitk::MultiLabelSegmentation::GroupImageDimensionVectorType = std::vector<unsigned int> |
Definition at line 99 of file mitkLabelSetImage.h.
using mitk::MultiLabelSegmentation::GroupIndexType = std::size_t |
Definition at line 56 of file mitkLabelSetImage.h.
Definition at line 57 of file mitkLabelSetImage.h.
using mitk::MultiLabelSegmentation::LabelValueVectorType = std::vector<LabelValueType> |
Definition at line 60 of file mitkLabelSetImage.h.
Definition at line 59 of file mitkLabelSetImage.h.
|
strong |
Enumerator | |
---|---|
Replace | |
Merge |
Definition at line 66 of file mitkLabelSetImage.h.
|
strong |
Enumerator | |
---|---|
RegardLocks | |
IgnoreLocks |
Definition at line 74 of file mitkLabelSetImage.h.
|
protected |
|
protected |
|
overrideprotected |
GroupIndexType mitk::MultiLabelSegmentation::AddGroup | ( | ConstLabelVector | labels = {} | ) |
Adds a new group to the MultiLabelSegmentation. The new group will be set as the active one, if also labels are added.
labels | Labels that will be added to the new group if provided |
GroupIndexType mitk::MultiLabelSegmentation::AddGroup | ( | mitk::Image * | layerImage, |
ConstLabelVector | labels = {} |
||
) |
Adds a group based on a provided mitk::Image.
layerImage | is added to the vector of label images |
labels | labels that will be cloned and added to the new group if provided |
mitk::Label* mitk::MultiLabelSegmentation::AddLabel | ( | const std::string & | name, |
const Color & | color, | ||
GroupIndexType | groupID | ||
) |
Adds a new label to a group of the image by providing name and color.
name | (Class) name of the label instance that should be added. |
color | Color of the new label instance. |
groupID | The id of the group the label should be added to. |
mitk::Label* mitk::MultiLabelSegmentation::AddLabel | ( | Label * | label, |
GroupIndexType | groupID, | ||
bool | addAsClone = true , |
||
bool | correctLabelValue = true |
||
) |
Adds a label instance to a group of the multi label image.
label | Instance of an label that should be added or used as template |
groupID | The id of the group the label should be added to. |
addAsClone | Flag that controls, if the passed instance should be added (false; the image will then take ownership, be aware that e.g. event observers will be added) a clone of the instance (true). |
correctLabelValue | Flag that controls, if the value of the passed label should be correct, if this value is already used in the multi label image. True: Conflicting values will be corrected, be assigning a none conflicting value. False: If the value is conflicting an exception will be thrown. |
|
protected |
Helper to ensure that the maps are correctly populated for a new label instance.
mitk::Label* mitk::MultiLabelSegmentation::AddLabelWithContent | ( | Label * | label, |
const Image * | labelContent, | ||
GroupIndexType | groupID, | ||
LabelValueType | contentLabelValue, | ||
bool | addAsClone = true , |
||
bool | correctLabelValue = true |
||
) |
Adds a label instance to a group of the multi label image including its pixel content.
label | Instance of a label that should be added or used as template |
groupID | The id of the group the label should be added to. |
labelContent | Pointer to an image that contains the pixel content of the label that should be added. |
contentLabelValue | Pixel value in the content image that indicates the label (may not be the same like the label value used in the segmentation after addition). |
addAsClone | Flag that controls, if the passed instance should be added (false; the image will then take ownership, be aware that e.g. event observers will be added) a clone of the instance (true). |
correctLabelValue | Flag that controls, if the value of the passed label should be corrected, if this value is already used in the multi label image. True: Conflicting values will be corrected, by assigning a none conflicting value. False: If the value is conflicting an exception will be thrown. |
|
protected |
Helper class used internally to apply lambda functions to the labels specified by the passed label value vector.
|
protected |
void mitk::MultiLabelSegmentation::ClearGroupImage | ( | GroupIndexType | groupID | ) |
clears all label pixel content from the indicated group.
void mitk::MultiLabelSegmentation::ClearGroupImage | ( | GroupIndexType | groupID, |
TimeStepType | timestep | ||
) |
clears all label pixel content from the indicated group.
void mitk::MultiLabelSegmentation::ClearGroupImages | ( | ) |
clears all label pixel content of all groups.
void mitk::MultiLabelSegmentation::ClearGroupImages | ( | TimeStepType | timestep | ) |
clears all label pixel content of all groups in one time step.
|
static |
Helper function that converts a given vector of label instance pointers into a vector of const pointers.
void mitk::MultiLabelSegmentation::EraseLabel | ( | LabelValueType | labelValue | ) |
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::MultiLabelSegmentation::RemoveLabels()
labelValue | the pixel value of the label that will be erased from the labelset image |
|
protected |
void mitk::MultiLabelSegmentation::EraseLabels | ( | const LabelValueVectorType & | labelValues | ) |
Erases a list of labels with the given values from the labelset image.
labelValues | the list of pixel values of the labels that will be erased from the labelset image |
bool mitk::MultiLabelSegmentation::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 existence. |
bool mitk::MultiLabelSegmentation::ExistLabel | ( | LabelValueType | value | ) | const |
Returns true if the value exists in the MultiLabelSegmentation instance.
bool mitk::MultiLabelSegmentation::ExistLabel | ( | LabelValueType | value, |
GroupIndexType | groupIndex | ||
) | const |
Checks if a label belongs in a certain spatial group.
value | the label value |
groupIndex | Index of the spatial group which should be checked for the label |
|
static |
Helper function that can be used to extract a vector of label values of a vector of label instance pointers.
|
static |
Helper function that can be used to extract a vector of label values are vector of label instances.
Label* mitk::MultiLabelSegmentation::GetActiveLabel | ( | ) |
const Label* mitk::MultiLabelSegmentation::GetActiveLabel | ( | ) | const |
unsigned int mitk::MultiLabelSegmentation::GetActiveLayer | ( | ) | const |
Gets the ID of the currently active group.
const LabelValueVectorType mitk::MultiLabelSegmentation::GetAllLabelValues | ( | ) | const |
Returns a vector of all label values currently defined in the MultiLabelSegmentation instance.
const ConstLabelVectorType mitk::MultiLabelSegmentation::GetConstLabelsByValue | ( | const LabelValueVectorType & | labelValues, |
bool | ignoreMissing = false |
||
) | const |
Returns a vector with const pointers to all labels in the MultiLabelSegmentation indicated by the passed label value vector. For details see GetLabelsByValue();.
unsigned int mitk::MultiLabelSegmentation::GetDimension | ( | ) | const |
Get dimension of the MultiLabelSegmentation instance.
const GroupImageDimensionVectorType& mitk::MultiLabelSegmentation::GetDimensions | ( | ) | const |
Returns a vector of that contains the size (in pixel) for all dimensions of the MultiLabelSegmentation instance. It is simelar to mitk::Image::GetDimensions.
mitk::Image* mitk::MultiLabelSegmentation::GetGroupImage | ( | GroupIndexType | groupID | ) |
Returns the pointer to the image that contains the labeling of the indicate group.
const mitk::Image* mitk::MultiLabelSegmentation::GetGroupImage | ( | GroupIndexType | groupID | ) | const |
Returns the pointer to the image that contains the labeling of the indicate group.
GroupIndexType mitk::MultiLabelSegmentation::GetGroupIndexOfLabel | ( | LabelValueType | value | ) | const |
Returns the group id of the based label value.
const std::string& mitk::MultiLabelSegmentation::GetGroupName | ( | GroupIndexType | groupID | ) | const |
Returns the name of the indicated group. String may be empty if no name was defined. Remark: The name neither is guaranteed to be defined nor that it is unique. Use the index to uniquely refer to a group.
mitk::Label::Pointer mitk::MultiLabelSegmentation::GetLabel | ( | LabelValueType | value | ) |
mitk::Label::ConstPointer mitk::MultiLabelSegmentation::GetLabel | ( | LabelValueType | value | ) | const |
Returns the mitk::Label with the given value.
value | the pixel value of the label |
std::vector<std::string> mitk::MultiLabelSegmentation::GetLabelClassNames | ( | ) | const |
Returns a vector with (class) names of all label instances used in the segmentation (over all groups)
std::vector<std::string> mitk::MultiLabelSegmentation::GetLabelClassNamesByGroup | ( | GroupIndexType | index | ) | const |
Returns a vector with (class) names of all label instances present in a certain group.
index | ID of the group, for which the label class names should be returned |
const LabelVectorType mitk::MultiLabelSegmentation::GetLabels | ( | ) |
const ConstLabelVectorType mitk::MultiLabelSegmentation::GetLabels | ( | ) | const |
Returns a vector with pointers to all labels currently defined in the MultiLabelSegmentation instance.
const LabelVectorType mitk::MultiLabelSegmentation::GetLabelsByValue | ( | const LabelValueVectorType & | labelValues, |
bool | ignoreMissing = true |
||
) |
Returns a vector with pointers to all labels in the MultiLabelSegmentation indicated by the passed label value vector.
labelValues | Vector of values of labels that should be returned. |
ignoreMissing | If true (default), unknown labels Will be skipped in the result. If false, an exception will be raised, if a label is requested. |
const LabelValueVectorType mitk::MultiLabelSegmentation::GetLabelValuesByGroup | ( | GroupIndexType | index | ) | const |
Returns a vector of all label values 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. |
const LabelValueVectorType mitk::MultiLabelSegmentation::GetLabelValuesByName | ( | GroupIndexType | index, |
const std::string_view | name | ||
) | const |
Returns a vector of all label values located on the specified group having a certain name.
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. |
name | Name of the label instances one is looking for. |
|
override |
Override default version. It will return the highest MTime of all group images and self.
unsigned int mitk::MultiLabelSegmentation::GetNumberOfGroups | ( | ) | const |
unsigned int mitk::MultiLabelSegmentation::GetNumberOfLabels | ( | unsigned int | group | ) | const |
Get the number of all existing mitk::Labels for a given group.
group | the group ID for which the active mitk::Labels should be retrieved |
|
static |
unsigned int mitk::MultiLabelSegmentation::GetTotalNumberOfLabels | ( | ) | const |
Returns the number of all labels summed up across all layers.
|
virtual |
LabelValueType mitk::MultiLabelSegmentation::GetUnusedLabelValue | ( | ) | const |
Helper that returns an unused label value, that could be used e.g. if one wants to define a label externally before adding it.
|
protected |
helper needed for ensuring unique values. returns a sorted list of all labels (including the value for Unlabeled pixels..
|
override |
Initializes the instance by completely resetting it and releasing all group images. The geometric information is kept.
void mitk::MultiLabelSegmentation::Initialize | ( | const mitk::Image * | templateImage, |
bool | resetLabels = true , |
||
bool | ensure1stGroup = true |
||
) |
Initialize new (or re-initialize) the segmentation based on the properties and geometric information of a passed image. The pixel content will be reseted.
templateImage | Template for the initialization |
resetLabels | Indicate if the labels should be reseted on initialization. True (default): all label and group informations will be removed. False: label information and groups are kept, but all pixel information will be erased (cf EraseLabel(...)). |
ensure1stGroup | Indicates if the initialization guarantees that the first group always exists afterwards (true) or if after initialization no group will be added even if no group is defined (false; e.g if labels are reseted or instance has no groups so far) |
void mitk::MultiLabelSegmentation::Initialize | ( | const mitk::TimeGeometry * | geometry, |
bool | resetLabels = true , |
||
bool | ensure1stGroup = true |
||
) |
Initialize new (or re-initialize) the segmentation based on the passed time geometry information. The pixel content will be reseted.
geometry | Time geometry that should be used. |
resetLabels | Indicate if the labels should be reseted on initialization. True (default): all label and group informations will be removed. False: label information and groups are kept, but all pixel information will be erased (cf EraseLabel(...)). |
ensure1stGroup | Indicates if the initialization guarantees that the first group always exists afterwards (true) or if after initialization no group will be added even if no group is defined (false; e.g if labels are reseted or instance has no groups so far) |
void mitk::MultiLabelSegmentation::InitializeByLabeledImage | ( | const mitk::Image * | image | ) |
Initialize a new mitk::MultiLabelSegmentation by a 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 an exception will be raised.
image | the image which is used for initialization |
|
protected |
void mitk::MultiLabelSegmentation::InsertGroup | ( | GroupIndexType | groupID, |
ConstLabelVector | labels = {} , |
||
std::string | name = "" |
||
) |
Inserts a new group to the MultiLabelSegmentation. The new group will be set as the active one, if also labels are added,.
groupID | ID/position of the group where it should be inserted. If the group should be inserted at the end groupID has to be the current number of groups. |
labels | Labels that will be added to the new group if provided |
name | Display name of the inserted group |
void mitk::MultiLabelSegmentation::InsertGroup | ( | GroupIndexType | groupID, |
mitk::Image * | layerImage, | ||
ConstLabelVector | labels = {} , |
||
std::string | name = "" |
||
) |
Inserts a new group to the MultiLabelSegmentation. The new group will be set as the active one, if also labels are added.
groupID | ID/position of the group where it should be inserted. If the group should be inserted at the end groupID has to be the current number of groups. |
layerImage | contains the label pixel information that should be directly added for the new inserted group. |
labels | Labels that will be added to the new group if provided |
name | Display name of the inserted group |
|
overridevirtual |
Check whether the channel n is set.
Implements mitk::SlicedData.
virtual bool mitk::BaseData::IsEmpty |
Check whether object contains data (at least at one point in time), e.g., a set of points may be empty.
bool mitk::MultiLabelSegmentation::IsEmpty | ( | const Label * | label, |
TimeStepType | t = 0 |
||
) | const |
Checks if a label is empty at a given time step (does not contain any pixels).
bool mitk::MultiLabelSegmentation::IsEmpty | ( | LabelValueType | pixelValue, |
TimeStepType | t = 0 |
||
) | const |
bool mitk::MultiLabelSegmentation::IsLabelLocked | ( | LabelValueType | value | ) | const |
Returns the lock state of the label (including UnlabeledLabel value).
|
overridevirtual |
Check whether slice s at time t in channel n is set.
Implements mitk::SlicedData.
|
overridevirtual |
Check whether volume at time t in channel n is set.
Implements mitk::SlicedData.
mitk::MultiLabelSegmentation::itkGetModifiableObjectMacro | ( | LookupTable | , |
mitk::LookupTable | |||
) |
void mitk::MultiLabelSegmentation::MergeLabel | ( | LabelValueType | targetLabelValue, |
LabelValueType | sourceLabelValue, | ||
OverwriteStyle | overwriteStyle = OverwriteStyle::RegardLocks |
||
) |
Merges the content of a source label into the target label.
targetLabelValue | The value of the label that should be the merged label. |
sourceLabelValue | The value of the label that should be merged into the specified one |
overwriteStyle | Controls if the merge operation should regard the label locks in the group of the target label. |
void mitk::MultiLabelSegmentation::MergeLabels | ( | LabelValueType | targetLabelValue, |
const LabelValueVectorType & | sourceLabelValues, | ||
OverwriteStyle | overwriteStyle = OverwriteStyle::RegardLocks |
||
) |
Merges the content of a source labels into the target label.
targetLabelValue | The value of the label that should be the merged label. |
sourceLabelValues | The values of the labels that should be merged into the target label with merge style "Merge". |
overwriteStyle | Controls if/how the merge operation should regard the label locks in the group of the target label. |
mitk::MultiLabelSegmentation::mitkClassMacro | ( | MultiLabelSegmentation | , |
SlicedData | |||
) |
|
protected |
|
static |
|
protected |
|
protected |
Helper to ensure label events are correctly connected and lookup table is updated for a new label instance.
|
protected |
Helper to ensure label events are unregistered.
void mitk::MultiLabelSegmentation::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::MultiLabelSegmentation::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 UNLABELED_VALUE.
labelValue | the pixel value of the label to be removed. If the label is unknown, the method will return without doing anything. |
|
protected |
void mitk::MultiLabelSegmentation::RemoveLabels | ( | const LabelValueVectorType & | vectorOfLabelPixelValues | ) |
Removes labels from the mitk::MultiLabelSegmentation. The label is removed from the labelset and the pixel with the value of the label are set to UNLABELED_VALUE. If a label value does not exist, it will be ignored.
vectorOfLabelPixelValues | a list of labels to be removed |
void mitk::MultiLabelSegmentation::RenameLabel | ( | LabelValueType | labelValue, |
const std::string & | name, | ||
const Color & | color | ||
) |
allows to adapt name and color of a certain label
labelValue | Value of the label that should be changed |
name | New name for the label |
color | New color for the label |
void mitk::MultiLabelSegmentation::ReplaceGroupLabels | ( | const GroupIndexType | groupID, |
const ConstLabelVectorType & | newLabels | ||
) |
Replaces the labels of a group with a given vector of labels.
groupID | The index of the group that should have its labels replaced |
newLabels | The vector of new labels |
void mitk::MultiLabelSegmentation::ReplaceGroupLabels | ( | const GroupIndexType | groupID, |
const LabelVectorType & | newLabels | ||
) |
void mitk::MultiLabelSegmentation::ReplaceLabels | ( | const ConstLabelVectorType & | labelsUpdates | ) |
Replaces the labels in the segmentation by their passed counterparts.
labelsUpdates | The vector of label replacements |
void mitk::MultiLabelSegmentation::ReplaceLabels | ( | const LabelVectorType & | newLabels | ) |
void mitk::MultiLabelSegmentation::SetActiveLabel | ( | LabelValueType | label | ) |
void mitk::MultiLabelSegmentation::SetAllLabelsLocked | ( | bool | locked | ) |
Set the lock state of all label instances accordingly to the passed state.
void mitk::MultiLabelSegmentation::SetAllLabelsLockedByGroup | ( | GroupIndexType | group, |
bool | locked | ||
) |
Set the lock state of all label instances in a group accordingly to the passed state.
void mitk::MultiLabelSegmentation::SetAllLabelsLockedByName | ( | GroupIndexType | group, |
const std::string_view | name, | ||
bool | locked | ||
) |
Set the lock state of all label instances In a group with a given class name accordingly to the passed state.
void mitk::MultiLabelSegmentation::SetAllLabelsVisible | ( | bool | visible | ) |
Set the visibility of all label instances accordingly to the passed state.
void mitk::MultiLabelSegmentation::SetAllLabelsVisibleByGroup | ( | GroupIndexType | group, |
bool | visible | ||
) |
Set the visibility of all label instances in a group accordingly to the passed state.
void mitk::MultiLabelSegmentation::SetAllLabelsVisibleByName | ( | GroupIndexType | group, |
const std::string_view | name, | ||
bool | visible | ||
) |
Set the visibility of all label instances In a group with a given class name accordingly to the passed state.
void mitk::MultiLabelSegmentation::SetGroupName | ( | GroupIndexType | groupID, |
const std::string & | name | ||
) |
Set the name of a group.
void mitk::MultiLabelSegmentation::SetLookupTable | ( | LookupTable * | lut | ) |
|
virtual |
|
virtual |
|
virtual |
void mitk::MultiLabelSegmentation::UpdateCenterOfMass | ( | LabelValueType | pixelValue | ) |
void mitk::MultiLabelSegmentation::UpdateGroupImage | ( | GroupIndexType | groupID, |
const mitk::Image * | sourceImage, | ||
TimeStepType | timestep, | ||
TimeStepType | sourceTimestep = 0 |
||
) |
Updates a group image by copying a given source image content.
void mitk::MultiLabelSegmentation::UpdateLookupTable | ( | LabelValueType | pixelValue | ) |
Updates the lookup table for a label indicated by the passed label value using the color of the label.
|
protected |
Helper class used internally to for visiting the labels specified by the passed label value vector with the lambda function.
Message mitk::MultiLabelSegmentation::AfterChangeLayerEvent |
AfterchangeLayerEvent (e.g. used for GUI integration) As soon as active labelset was changed, the signal emits. Emitted by SetActiveLabel();.
Definition at line 51 of file mitkLabelSetImage.h.
|
protected |
Definition at line 627 of file mitkLabelSetImage.h.
|
static |
Definition at line 62 of file mitkLabelSetImage.h.