Medical Imaging Interaction Toolkit  2021.02.99-e55a5d2f
Medical Imaging Interaction Toolkit
mitk::AutoSegmentationWithPreviewTool Class Referenceabstract

Base class for any auto segmentation tool that provides a preview of the new segmentation. More...

#include <mitkAutoSegmentationWithPreviewTool.h>

Inheritance diagram for mitk::AutoSegmentationWithPreviewTool:
Collaboration diagram for mitk::AutoSegmentationWithPreviewTool:

Public Member Functions

 mitkClassMacro (AutoSegmentationWithPreviewTool, AutoSegmentationTool)
 
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 ()
 
bool CanHandle (const BaseData *referenceData, const BaseData *workingData) const override
 
void UpdatePreview (bool ignoreLazyPreviewSetting=false)
 
bool IsUpdating () const
 
- Public Member Functions inherited from mitk::AutoSegmentationTool
 mitkClassMacro (AutoSegmentationTool, Tool)
 
void SetOverwriteExistingSegmentation (bool overwrite)
 
std::string GetCurrentSegmentationName ()
 Gets the name of the currently selected segmentation node. More...
 
virtual DataNodeGetTargetSegmentationNode () const
 Depending on the selected mode either returns the currently selected segmentation node or (if overwrite mode is false) creates a new one from the selected reference data. More...
 
- Public Member Functions inherited from mitk::Tool
 mitkClassMacro (Tool, EventStateMachine)
 
virtual const char ** GetXPM () const =0
 Returns an icon in the XPM format. More...
 
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 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 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
 

Protected Member Functions

virtual void InitiateToolByInput ()
 
virtual void UpdatePrepare ()
 
virtual void UpdateCleanUp ()
 
virtual void DoUpdatePreview (const Image *inputAtTimeStep, const Image *oldSegAtTimeStep, Image *previewImage, TimeStepType timeStep)=0
 
 AutoSegmentationWithPreviewTool (bool lazyDynamicPreviews=false)
 
 AutoSegmentationWithPreviewTool (bool lazyDynamicPreviews, const char *interactorType, const us::Module *interactorModule=nullptr)
 
 ~AutoSegmentationWithPreviewTool () override
 
ImageGetPreviewSegmentation ()
 
DataNodeGetPreviewSegmentationNode ()
 
const ImageGetSegmentationInput () const
 
const ImageGetReferenceData () const
 
void ResetPreviewNode ()
 
TimePointType GetLastTimePointOfUpdate () const
 
virtual void SetWorkingPlaneGeometry (PlaneGeometry *_arg)
 
virtual const PlaneGeometryGetWorkingPlaneGeometry ()
 
- Protected Member Functions inherited from mitk::AutoSegmentationTool
 AutoSegmentationTool ()
 
 AutoSegmentationTool (const char *interactorType, const us::Module *interactorModule=nullptr)
 
 ~AutoSegmentationTool () override
 
const char * GetGroup () const override
 Name of a group. More...
 
void EnsureTargetSegmentationNodeInDataStorage () const
 
- 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 (if modified by the SlicesCoordinator) 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 ()
 

Protected Attributes

mitk::ToolCommand::Pointer m_ProgressCommand
 
- Protected Attributes inherited from mitk::AutoSegmentationTool
bool m_OverwriteExistingSegmentation
 
- 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
 
UndoControllerm_UndoController
 
bool m_UndoEnabled
 

Additional Inherited Members

- 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
 
- 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 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::EventStateMachine
typedef MessageAbstractDelegate2< StateMachineAction *, InteractionEvent *, void > ActionFunctionDelegate
 
typedef MessageAbstractDelegate1< const InteractionEvent *, bool > ConditionFunctionDelegate
 
- Static Protected Member Functions inherited from mitk::AutoSegmentationTool
static Image::ConstPointer GetImageByTimeStep (const Image *image, unsigned int timestep)
 
static Image::ConstPointer GetImageByTimePoint (const Image *image, TimePointType timePoint)
 

Detailed Description

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 segementation result.

See also
mitk::Tool
QmitkInteractiveSegmentation

Definition at line 38 of file mitkAutoSegmentationWithPreviewTool.h.

Constructor & Destructor Documentation

