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

NavigationDataLandmarkTransformFilter applies a itk-landmark-transformation defined by source and target pointsets. More...

#include <mitkNavigationDataLandmarkTransformFilter.h>

Inheritance diagram for mitk::NavigationDataLandmarkTransformFilter:
Collaboration diagram for mitk::NavigationDataLandmarkTransformFilter:

Public Types

typedef std::vector< mitk::ScalarTypeErrorVector
 
typedef itk::VersorRigid3DTransform< double > LandmarkTransformType
 

Public Member Functions

 mitkClassMacro (NavigationDataLandmarkTransformFilter, NavigationDataToNavigationDataFilter)
 
Pointer Clone () const
 
virtual void SetSourceLandmarks (mitk::PointSet::Pointer sourcePointSet)
 Set points used as source points for landmark transform. More...
 
virtual void SetTargetLandmarks (mitk::PointSet::Pointer targetPointSet)
 Set points used as target points for landmark transform. More...
 
virtual bool IsInitialized () const
 
mitk::ScalarType GetFRE () const
 Returns the Fiducial Registration Error. More...
 
mitk::ScalarType GetFREStdDev () const
 Returns the standard deviation of the Fiducial Registration Error. More...
 
mitk::ScalarType GetRMSError () const
 Returns the Root Mean Square of the registration error. More...
 
mitk::ScalarType GetMinError () const
 Returns the minimum registration error / best fitting landmark distance. More...
 
mitk::ScalarType GetMaxError () const
 Returns the maximum registration error / worst fitting landmark distance. More...
 
mitk::ScalarType GetAbsMaxError () const
 Returns the absolute maximum registration error. More...
 
const ErrorVectorGetErrorVector () const
 Returns a vector with the euclidean distance of each transformed source point to its respective target point. More...
 
virtual void SetUseICPInitialization (bool _arg)
 
virtual bool GetUseICPInitialization ()
 If set to true, source and target point correspondences are established with iterative closest point optimization. More...
 
virtual void UseICPInitializationOn ()
 If set to true, source and target point correspondences are established with iterative closest point optimization. More...
 
virtual void UseICPInitializationOff ()
 
virtual const LandmarkTransformTypeGetLandmarkTransform ()
 If set to true, source and target point correspondences are established with iterative closest point optimization. More...
 
- Public Member Functions inherited from mitk::NavigationDataToNavigationDataFilter
 mitkClassMacro (NavigationDataToNavigationDataFilter, NavigationDataSource)
 
virtual void SetInput (const NavigationData *nd)
 Set the input of this filter. More...
 
virtual void SetInput (unsigned int idx, const NavigationData *nd)
 Set input with id idx of this filter. More...
 
const NavigationDataGetInput (void) const
 Get the input of this filter. More...
 
const NavigationDataGetInput (unsigned int idx) const
 Get the input with id idx of this filter. More...
 
const NavigationDataGetInput (std::string navDataName) const
 Get the input with name navDataName of this filter. More...
 
DataObjectPointerArraySizeType GetInputIndex (std::string navDataName)
 return the index of the input with name navDataName, throw std::invalid_argument exception if that name was not found More...
 
virtual void ConnectTo (mitk::NavigationDataSource *UpstreamFilter)
 Connects the input of this filter to the outputs of the given NavigationDataSource. More...
 
- Public Member Functions inherited from mitk::NavigationDataSource
 mitkClassMacroItkParent (NavigationDataSource, itk::ProcessObject)
 
virtual std::string GetName ()
 
virtual void SetName (std::string _arg)
 Sets the human readable name of this source. There is also a default name, but you can use this method if you need to define it on your own. More...
 
NavigationDataGetOutput (void)
 return the output (output with id 0) of the filter More...
 
NavigationDataGetOutput (DataObjectPointerArraySizeType idx)
 return the output with id idx of the filter More...
 
NavigationDataGetOutput (const std::string &navDataName)
 return the output with name navDataName of the filter More...
 
NavigationTool::Pointer GetToolMetaData (DataObjectPointerArraySizeType idx)
 
NavigationTool::Pointer GetToolMetaData (const std::string &navDataName)
 
virtual mitk::NavigationToolStorage::Pointer GetToolMetaDataCollection ()
 
