Medical Imaging Interaction Toolkit
2024.12.99-0da743f6
Medical Imaging Interaction Toolkit
|
A 2D segmentation tool to draw polygon structures. More...
#include <mitkLassoTool.h>
Public Member Functions | |
mitkClassMacro (LassoTool, SegTool2D) | |
us::ModuleResource | GetCursorIconResource () const override |
Returns the path of a cursor icon. More... | |
us::ModuleResource | GetIconResource () const override |
Returns the tool button icon of the tool wrapped by a usModuleResource. More... | |
const char * | GetName () const override |
Returns the name of this tool. Make it short! More... | |
const char ** | GetXPM () const override |
Returns an icon in the XPM format. More... | |
Public Member Functions inherited from mitk::EditableContourTool | |
mitkClassMacro (EditableContourTool, FeedbackContourTool) | |
virtual void | ConfirmSegmentation (bool resetStatMachine=true) |
Convert current contour to binary segmentations. More... | |
virtual void | ClearContour () |
Delete all current contours. More... | |
virtual void | AutoConfirmOn () |
virtual void | AutoConfirmOff () |
virtual void | SetAutoConfirm (bool _arg) |
virtual bool | GetAutoConfirm () |
virtual void | AddModeOn () |
virtual void | AddModeOff () |
virtual void | SetAddMode (bool _arg) |
virtual bool | GetAddMode () |
bool | IsEditingContour () const |
bool | IsDrawingContour () const |
Public Member Functions inherited from mitk::FeedbackContourTool | |
mitkClassMacro (FeedbackContourTool, SegTool2D) | |
Public Member Functions inherited from mitk::SegTool2D | |
mitkClassMacro (SegTool2D, Tool) | |
void | SetShowMarkerNodes (bool) |
void | SetEnable3DInterpolation (bool) |
Enables or disables the 3D interpolation after writing back the 2D segmentation result, and defaults to true. More... | |
void | Activated () override |
Called when the tool gets activated. More... | |
void | Deactivated () override |
Called when the tool gets deactivated. More... | |
virtual void | SetIsTimePointChangeAware (bool _arg) |
virtual bool | GetIsTimePointChangeAware () |
virtual void | IsTimePointChangeAwareOn () |
virtual void | IsTimePointChangeAwareOff () |
Public Member Functions inherited from mitk::Tool | |
mitkClassMacro (Tool, EventStateMachine) | |
virtual std::string | GetIconPath () const |
Returns the path of an icon. More... | |
virtual const char * | GetGroup () const |
Name of a group. 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 |
virtual bool | CanHandle (const BaseData *referenceData, const BaseData *workingData) const |
virtual bool | ConfirmBeforeDeactivation () |
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... | |
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::SegTool2D | |
static bool | DetermineAffectedImageSlice (const Image *image, const PlaneGeometry *plane, int &affectedDimension, int &affectedSlice) |
Calculates for a given Image and PlaneGeometry, which slice of the image (in index coordinates) is meant by the plane. More... | |
static void | UpdateAllSurfaceInterpolations (const LabelSetImage *workingImage, TimeStepType timeStep, const PlaneGeometry *plane, bool detectIntersection) |
Updates the surface interpolations by extracting the contour form the given slice for all labels that have a surface contour information stored for the given plane at the given timestep. More... | |
static Image::Pointer | GetAffectedImageSliceAs2DImage (const InteractionPositionEvent *positionEvent, const Image *image, unsigned int component=0) |
Extract the slice of an image that the user just scribbles on. The given component denotes the vector component of an vector image. More... | |
static Image::Pointer | GetAffectedImageSliceAs2DImage (const PlaneGeometry *planeGeometry, const Image *image, TimeStepType timeStep, unsigned int component=0) |
Extract the slice of an image cut by given plane. The given component denotes the vector component of a vector image. More... | |
static Image::Pointer | GetAffectedImageSliceAs2DImageByTimePoint (const PlaneGeometry *planeGeometry, const Image *image, TimePointType timePoint, unsigned int component=0) |
static void | WriteBackSegmentationResult (const DataNode *workingNode, const PlaneGeometry *planeGeometry, const Image *segmentationResult, TimeStepType timeStep) |
static void | WriteSliceToVolume (Image *workingImage, const PlaneGeometry *planeGeometry, const Image *slice, TimeStepType timeStep, bool allowUndo) |
Static Public Member Functions inherited from mitk::EventStateMachine | |
static const char * | GetStaticNameOfClass () |
Static Public Member Functions inherited from mitk::InteractionEventHandler | |
static const char * | GetStaticNameOfClass () |
Protected Member Functions | |
LassoTool () | |
~LassoTool () override | |
void | ConnectActionsAndFunctions () override |
void | FinishTool () override |
Finish contour interaction. More... | |
Protected Member Functions inherited from mitk::EditableContourTool | |
EditableContourTool () | |
~EditableContourTool () override | |
void | Activated () override |
Called when the tool gets activated. More... | |
void | Deactivated () override |
Called when the tool gets deactivated. More... | |
virtual Point3D | PrepareInitContour (const Point3D &clickedPoint) |
virtual void | FinalizePreviewContour (const Point3D &clickedPoint) |
virtual void | InitializePreviewContour (const Point3D &clickedPoint) |
virtual void | UpdatePreviewContour (const Point3D &clickedPoint) |
virtual void | OnInitContour (StateMachineAction *, InteractionEvent *interactionEvent) |
Initialize tool. More... | |
virtual void | OnAddPoint (StateMachineAction *, InteractionEvent *interactionEvent) |
Add a control point and finish current segment. More... | |
virtual void | OnDrawing (StateMachineAction *, InteractionEvent *interactionEvent) |
Draw a contour according to the mouse movement when mouse button is pressed and mouse is moved. More... | |
virtual void | OnEndDrawing (StateMachineAction *, InteractionEvent *interactionEvent) |
virtual void | OnMouseMoved (StateMachineAction *, InteractionEvent *interactionEvent) |
Computation of the preview contour. More... | |
virtual void | OnFinish (StateMachineAction *, InteractionEvent *interactionEvent) |
Finish EditableContour tool. More... | |
virtual bool | OnCheckPlane (const InteractionEvent *interactionEvent) |
Check if the event happened on the current plane. More... | |
virtual bool | OnCheckDistanceToControlPoint (const InteractionEvent *interactionEvent) |
Checks if the event happened with enough distances to the last control points (to avoid unintended/accidental drawing) More... | |
void | EnableContourInteraction (bool on) |
void | ReleaseInteractors () |
virtual void | ReleaseHelperObjects (bool includeWorkingContour=true) |
virtual void | RemoveHelperObjectsFromDataStorage (bool includeWorkingContour=true) |
ContourModel::Pointer | CreateNewContour () const |
virtual void | UpdateClosureContour (mitk::Point3D endpoint) |
mitk::ContourModel * | GetContour () |
const mitk::ContourModel * | GetContour () const |
Protected Member Functions inherited from mitk::FeedbackContourTool | |
FeedbackContourTool () | |
FeedbackContourTool (const char *) | |
~FeedbackContourTool () override | |
const ContourModel * | GetFeedbackContour () const |
void | InitializeFeedbackContour (bool isClosed) |
void | ClearsCurrentFeedbackContour (bool isClosed) |
void | UpdateCurrentFeedbackContour (const ContourModel *sourceModel, TimeStepType sourceTimeStep=0) |
void | UpdateFeedbackContour (const ContourModel *sourceModel, TimeStepType feedbackTimeStep, TimeStepType sourceTimeStep=0) |
void | AddVertexToCurrentFeedbackContour (const Point3D &point) |
void | AddVertexToFeedbackContour (const Point3D &point, TimeStepType feedbackTimeStep) |
void | SetFeedbackContourVisible (bool) |
void | SetFeedbackContourColor (float r, float g, float b) |
Provide values from 0.0 (black) to 1.0 (full color) More... | |
void | SetFeedbackContourColorDefault () |
void | Deactivated () override |
Called when the tool gets deactivated. More... | |
void | Activated () override |
Called when the tool gets activated. More... | |
ContourModel::Pointer | ProjectContourTo2DSlice (const Image *slice, const ContourModel *contourIn3D) |
Projects a contour onto an image point by point. Converts from world to index coordinates. More... | |
ContourModel::Pointer | BackProjectContourFrom2DSlice (const BaseGeometry *sliceGeometry, const ContourModel *contourIn2D) |
Projects a slice index coordinates of a contour back into world coordinates. More... | |
void | WriteBackFeedbackContourAsSegmentationResult (const InteractionPositionEvent *positionEvent, int paintingPixelValue, bool setInvisibleAfterSuccess=true) |
void | FillContourInSlice (ContourModel *projectedContour, Image *sliceImage, int paintingPixelValue=1) |
Fill a contour in a 2D slice with a specified pixel value. More... | |
void | FillContourInSlice (ContourModel *projectedContour, unsigned int timeStep, Image *sliceImage, int paintingPixelValue=1) |
Fill a contour in a 2D slice with a specified pixel value at a given time step. More... | |
Protected Member Functions inherited from mitk::SegTool2D | |
SegTool2D () | |
SegTool2D (const char *, const us::Module *interactorModule=nullptr) | |
~SegTool2D () override | |
DataNode * | GetWorkingDataNode () const |
returns the segmentation node that should be modified by the tool. More... | |
Image * | GetWorkingData () const |
DataNode * | GetReferenceDataNode () const |
Image * | GetReferenceData () const |
virtual void | OnTimePointChanged () |
bool | FilterEvents (InteractionEvent *interactionEvent, DataNode *dataNode) override |
Filters events that cannot be handled by 2D segmentation tools. More... | |
Image::Pointer | GetAffectedWorkingSlice (const InteractionPositionEvent *) const |
Extract the slice of the currently selected working image that the user just scribbles on. More... | |
Image::Pointer | GetAffectedReferenceSlice (const InteractionPositionEvent *) const |
Extract the slice of the currently selected reference image that the user just scribbles on. More... | |
Image::Pointer | GetAffectedReferenceSlice (const PlaneGeometry *planeGeometry, TimeStepType timeStep) const |
void | WriteBackSegmentationResult (const InteractionPositionEvent *, const Image *segmentationResult) |
void | WriteBackSegmentationResult (const PlaneGeometry *planeGeometry, const Image *segmentationResult, TimeStepType timeStep) |
void | WriteBackSegmentationResults (const std::vector< SliceInformation > &sliceList, bool writeSliceToVolume=true) |
int | AddContourmarker (const PlaneGeometry *planeGeometry, unsigned int sliceIndex) |
Adds a new node called Contourmarker to the datastorage which holds a mitk::PlanarFigure. By selecting this node the slicestack will be reoriented according to the passed PlanarFigure's Geometry. More... | |
void | InteractiveSegmentationBugMessage (const std::string &message) const |
virtual TimePointType | GetLastTimePointTriggered () |
void | PushCursor () |
void | PushCursor (us::ModuleResource cursorResource) |
void | PopCursor (bool popFirstCursor=false) |
void | PopAllCursors () |
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 () |
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< 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 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::SegTool2D | |
static void | UpdateSurfaceInterpolation (const std::vector< SliceInformation > &sliceInfos, const Image *workingImage, bool detectIntersection, mitk::Label::PixelType activeLabelValue, bool silent=false) |
Updates the surface interpolation by extracting the contour form the given slice. More... | |
static void | WriteBackSegmentationResults (const DataNode *workingNode, const std::vector< SliceInformation > &sliceList, bool writeSliceToVolume=true) |
Writes all provided source slices into the data of the passed workingNode. The function does the following: 1) for every passed slice write it to workingNode (and generate and undo/redo step); 2) update the surface interpolation and 3) mark the node as modified. More... | |
static void | WriteSliceToVolume (Image *workingImage, const SliceInformation &sliceInfo, bool allowUndo) |
static bool | IsPositionEventInsideImageRegion (InteractionPositionEvent *positionEvent, const BaseData *data) |
Protected Attributes inherited from mitk::EditableContourTool | |
mitk::DataNode::Pointer | m_ContourNode |
mitk::ContourModel::Pointer | m_PreviewContour |
mitk::DataNode::Pointer | m_PreviewContourNode |
mitk::ContourModel::Pointer | m_ClosureContour |
mitk::DataNode::Pointer | m_ClosureContourNode |
mitk::ContourModel::Pointer | m_CurrentRestrictedArea |
mitk::Image::Pointer | m_ReferenceDataSlice |
PlaneGeometry::ConstPointer | m_PlaneGeometry |
mitk::DataInteractor::Pointer | m_ContourInteractor |
bool | m_AutoConfirm |
bool | m_AddMode |
Protected Attributes inherited from mitk::SegTool2D | |
BaseRenderer * | m_LastEventSender |
unsigned int | m_LastEventSlice |
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 |
A 2D segmentation tool to draw polygon structures.
The contour between the last point and the current mouse position is computed by forming a straight line.
The tool always assumes that unconfirmed contours are always defined for the current time point. So the time step in which the contours will be stored as segmentations will be determined when the contours got confirmed. Then they will be transferred to the slices of the currently selected time step.
Definition at line 40 of file mitkLassoTool.h.
|
protected |
|
overrideprotected |
|
overrideprotectedvirtual |
Is called after loading a statemachine. Overwrite this function in specific interactor implementations. Connect actions and functions using the CONNECT_FUNCTION macro within this function.
Reimplemented from mitk::EditableContourTool.
|
overrideprotectedvirtual |
Finish contour interaction.
Implements mitk::EditableContourTool.
|
overridevirtual |
Returns the path of a cursor icon.
Reimplemented from mitk::Tool.
|
overridevirtual |
Returns the tool button icon of the tool wrapped by a usModuleResource.
Reimplemented from mitk::Tool.
|
overridevirtual |
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.
|
overridevirtual |
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.
|
static |