Medical Imaging Interaction Toolkit  2024.06.99-b3904305
Medical Imaging Interaction Toolkit

nnUNet segmentation tool. More...

#include <mitknnUnetTool.h>

Inheritance diagram for mitk::nnUNetTool:
Collaboration diagram for mitk::nnUNetTool:

Public Member Functions

 mitkClassMacro (nnUNetTool, SegWithPreviewTool)
Pointer Clone () const
const char ** GetXPM () const override
 Returns an icon in the XPM format. More...
const char * GetName () const override
 Returns the name of this tool. Make it short! More...
us::ModuleResource GetIconResource () const override
 Returns the tool button icon of the tool wrapped by a usModuleResource. More...
void Activated () override
 Called when the tool gets activated. More...
virtual void SetnnUNetDirectory (std::string _arg)
virtual std::string GetnnUNetDirectory () const
virtual void SetModelDirectory (std::string _arg)
virtual std::string GetModelDirectory () const
virtual void SetPythonPath (std::string _arg)
virtual std::string GetPythonPath () const
virtual void SetMitkTempDir (std::string _arg)
virtual std::string GetMitkTempDir () const
virtual void SetPostProcessingJsonDirectory (std::string _arg)
virtual std::string GetPostProcessingJsonDirectory () const
virtual void SetMixedPrecision (bool _arg)
virtual bool GetMixedPrecision () const
virtual void MixedPrecisionOn ()
virtual void MixedPrecisionOff ()
virtual void SetMirror (bool _arg)
virtual bool GetMirror () const
virtual void MirrorOn ()
virtual void MirrorOff ()
virtual void SetMultiModal (bool _arg)
virtual bool GetMultiModal () const
virtual void MultiModalOn ()
virtual void MultiModalOff ()
virtual void SetNoPip (bool _arg)
virtual bool GetNoPip () const
virtual void NoPipOn ()
virtual void NoPipOff ()
virtual void SetEnsemble (bool _arg)
virtual bool GetEnsemble () const
virtual void EnsembleOn ()
virtual void EnsembleOff ()
virtual void SetPredict (bool _arg)
virtual bool GetPredict () const
virtual void PredictOn ()
virtual void PredictOff ()
virtual void SetGpuId (unsigned int _arg)
virtual unsigned int GetGpuId () const
void RenderOutputBuffer ()
 Renders the output LabelSetImage. To called in the main thread. More...
LabelSetImage::Pointer GetOutputBuffer ()
 Get the Output Buffer object. More...
void ClearOutputBuffer ()
 Sets the outputBuffer to nullptr. More...
mitk::DataStorageGetDataStorage ()
 Returns the DataStorage from the ToolManager. More...