virtual void SetToolMetaDataCollection (mitk::NavigationToolStorage::Pointer _arg)
 
DataObjectPointerArraySizeType GetOutputIndex (std::string navDataName)
 return the index of the output with name navDataName, -1 if no output with that name was found More...
 
virtual void RegisterAsMicroservice ()
 Registers this object as a Microservice, making it available to every module and/or plugin. To unregister, call UnregisterMicroservice(). More...
 
virtual void UnRegisterMicroservice ()
 Registers this object as a Microservice, making it available to every module and/or plugin. More...
 
std::string GetMicroserviceID ()
 Returns the id that this device is registered with. The id will only be valid, if the NavigationDataSource has been registered using RegisterAsMicroservice(). More...
 
virtual void GraftNthOutput (unsigned int idx, itk::DataObject *graft)
 Graft the specified DataObject onto this ProcessObject's output. More...
 
virtual void GraftOutput (itk::DataObject *graft)
 Graft the specified DataObject onto this ProcessObject's output. More...
 
itk::DataObject::Pointer MakeOutput (DataObjectPointerArraySizeType idx) override
 
itk::DataObject::Pointer MakeOutput (const DataObjectIdentifierType &name) override
 
virtual void SetParameters (const mitk::PropertyList *)
 Set all filter parameters as the PropertyList p. More...
 
virtual mitk::PropertyList::ConstPointer GetParameters () const
 Get all filter parameters as a PropertyList. More...
 
virtual void Freeze ()
 
virtual void UnFreeze ()
 
virtual bool GetIsFrozen ()
 

Static Public Member Functions

static Pointer New ()
 

Protected Types

typedef itk::Image< signed short, 3 > ImageType
 returns the current landmark transform More...
 
typedef itk::LandmarkBasedTransformInitializer< LandmarkTransformType, ImageType, ImageTypeTransformInitializerType
 
typedef TransformInitializerType::LandmarkPointContainer LandmarkPointContainer
 
typedef itk::QuaternionRigidTransform< double > QuaternionTransformType
 

Protected Member Functions

 NavigationDataLandmarkTransformFilter ()
 Constructor. More...
 
 ~NavigationDataLandmarkTransformFilter () override
 
void GenerateData () override
 transforms input NDs according to the calculated LandmarkTransform More...
 
bool FindCorrespondentLandmarks (LandmarkPointContainer &sources, const LandmarkPointContainer &targets) const
 perform an iterative closest point matching to find corresponding landmarks that will be used for landmark transform calculation More...
 
void InitializeLandmarkTransform (LandmarkPointContainer &sources, const LandmarkPointContainer &targets)
 initializes the transform using source and target PointSets More...
 
void UpdateLandmarkTransform (const LandmarkPointContainer &sources, const LandmarkPointContainer &targets)
 calculates the transform using source and target PointSets More...
 
void AccumulateStatistics (ErrorVector &vector)
 calculate error metrics for the transforms. More...
 
void PrintSelf (std::ostream &os, itk::Indent indent) const override
 print object info to ostream More...
 
- Protected Member Functions inherited from mitk::NavigationDataToNavigationDataFilter
 NavigationDataToNavigationDataFilter ()
 
 ~NavigationDataToNavigationDataFilter () override
 
void CreateOutputsForAllInputs ()
 Create an output for each input. More...
 
- Protected Member Functions inherited from mitk::NavigationDataSource
 NavigationDataSource ()
 
 ~NavigationDataSource () override
 

Protected Attributes

mitk::ScalarType m_ErrorMean
 Fiducial Registration Error. More...
 
mitk::ScalarType m_ErrorStdDev
 standard deviation of the Fiducial Registration Error More...
 
mitk::ScalarType m_ErrorRMS
 Root Mean Square of the registration error. More...
 
mitk::ScalarType m_ErrorMin
 minimum registration error / best fitting landmark distance More...
 
mitk::ScalarType m_ErrorMax
 maximum registration error / worst fitting landmark distance More...
 
mitk::ScalarType m_ErrorAbsMax
 the absolute maximum registration error More...
 
LandmarkPointContainer m_SourcePoints
 positions of the source points More...
 
LandmarkPointContainer m_TargetPoints
 positions of the target points More...
 
TransformInitializerType::Pointer m_LandmarkTransformInitializer
 landmark based transform initializer More...
 
