|
Medical Imaging Interaction Toolkit
2026.06.00
Medical Imaging Interaction Toolkit
|
Base class for any auto segmentation tool that provides a preview of the new segmentation. More...
#include <mitkSegWithPreviewTool.h>


Public Types | |
| 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 Member Functions | |
| 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 us::ModuleResource | GetIconResource () const |
| Returns the tool button icon of the tool wrapped by a usModuleResource. More... | |
| virtual const char * | GetName () const =0 |
| Returns the name of this tool. Make it short! 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... | |
Protected Types | |
| 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 |
Protected Member Functions | |
| 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 | UpdatePrepare () |
| 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... | |
| virtual void | DoUpdatePreview (const Image *inputAtTimeStep, const Image *oldSegAtTimeStep, MultiLabelSegmentation *previewImage, TimeStepType timeStep)=0 |
| 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 () |
Static Protected Member Functions | |
| 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 | |
| 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 |
Additional Inherited Members | |
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... | |
Base class for any auto segmentation tool that provides a preview of the new segmentation.
This tool class implements a lot basic logic to handle auto segmentation tools with preview, Time point and ROI support. Derived classes will ask to update the segmentation preview if needed (e.g. because the ROI or the current time point has changed) or because derived tools indicated the need to update themselves. This class also takes care to properly transfer a confirmed preview into the segmentation result.
Definition at line 38 of file mitkSegWithPreviewTool.h.
|
protected |
Definition at line 246 of file mitkSegWithPreviewTool.h.
| using mitk::SegWithPreviewTool::SelectedLabelVectorType = std::vector<Label::PixelType> |
Type for the vector of selected label values.
Definition at line 130 of file mitkSegWithPreviewTool.h.
|
strong |
Defines how labels are transferred from preview to the working image.
| Enumerator | |
|---|---|
| MapLabel | Preview labels are mapped to the active label in the working image. |
| AddLabel | Preview labels are added as new labels to the working image. |
Definition at line 146 of file mitkSegWithPreviewTool.h.
|
strong |
Defines which labels from the preview are transferred on confirmation.
Definition at line 114 of file mitkSegWithPreviewTool.h.
|
protected |
|
protected |
|
overrideprotected |
|
overridevirtual |
Called when the tool gets activated.
Derived tools should call their parents implementation at the beginning of the overriding function.
Reimplemented from mitk::Tool.
|
overridevirtual |
Checks if a tool can handle the given reference data and optional working data.
| [in] | referenceData | Pointer to the data that should be checked as valid reference for the tool. |
| [in] | workingData | Pointer to the data that should be checked as valid working data for this tool. This parameter can be null if no working data is specified so far. |
Reimplemented from mitk::Tool.
|
overrideprotectedvirtual |
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.
Reimplemented from mitk::Tool.
|
protectedvirtual |
This member function offers derived classes the possibility to alter what should happen directly after the Confirmation of the preview is performed. It is called by ConfirmSegmentation. Default implementation does nothing.
Reimplemented in mitk::MonaiLabel2DTool, and mitk::nnInteractiveTool.
| void mitk::SegWithPreviewTool::ConfirmSegmentation | ( | ) |
Confirms the current preview segmentation and transfers it to the working image.
The transfer behavior is controlled by LabelTransferScope, LabelTransferMode, MergeStyle, and OverwriteStyle.
|
virtual |
|
virtual |
|
overridevirtual |
Called when the tool gets deactivated.
Derived tools should call their parents implementation at the end of the overriding function.
Reimplemented from mitk::Tool.
|
protectedpure virtual |
This function does the real work. Here the preview for a given input image should be computed and stored in the also passed preview image at the passed time step. It also provides the current/old segmentation at the time point, which can be used, if the preview depends on the the segmentation so far.
Implemented in mitk::PickingTool, mitk::OtsuTool3D, mitk::MonaiLabelTool, mitk::GrowCutTool, mitk::BinaryThresholdBaseTool, mitk::TotalSegmentatorTool, and mitk::nnInteractiveTool.
|
protected |
|
protected |
|
overridevirtual |
Preview tools are SEMIAUTOMATIC by default (the user supplies seeds/parameters). Fully automatic preview tools (e.g. TotalSegmentator) override this again to AUTOMATIC.
Reimplemented from mitk::Tool.
|
virtual |
| std::string mitk::SegWithPreviewTool::GetCurrentSegmentationName | ( | ) |
Returns the name of the currently selected segmentation node.
|
overrideprotectedvirtual |
Name of a group.
You can group several tools by assigning a group name. Graphical tool selectors might use this information to group tools. (What other reason could there be?)
Reimplemented from mitk::Tool.
|
staticprotected |
Helper that extracts the image for the passed time point, if the image has multiple time steps.
|
staticprotected |
Helper that extracts the image for the passed timestep, if the image has multiple time steps.
|
staticprotected |
Helper that extracts the image for the passed timestep, if the image has multiple time steps.
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
protected |
|
virtual |
|
virtual |
|
virtual |
| MultiLabelSegmentation* mitk::SegWithPreviewTool::GetPreviewSegmentation | ( | ) |
Returns the image that contains the preview of the current segmentation. Returns null if the node is not set or does not contain an image.
| const MultiLabelSegmentation* mitk::SegWithPreviewTool::GetPreviewSegmentation | ( | ) | const |
| DataNode* mitk::SegWithPreviewTool::GetPreviewSegmentationNode | ( | ) |
|
virtual |
|
protected |
Returns the image that is provided by the ReferenceDataNode. Returns null if the node is not set or does not contain an image.
|
virtual |
|
virtual |
|
protected |
Returns the input that should be used for any segmentation/preview or tool update. It is either the data of ReferenceDataNode itself or a part of it defined by a ROI mask provided by the tool manager. Derived classes should regard this as the relevant input data for any processing. Returns null if the node is not set or does not contain an image.
|
virtual |
| Color mitk::SegWithPreviewTool::GetSpecialPreviewColor | ( | ) | const |
Returns the special preview color.
| MultiLabelSegmentation* mitk::SegWithPreviewTool::GetTargetSegmentation | ( | ) | const |
|
virtual |
Returns the currently selected segmentation node.
|
protectedvirtual |
|
virtual |
|
protectedvirtual |
|
protectedvirtual |
Member is always called if GetSegmentationInput() has changed (e.g. because a new ROI was defined, or on activation) to give derived classes the possibility to initiate their state accordingly. Reimplement this function to implement special behavior.
Reimplemented in mitk::BinaryThresholdBaseTool.
|
virtual |
|
virtual |
| bool mitk::SegWithPreviewTool::IsUpdating | ( | ) | const |
Indicate if currently UpdatePreview is triggered (true) or not (false).
|
virtual |
|
virtual |
| mitk::SegWithPreviewTool::mitkClassMacro | ( | SegWithPreviewTool | , |
| Tool | |||
| ) |
|
protectedvirtual |
Called when the selected time point changes (subscribed to ToolManager::SelectedTimePointChanged by the base class on Activated()). The default implementation calls UpdatePreview() if the tool is in lazy-dynamic mode or has a static segmentation on a dynamic reference image. Derived tools may override this hook to implement different time-point change semantics, for example to discard unconfirmed state when the bound time step is no longer current.
Reimplemented in mitk::nnInteractiveTool.
|
protectedvirtual |
Called before the preview content is transferred to the segmentation on confirmation.
Default implementation ensures that all labels to be transferred exist in the segmentation. Missing labels are added by cloning label information from the preview.
| [in] | labelMapping | The mapping used for transferring labels from preview to result. |
|
virtual |
|
virtual |
|
protected |
Resets the complete content of the preview image. The instance of the preview image and its settings stay the same.
|
protected |
Resets only the image content of the specified timeStep of the preview image. If the preview image or the specified time step does not exist, nothing happens.
|
protected |
Resets the preview node so it is empty and ready to be filled by the tool
|
virtual |
|
virtual |
|
virtual |
If true, the preview is computed for all time steps at once.
|
virtual |
If true, the tool reacts to time point changes and updates the preview.
|
virtual |
If true, the tool stays active after the segmentation is accepted.
| void mitk::SegWithPreviewTool::SetLabelTransferMode | ( | LabelTransferMode | labelTransferMode | ) |
Sets how labels are transferred from preview to the working image.
| [in] | labelTransferMode | The label transfer mode. |
| void mitk::SegWithPreviewTool::SetLabelTransferScope | ( | LabelTransferScope | labelTransferScope | ) |
Sets which labels from the preview are transferred on confirmation.
| [in] | labelTransferScope | The scope of labels to transfer. |
| void mitk::SegWithPreviewTool::SetMergeStyle | ( | MultiLabelSegmentation::MergeStyle | mergeStyle | ) |
Sets how the preview content is merged into the working image upon confirmation.
| [in] | mergeStyle | The merge style (Replace or Merge). |
| void mitk::SegWithPreviewTool::SetOverwriteStyle | ( | MultiLabelSegmentation::OverwriteStyle | overwriteStyle | ) |
Sets whether locked labels should be overwritten during transfer.
| [in] | overwriteStyle | The overwrite style (RegardLocks or IgnoreLocks). |
| void mitk::SegWithPreviewTool::SetPreviewOpacity | ( | float | opacity | ) |
Sets the opacity (0.0 - 1.0) used to render the preview segmentation. The value persists across preview regenerations.
| void mitk::SegWithPreviewTool::SetPreviewVisibility | ( | bool | visible | ) |
Sets whether the preview segmentation is rendered. The value persists across preview regenerations.
|
virtual |
If true, a confirmation dialog is shown before deactivating the tool.
|
virtual |
If true, the preview is reset to empty on activation.
| void mitk::SegWithPreviewTool::SetSelectedLabels | ( | const SelectedLabelVectorType & | labelsToTransfer | ) |
Sets the labels to transfer from preview to working image on confirmation.
Used when LabelTransferScope is ActiveLabel or SelectedLabels.
| [in] | labelsToTransfer | Vector of label values from the preview image. |
|
virtual |
If true, a special color is used for the preview rendering.
|
protectedvirtual |
|
staticprotected |
Copies label information (not pixel content) from one segmentation to another.
| [in] | labelMapping | Indicates which labels to copy and optional label value remapping. |
| [in] | source | The source segmentation containing the label information. |
| [in,out] | target | The target segmentation that receives the label information. |
|
protectedvirtual |
This member function offers derived classes the possibility to alter what should happen directly after the update of the preview is performed. It is called by UpdatePreview. Default implementation does nothing.
|
protectedvirtual |
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 in mitk::OtsuTool3D, mitk::MonaiLabelTool, and mitk::TotalSegmentatorTool.
| void mitk::SegWithPreviewTool::UpdatePreview | ( | bool | ignoreLazyPreviewSetting = false | ) |
Triggers the update of the preview segmentation.
| [in] | ignoreLazyPreviewSetting | If true, the preview is generated for all time steps. If false, the lazy preview setting from the constructor is respected. |
To define the update generation for time steps, implement DoUpdatePreview(). To alter behavior before/after the preview update, reimplement UpdatePrepare() or UpdateCleanUp().
|
virtual |
|
virtual |
|
protected |
Definition at line 206 of file mitkSegWithPreviewTool.h.