mitk::DataNodeGetRefNode ()
void SetOutputBuffer (LabelSetImage::Pointer)
- 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...
void ConfirmSegmentation ()
virtual void SetCreateAllTimeSteps (bool _arg)
virtual bool GetCreateAllTimeSteps ()
virtual void CreateAllTimeStepsOn ()
virtual void CreateAllTimeStepsOff ()
virtual void SetKeepActiveAfterAccept (bool _arg)
virtual bool GetKeepActiveAfterAccept ()
virtual void KeepActiveAfterAcceptOn ()
virtual void KeepActiveAfterAcceptOff ()
virtual void SetIsTimePointChangeAware (bool _arg)
virtual bool GetIsTimePointChangeAware ()
virtual void IsTimePointChangeAwareOn ()
virtual void IsTimePointChangeAwareOff ()
virtual void SetResetsToEmptyPreview (bool _arg)
virtual bool GetResetsToEmptyPreview ()
virtual void ResetsToEmptyPreviewOn ()
virtual void ResetsToEmptyPreviewOff ()
virtual void SetUseSpecialPreviewColor (bool _arg)
virtual bool GetUseSpecialPreviewColor ()
virtual void UseSpecialPreviewColorOn ()
virtual void UseSpecialPreviewColorOff ()
virtual void SetRequestDeactivationConfirmation (bool _arg)
virtual bool GetRequestDeactivationConfirmation ()
virtual void RequestDeactivationConfirmationOn ()
virtual void RequestDeactivationConfirmationOff ()
void SetMergeStyle (MultiLabelSegmentation::MergeStyle mergeStyle)
virtual MultiLabelSegmentation::MergeStyle GetMergeStyle ()
void SetOverwriteStyle (MultiLabelSegmentation::OverwriteStyle overwriteStyle)
virtual MultiLabelSegmentation::OverwriteStyle GetOverwriteStyle ()
void SetLabelTransferScope (LabelTransferScope labelTransferScope)
virtual LabelTransferScope GetLabelTransferScope ()
void SetSelectedLabels (const SelectedLabelVectorType &labelsToTransfer)
virtual SelectedLabelVectorType GetSelectedLabels ()
void SetLabelTransferMode (LabelTransferMode labelTransferMode)
virtual LabelTransferMode GetLabelTransferMode ()
bool CanHandle (const BaseData *referenceData, const BaseData *workingData) const override
void UpdatePreview (bool ignoreLazyPreviewSetting=false)
bool IsUpdating () const
std::string GetCurrentSegmentationName ()
 Gets the name of the currently selected segmentation node. More...
virtual DataNodeGetTargetSegmentationNode () const
 Returns the currently selected segmentation node. More...
LabelSetImageGetTargetSegmentation () const
LabelSetImageGetPreviewSegmentation ()
const LabelSetImageGetPreviewSegmentation () const
DataNodeGetPreviewSegmentationNode ()
- Public Member Functions inherited from mitk::Tool
 mitkClassMacro (Tool, EventStateMachine)
virtual std::string GetIconPath () const
 Returns the path of an icon. More...
virtual us::ModuleResource GetCursorIconResource () const
 Returns the path of a cursor icon. More...
virtual void InitializeStateMachine ()
virtual itk::Object::Pointer GetGUI (const std::string &toolkitPrefix, const std::string &toolkitPostfix)
 Interface for GUI creation. More...
virtual NodePredicateBase::ConstPointer GetReferenceDataPreference () const
virtual NodePredicateBase::ConstPointer GetWorkingDataPreference () const
DataNode::Pointer CreateEmptySegmentationNode (const Image *original, const std::string &organName, const mitk::Color &color) const
DataNode::Pointer CreateSegmentationNode (Image *image, const std::string &organName, const mitk::Color &color) const
- Public Member Functions inherited from mitk::EventStateMachine
virtual std::vector< std::string > GetClassHierarchy () const override
virtual const char * GetClassName () const
bool LoadStateMachine (const std::string &filename, const us::Module *module=nullptr)
 Loads XML resource. More...
bool HandleEvent (InteractionEvent *event, DataNode *dataNode)
void EnableUndo (bool enable)
 Enables or disabled Undo. More...
void EnableInteraction (bool enable)
 Enables/disables the state machine. In un-enabled state it won't react to any events. More...
- Public Member Functions inherited from mitk::InteractionEventHandler
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 ()
void Enable ()
bool IsEnabled () const

Static Public Member Functions

static Pointer New ()
- Static Public Member Functions inherited from mitk::EventStateMachine
static const char * GetStaticNameOfClass ()
- Static Public Member Functions inherited from mitk::InteractionEventHandler
static const char * GetStaticNameOfClass ()

Public Attributes

std::vector< ModelParamsm_ParamQ
 vector of ModelParams. Size > 1 only for ensemble prediction. More...
std::vector< mitk::Image::ConstPointerm_OtherModalPaths
 Holds paths to other input image modalities. More...
mitk::Image::ConstPointer m_InputBuffer
- 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 Member Functions

 nnUNetTool ()=default
 Construct a new nnUNet Tool object. More...
 ~nnUNetTool ()
 Destroy the nnUNet Tool object and deletes the temp directory. More...