◆ AutoSegmentationWithPreviewTool() [1/2]

mitk::AutoSegmentationWithPreviewTool::AutoSegmentationWithPreviewTool ( bool  lazyDynamicPreviews = false)
protected

◆ AutoSegmentationWithPreviewTool() [2/2]

mitk::AutoSegmentationWithPreviewTool::AutoSegmentationWithPreviewTool ( bool  lazyDynamicPreviews,
const char *  interactorType,
const us::Module interactorModule = nullptr 
)
protected

◆ ~AutoSegmentationWithPreviewTool()

mitk::AutoSegmentationWithPreviewTool::~AutoSegmentationWithPreviewTool ( )
overrideprotected

Member Function Documentation

◆ Activated()

void mitk::AutoSegmentationWithPreviewTool::Activated ( )
overridevirtual

Called when the tool gets activated.

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

Reimplemented from mitk::AutoSegmentationTool.

Reimplemented in mitk::FastMarchingBaseTool, mitk::PickingTool, mitk::WatershedTool, and mitk::OtsuTool3D.

◆ CanHandle()

bool mitk::AutoSegmentationWithPreviewTool::CanHandle ( const BaseData referenceData,
const BaseData workingData 
) const
overridevirtual

Function used to check if a tool can handle the referenceData and (if specified) the working data.

Precondition
referenceData must be a valid pointer
Parameters
referenceDataPointer to the data that should be checked as valid reference for the tool.
workingDataPointer 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.

Reimplemented in mitk::PickingTool, and mitk::FastMarchingBaseTool.

◆ ConfirmSegmentation()

void mitk::AutoSegmentationWithPreviewTool::ConfirmSegmentation ( )

◆ CreateAllTimeStepsOff()

virtual void mitk::AutoSegmentationWithPreviewTool::CreateAllTimeStepsOff ( )
virtual

◆ CreateAllTimeStepsOn()

virtual void mitk::AutoSegmentationWithPreviewTool::CreateAllTimeStepsOn ( )
virtual

◆ Deactivated()

void mitk::AutoSegmentationWithPreviewTool::Deactivated ( )
overridevirtual

Called when the tool gets deactivated.

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

Reimplemented from mitk::AutoSegmentationTool.

Reimplemented in mitk::FastMarchingBaseTool, and mitk::PickingTool.

◆ DoUpdatePreview()

virtual void mitk::AutoSegmentationWithPreviewTool::DoUpdatePreview ( const Image inputAtTimeStep,
const Image oldSegAtTimeStep,
Image previewImage,
TimeStepType  timeStep 
)
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 segmenation so far.

Implemented in mitk::FastMarchingBaseTool, mitk::PickingTool, mitk::BinaryThresholdBaseTool, and mitk::AutoMLSegmentationWithPreviewTool.

◆ GetCreateAllTimeSteps()

virtual bool mitk::AutoSegmentationWithPreviewTool::GetCreateAllTimeSteps ( )
virtual

◆ GetIsTimePointChangeAware()

virtual bool mitk::AutoSegmentationWithPreviewTool::GetIsTimePointChangeAware ( )
virtual

◆ GetKeepActiveAfterAccept()

virtual bool mitk::AutoSegmentationWithPreviewTool::GetKeepActiveAfterAccept ( )
virtual

◆ GetLastTimePointOfUpdate()

TimePointType mitk::AutoSegmentationWithPreviewTool::GetLastTimePointOfUpdate ( ) const
protected

◆ GetPreviewSegmentation()

Image* mitk::AutoSegmentationWithPreviewTool::GetPreviewSegmentation ( )
protected

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.

◆ GetPreviewSegmentationNode()

DataNode* mitk::AutoSegmentationWithPreviewTool::GetPreviewSegmentationNode ( )
protected

◆ GetReferenceData()

const Image* mitk::AutoSegmentationWithPreviewTool::GetReferenceData ( ) const
protected

Returns the image that is provided by the ReferenceDataNode. Returns null if the node is not set or does not contain an image.

◆ GetResetsToEmptyPreview()

virtual bool mitk::AutoSegmentationWithPreviewTool::GetResetsToEmptyPreview ( )
virtual

◆ GetSegmentationInput()