LandmarkTransformType::Pointer m_LandmarkTransform
 transform calculated from source and target points More...
 
QuaternionTransformType::Pointer m_QuatLandmarkTransform
 transform needed to rotate orientation More...
 
QuaternionTransformType::Pointer m_QuatTransform
 further transform needed to rotate orientation More...
 
ErrorVector m_Errors
 stores the euclidean distance of each transformed source landmark and its respective target landmark More...
 
bool m_UseICPInitialization
 find source <--> target point correspondences with iterative closest point optimization More...
 
- Protected Attributes inherited from mitk::NavigationDataSource
std::string m_Name
 
bool m_IsFrozen
 
NavigationToolStorage::Pointer m_ToolMetaDataCollection
 

Additional Inherited Members

- Static Public Attributes inherited from mitk::NavigationDataSource
static const std::string US_INTERFACE_NAME
 These Constants are used in conjunction with Microservices. More...
 
static const std::string US_PROPKEY_DEVICENAME
 
static const std::string US_PROPKEY_ID
 
static const std::string US_PROPKEY_ISACTIVE
 

Detailed Description

NavigationDataLandmarkTransformFilter applies a itk-landmark-transformation defined by source and target pointsets.

Documentation Before executing the filter SetSourceLandmarks and SetTargetLandmarks must be called. Before both source and target landmarks are set, the filter performs an identity transform. If source or target points are changed after calling SetXXXPoints, the corresponding SetXXXPoints method has to be called again to apply the changes. If UseICPInitialization is false (standard value, or set with SetUseICPInitialization(false) or UseICPInitializationOff()) then source landmarks and target landmarks with the same ID must correspond to each other. (--> source landmark with ID x will be mapped to target landmark with ID x). If you do not know the correspondences, call SetUseICPInitialization(true) or UseICPInitializationOn() to let the filter guess the correspondences during initialization with an iterative closest point search. This is only possible, if at least 6 source and target landmarks are available.

Definition at line 42 of file mitkNavigationDataLandmarkTransformFilter.h.

Member Typedef Documentation

◆ ErrorVector

◆ ImageType

returns the current landmark transform

Definition at line 112 of file mitkNavigationDataLandmarkTransformFilter.h.

◆ LandmarkPointContainer

typedef TransformInitializerType::LandmarkPointContainer mitk::NavigationDataLandmarkTransformFilter::LandmarkPointContainer
protected

Definition at line 118 of file mitkNavigationDataLandmarkTransformFilter.h.

◆ LandmarkTransformType

typedef itk::VersorRigid3DTransform< double > mitk::NavigationDataLandmarkTransformFilter::LandmarkTransformType

Definition at line 50 of file mitkNavigationDataLandmarkTransformFilter.h.

◆ QuaternionTransformType

typedef itk::QuaternionRigidTransform<double> mitk::NavigationDataLandmarkTransformFilter::QuaternionTransformType
protected

Definition at line 119 of file mitkNavigationDataLandmarkTransformFilter.h.

◆ TransformInitializerType

Constructor & Destructor Documentation

◆ NavigationDataLandmarkTransformFilter()

mitk::NavigationDataLandmarkTransformFilter::NavigationDataLandmarkTransformFilter ( )
protected

Constructor.

◆ ~NavigationDataLandmarkTransformFilter()

mitk::NavigationDataLandmarkTransformFilter::~NavigationDataLandmarkTransformFilter ( )
overrideprotected

Member Function Documentation

◆ AccumulateStatistics()

void mitk::NavigationDataLandmarkTransformFilter::AccumulateStatistics ( ErrorVector vector)
protected

calculate error metrics for the transforms.

◆ Clone()

Pointer mitk::NavigationDataLandmarkTransformFilter::Clone ( ) const

◆ FindCorrespondentLandmarks()

bool mitk::NavigationDataLandmarkTransformFilter::FindCorrespondentLandmarks ( LandmarkPointContainer sources,
const LandmarkPointContainer targets 
) const
protected

perform an iterative closest point matching to find corresponding landmarks that will be used for landmark transform calculation

Documentation Perform ICP optimization to match source landmarks to target landmarks. Landmark containers must contain at least 6 landmarks for the optimization. after ICP, landmark correspondences are established and the source landmarks are sorted, so that corresponding landmarks have the same indices.