void DoUpdatePreview (const Image *inputAtTimeStep, const Image *oldSegAtTimeStep, LabelSetImage *previewImage, TimeStepType timeStep) override
 Overridden method from the tool manager to execute the segmentation Implementation: More...
void UpdatePrepare () override
- 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)
const ImageGetSegmentationInput () const
const ImageGetReferenceData () const
void ResetPreviewNode ()
void ResetPreviewContent ()
void ResetPreviewContentAtTimeStep (unsigned int timeStep)
TimePointType GetLastTimePointOfUpdate () const
LabelSetImage::LabelValueType GetActiveLabelValueOfPreview () const
virtual Label::PixelType GetUserDefinedActiveLabel () const
virtual void SetWorkingPlaneGeometry (PlaneGeometry *_arg)
virtual const PlaneGeometryGetWorkingPlaneGeometry ()
bool ConfirmBeforeDeactivation () override
 Method call to invoke a dialog box just before exiting. The method can be reimplemented in the respective tool class with business logic on when there should be a confirmation dialog from the user before the tool exits. More...
- Protected Member Functions inherited from mitk::Tool
virtual void SetToolManager (ToolManager *)
ToolManagerGetToolManager () const
mitk::DataStorageGetDataStorage () const
void ConnectActionsAndFunctions () override
 Tool (const char *, const us::Module *interactorModule=nullptr)
 ~Tool () override
void Notify (InteractionEvent *interactionEvent, bool isHandled) override
bool FilterEvents (InteractionEvent *, DataNode *) override
- Protected Member Functions inherited from mitk::EventStateMachine
 EventStateMachine ()
 ~EventStateMachine () override
void AddActionFunction (const std::string &action, TActionFunctor *functor)
void AddActionFunction (const std::string &action, const ActionFunctionDelegate &delegate)
void AddConditionFunction (const std::string &condition, const ConditionFunctionDelegate &delegate)
StateMachineStateGetCurrentState () 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...
StateMachineTransitionGetExecutableTransition (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  LabelTransferScope { LabelTransferScope::ActiveLabel, LabelTransferScope::SelectedLabels, LabelTransferScope::AllLabels }
enum  LabelTransferMode { LabelTransferMode::MapLabel, LabelTransferMode::AddLabel }
using SelectedLabelVectorType = std::vector< Label::PixelType >
- Public Types inherited from mitk::Tool
typedef mitk::Label::PixelType DefaultSegmentationDataType
- Public Types inherited from mitk::EventStateMachine
typedef EventStateMachine Self
typedef InteractionEventHandler Superclass
typedef itk::SmartPointer< SelfPointer
typedef itk::SmartPointer< const SelfConstPointer
typedef std::map< std::string, TActionFunctor * > ActionFunctionsMapType
typedef itk::SmartPointer< StateMachineStateStateMachineStateType
- Public Types inherited from mitk::InteractionEventHandler
typedef InteractionEventHandler Self
typedef itk::Object Superclass
typedef itk::SmartPointer< SelfPointer
typedef itk::SmartPointer< const SelfConstPointer
- 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::LabelSetImage *source, mitk::LabelSetImage *target)
static void TransferLabelSetImageContent (const LabelSetImage *source, LabelSetImage *target, TimeStepType timeStep)
- 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
bool m_UndoEnabled

Detailed Description

nnUNet segmentation tool.

Only to be instantiated by mitk::ToolManager.

Definition at line 68 of file mitknnUnetTool.h.

Constructor & Destructor Documentation

◆ nnUNetTool()

mitk::nnUNetTool::nnUNetTool ( )

Construct a new nnUNet Tool object.

◆ ~nnUNetTool()

mitk::nnUNetTool::~nnUNetTool ( )

Destroy the nnUNet Tool object and deletes the temp directory.

Member Function Documentation

◆ Activated()

void mitk::nnUNetTool::Activated ( )

