Medical Imaging Interaction Toolkit  2023.04.00
Medical Imaging Interaction Toolkit
mitk::SurfaceInterpolationController Class Reference

#include <mitkSurfaceInterpolationController.h>

Inheritance diagram for mitk::SurfaceInterpolationController:
Collaboration diagram for mitk::SurfaceInterpolationController:

Classes

struct  ContourPositionInformation
 

Public Types

typedef std::vector< ContourPositionInformationContourPositionInformationList
 
typedef std::vector< ContourPositionInformationListContourPositionInformationVec2D
 
typedef std::vector< ContourPositionInformationVec2DContourPositionInformationVec3D
 
typedef std::map< mitk::Image *, ContourPositionInformationVec3DContourListMap
 
typedef std::map< mitk::Image *, ContourPositionInformationVec2DContourContainer
 

Public Member Functions

 mitkClassMacroItkParent (SurfaceInterpolationController, itk::Object)
 
Pointer Clone () const
 
virtual double GetDistanceImageSpacing ()
 
void SetCurrentTimePoint (TimePointType tp)
 
TimePointType GetCurrentTimePoint () const
 
void AddNewContour (Surface::Pointer newContour)
 Adds a new extracted contour to the list. More...
 
void AddNewContours (const std::vector< Surface::Pointer > &newContours, std::vector< const mitk::PlaneGeometry * > &contourPlanes, bool reinitializeAction=false)
 Adds new extracted contours to the list. If one or more contours at a given position already exist they will be updated respectively. More...
 
const mitk::SurfaceGetContour (const ContourPositionInformation &contourInfo)
 Returns the contour for a given plane for the current selected segmenation. More...
 
mitk::Point3D ComputeInteriorPointOfContour (const ContourPositionInformation &contour, mitk::LabelSetImage *labelSetImage)
 Computes an interior point of the input contour. It's used to detect merge and erase operations. More...
 
void AddLabelSetConnection ()
 Make the surface interpolator responsive to the segmentation image by subscribing to events from the image. More...
 
void RemoveLabelSetConnection ()
 Make the surface interpolator responsive to the segmentation image by stopping subscription to events from the image. More...
 
void RemoveLabelSetConnection (mitk::LabelSetImage *labelSetImage, unsigned int layerID)
 
void ReinitializeInterpolation ()
 Resets the pipeline for interpolation. The various filters used are reset. More...
 
void RemoveObservers ()
 
void AddLabelSetConnection (unsigned int layerID)
 
void UnsetSelectedImage ()
 
unsigned int GetNumberOfLayersInCurrentSegmentation () const
 Returns the number of layers in the current segmentation image. More...
 
void SetNumberOfLayersInCurrentSegmentation (unsigned int)
 Set the number of layers in the current segmentation image. More...
 
void OnRemoveLayer ()
 Function that does the data management when a layer is removed. More...
 
void OnAddLayer ()
 Function that does the data management when a layer is added. More...
 
unsigned int GetNumberOfContours ()
 Returns the number of available contours for the current selected segmentation. More...
 
void Interpolate ()
 Performs the interpolation. More...
 
mitk::Surface::Pointer GetInterpolationResult ()
 Get the Result of the interpolation operation. More...
 
void SetMinSpacing (double minSpacing)
 Sets the minimum spacing of the current selected segmentation This is needed since the contour points we reduced before they are used to interpolate the surface. More...
 
void SetMaxSpacing (double maxSpacing)
 Sets the minimum spacing of the current selected segmentation This is needed since the contour points we reduced before they are used to interpolate the surface. More...
 
void SetDistanceImageVolume (unsigned int distImageVolume)
 
mitk::Image::Pointer GetCurrentSegmentation ()
 Get the current selected segmentation for which the interpolation is performed. More...
 
SurfaceGetContoursAsSurface ()
 
void SetDataStorage (DataStorage::Pointer ds)
 
void SetCurrentSegmentationInterpolationList (mitk::Image::Pointer segmentation)
 
void SetCurrentInterpolationSession (mitk::Image::Pointer currentSegmentationImage)
 
void RemoveSegmentationFromContourList (mitk::Image *segmentation)
 
void RemoveInterpolationSession (mitk::Image::Pointer segmentationImage)
 Remove interpolation session. More...
 
bool ReplaceInterpolationSession (mitk::Image::Pointer oldSession, mitk::Image::Pointer newSession)
 
