Medical Imaging Interaction Toolkit  2018.4.99-b585543d
Medical Imaging Interaction Toolkit
mitk::FastMarchingTool3D Class Reference

FastMarching semgentation tool. More...

#include <mitkFastMarchingTool3D.h>

Inheritance diagram for mitk::FastMarchingTool3D:
Collaboration diagram for mitk::FastMarchingTool3D:

Public Types

typedef float InternalPixelType
 
typedef itk::Image< InternalPixelType, 3 > InternalImageType
 
typedef mitk::Tool::DefaultSegmentationDataType OutputPixelType
 
typedef itk::Image< OutputPixelType, 3 > OutputImageType
 
typedef itk::BinaryThresholdImageFilter< InternalImageType, OutputImageTypeThresholdingFilterType
 
typedef itk::CurvatureAnisotropicDiffusionImageFilter< InternalImageType, InternalImageTypeSmoothingFilterType
 
typedef itk::GradientMagnitudeRecursiveGaussianImageFilter< InternalImageType, InternalImageTypeGradientFilterType
 
typedef itk::SigmoidImageFilter< InternalImageType, InternalImageTypeSigmoidFilterType
 
typedef itk::FastMarchingImageFilter< InternalImageType, InternalImageTypeFastMarchingFilterType
 
typedef FastMarchingFilterType::NodeContainer NodeContainer
 
typedef FastMarchingFilterType::NodeType NodeType
 
- 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
 

Public Member Functions

 mitkClassMacro (FastMarchingTool3D, AutoSegmentationTool)
 
Pointer Clone () const
 
bool CanHandle (BaseData *referenceData) const override
 
const char ** GetXPM () const override
 Returns an icon in the XPM format. More...
 
const char * GetName () const override
 Returns the name of this tool. Make it short! More...
 
us::ModuleResource GetIconResource () const override
 Returns the tool button icon of the tool wrapped by a usModuleResource. More...
 
void SetUpperThreshold (double)
 Set parameter used in Threshold filter. More...
 
void SetLowerThreshold (double)
 Set parameter used in Threshold filter. More...
 
void SetStoppingValue (double)
 Set parameter used in Fast Marching filter. More...
 
void SetSigma (double)
 Set parameter used in Gradient Magnitude filter. More...
 
void SetAlpha (double)
 Set parameter used in Fast Marching filter. More...
 
void SetBeta (double)
 Set parameter used in Fast Marching filter. More...
 
virtual void ConfirmSegmentation ()
 Adds the feedback image to the current working image. More...
 
virtual void SetCurrentTimeStep (int t)
 Set the working time step. More...
 
void ClearSeeds ()
 Clear all seed points. More...
 
void Update ()
 Updates the itk pipeline and shows the result of FastMarching. More...
 
- 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 mitk::DataNodeGetTargetSegmentationNode ()
 Depending on the selected mode either returns the currently selected segmentation or creates a new one from the selected reference data and adds the new segmentation to the datastorage. More...
 
- Public Member Functions inherited from mitk::Tool
 mitkClassMacro (Tool, EventStateMachine)
 
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 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)
 
DataNode::Pointer CreateSegmentationNode (Image *image, const std::string &organName, const mitk::Color &color)
 
- 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::EventStateMachine
static const char * GetStaticNameOfClass ()
 
- Static Public Member Functions inherited from mitk::InteractionEventHandler
static const char * GetStaticNameOfClass ()
 

Protected Member Functions

 FastMarchingTool3D ()
 
 ~FastMarchingTool3D () override
 
void Activated () override
 Called when the tool gets activated. More...
 
void Deactivated () override
 Called when the tool gets deactivated. More...
 
virtual void Initialize ()
 
virtual void OnAddPoint ()
 Add point action of StateMachine pattern. More...
 
virtual void OnDelete ()
 Delete action of StateMachine pattern. More...
 
void Reset ()
 Reset all relevant inputs of the itk pipeline. More...
 
- Protected Member Functions inherited from mitk::AutoSegmentationTool
 AutoSegmentationTool ()
 
 ~AutoSegmentationTool () override
 
const char * GetGroup () const override
 Name of a group. More...
 
virtual itk::SmartPointer< ImageGet3DImage (itk::SmartPointer< Image > image, unsigned int timestep)
 
- Protected Member Functions inherited from mitk::Tool
virtual void SetToolManager (ToolManager *)
 
void ConnectActionsAndFunctions () override
 
 Tool ()
 
 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
 
Image::Pointer m_ReferenceImage
 
bool m_NeedUpdate
 
int m_CurrentTimeStep
 
