Medical Imaging Interaction Toolkit  2026.06.00
Medical Imaging Interaction Toolkit

MONAI Label segmentation tool operating on 3D volumes. More...

#include <mitkMonaiLabel3DTool.h>

Inheritance diagram for mitk::MonaiLabel3DTool:
Collaboration diagram for mitk::MonaiLabel3DTool:

Public Member Functions

 mitkClassMacro (MonaiLabel3DTool, MonaiLabelTool)
 
Pointer Clone () const
 
const char * GetName () const override
 Return the human-readable name of this tool ("MONAI Label 3D"). More...
 
us::ModuleResource GetIconResource () const override
 Return the toolbar icon resource for this tool. More...
 
void Activated () override
 Activate the tool and configure label transfer scope to all labels. More...
 
void WriteImage (const Image *inputAtTimeStep, const std::string &inputImagePath) const override
 Write the input 3D image to disk. More...
 
void WriteBackResults (MultiLabelSegmentation *previewImage, MultiLabelSegmentation *segResults, TimeStepType timeStep) const override
 Write segmentation results back into the preview image for the given time step. More...
 
- Public Member Functions inherited from mitk::MonaiLabelTool
 mitkClassMacro (MonaiLabelTool, SegWithPreviewTool)
 
Pointer Clone () const
 
void Activated () override
 Called when the tool gets activated. More...
 
void Deactivated () override
 Called when the tool gets deactivated. More...
 
void UpdatePrepare () override
 
mitk::Label::AlgorithmType GetAlgorithmType () const override
 AUTOMATIC for auto-segmentation models (no per-image human input, like nnUNet), SEMIAUTOMATIC for interactive deepgrow/deepedit models or when no model is selected. More...
 
void FetchOverallInfo (const std::string &hostName, const int &port)
 Fetches MonaiLabel server metadata via GET REST call. More...
 
const std::vector< MonaiModelInfo > GetAutoSegmentationModels (const int dim=-1) const
 Returns the auto-segmentation model information for the given dimension. More...
 
const std::vector< MonaiModelInfo > GetInteractiveSegmentationModels (const int dim=-1) const
 Returns the interactive segmentation model information for the given dimension. More...
 
const std::vector< MonaiModelInfo > GetScribbleSegmentationModels (const int dim=-1) const
 Returns the scribble segmentation model information for the given dimension. More...
 
MonaiModelInfo GetModelInfoFromName (const std::string) const
 Returns full model info for the given model name. More...
 
virtual void SetModelName (std::string _arg)
 
virtual std::string GetModelName () const
 
virtual void SetURL (std::string _arg)
 
virtual std::string GetURL () const
 
virtual void SetTempDir (std::string _arg)
 
virtual std::string GetTempDir () const
 
virtual void SetTimeout (unsigned int _arg)
 
virtual unsigned int GetTimeout () const
 
const MonaiAppMetadata * GetInfoParameters () const
 
void ClearPicks ()
 Clears all seed picks and updates the preview. More...
 
bool HasPicks () const
 Checks if any seed point exists in either the positive or negative point set. More...
 
- Public Member Functions inherited from mitk::SegWithPreviewTool
 mitkClassMacro (SegWithPreviewTool, Tool)
 
void Activated () override
 Called when the tool gets activated. More...
 
void Deactivated () override
 Called when the tool gets deactivated. More...
 
mitk::Label::AlgorithmType GetAlgorithmType () const override
 Preview tools are SEMIAUTOMATIC by default (the user supplies seeds/parameters). Fully automatic preview tools (e.g. TotalSegmentator) override this again to AUTOMATIC. More...
 
void ConfirmSegmentation ()
 Confirms the current preview segmentation and transfers it to the working image. More...
 
virtual void SetCreateAllTimeSteps (bool _arg)
 If true, the preview is computed for all time steps at once. More...
 
virtual bool GetCreateAllTimeSteps ()
 
virtual void CreateAllTimeStepsOn ()
 
virtual void CreateAllTimeStepsOff ()
 
virtual void SetKeepActiveAfterAccept (bool _arg)
 If true, the tool stays active after the segmentation is accepted. More...
 
virtual bool GetKeepActiveAfterAccept ()
 
virtual void KeepActiveAfterAcceptOn ()
 