void RemoveAllInterpolationSessions ()
 Removes all sessions. More...
 
mitk::ImageGetImage ()
 
ContourPositionInformationListGetContours (unsigned int timeStep, unsigned int layerID)
 Get the Contours at a certain timeStep and layerID. More...
 
void CompleteReinitialization (const std::vector< mitk::Surface::Pointer > &contourList, std::vector< const mitk::PlaneGeometry * > &contourPlanes)
 Trigerred with the "Reinit Interpolation" action. The contours are used to repopulate the surfaceInterpolator data structures so that interpolation can be performed after reloading data. More...
 
void RemoveContours (mitk::Label::PixelType label, unsigned int timeStep, unsigned int layerID)
 Removes contours of a particular label, at a given time step and layerID. More...
 
double EstimatePortionOfNeededMemory ()
 
void AddActiveLabelContoursForInterpolation (mitk::Label::PixelType activeLabel)
 
unsigned int GetNumberOfInterpolationSessions ()
 
bool RemoveContour (ContourPositionInformation contourInfo)
 Removes the contour for a given plane for the current selected segmenation. More...
 
mitk::DataNodeGetSegmentationImageNode ()
 Get the Segmentation Image Node object. More...
 

Static Public Member Functions

static Pointer New ()
 
static SurfaceInterpolationControllerGetInstance ()
 

Protected Member Functions

 SurfaceInterpolationController ()
 
 ~SurfaceInterpolationController () override
 
template<typename TPixel , unsigned int VImageDimension>
void GetImageBase (itk::Image< TPixel, VImageDimension > *input, itk::ImageBase< 3 >::Pointer &result)
 

Detailed Description

Definition at line 30 of file mitkSurfaceInterpolationController.h.

Member Typedef Documentation

◆ ContourContainer

◆ ContourListMap

◆ ContourPositionInformationList

◆ ContourPositionInformationVec2D

◆ ContourPositionInformationVec3D

Constructor & Destructor Documentation

◆ SurfaceInterpolationController()

mitk::SurfaceInterpolationController::SurfaceInterpolationController ( )
protected

◆ ~SurfaceInterpolationController()

mitk::SurfaceInterpolationController::~SurfaceInterpolationController ( )
overrideprotected

Member Function Documentation

◆ AddActiveLabelContoursForInterpolation()

void mitk::SurfaceInterpolationController::AddActiveLabelContoursForInterpolation ( mitk::Label::PixelType  activeLabel)

Adds Contours from the active Label to the interpolation pipeline

◆ AddLabelSetConnection() [1/2]

void mitk::SurfaceInterpolationController::AddLabelSetConnection ( )

Make the surface interpolator responsive to the segmentation image by subscribing to events from the image.

◆ AddLabelSetConnection() [2/2]

void mitk::SurfaceInterpolationController::AddLabelSetConnection ( unsigned int  layerID)

◆ AddNewContour()

void mitk::SurfaceInterpolationController::AddNewContour ( Surface::Pointer  newContour)

Adds a new extracted contour to the list.

Parameters
newContourthe contour to be added. If a contour at that position already exists the related contour will be updated

◆ AddNewContours()

void mitk::SurfaceInterpolationController::AddNewContours ( const std::vector< Surface::Pointer > &  newContours,
std::vector< const mitk::PlaneGeometry * > &  contourPlanes,
bool  reinitializeAction = false 
)

Adds new extracted contours to the list. If one or more contours at a given position already exist they will be updated respectively.

◆ Clone()

Pointer mitk::SurfaceInterpolationController::Clone ( ) const

◆ CompleteReinitialization()

void mitk::SurfaceInterpolationController::CompleteReinitialization ( const std::vector< mitk::Surface::Pointer > &  contourList,
std::vector< const mitk::PlaneGeometry * > &  contourPlanes 
)

Trigerred with the "Reinit Interpolation" action. The contours are used to repopulate the surfaceInterpolator data structures so that interpolation can be performed after reloading data.

Parameters
contourListList of contours extracted
contourPlanesList of planes at which the contours were extracted

◆ ComputeInteriorPointOfContour()

mitk::Point3D mitk::SurfaceInterpolationController::ComputeInteriorPointOfContour ( const ContourPositionInformation contour,
mitk::LabelSetImage labelSetImage 
)

Computes an interior point of the input contour. It's used to detect merge and erase operations.

Parameters
contourContour for which to compute the contour
labelSetImageLabelSetImage used input to check contour Label.
Returns
mitk::Point3D 3D Interior point of the contour returned.

