Medical Imaging Interaction Toolkit
2016.11.0
Medical Imaging Interaction Toolkit
|
A 2D segmentation tool based on LiveWire approach. The contour between the last user added point and the current mouse position is computed by searching the shortest path according to specific features of the image. The contour thus snappest to the boundary of objects. More...
#include <mitkLiveWireTool2D.h>
Public Member Functions | |
mitkClassMacro (LiveWireTool2D, SegTool2D) | |
Pointer | Clone () const |
virtual const char ** | GetXPM () const override |
Returns an icon in the XPM format. More... | |
virtual 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... | |
virtual const char * | GetName () const override |
Returns the name of this tool. Make it short! More... | |
void | ConfirmSegmentation () |
Convert all current contour objects to binary segmentation image. More... | |
void | ClearSegmentation () |
Delete all current contour objects. More... | |
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... | |
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 (Image *original, const std::string &organName, const mitk::Color &color) |
DataNode::Pointer | CreateSegmentationNode (Image *image, const std::string &organName, const mitk::Color &color) |
virtual bool | CanHandle (BaseData *referenceData) 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::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 corrdinates) is meant by the plane. More... | |
static void | UpdateSurfaceInterpolation (const Image *slice, const Image *workingImage, const PlaneGeometry *plane, bool detectIntersection) |
Updates the surface interpolation by extracting the contour form the given slice. More... | |
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 | |
LiveWireTool2D () | |
virtual | ~LiveWireTool2D () |
void | ConnectActionsAndFunctions () override |
virtual void | Activated () override |
Called when the tool gets activated. More... | |
virtual void | Deactivated () override |
Called when the tool gets deactivated. More... | |
virtual void | OnInitLiveWire (StateMachineAction *, InteractionEvent *interactionEvent) |
Initialize tool. More... | |
virtual void | OnAddPoint (StateMachineAction *, InteractionEvent *interactionEvent) |
Add a control point and finish current segment. More... | |
virtual void | OnMouseMoved (StateMachineAction *, InteractionEvent *interactionEvent) |
Actual LiveWire computation. More... | |
virtual bool | OnCheckPoint (const InteractionEvent *interactionEvent) |
Check double click on first control point to finish the LiveWire tool. More... | |
virtual void | OnFinish (StateMachineAction *, InteractionEvent *interactionEvent) |
Finish LiveWire tool. More... | |
virtual void | OnLastSegmentDelete (StateMachineAction *, InteractionEvent *interactionEvent) |
Close the contour. More... | |
virtual void | OnMouseMoveNoDynamicCosts (StateMachineAction *, InteractionEvent *interactionEvent) |
Don't use dynamic cost map for LiveWire calculation. More... | |
void | FinishTool () |
Finish contour interaction. More... | |
virtual bool | IsPositionEventInsideImageRegion (InteractionPositionEvent *positionEvent, BaseData *data) |
IsPositionEventInsideImageRegion. More... | |
void | EnableContourLiveWireInteraction (bool on) |
Enable interaction with contours. Contours that are created by the tool can be edited using LiveWire functionality. Points can thus be inserted, moved or deleted. More... | |
template<typename TPixel , unsigned int VImageDimension> | |
void | FindHighestGradientMagnitudeByITK (itk::Image< TPixel, VImageDimension > *inputImage, itk::Index< 3 > &index, itk::Index< 3 > &returnIndex) |
Protected Member Functions inherited from mitk::SegTool2D | |
SegTool2D () | |
SegTool2D (const char *) | |
virtual | ~SegTool2D () |
virtual bool | FilterEvents (InteractionEvent *interactionEvent, DataNode *dataNode) override |
Filters events that cannot be handle by 2D segmentation tools. More... | |
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 a dwi-image. More... | |
Image::Pointer | GetAffectedImageSliceAs2DImage (const PlaneGeometry *planeGeometry, const Image *image, unsigned int timeStep, unsigned int component=0) |
Extract the slice of an image cut by given plane. The given component denotes the vector component of a dwi-image. More... | |
Image::Pointer | GetAffectedWorkingSlice (const InteractionPositionEvent *) |
Extract the slice of the currently selected working image that the user just scribbles on. More... | |
Image::Pointer | GetAffectedReferenceSlice (const InteractionPositionEvent *) |
Extract the slice of the currently selected reference image that the user just scribbles on. More... | |
void | WriteBackSegmentationResult (const InteractionPositionEvent *, Image *) |
void | WriteBackSegmentationResult (const PlaneGeometry *planeGeometry, Image *, unsigned int timeStep) |
void | WriteBackSegmentationResult (std::vector< SliceInformation > sliceList, bool writeSliceToVolume=true) |
void | WritePreviewOnWorkingImage (Image *targetSlice, Image *sourceSlice, Image *workingImage, int paintingPixelValue, int timestep) |
void | WriteSliceToVolume (SliceInformation sliceInfo) |
int | AddContourmarker () |
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 PlanarFigure's Geometry. More... | |
void | InteractiveSegmentationBugMessage (const std::string &message) |
Protected Member Functions inherited from mitk::Tool | |
virtual void | SetToolManager (ToolManager *) |
void | ConnectActionsAndFunctions () override |
Tool () | |
Tool (const char *) | |
virtual | ~Tool () |
virtual void | Notify (InteractionEvent *interactionEvent, bool isHandled) override |
bool | FilterEvents (InteractionEvent *, DataNode *) override |
Protected Member Functions inherited from mitk::EventStateMachine | |
EventStateMachine () | |
virtual | ~EventStateMachine () |
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 (if modified by the SlicesCoordinator) 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 () | |
virtual | ~InteractionEventHandler () |
PropertyList::Pointer | GetAttributes () const |
std::string | MapToEventVariant (InteractionEvent *interactionEvent) |
virtual void | ConfigurationChanged () |
A 2D segmentation tool based on LiveWire approach. The contour between the last user added point and the current mouse position is computed by searching the shortest path according to specific features of the image. The contour thus snappest to the boundary of objects.
Definition at line 49 of file mitkLiveWireTool2D.h.
|
protected |
Definition at line 54 of file mitkLiveWireTool2D.cpp.
|
protectedvirtual |
Definition at line 58 of file mitkLiveWireTool2D.cpp.
|
overrideprotectedvirtual |
Called when the tool gets activated.
Derived tools should call their parents implementation at the beginning of the overriding function.
Reimplemented from mitk::Tool.
Definition at line 144 of file mitkLiveWireTool2D.cpp.
void mitk::LiveWireTool2D::ClearSegmentation | ( | ) |
Delete all current contour objects.
Definition at line 220 of file mitkLiveWireTool2D.cpp.
Pointer mitk::LiveWireTool2D::Clone | ( | ) | const |
void mitk::LiveWireTool2D::ConfirmSegmentation | ( | ) |
Convert all current contour objects to binary segmentation image.
Definition at line 168 of file mitkLiveWireTool2D.cpp.
References mitk::ContourModelUtils::FillContourInSlice(), mitk::BaseData::GetTimeGeometry(), and mitk::ContourModelUtils::ProjectContourTo2DSlice().
|
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::EventStateMachine.
Definition at line 111 of file mitkLiveWireTool2D.cpp.
References CONNECT_CONDITION, and CONNECT_FUNCTION.
|
overrideprotectedvirtual |
Called when the tool gets deactivated.
Derived tools should call their parents implementation at the end of the overriding function.
Reimplemented from mitk::Tool.
Definition at line 151 of file mitkLiveWireTool2D.cpp.
|
protected |
Enable interaction with contours. Contours that are created by the tool can be edited using LiveWire functionality. Points can thus be inserted, moved or deleted.
on | true to have interaction enabled. |
Definition at line 157 of file mitkLiveWireTool2D.cpp.
|
protected |
Definition at line 588 of file mitkLiveWireTool2D.cpp.
References mitk::New().
|
protected |
Finish contour interaction.
Definition at line 489 of file mitkLiveWireTool2D.cpp.
References us::GetModuleContext(), and mitk::DataInteractor::New().
|
overridevirtual |
Returns the path of a cursor icon.
Reimplemented from mitk::Tool.
Definition at line 134 of file mitkLiveWireTool2D.cpp.
References ModuleContext::GetModule(), and us::GetModuleContext().
|
overridevirtual |
Returns the tool button icon of the tool wrapped by a usModuleResource.
Reimplemented from mitk::Tool.
Definition at line 129 of file mitkLiveWireTool2D.cpp.
References ModuleContext::GetModule(), and us::GetModuleContext().
|
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.
Definition at line 139 of file mitkLiveWireTool2D.cpp.
|
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.
Definition at line 124 of file mitkLiveWireTool2D.cpp.
|
protectedvirtual |
IsPositionEventInsideImageRegion.
interactionEvent |
Definition at line 227 of file mitkLiveWireTool2D.cpp.
References mitk::BaseData::GetGeometry(), mitk::InteractionPositionEvent::GetPositionInWorld(), mitk::BaseGeometry::IsInside(), and MITK_WARN.
mitk::LiveWireTool2D::mitkClassMacro | ( | LiveWireTool2D | , |
SegTool2D | |||
) |
|
static |
|
protectedvirtual |
Add a control point and finish current segment.
Definition at line 337 of file mitkLiveWireTool2D.cpp.
References mitk::RenderingManager::GetInstance(), mitk::InteractionPositionEvent::GetPositionInWorld(), mitk::BaseRenderer::GetRenderWindow(), mitk::InteractionEvent::GetSender(), mitk::BaseRenderer::GetTimeStep(), mitk::RenderingManager::RequestUpdate(), and mitk::sqrteps.
|
protectedvirtual |
Check double click on first control point to finish the LiveWire tool.
Definition at line 427 of file mitkLiveWireTool2D.cpp.
References mitk::InteractionPositionEvent::GetPositionInWorld(), mitk::InteractionEvent::GetSender(), and mitk::BaseRenderer::GetTimeStep().
|
protectedvirtual |
Finish LiveWire tool.
Definition at line 458 of file mitkLiveWireTool2D.cpp.
References mitk::SegTool2D::AddContourmarker(), mitk::PlaneGeometry::Clone(), mitk::BaseRenderer::GetCurrentWorldPlaneGeometry(), mitk::InteractionEvent::GetSender(), and mitk::BaseRenderer::GetTimeStep().
|
protectedvirtual |
Initialize tool.
Definition at line 240 of file mitkLiveWireTool2D.cpp.
References AccessFixedDimensionByItk_2, mitk::BaseRenderer::GetCurrentWorldPlaneGeometry(), mitk::DataNode::GetData(), mitk::RenderingManager::GetInstance(), mitk::InteractionPositionEvent::GetPositionInWorld(), mitk::BaseRenderer::GetRenderWindow(), mitk::InteractionEvent::GetSender(), mitk::BaseRenderer::GetSlice(), mitk::BaseRenderer::GetTimeStep(), mitk::BoolProperty::New(), mitk::IntProperty::New(), mitk::FloatProperty::New(), mitk::ContourModel::New(), mitk::ImageLiveWireContourModelFilter::New(), mitk::ColorProperty::New(), mitk::DataNode::New(), and mitk::RenderingManager::RequestUpdate().
|
protectedvirtual |
Close the contour.
Definition at line 521 of file mitkLiveWireTool2D.cpp.
References mitk::RenderingManager::GetInstance(), mitk::BaseRenderer::GetRenderWindow(), mitk::InteractionEvent::GetSender(), mitk::BaseRenderer::GetTimeStep(), mitk::ContourModel::New(), and mitk::RenderingManager::RequestUpdate().
|
protectedvirtual |
Actual LiveWire computation.
Definition at line 396 of file mitkLiveWireTool2D.cpp.
References mitk::InteractionPositionEvent::GetPositionInWorld(), mitk::BaseRenderer::GetRenderingManager(), mitk::BaseRenderer::GetRenderWindow(), mitk::InteractionEvent::GetSender(), mitk::BaseRenderer::GetTimeStep(), and mitk::RenderingManager::RequestUpdate().
|
protectedvirtual |
Don't use dynamic cost map for LiveWire calculation.
Definition at line 419 of file mitkLiveWireTool2D.cpp.
|
protected |
Definition at line 115 of file mitkLiveWireTool2D.h.
|
protected |
Definition at line 133 of file mitkLiveWireTool2D.h.
|
protected |
Definition at line 118 of file mitkLiveWireTool2D.h.
|
protected |
Definition at line 141 of file mitkLiveWireTool2D.h.
|
protected |
Definition at line 127 of file mitkLiveWireTool2D.h.
|
protected |
Definition at line 130 of file mitkLiveWireTool2D.h.
|
protected |
Definition at line 144 of file mitkLiveWireTool2D.h.
|
protected |
Definition at line 121 of file mitkLiveWireTool2D.h.
|
protected |
Definition at line 124 of file mitkLiveWireTool2D.h.
|
protected |
Definition at line 139 of file mitkLiveWireTool2D.h.
|
protected |
Definition at line 145 of file mitkLiveWireTool2D.h.
|
protected |
Definition at line 143 of file mitkLiveWireTool2D.h.
|
protected |
Definition at line 136 of file mitkLiveWireTool2D.h.