virtual void KeepActiveAfterAcceptOff ()
 
virtual void SetIsTimePointChangeAware (bool _arg)
 If true, the tool reacts to time point changes and updates the preview. More...
 
virtual bool GetIsTimePointChangeAware ()
 
virtual void IsTimePointChangeAwareOn ()
 
virtual void IsTimePointChangeAwareOff ()
 
virtual void SetResetsToEmptyPreview (bool _arg)
 If true, the preview is reset to empty on activation. More...
 
virtual bool GetResetsToEmptyPreview ()
 
virtual void ResetsToEmptyPreviewOn ()
 
virtual void ResetsToEmptyPreviewOff ()
 
virtual void SetUseSpecialPreviewColor (bool _arg)
 If true, a special color is used for the preview rendering. More...
 
virtual bool GetUseSpecialPreviewColor ()
 
virtual void UseSpecialPreviewColorOn ()
 
virtual void UseSpecialPreviewColorOff ()
 
virtual void SetRequestDeactivationConfirmation (bool _arg)
 If true, a confirmation dialog is shown before deactivating the tool. More...
 
virtual bool GetRequestDeactivationConfirmation ()
 
virtual void RequestDeactivationConfirmationOn ()
 
virtual void RequestDeactivationConfirmationOff ()
 
Color GetSpecialPreviewColor () const
 Returns the special preview color. More...
 
void SetMergeStyle (MultiLabelSegmentation::MergeStyle mergeStyle)
 Sets how the preview content is merged into the working image upon confirmation. More...
 
virtual MultiLabelSegmentation::MergeStyle GetMergeStyle ()
 
void SetOverwriteStyle (MultiLabelSegmentation::OverwriteStyle overwriteStyle)
 Sets whether locked labels should be overwritten during transfer. More...
 
virtual MultiLabelSegmentation::OverwriteStyle GetOverwriteStyle ()
 
void SetLabelTransferScope (LabelTransferScope labelTransferScope)
 Sets which labels from the preview are transferred on confirmation. More...
 
virtual LabelTransferScope GetLabelTransferScope ()
 
void SetSelectedLabels (const SelectedLabelVectorType &labelsToTransfer)
 Sets the labels to transfer from preview to working image on confirmation. More...
 
virtual SelectedLabelVectorType GetSelectedLabels ()
 
void SetLabelTransferMode (LabelTransferMode labelTransferMode)
 Sets how labels are transferred from preview to the working image. More...
 
virtual LabelTransferMode GetLabelTransferMode ()
 
bool CanHandle (const BaseData *referenceData, const BaseData *workingData) const override
 Checks if a tool can handle the given reference data and optional working data. More...
 
void UpdatePreview (bool ignoreLazyPreviewSetting=false)
 Triggers the update of the preview segmentation. More...
 
bool IsUpdating () const
 
std::string GetCurrentSegmentationName ()
 Returns the name of the currently selected segmentation node. More...
 
virtual DataNode * GetTargetSegmentationNode () const
 Returns the currently selected segmentation node. More...
 
MultiLabelSegmentation * GetTargetSegmentation () const
 
MultiLabelSegmentation * GetPreviewSegmentation ()
 
const MultiLabelSegmentation * GetPreviewSegmentation () const
 
DataNode * GetPreviewSegmentationNode ()
 
void SetPreviewOpacity (float opacity)
 
virtual float GetPreviewOpacity () const
 
void SetPreviewVisibility (bool visible)
 
virtual bool GetPreviewVisibility () const
 
- Public Member Functions inherited from mitk::Tool
 mitkClassMacro (Tool, EventStateMachine)
 
virtual us::ModuleResource GetCursorIconResource () const
 Returns the cursor icon of the tool wrapped by a usModuleResource. More...
 
virtual bool IsEligibleForAutoInit () const
 Returns whether this tool is eligible for auto-initialization by ToolManager. More...
 
virtual void InitializeStateMachine ()
 Initializes the state machine for this tool based on the interaction type. More...
 
virtual itk::Object::Pointer GetGUI (const std::string &toolkitPrefix, const std::string &toolkitPostfix)
 Interface for GUI creation. More...
 
virtual NodePredicateBase::ConstPointer GetReferenceDataPreference () const
 Returns a predicate describing valid reference data for this tool. More...
 