◆ EstimatePortionOfNeededMemory()

double mitk::SurfaceInterpolationController::EstimatePortionOfNeededMemory ( )

Estimates the memory which is needed to build up the equationsystem for the interpolation.

Returns
The percentage of the real memory which will be used by the interpolation

◆ GetContour()

const mitk::Surface* mitk::SurfaceInterpolationController::GetContour ( const ContourPositionInformation contourInfo)

Returns the contour for a given plane for the current selected segmenation.

Parameters
contourInfothe contour which should be returned
Returns
the contour as an mitk::Surface. If no contour is available at the give position nullptr is returned

◆ GetContours()

ContourPositionInformationList* mitk::SurfaceInterpolationController::GetContours ( unsigned int  timeStep,
unsigned int  layerID 
)

Get the Contours at a certain timeStep and layerID.

Parameters
timeStepTime Step from which to get the contours.
layerIDLayer from which to get the contours.
Returns
std::vector<ContourPositionInformation> Returns contours.

◆ GetContoursAsSurface()

Surface* mitk::SurfaceInterpolationController::GetContoursAsSurface ( )

◆ GetCurrentSegmentation()

mitk::Image::Pointer mitk::SurfaceInterpolationController::GetCurrentSegmentation ( )

Get the current selected segmentation for which the interpolation is performed.

Returns
the current segmentation image

◆ GetCurrentTimePoint()

TimePointType mitk::SurfaceInterpolationController::GetCurrentTimePoint ( ) const
inline

Definition at line 85 of file mitkSurfaceInterpolationController.h.

◆ GetDistanceImageSpacing()

virtual double mitk::SurfaceInterpolationController::GetDistanceImageSpacing ( )
virtual

◆ GetImage()

mitk::Image* mitk::SurfaceInterpolationController::GetImage ( )

◆ GetImageBase()

template<typename TPixel , unsigned int VImageDimension>
void mitk::SurfaceInterpolationController::GetImageBase ( itk::Image< TPixel, VImageDimension > *  input,
itk::ImageBase< 3 >::Pointer &  result 
)
protected

◆ GetInstance()

static SurfaceInterpolationController* mitk::SurfaceInterpolationController::GetInstance ( )
static

◆ GetInterpolationResult()

mitk::Surface::Pointer mitk::SurfaceInterpolationController::GetInterpolationResult ( )

Get the Result of the interpolation operation.

Returns
mitk::Surface::Pointer

◆ GetNumberOfContours()

unsigned int mitk::SurfaceInterpolationController::GetNumberOfContours ( )

Returns the number of available contours for the current selected segmentation.

Returns
the number of contours

◆ GetNumberOfInterpolationSessions()

unsigned int mitk::SurfaceInterpolationController::GetNumberOfInterpolationSessions ( )

◆ GetNumberOfLayersInCurrentSegmentation()

unsigned int mitk::SurfaceInterpolationController::GetNumberOfLayersInCurrentSegmentation ( ) const

Returns the number of layers in the current segmentation image.

◆ GetSegmentationImageNode()

mitk::DataNode* mitk::SurfaceInterpolationController::GetSegmentationImageNode ( )

Get the Segmentation Image Node object.

Returns
DataNode* returns the DataNode containing the segmentation image.

◆ Interpolate()

void mitk::SurfaceInterpolationController::Interpolate ( )

Performs the interpolation.

◆ mitkClassMacroItkParent()

mitk::SurfaceInterpolationController::mitkClassMacroItkParent ( SurfaceInterpolationController  ,
itk::Object   
)

◆ New()

static Pointer mitk::SurfaceInterpolationController::New ( )
static

◆ OnAddLayer()

void mitk::SurfaceInterpolationController::OnAddLayer ( )

Function that does the data management when a layer is added.

◆ OnRemoveLayer()

void mitk::SurfaceInterpolationController::OnRemoveLayer ( )

Function that does the data management when a layer is removed.

◆ ReinitializeInterpolation()

void mitk::SurfaceInterpolationController::ReinitializeInterpolation ( )

Resets the pipeline for interpolation. The various filters used are reset.

◆ RemoveAllInterpolationSessions()

void mitk::SurfaceInterpolationController::RemoveAllInterpolationSessions ( )

Removes all sessions.

◆ RemoveContour()

bool mitk::SurfaceInterpolationController::RemoveContour ( ContourPositionInformation  contourInfo)