Parameters
[in,out]sourcesSource landmarks that will be mapped to the target landmarks. The sources container will be sorted, so that landmarks have the same index as their corresponding target landmarks.
[in]targetsTarget landmarks onto which the source landmarks will be mapped
Returns
true if ICP was successful and sources are sorted , false otherwise

◆ GenerateData()

void mitk::NavigationDataLandmarkTransformFilter::GenerateData ( )
overrideprotected

transforms input NDs according to the calculated LandmarkTransform

◆ GetAbsMaxError()

mitk::ScalarType mitk::NavigationDataLandmarkTransformFilter::GetAbsMaxError ( ) const

Returns the absolute maximum registration error.

◆ GetErrorVector()

const ErrorVector& mitk::NavigationDataLandmarkTransformFilter::GetErrorVector ( ) const

Returns a vector with the euclidean distance of each transformed source point to its respective target point.

◆ GetFRE()

mitk::ScalarType mitk::NavigationDataLandmarkTransformFilter::GetFRE ( ) const

Returns the Fiducial Registration Error.

◆ GetFREStdDev()

mitk::ScalarType mitk::NavigationDataLandmarkTransformFilter::GetFREStdDev ( ) const

Returns the standard deviation of the Fiducial Registration Error.

◆ GetLandmarkTransform()

virtual const LandmarkTransformType* mitk::NavigationDataLandmarkTransformFilter::GetLandmarkTransform ( )
virtual

If set to true, source and target point correspondences are established with iterative closest point optimization.

◆ GetMaxError()

mitk::ScalarType mitk::NavigationDataLandmarkTransformFilter::GetMaxError ( ) const

Returns the maximum registration error / worst fitting landmark distance.

◆ GetMinError()

mitk::ScalarType mitk::NavigationDataLandmarkTransformFilter::GetMinError ( ) const

Returns the minimum registration error / best fitting landmark distance.

◆ GetRMSError()

mitk::ScalarType mitk::NavigationDataLandmarkTransformFilter::GetRMSError ( ) const

Returns the Root Mean Square of the registration error.

◆ GetUseICPInitialization()

virtual bool mitk::NavigationDataLandmarkTransformFilter::GetUseICPInitialization ( )
virtual

If set to true, source and target point correspondences are established with iterative closest point optimization.

◆ InitializeLandmarkTransform()

void mitk::NavigationDataLandmarkTransformFilter::InitializeLandmarkTransform ( LandmarkPointContainer sources,
const LandmarkPointContainer targets 
)
protected

initializes the transform using source and target PointSets

if UseICPInitialization is true, FindCorrespondentLandmarks() will be used to sort the source landmarks in order to establish corresponding landmark pairs before the landmark transform is build

◆ IsInitialized()

virtual bool mitk::NavigationDataLandmarkTransformFilter::IsInitialized ( ) const
virtual

◆ mitkClassMacro()

mitk::NavigationDataLandmarkTransformFilter::mitkClassMacro ( NavigationDataLandmarkTransformFilter  ,
NavigationDataToNavigationDataFilter   
)

◆ New()

static Pointer mitk::NavigationDataLandmarkTransformFilter::New ( )
static

◆ PrintSelf()

void mitk::NavigationDataLandmarkTransformFilter::PrintSelf ( std::ostream &  os,
itk::Indent  indent 
) const
overrideprotected

print object info to ostream

◆ SetSourceLandmarks()

virtual void mitk::NavigationDataLandmarkTransformFilter::SetSourceLandmarks ( mitk::PointSet::Pointer  sourcePointSet)
virtual

Set points used as source points for landmark transform.

◆ SetTargetLandmarks()

virtual void mitk::NavigationDataLandmarkTransformFilter::SetTargetLandmarks ( mitk::PointSet::Pointer  targetPointSet)
virtual

Set points used as target points for landmark transform.

◆ SetUseICPInitialization()

virtual void mitk::NavigationDataLandmarkTransformFilter::SetUseICPInitialization ( bool  _arg)
virtual

◆ UpdateLandmarkTransform()

void mitk::NavigationDataLandmarkTransformFilter::UpdateLandmarkTransform ( const LandmarkPointContainer sources,
const LandmarkPointContainer targets 
)
protected