float m_LowerThreshold
 
float m_UpperThreshold
 
float m_StoppingValue
 
float m_Sigma
 
float m_Alpha
 
float m_Beta
 
NodeContainer::Pointer m_SeedContainer
 
InternalImageType::Pointer m_ReferenceImageAsITK
 
mitk::DataNode::Pointer m_ResultImageNode
 
mitk::DataNode::Pointer m_SeedsAsPointSetNode
 
mitk::PointSet::Pointer m_SeedsAsPointSet
 
mitk::PointSetDataInteractor::Pointer m_SeedPointInteractor
 
unsigned int m_PointSetAddObserverTag
 
unsigned int m_PointSetRemoveObserverTag
 
ThresholdingFilterType::Pointer m_ThresholdFilter
 
SmoothingFilterType::Pointer m_SmoothFilter
 
GradientFilterType::Pointer m_GradientMagnitudeFilter
 
SigmoidFilterType::Pointer m_SigmoidFilter
 
FastMarchingFilterType::Pointer m_FastMarchingFilter
 
- 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...
 
ToolManagerm_ToolManager
 
- Protected Attributes inherited from mitk::EventStateMachine
bool m_IsActive
 
UndoControllerm_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...
 
- Protected Types inherited from mitk::EventStateMachine
typedef MessageAbstractDelegate2< StateMachineAction *, InteractionEvent *, void > ActionFunctionDelegate
 
typedef MessageAbstractDelegate1< const InteractionEvent *, bool > ConditionFunctionDelegate
 

Detailed Description

FastMarching semgentation tool.

The segmentation is done by setting one or more seed points on the image and adapting the time range and threshold. The pipeline is: Smoothing->GradientMagnitude->SigmoidFunction->FastMarching->Threshold The resulting binary image is seen as a segmentation of an object.

For detailed documentation see ITK Software Guide section 9.3.1 Fast Marching Segmentation.

Definition at line 51 of file mitkFastMarchingTool3D.h.

Member Typedef Documentation

◆ FastMarchingFilterType

Definition at line 70 of file mitkFastMarchingTool3D.h.

◆ GradientFilterType

typedef itk::GradientMagnitudeRecursiveGaussianImageFilter<InternalImageType, InternalImageType> mitk::FastMarchingTool3D::GradientFilterType

Definition at line 68 of file mitkFastMarchingTool3D.h.

◆ InternalImageType

◆ InternalPixelType

Definition at line 58 of file mitkFastMarchingTool3D.h.

◆ NodeContainer

typedef FastMarchingFilterType::NodeContainer mitk::FastMarchingTool3D::NodeContainer

Definition at line 71 of file mitkFastMarchingTool3D.h.

◆ NodeType

typedef FastMarchingFilterType::NodeType mitk::FastMarchingTool3D::NodeType

Definition at line 72 of file mitkFastMarchingTool3D.h.

◆ OutputImageType

◆ OutputPixelType

◆ SigmoidFilterType

◆ SmoothingFilterType

typedef itk::CurvatureAnisotropicDiffusionImageFilter<InternalImageType, InternalImageType> mitk::FastMarchingTool3D::SmoothingFilterType

Definition at line 67 of file mitkFastMarchingTool3D.h.

◆ ThresholdingFilterType

Definition at line 66 of file mitkFastMarchingTool3D.h.

Constructor & Destructor Documentation

◆ FastMarchingTool3D()

mitk::FastMarchingTool3D::FastMarchingTool3D ( )
protected

Definition at line 35 of file mitkFastMarchingTool3D.cpp.

◆ ~FastMarchingTool3D()

mitk::FastMarchingTool3D::~FastMarchingTool3D ( )
overrideprotected

Definition at line 50 of file mitkFastMarchingTool3D.cpp.

Member Function Documentation

◆ Activated()

◆ CanHandle()

bool mitk::FastMarchingTool3D::CanHandle ( BaseData referenceData) const
overridevirtual

Reimplemented from mitk::Tool.

Definition at line 54 of file mitkFastMarchingTool3D.cpp.

References image.

◆ ClearSeeds()

◆ Clone()

Pointer mitk::FastMarchingTool3D::Clone ( ) const

◆ ConfirmSegmentation()

◆ Deactivated()

void mitk::FastMarchingTool3D::Deactivated ( )
overrideprotectedvirtual

◆ GetIconResource()

us::ModuleResource mitk::FastMarchingTool3D::GetIconResource ( ) const
overridevirtual

Returns the tool button icon of the tool wrapped by a usModuleResource.

Returns
a valid ModuleResource or an invalid if this function is not reimplemented

