Medical Imaging Interaction Toolkit
2023.04.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 | 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< Self > | Pointer |
typedef itk::SmartPointer< const Self > | ConstPointer |
typedef std::map< std::string, TActionFunctor * > | ActionFunctionsMapType |
typedef itk::SmartPointer< StateMachineState > | StateMachineStateType |
Public Types inherited from mitk::InteractionEventHandler | |
typedef InteractionEventHandler | Self |
typedef itk::Object | Superclass |
typedef itk::SmartPointer< Self > | Pointer |
typedef itk::SmartPointer< const Self > | ConstPointer |
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... | |
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 () |
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 DataNode * | GetTargetSegmentationNode () const |
Returns the currently selected segmentation node. More... | |
LabelSetImage * | GetTargetSegmentation () const |
LabelSetImage * | GetPreviewSegmentation () |
const LabelSetImage * | GetPreviewSegmentation () const |
DataNode * | GetPreviewSegmentationNode () |
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 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 | PreparePreviewToResultTransfer (const LabelMappingType &labelMapping) |
virtual void | DoUpdatePreview (const Image *inputAtTimeStep, const Image *oldSegAtTimeStep, LabelSetImage *previewImage, TimeStepType timeStep)=0 |
const Image * | GetSegmentationInput () const |
const Image * | GetReferenceData () 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 PlaneGeometry * | GetWorkingPlaneGeometry () |
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 |
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) |
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::LabelSetImage *source, mitk::LabelSetImage *target) |
static void | TransferLabelSetImageContent (const LabelSetImage *source, LabelSetImage *target, TimeStepType timeStep) |
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 | |
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... | |
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.
Definition at line 38 of file mitkSegWithPreviewTool.h.
|
protected |
Definition at line 178 of file mitkSegWithPreviewTool.h.
using mitk::SegWithPreviewTool::SelectedLabelVectorType = std::vector<Label::PixelType> |
Definition at line 90 of file mitkSegWithPreviewTool.h.
|
strong |
Enumerator | |
---|---|
MapLabel | |
AddLabel |
Definition at line 99 of file mitkSegWithPreviewTool.h.
|
strong |
Enumerator | |
---|---|
ActiveLabel | |
SelectedLabels | |
AllLabels |
Definition at line 77 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.
Reimplemented in mitk::TotalSegmentatorTool.
|
overridevirtual |
Function used to check if a tool can handle the referenceData and (if specified) the working data.
referenceData | Pointer to the data that should be checked as valid reference for the tool. |
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.
void mitk::SegWithPreviewTool::ConfirmSegmentation | ( | ) |
|
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 segmenation so far.
Implemented in mitk::nnUNetTool, mitk::TotalSegmentatorTool, mitk::PickingTool, mitk::OtsuTool3D, mitk::BinaryThresholdBaseTool, and mitk::GrowCutTool.
|
protected |
|
protected |
|
virtual |
std::string mitk::SegWithPreviewTool::GetCurrentSegmentationName | ( | ) |
Gets 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 |
LabelSetImage* 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 LabelSetImage* mitk::SegWithPreviewTool::GetPreviewSegmentation | ( | ) | const |
DataNode* mitk::SegWithPreviewTool::GetPreviewSegmentationNode | ( | ) |
|
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 |
|
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 |
LabelSetImage* 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 posibility 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 |
This member function offers derived classes the possibility to alter what should happen directly before the content of the preview is transfered to the segmentation, when the segmentation is confirmed. It is called by CreateResultSegmentationFromPreview. Default implementation ensure that all labels that will be transfered, exist in the segmentation. If they are not existing before the transfer, the will be added by cloning the label information of the preview.
labelMapping | the mapping that should be used for transfering the labels. |
|
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 |
|
virtual |
|
virtual |
void mitk::SegWithPreviewTool::SetLabelTransferMode | ( | LabelTransferMode | labelTransferMode | ) |
void mitk::SegWithPreviewTool::SetLabelTransferScope | ( | LabelTransferScope | labelTransferScope | ) |
void mitk::SegWithPreviewTool::SetMergeStyle | ( | MultiLabelSegmentation::MergeStyle | mergeStyle | ) |
void mitk::SegWithPreviewTool::SetOverwriteStyle | ( | MultiLabelSegmentation::OverwriteStyle | overwriteStyle | ) |
|
virtual |
void mitk::SegWithPreviewTool::SetSelectedLabels | ( | const SelectedLabelVectorType & | labelsToTransfer | ) |
Specifies the labels that should be transfered form preview to the working image, if the segmentation is confirmed. The setting will be used, if LabelTransferScope is set to "ActiveLabel" or "SelectedLabels".
|
virtual |
|
protectedvirtual |
|
staticprotected |
|
staticprotected |
Helper function that can be used to move the content of an LabelSetImage (the pixels of the active source layer and the labels). This is e.g. helpfull if you generate an LabelSetImage content in DoUpdatePreview and you want to transfer it into the preview image.
|
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::nnUNetTool, mitk::TotalSegmentatorTool, and mitk::OtsuTool3D.
void mitk::SegWithPreviewTool::UpdatePreview | ( | bool | ignoreLazyPreviewSetting = false | ) |
Triggers the actualization of the preview
ignoreLazyPreviewSetting | If 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(). |
|
virtual |
|
virtual |
|
protected |
Definition at line 143 of file mitkSegWithPreviewTool.h.