Removes the contour for a given plane for the current selected segmenation.

Parameters
contourInfothe contour which should be removed
Returns
true if a contour was found and removed, false if no contour was found

◆ RemoveContours()

void mitk::SurfaceInterpolationController::RemoveContours ( mitk::Label::PixelType  label,
unsigned int  timeStep,
unsigned int  layerID 
)

Removes contours of a particular label, at a given time step and layerID.

Parameters
labelLabel of contour to remove.
timeStepTime step in which to remove the contours.
layerIDLayer in which the contour should be removed.

◆ RemoveInterpolationSession()

void mitk::SurfaceInterpolationController::RemoveInterpolationSession ( mitk::Image::Pointer  segmentationImage)

Remove interpolation session.

Parameters
segmentationImagethe session to be removed

◆ RemoveLabelSetConnection() [1/2]

void mitk::SurfaceInterpolationController::RemoveLabelSetConnection ( )

Make the surface interpolator responsive to the segmentation image by stopping subscription to events from the image.

◆ RemoveLabelSetConnection() [2/2]

void mitk::SurfaceInterpolationController::RemoveLabelSetConnection ( mitk::LabelSetImage labelSetImage,
unsigned int  layerID 
)

◆ RemoveObservers()

void mitk::SurfaceInterpolationController::RemoveObservers ( )

◆ RemoveSegmentationFromContourList()

void mitk::SurfaceInterpolationController::RemoveSegmentationFromContourList ( mitk::Image segmentation)

Removes the segmentation and all its contours from the list

Parameters
segmentationThe segmentation to be removed
Deprecated:
(as of 2014_03)

◆ ReplaceInterpolationSession()

bool mitk::SurfaceInterpolationController::ReplaceInterpolationSession ( mitk::Image::Pointer  oldSession,
mitk::Image::Pointer  newSession 
)

Replaces the current interpolation session with a new one. All contours form the old session will be applied to the new session. This only works if the two images have the geometry

Parameters
oldSessionthe session which should be replaced
newSessionthe new session which replaces the old one
Returns
true it the the replacement was successful, false if not (e.g. the image's geometry differs)

◆ SetCurrentInterpolationSession()

void mitk::SurfaceInterpolationController::SetCurrentInterpolationSession ( mitk::Image::Pointer  currentSegmentationImage)

Sets the current list of contourpoints which is used for the surface interpolation

Parameters
currentSegmentationImageThe current selected segmentation

◆ SetCurrentSegmentationInterpolationList()

void mitk::SurfaceInterpolationController::SetCurrentSegmentationInterpolationList ( mitk::Image::Pointer  segmentation)

Sets the current list of contourpoints which is used for the surface interpolation

Parameters
segmentationThe current selected segmentation
Deprecated:
(as of 2014_03)

◆ SetCurrentTimePoint()

void mitk::SurfaceInterpolationController::SetCurrentTimePoint ( TimePointType  tp)
inline

Definition at line 72 of file mitkSurfaceInterpolationController.h.

◆ SetDataStorage()

void mitk::SurfaceInterpolationController::SetDataStorage ( DataStorage::Pointer  ds)

◆ SetDistanceImageVolume()

void mitk::SurfaceInterpolationController::SetDistanceImageVolume ( unsigned int  distImageVolume)

Sets the volume i.e. the number of pixels that the distance image should have By evaluation we found out that 50.000 pixel delivers a good result

◆ SetMaxSpacing()

void mitk::SurfaceInterpolationController::SetMaxSpacing ( double  maxSpacing)

Sets the minimum spacing of the current selected segmentation This is needed since the contour points we reduced before they are used to interpolate the surface.

Parameters
maxSpacingSet the max Spacing for interpolation

◆ SetMinSpacing()

void mitk::SurfaceInterpolationController::SetMinSpacing ( double  minSpacing)

Sets the minimum spacing of the current selected segmentation This is needed since the contour points we reduced before they are used to interpolate the surface.

Parameters
minSpacingParamter to set

◆ SetNumberOfLayersInCurrentSegmentation()

void mitk::SurfaceInterpolationController::SetNumberOfLayersInCurrentSegmentation ( unsigned int  )

Set the number of layers in the current segmentation image.

◆ UnsetSelectedImage()

void mitk::SurfaceInterpolationController::UnsetSelectedImage ( )
inline

Definition at line 142 of file mitkSurfaceInterpolationController.h.


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