Called when the tool gets activated.

Derived tools should call their parents implementation at the beginning of the overriding function.

Reimplemented from mitk::Tool.

◆ ClearOutputBuffer()

void mitk::nnUNetTool::ClearOutputBuffer ( )

Sets the outputBuffer to nullptr.

◆ Clone()

Pointer mitk::nnUNetTool::Clone ( ) const

◆ DoUpdatePreview()

void mitk::nnUNetTool::DoUpdatePreview ( const Image inputAtTimeStep,
const Image oldSegAtTimeStep,
LabelSetImage previewImage,
TimeStepType  timeStep 

Overridden method from the tool manager to execute the segmentation Implementation:

  1. Saves the inputAtTimeStep in a temporary directory.
  2. Copies other modalities, renames and saves in the temporary directory, if required.
  3. Sets RESULTS_FOLDER and CUDA_VISIBLE_DEVICES variables in the environment.
  1. Iterates through the parameter queue (m_ParamQ) and executes "nnUNet_predict" command with the parameters
  2. Expects an output image to be saved in the temporary directory by the python process. Loads it as LabelSetImage and sets to previewImage.

Implements mitk::SegWithPreviewTool.

◆ EnsembleOff()

virtual void mitk::nnUNetTool::EnsembleOff ( )

◆ EnsembleOn()

virtual void mitk::nnUNetTool::EnsembleOn ( )

◆ GetDataStorage()

mitk::DataStorage* mitk::nnUNetTool::GetDataStorage ( )

Returns the DataStorage from the ToolManager.

◆ GetEnsemble()

virtual bool mitk::nnUNetTool::GetEnsemble ( ) const

◆ GetGpuId()

virtual unsigned int mitk::nnUNetTool::GetGpuId ( ) const

◆ GetIconResource()

us::ModuleResource mitk::nnUNetTool::GetIconResource ( ) const

Returns the tool button icon of the tool wrapped by a usModuleResource.

a valid ModuleResource or an invalid if this function is not reimplemented

Reimplemented from mitk::Tool.

◆ GetMirror()

virtual bool mitk::nnUNetTool::GetMirror ( ) const

◆ GetMitkTempDir()

virtual std::string mitk::nnUNetTool::GetMitkTempDir ( ) const

◆ GetMixedPrecision()

virtual bool mitk::nnUNetTool::GetMixedPrecision ( ) const

◆ GetModelDirectory()

virtual std::string mitk::nnUNetTool::GetModelDirectory ( ) const

◆ GetMultiModal()

virtual bool mitk::nnUNetTool::GetMultiModal ( ) const

◆ GetName()

const char* mitk::nnUNetTool::GetName ( ) const

Returns the name of this tool. Make it short!

This name has to fit into some kind of button in most applications, so take some time to think of a good name!

Implements mitk::Tool.

◆ GetnnUNetDirectory()

virtual std::string mitk::nnUNetTool::GetnnUNetDirectory ( ) const

◆ GetNoPip()

virtual bool mitk::nnUNetTool::GetNoPip ( ) const

◆ GetOutputBuffer()

LabelSetImage::Pointer mitk::nnUNetTool::GetOutputBuffer ( )

Get the Output Buffer object.


◆ GetPostProcessingJsonDirectory()

virtual std::string mitk::nnUNetTool::GetPostProcessingJsonDirectory ( ) const

◆ GetPredict()

virtual bool mitk::nnUNetTool::GetPredict ( ) const

◆ GetPythonPath()

virtual std::string mitk::nnUNetTool::GetPythonPath ( ) const

◆ GetRefNode()

mitk::DataNode* mitk::nnUNetTool::GetRefNode ( )

◆ GetXPM()

const char** mitk::nnUNetTool::GetXPM ( ) const

Returns an icon in the XPM format.

This icon has to fit into some kind of button in most applications, so make it smaller than 25x25 pixels.

XPM is e.g. supported by The Gimp. But if you open any XPM file in your text editor, you will see that you could also "draw" it with an editor.

Implements mitk::Tool.

◆ MirrorOff()

virtual void mitk::nnUNetTool::MirrorOff ( )

◆ MirrorOn()

virtual void mitk::nnUNetTool::MirrorOn ( )

◆ mitkClassMacro()

mitk::nnUNetTool::mitkClassMacro ( nnUNetTool  ,

◆ MixedPrecisionOff()

virtual void mitk::nnUNetTool::MixedPrecisionOff ( )

◆ MixedPrecisionOn()

virtual void mitk::nnUNetTool::MixedPrecisionOn ( )

◆ MultiModalOff()

virtual void mitk::nnUNetTool::MultiModalOff ( )

◆ MultiModalOn()

virtual void mitk::nnUNetTool::MultiModalOn ( )

◆ New()

static Pointer mitk::nnUNetTool::New ( )

◆ NoPipOff()

virtual void mitk::nnUNetTool::NoPipOff ( )

◆ NoPipOn()

virtual void mitk::nnUNetTool::NoPipOn ( )

◆ PredictOff()

virtual void mitk::nnUNetTool::PredictOff ( )

◆ PredictOn()

virtual void mitk::nnUNetTool::PredictOn ( )

◆ RenderOutputBuffer()

void mitk::nnUNetTool::RenderOutputBuffer ( )

Renders the output LabelSetImage. To called in the main thread.

◆ SetEnsemble()

virtual void mitk::nnUNetTool::SetEnsemble ( bool  _arg)

◆ SetGpuId()

virtual void mitk::nnUNetTool::SetGpuId ( unsigned int  _arg)

◆ SetMirror()

virtual void mitk::nnUNetTool::SetMirror ( bool  _arg)

◆ SetMitkTempDir()

virtual void mitk::nnUNetTool::SetMitkTempDir ( std::string  _arg)

◆ SetMixedPrecision()

virtual void mitk::nnUNetTool::SetMixedPrecision ( bool  _arg)

◆ SetModelDirectory()

virtual void mitk::nnUNetTool::SetModelDirectory ( std::string  _arg)

◆ SetMultiModal()

virtual void mitk::nnUNetTool::SetMultiModal ( bool  _arg)

◆ SetnnUNetDirectory()

virtual void mitk::nnUNetTool::SetnnUNetDirectory ( std::string  _arg)

◆ SetNoPip()

virtual void mitk::nnUNetTool::SetNoPip ( bool  _arg)

◆ SetOutputBuffer()

void mitk::nnUNetTool::SetOutputBuffer ( LabelSetImage::Pointer  )

◆ SetPostProcessingJsonDirectory()

virtual void mitk::nnUNetTool::SetPostProcessingJsonDirectory ( std::string  _arg)

◆ SetPredict()

virtual void mitk::nnUNetTool::SetPredict ( bool  _arg)

◆ SetPythonPath()

virtual void mitk::nnUNetTool::SetPythonPath ( std::string  _arg)

◆ UpdatePrepare()

void mitk::nnUNetTool::UpdatePrepare ( )

This member function offers derived classes the possibility to alter what should happen directly before the update of the preview is performed. It is called by UpdatePreview. Default implementation does nothing.

Reimplemented from mitk::SegWithPreviewTool.

Member Data Documentation

◆ m_InputBuffer

mitk::Image::ConstPointer mitk::nnUNetTool::m_InputBuffer

Definition at line 135 of file mitknnUnetTool.h.

◆ m_OtherModalPaths

std::vector<mitk::Image::ConstPointer> mitk::nnUNetTool::m_OtherModalPaths

Holds paths to other input image modalities.

Definition at line 133 of file mitknnUnetTool.h.

◆ m_ParamQ

std::vector<ModelParams> mitk::nnUNetTool::m_ParamQ

vector of ModelParams. Size > 1 only for ensemble prediction.

Definition at line 121 of file mitknnUnetTool.h.

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