Reimplemented from mitk::Tool.

Definition at line 75 of file mitkFastMarchingTool3D.cpp.

References ModuleContext::GetModule(), us::GetModuleContext(), and us::Module::GetResource().

◆ GetName()

const char * mitk::FastMarchingTool3D::GetName ( ) const
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 82 of file mitkFastMarchingTool3D.cpp.

◆ GetXPM()

const char ** mitk::FastMarchingTool3D::GetXPM ( ) const
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 70 of file mitkFastMarchingTool3D.cpp.

◆ Initialize()

◆ mitkClassMacro()

mitk::FastMarchingTool3D::mitkClassMacro ( FastMarchingTool3D  ,
AutoSegmentationTool   
)

◆ New()

static Pointer mitk::FastMarchingTool3D::New ( )
static

◆ OnAddPoint()

void mitk::FastMarchingTool3D::OnAddPoint ( )
protectedvirtual

◆ OnDelete()

void mitk::FastMarchingTool3D::OnDelete ( )
protectedvirtual

◆ Reset()

void mitk::FastMarchingTool3D::Reset ( void  )
protected

Reset all relevant inputs of the itk pipeline.

Definition at line 442 of file mitkFastMarchingTool3D.cpp.

References ClearSeeds(), mitk::RenderingManager::GetInstance(), m_ResultImageNode, and mitk::RenderingManager::RequestUpdateAll().

◆ SetAlpha()

void mitk::FastMarchingTool3D::SetAlpha ( double  value)

Set parameter used in Fast Marching filter.

Definition at line 124 of file mitkFastMarchingTool3D.cpp.

References m_Alpha, m_NeedUpdate, and m_SigmoidFilter.

◆ SetBeta()

void mitk::FastMarchingTool3D::SetBeta ( double  value)

Set parameter used in Fast Marching filter.

Definition at line 101 of file mitkFastMarchingTool3D.cpp.

References m_Beta, m_NeedUpdate, and m_SigmoidFilter.

◆ SetCurrentTimeStep()

void mitk::FastMarchingTool3D::SetCurrentTimeStep ( int  t)
virtual

Set the working time step.

Definition at line 452 of file mitkFastMarchingTool3D.cpp.

References Initialize(), and m_CurrentTimeStep.

◆ SetLowerThreshold()

void mitk::FastMarchingTool3D::SetLowerThreshold ( double  value)

Set parameter used in Threshold filter.

Definition at line 94 of file mitkFastMarchingTool3D.cpp.

References m_LowerThreshold, m_NeedUpdate, and m_ThresholdFilter.

◆ SetSigma()

void mitk::FastMarchingTool3D::SetSigma ( double  value)

Set parameter used in Gradient Magnitude filter.

Definition at line 111 of file mitkFastMarchingTool3D.cpp.

References m_GradientMagnitudeFilter, m_NeedUpdate, and m_Sigma.

◆ SetStoppingValue()

void mitk::FastMarchingTool3D::SetStoppingValue ( double  value)

Set parameter used in Fast Marching filter.

Definition at line 134 of file mitkFastMarchingTool3D.cpp.

References m_FastMarchingFilter, m_NeedUpdate, and m_StoppingValue.

◆ SetUpperThreshold()

void mitk::FastMarchingTool3D::SetUpperThreshold ( double  value)

Set parameter used in Threshold filter.

Definition at line 87 of file mitkFastMarchingTool3D.cpp.

References m_NeedUpdate, m_ThresholdFilter, and m_UpperThreshold.

◆ Update()

Member Data Documentation

◆ m_Alpha

float mitk::FastMarchingTool3D::m_Alpha
protected

Definition at line 140 of file mitkFastMarchingTool3D.h.

Referenced by Activated(), and SetAlpha().

◆ m_Beta

float mitk::FastMarchingTool3D::m_Beta
protected

Definition at line 141 of file mitkFastMarchingTool3D.h.

Referenced by Activated(), and SetBeta().

◆ m_CurrentTimeStep

int mitk::FastMarchingTool3D::m_CurrentTimeStep
protected

Definition at line 134 of file mitkFastMarchingTool3D.h.

Referenced by ConfirmSegmentation(), Initialize(), and SetCurrentTimeStep().

◆ m_FastMarchingFilter

FastMarchingFilterType::Pointer mitk::FastMarchingTool3D::m_FastMarchingFilter
protected

◆ m_GradientMagnitudeFilter

GradientFilterType::Pointer mitk::FastMarchingTool3D::m_GradientMagnitudeFilter
protected

Definition at line 157 of file mitkFastMarchingTool3D.h.