calculates the transform using source and target PointSets

◆ UseICPInitializationOff()

virtual void mitk::NavigationDataLandmarkTransformFilter::UseICPInitializationOff ( )
virtual

◆ UseICPInitializationOn()

virtual void mitk::NavigationDataLandmarkTransformFilter::UseICPInitializationOn ( )
virtual

If set to true, source and target point correspondences are established with iterative closest point optimization.

Member Data Documentation

◆ m_ErrorAbsMax

mitk::ScalarType mitk::NavigationDataLandmarkTransformFilter::m_ErrorAbsMax
protected

the absolute maximum registration error

Definition at line 169 of file mitkNavigationDataLandmarkTransformFilter.h.

◆ m_ErrorMax

mitk::ScalarType mitk::NavigationDataLandmarkTransformFilter::m_ErrorMax
protected

maximum registration error / worst fitting landmark distance

Definition at line 168 of file mitkNavigationDataLandmarkTransformFilter.h.

◆ m_ErrorMean

mitk::ScalarType mitk::NavigationDataLandmarkTransformFilter::m_ErrorMean
protected

Fiducial Registration Error.

Definition at line 164 of file mitkNavigationDataLandmarkTransformFilter.h.

◆ m_ErrorMin

mitk::ScalarType mitk::NavigationDataLandmarkTransformFilter::m_ErrorMin
protected

minimum registration error / best fitting landmark distance

Definition at line 167 of file mitkNavigationDataLandmarkTransformFilter.h.

◆ m_ErrorRMS

mitk::ScalarType mitk::NavigationDataLandmarkTransformFilter::m_ErrorRMS
protected

Root Mean Square of the registration error.

Definition at line 166 of file mitkNavigationDataLandmarkTransformFilter.h.

◆ m_Errors

ErrorVector mitk::NavigationDataLandmarkTransformFilter::m_Errors
protected

stores the euclidean distance of each transformed source landmark and its respective target landmark

Definition at line 179 of file mitkNavigationDataLandmarkTransformFilter.h.

◆ m_ErrorStdDev

mitk::ScalarType mitk::NavigationDataLandmarkTransformFilter::m_ErrorStdDev
protected

standard deviation of the Fiducial Registration Error

Definition at line 165 of file mitkNavigationDataLandmarkTransformFilter.h.

◆ m_LandmarkTransform

LandmarkTransformType::Pointer mitk::NavigationDataLandmarkTransformFilter::m_LandmarkTransform
protected

transform calculated from source and target points

Definition at line 174 of file mitkNavigationDataLandmarkTransformFilter.h.

◆ m_LandmarkTransformInitializer

TransformInitializerType::Pointer mitk::NavigationDataLandmarkTransformFilter::m_LandmarkTransformInitializer
protected

landmark based transform initializer

Definition at line 173 of file mitkNavigationDataLandmarkTransformFilter.h.

◆ m_QuatLandmarkTransform

QuaternionTransformType::Pointer mitk::NavigationDataLandmarkTransformFilter::m_QuatLandmarkTransform
protected

transform needed to rotate orientation

Definition at line 176 of file mitkNavigationDataLandmarkTransformFilter.h.

◆ m_QuatTransform

QuaternionTransformType::Pointer mitk::NavigationDataLandmarkTransformFilter::m_QuatTransform
protected

further transform needed to rotate orientation

Definition at line 177 of file mitkNavigationDataLandmarkTransformFilter.h.

◆ m_SourcePoints

LandmarkPointContainer mitk::NavigationDataLandmarkTransformFilter::m_SourcePoints
protected

positions of the source points

Definition at line 171 of file mitkNavigationDataLandmarkTransformFilter.h.

◆ m_TargetPoints

LandmarkPointContainer mitk::NavigationDataLandmarkTransformFilter::m_TargetPoints
protected

positions of the target points

Definition at line 172 of file mitkNavigationDataLandmarkTransformFilter.h.

◆ m_UseICPInitialization

bool mitk::NavigationDataLandmarkTransformFilter::m_UseICPInitialization
protected

find source <--> target point correspondences with iterative closest point optimization

Definition at line 180 of file mitkNavigationDataLandmarkTransformFilter.h.


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