virtual NodePredicateBase::ConstPointer GetWorkingDataPreference () const
 Returns a predicate describing valid working data for this tool. More...
 
- Public Member Functions inherited from mitk::EventStateMachine
 mitkClassMacro (EventStateMachine, InteractionEventHandler)
 
bool LoadStateMachine (const std::string &filename, const us::Module *module=nullptr)
 Load a state machine pattern from an XML resource file. More...
 
bool HandleEvent (InteractionEvent *event, DataNode *dataNode)
 Process an incoming interaction event. More...
 
void EnableUndo (bool enable)
 Enable or disable the undo mechanism for this state machine. More...
 
void EnableInteraction (bool enable)
 Enable or disable the state machine. More...
 
- Public Member Functions inherited from mitk::InteractionEventHandler
 mitkClassMacroItkParent (InteractionEventHandler, itk::Object)
 
bool SetEventConfig (const std::string &filename, const us::Module *module=nullptr)
 Loads a configuration from an XML resource. More...
 
bool SetEventConfig (const EventConfig &config)
 Loads a configuration from an EventConfig object. More...
 
EventConfig GetEventConfig () const
 Returns the current configuration. More...
 
bool AddEventConfig (const std::string &filename, const us::Module *module=nullptr)
 This method extends the configuration. More...
 
bool AddEventConfig (const EventConfig &config)
 This method extends the configuration. The configuration from the EventConfig object is loaded and only the ones conflicting are replaced by the new one. This way several configurations can be combined. More...
 
- Public Member Functions inherited from mitk::InteractionEventObserver
 InteractionEventObserver ()
 
virtual ~InteractionEventObserver ()
 
void Disable ()
 Disable this observer so it no longer receives notifications. More...
 
void Enable ()
 Enable this observer so it receives notifications. More...
 
bool IsEnabled () const
 Check whether this observer is currently enabled. More...
 

Static Public Member Functions

static Pointer New ()
 

Protected Member Functions

 MonaiLabel3DTool ()=default
 
 ~MonaiLabel3DTool ()=default
 
- Protected Member Functions inherited from mitk::MonaiLabelTool
 MonaiLabelTool ()
 
 ~MonaiLabelTool ()
 
void DoUpdatePreview (const Image *inputAtTimeStep, const Image *oldSegAtTimeStep, MultiLabelSegmentation *previewImage, TimeStepType timeStep) override
 
void ConnectActionsAndFunctions () override
 
virtual void OnAddPositivePoint (StateMachineAction *, InteractionEvent *interactionEvent)
 Add positive seed point action of StateMachine pattern. More...
 
virtual void OnAddNegativePoint (StateMachineAction *, InteractionEvent *interactionEvent)
 Add negative seed point action of StateMachine pattern. More...
 
virtual void OnDelete (StateMachineAction *, InteractionEvent *)
 Delete action of StateMachine pattern. More...
 
void OnMove (StateMachineAction *, InteractionEvent *)
 
void OnRelease (StateMachineAction *, InteractionEvent *)
 
void OnPrimaryButtonPressed (StateMachineAction *, InteractionEvent *)
 
void ClearSeeds ()
 Clears all seed points and updates the preview to reset the segmentation. More...
 
virtual std::string ConvertPointsAsListString (const mitk::BaseGeometry *baseGeometry, const PointSet::Pointer pointSet) const
 Converts point coordinates from a given point set to a CSV string. More...
 
- Protected Member Functions inherited from mitk::SegWithPreviewTool
 SegWithPreviewTool (bool lazyDynamicPreviews=false)
 
 SegWithPreviewTool (bool lazyDynamicPreviews, const char *interactorType, const us::Module *interactorModule=nullptr)
 
 ~SegWithPreviewTool () override
 
const char * GetGroup () const override
 Name of a group. More...
 
void EnsureTargetSegmentationNodeInDataStorage () const
 
virtual void InitiateToolByInput ()
 
virtual void UpdateCleanUp ()
 
virtual void ConfirmCleanUp ()
 
virtual void PreparePreviewToResultTransfer (const LabelMappingType &labelMapping)
 Called before the preview content is transferred to the segmentation on confirmation. More...
 
const Image * GetSegmentationInput () const
 