Referenced by Activated(), Deactivated(), and SetSigma().

◆ m_LowerThreshold

float mitk::FastMarchingTool3D::m_LowerThreshold
protected

Definition at line 136 of file mitkFastMarchingTool3D.h.

Referenced by Activated(), and SetLowerThreshold().

◆ m_NeedUpdate

bool mitk::FastMarchingTool3D::m_NeedUpdate
protected

◆ m_PointSetAddObserverTag

unsigned int mitk::FastMarchingTool3D::m_PointSetAddObserverTag
protected

Definition at line 152 of file mitkFastMarchingTool3D.h.

Referenced by Activated(), ClearSeeds(), and Deactivated().

◆ m_PointSetRemoveObserverTag

unsigned int mitk::FastMarchingTool3D::m_PointSetRemoveObserverTag
protected

Definition at line 153 of file mitkFastMarchingTool3D.h.

Referenced by Activated(), ClearSeeds(), and Deactivated().

◆ m_ProgressCommand

mitk::ToolCommand::Pointer mitk::FastMarchingTool3D::m_ProgressCommand
protected

Definition at line 128 of file mitkFastMarchingTool3D.h.

Referenced by Activated(), and Update().

◆ m_ReferenceImage

Image::Pointer mitk::FastMarchingTool3D::m_ReferenceImage
protected

Definition at line 130 of file mitkFastMarchingTool3D.h.

Referenced by Initialize(), OnAddPoint(), and Update().

◆ m_ReferenceImageAsITK

InternalImageType::Pointer mitk::FastMarchingTool3D::m_ReferenceImageAsITK
protected

Definition at line 145 of file mitkFastMarchingTool3D.h.

Referenced by Activated(), and Initialize().

◆ m_ResultImageNode

mitk::DataNode::Pointer mitk::FastMarchingTool3D::m_ResultImageNode
protected

Definition at line 147 of file mitkFastMarchingTool3D.h.

Referenced by Activated(), ConfirmSegmentation(), Deactivated(), Reset(), and Update().

◆ m_SeedContainer

NodeContainer::Pointer mitk::FastMarchingTool3D::m_SeedContainer
protected

Definition at line 143 of file mitkFastMarchingTool3D.h.

Referenced by Activated(), ClearSeeds(), OnAddPoint(), and OnDelete().

◆ m_SeedPointInteractor

mitk::PointSetDataInteractor::Pointer mitk::FastMarchingTool3D::m_SeedPointInteractor
protected

Definition at line 151 of file mitkFastMarchingTool3D.h.

Referenced by Activated(), Deactivated(), and Update().

◆ m_SeedsAsPointSet

mitk::PointSet::Pointer mitk::FastMarchingTool3D::m_SeedsAsPointSet
protected

Definition at line 150 of file mitkFastMarchingTool3D.h.

Referenced by Activated(), ClearSeeds(), Deactivated(), and OnAddPoint().

◆ m_SeedsAsPointSetNode

mitk::DataNode::Pointer mitk::FastMarchingTool3D::m_SeedsAsPointSetNode
protected

Definition at line 149 of file mitkFastMarchingTool3D.h.

Referenced by Activated(), ClearSeeds(), Deactivated(), and Update().

◆ m_Sigma

float mitk::FastMarchingTool3D::m_Sigma
protected

Definition at line 139 of file mitkFastMarchingTool3D.h.

Referenced by Activated(), and SetSigma().

◆ m_SigmoidFilter

SigmoidFilterType::Pointer mitk::FastMarchingTool3D::m_SigmoidFilter
protected

Definition at line 158 of file mitkFastMarchingTool3D.h.

Referenced by Activated(), Deactivated(), SetAlpha(), and SetBeta().

◆ m_SmoothFilter

SmoothingFilterType::Pointer mitk::FastMarchingTool3D::m_SmoothFilter
protected

Definition at line 156 of file mitkFastMarchingTool3D.h.

Referenced by Activated(), Deactivated(), and Initialize().

◆ m_StoppingValue

float mitk::FastMarchingTool3D::m_StoppingValue
protected

Definition at line 138 of file mitkFastMarchingTool3D.h.

Referenced by Activated(), and SetStoppingValue().

◆ m_ThresholdFilter

ThresholdingFilterType::Pointer mitk::FastMarchingTool3D::m_ThresholdFilter
protected

◆ m_UpperThreshold

float mitk::FastMarchingTool3D::m_UpperThreshold
protected

Definition at line 137 of file mitkFastMarchingTool3D.h.

Referenced by Activated(), and SetUpperThreshold().


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