const Image* mitk::AutoSegmentationWithPreviewTool::GetSegmentationInput ( ) const
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.

◆ GetWorkingPlaneGeometry()

virtual const PlaneGeometry* mitk::AutoSegmentationWithPreviewTool::GetWorkingPlaneGeometry ( )
protectedvirtual

◆ InitiateToolByInput()

virtual void mitk::AutoSegmentationWithPreviewTool::InitiateToolByInput ( )
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 posibility to initiate their state accordingly. Reimplement this function to implement special behavior.

Reimplemented in mitk::BinaryThresholdBaseTool.

◆ IsTimePointChangeAwareOff()

virtual void mitk::AutoSegmentationWithPreviewTool::IsTimePointChangeAwareOff ( )
virtual

◆ IsTimePointChangeAwareOn()

virtual void mitk::AutoSegmentationWithPreviewTool::IsTimePointChangeAwareOn ( )
virtual

◆ IsUpdating()

bool mitk::AutoSegmentationWithPreviewTool::IsUpdating ( ) const

Indicate if currently UpdatePreview is triggered (true) or not (false).

◆ KeepActiveAfterAcceptOff()

virtual void mitk::AutoSegmentationWithPreviewTool::KeepActiveAfterAcceptOff ( )
virtual

◆ KeepActiveAfterAcceptOn()

virtual void mitk::AutoSegmentationWithPreviewTool::KeepActiveAfterAcceptOn ( )
virtual

◆ mitkClassMacro()

mitk::AutoSegmentationWithPreviewTool::mitkClassMacro ( AutoSegmentationWithPreviewTool  ,
AutoSegmentationTool   
)

◆ ResetPreviewNode()

void mitk::AutoSegmentationWithPreviewTool::ResetPreviewNode ( )
protected

Resets the preview node so it is empty and ready to be filled by the tool

◆ ResetsToEmptyPreviewOff()

virtual void mitk::AutoSegmentationWithPreviewTool::ResetsToEmptyPreviewOff ( )
virtual

◆ ResetsToEmptyPreviewOn()

virtual void mitk::AutoSegmentationWithPreviewTool::ResetsToEmptyPreviewOn ( )
virtual

◆ SetCreateAllTimeSteps()

virtual void mitk::AutoSegmentationWithPreviewTool::SetCreateAllTimeSteps ( bool  _arg)
virtual

◆ SetIsTimePointChangeAware()

virtual void mitk::AutoSegmentationWithPreviewTool::SetIsTimePointChangeAware ( bool  _arg)
virtual

◆ SetKeepActiveAfterAccept()

virtual void mitk::AutoSegmentationWithPreviewTool::SetKeepActiveAfterAccept ( bool  _arg)
virtual

◆ SetResetsToEmptyPreview()

virtual void mitk::AutoSegmentationWithPreviewTool::SetResetsToEmptyPreview ( bool  _arg)
virtual

◆ SetWorkingPlaneGeometry()

virtual void mitk::AutoSegmentationWithPreviewTool::SetWorkingPlaneGeometry ( PlaneGeometry _arg)
protectedvirtual

◆ UpdateCleanUp()

virtual void mitk::AutoSegmentationWithPreviewTool::UpdateCleanUp ( )
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.

Reimplemented in mitk::AutoMLSegmentationWithPreviewTool.

◆ UpdatePrepare()

virtual void mitk::AutoSegmentationWithPreviewTool::UpdatePrepare ( )
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.

◆ UpdatePreview()

void mitk::AutoSegmentationWithPreviewTool::UpdatePreview ( bool  ignoreLazyPreviewSetting = false)

Triggers the actualization of the preview

Parameters
ignoreLazyPreviewSettingIf set true UpdatePreview will always generate the preview for all time steps. If set to false, UpdatePreview will regard the setting specified by the constructor. To define the update generation for time steps implement DoUpdatePreview. To alter what should be done directly before or after the update of the preview, reimplement UpdatePrepare() or UpdateCleanUp().

Member Data Documentation

◆ m_ProgressCommand

mitk::ToolCommand::Pointer mitk::AutoSegmentationWithPreviewTool::m_ProgressCommand
protected

Definition at line 80 of file mitkAutoSegmentationWithPreviewTool.h.


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