const Image * GetReferenceData () const
 
void ResetPreviewNode ()
 
void ResetPreviewContent ()
 
void ResetPreviewContentAtTimeStep (unsigned int timeStep)
 
TimePointType GetLastTimePointOfUpdate () const
 
MultiLabelSegmentation::LabelValueType GetActiveLabelValueOfPreview () const
 
virtual Label::PixelType GetUserDefinedActiveLabel () const
 
virtual void SetWorkingPlaneGeometry (PlaneGeometry *_arg)
 
virtual const PlaneGeometry * GetWorkingPlaneGeometry ()
 
bool ConfirmBeforeDeactivation () override
 Method call to invoke a dialog box just before exiting. More...
 
virtual void OnTimePointChanged ()
 
- Protected Member Functions inherited from mitk::Tool
virtual void SetToolManager (ToolManager *)
 
ToolManager * GetToolManager () const
 
mitk::DataStorage * GetDataStorage () const
 
void ConnectActionsAndFunctions () override
 
 Tool (const char *, const us::Module *interactorModule=nullptr)
 
 ~Tool () override
 
void Notify (InteractionEvent *interactionEvent, bool isHandled) override
 Called by the Dispatcher to notify this observer about an InteractionEvent. More...
 
bool FilterEvents (InteractionEvent *, DataNode *) override
 
- Protected Member Functions inherited from mitk::EventStateMachine
 EventStateMachine ()
 
 ~EventStateMachine () override
 
void AddActionFunction (const std::string &action, const ActionFunctionDelegate &delegate)
 
void AddConditionFunction (const std::string &condition, const ConditionFunctionDelegate &delegate)
 
StateMachineState * GetCurrentState () const
 
void ResetToStartState ()
 ResetToStartState Reset state machine to it initial starting state. More...
 
virtual bool CheckCondition (const StateMachineCondition &condition, const InteractionEvent *interactionEvent)
 
virtual void ExecuteAction (StateMachineAction *action, InteractionEvent *interactionEvent)
 
void SetMouseCursor (const char *xpm[], int hotspotX, int hotspotY)
 Sets the specified mouse cursor. More...
 
void ResetMouseCursor ()
 Resets the mouse cursor to its original state. More...
 
StateMachineTransition * GetExecutableTransition (InteractionEvent *event)
 Returns the executable transition for the given event. More...
 
- Protected Member Functions inherited from mitk::InteractionEventHandler
 InteractionEventHandler ()
 
 ~InteractionEventHandler () override
 
PropertyList::Pointer GetAttributes () const
 
std::string MapToEventVariant (InteractionEvent *interactionEvent)
 
virtual void ConfigurationChanged ()
 

Additional Inherited Members

- Public Types inherited from mitk::SegWithPreviewTool
enum class  LabelTransferScope { ActiveLabel , SelectedLabels , AllLabels }
 Defines which labels from the preview are transferred on confirmation. More...
 
enum class  LabelTransferMode { MapLabel , AddLabel }
 Defines how labels are transferred from preview to the working image. More...
 
using SelectedLabelVectorType = std::vector< Label::PixelType >
 Type for the vector of selected label values. More...
 
- Public Types inherited from mitk::Tool
typedef mitk::Label::PixelType DefaultSegmentationDataType
 
- Public Types inherited from mitk::EventStateMachine
typedef itk::SmartPointer< StateMachineState > StateMachineStateType
 
- Public Attributes inherited from mitk::MonaiLabelTool
std::unique_ptr< MonaiLabelRequest > m_RequestParameters
 Holds the selected model and server data for the POST inference call. More...
 
Message1< const bool > MonaiStatusEvent
 
- Public Attributes inherited from mitk::Tool
Message GUIProcessEventsMessage
 To let GUI process new events (e.g. qApp->processEvents() ) More...
 
Message1< std::string > ErrorMessage
 To send error messages (to be shown by some GUI) More...
 
Message1< bool > CurrentlyBusy
 To send whether the tool is busy (to be shown by some GUI) More...
 
Message1< std::string > GeneralMessage
 To send general messages (to be shown by some GUI) More...
 
- Protected Types inherited from mitk::SegWithPreviewTool
using LabelMappingType = std::vector< std::pair< Label::PixelType, Label::PixelType > >
 
- Protected Types inherited from mitk::EventStateMachine
typedef MessageAbstractDelegate2< StateMachineAction *, InteractionEvent *, void > ActionFunctionDelegate
 
typedef MessageAbstractDelegate1< const InteractionEvent *, bool > ConditionFunctionDelegate
 
- Static Protected Member Functions inherited from mitk::SegWithPreviewTool
static Image::ConstPointer GetImageByTimeStep (const Image *image, TimeStepType timestep)
 
static Image::Pointer GetImageByTimeStep (Image *image, TimeStepType timestep)
 
static Image::ConstPointer GetImageByTimePoint (const Image *image, TimePointType timePoint)
 
static void TransferLabelInformation (const LabelMappingType &labelMapping, const mitk::MultiLabelSegmentation *source, mitk::MultiLabelSegmentation *target)
 Copies label information (not pixel content) from one segmentation to another. More...
 
- Protected Attributes inherited from mitk::MonaiLabelTool
PointSet::Pointer m_PointSetPositive
 
PointSet::Pointer m_PointSetNegative
 
DataNode::Pointer m_PointSetNodePositive
 
DataNode::Pointer m_PointSetNodeNegative
 
int m_PointSetCount
 
- Protected Attributes inherited from mitk::SegWithPreviewTool
ToolCommand::Pointer m_ProgressCommand
 
- Protected Attributes inherited from mitk::Tool
std::string m_EventConfig
 Let subclasses change their event configuration. More...
 
- Protected Attributes inherited from mitk::EventStateMachine
bool m_IsActive
 
UndoController * m_UndoController
 
bool m_UndoEnabled
 

Detailed Description

MONAI Label segmentation tool operating on 3D volumes.

See also
mitk::MonaiLabelTool

This tool sends the full 3D volume to a MONAI Label server for AI-based segmentation and writes the result back into the preview segmentation volume.

Warning
Only to be instantiated by mitk::ToolManager.

Definition at line 39 of file mitkMonaiLabel3DTool.h.

Constructor & Destructor Documentation

◆ MonaiLabel3DTool()

mitk::MonaiLabel3DTool::MonaiLabel3DTool ( )
protecteddefault

◆ ~MonaiLabel3DTool()

mitk::MonaiLabel3DTool::~MonaiLabel3DTool ( )
protecteddefault

Member Function Documentation

◆ Activated()

void mitk::MonaiLabel3DTool::Activated ( )
overridevirtual

Activate the tool and configure label transfer scope to all labels.

Reimplemented from mitk::Tool.

◆ Clone()

Pointer mitk::MonaiLabel3DTool::Clone ( ) const

◆ GetIconResource()

us::ModuleResource mitk::MonaiLabel3DTool::GetIconResource ( ) const
overridevirtual

Return the toolbar icon resource for this tool.

Reimplemented from mitk::Tool.

◆ GetName()

const char* mitk::MonaiLabel3DTool::GetName ( ) const
overridevirtual

Return the human-readable name of this tool ("MONAI Label 3D").

Implements mitk::Tool.

◆ mitkClassMacro()

mitk::MonaiLabel3DTool::mitkClassMacro ( MonaiLabel3DTool  ,
MonaiLabelTool   
)

◆ New()

static Pointer mitk::MonaiLabel3DTool::New ( )
static

◆ WriteBackResults()

void mitk::MonaiLabel3DTool::WriteBackResults ( MultiLabelSegmentation *  previewImage,
MultiLabelSegmentation *  segResults,
TimeStepType  timeStep 
) const
overridevirtual

Write segmentation results back into the preview image for the given time step.

Parameters
previewImageThe preview segmentation to write into.
segResultsThe segmentation results returned by the MONAI Label server.
timeStepThe time step to write into.

Implements mitk::MonaiLabelTool.

◆ WriteImage()

void mitk::MonaiLabel3DTool::WriteImage ( const Image *  inputAtTimeStep,
const std::string &  inputImagePath 
) const
overridevirtual

Write the input 3D image to disk.

Parameters
inputAtTimeStepThe 3D image at the current time step.
inputImagePathThe file path where the image is saved.

Implements mitk::MonaiLabelTool.


The documentation for this class was generated from the following file: