Medical Imaging Interaction Toolkit  2016.11.0
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...
 
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...
 
virtual itk::DataObject::Pointer MakeOutput (DataObjectPointerArraySizeType idx) override
 
virtual 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...
 
virtual ~NavigationDataLandmarkTransformFilter ()
 
virtual 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 ()
 
virtual ~NavigationDataToNavigationDataFilter ()
 
void CreateOutputsForAllInputs ()
 Create an output for each input. More...
 
- Protected Member Functions inherited from mitk::NavigationDataSource
 NavigationDataSource ()
 
virtual ~NavigationDataSource ()
 

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
 

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 46 of file mitkNavigationDataLandmarkTransformFilter.h.

Member Typedef Documentation

returns the current landmark transform

Definition at line 116 of file mitkNavigationDataLandmarkTransformFilter.h.

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

Definition at line 122 of file mitkNavigationDataLandmarkTransformFilter.h.

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

Definition at line 54 of file mitkNavigationDataLandmarkTransformFilter.h.

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

Definition at line 123 of file mitkNavigationDataLandmarkTransformFilter.h.

Constructor & Destructor Documentation

mitk::NavigationDataLandmarkTransformFilter::NavigationDataLandmarkTransformFilter ( )
protected
mitk::NavigationDataLandmarkTransformFilter::~NavigationDataLandmarkTransformFilter ( )
protectedvirtual

Member Function Documentation

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

calculate error metrics for the transforms.

Definition at line 152 of file mitkNavigationDataLandmarkTransformFilter.cpp.

References max(), and min().

Pointer mitk::NavigationDataLandmarkTransformFilter::Clone ( ) const
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]sourcesSource landmarks that will be mapped to the target landmarks
[in]targetsTarget landmarks onto which the source landmarks will be mapped
[out]sourcesThe sources container will be sorted, so that landmarks have the same index as their corresponding target landmarks
Returns
true if ICP was successful and sources are sorted , false otherwise

it

it

Definition at line 295 of file mitkNavigationDataLandmarkTransformFilter.cpp.

References mitk::itk2vtk(), max(), MITK_INFO, and mitk::New().

void mitk::NavigationDataLandmarkTransformFilter::GenerateData ( )
overrideprotectedvirtual
mitk::ScalarType mitk::NavigationDataLandmarkTransformFilter::GetAbsMaxError ( ) const

Returns the absolute maximum registration error.

Definition at line 146 of file mitkNavigationDataLandmarkTransformFilter.cpp.

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

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

Definition at line 289 of file mitkNavigationDataLandmarkTransformFilter.cpp.

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

Returns the Fiducial Registration Error.

Definition at line 116 of file mitkNavigationDataLandmarkTransformFilter.cpp.

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

Returns the standard deviation of the Fiducial Registration Error.

Definition at line 122 of file mitkNavigationDataLandmarkTransformFilter.cpp.

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

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

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

Returns the maximum registration error / worst fitting landmark distance.

Definition at line 140 of file mitkNavigationDataLandmarkTransformFilter.cpp.

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

Returns the minimum registration error / best fitting landmark distance.

Definition at line 134 of file mitkNavigationDataLandmarkTransformFilter.cpp.

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

Returns the Root Mean Square of the registration error.

Definition at line 128 of file mitkNavigationDataLandmarkTransformFilter.cpp.

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

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

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

Definition at line 53 of file mitkNavigationDataLandmarkTransformFilter.cpp.

bool mitk::NavigationDataLandmarkTransformFilter::IsInitialized ( ) const
virtual
mitk::NavigationDataLandmarkTransformFilter::mitkClassMacro ( NavigationDataLandmarkTransformFilter  ,
NavigationDataToNavigationDataFilter   
)
static Pointer mitk::NavigationDataLandmarkTransformFilter::New ( )
static
void mitk::NavigationDataLandmarkTransformFilter::PrintSelf ( std::ostream &  os,
itk::Indent  indent 
) const
overrideprotected

print object info to ostream

Definition at line 245 of file mitkNavigationDataLandmarkTransformFilter.cpp.

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

Set points used as source points for landmark transform.

Definition at line 72 of file mitkNavigationDataLandmarkTransformFilter.cpp.

References mitk::FillVector3D().

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

Set points used as target points for landmark transform.

Definition at line 95 of file mitkNavigationDataLandmarkTransformFilter.cpp.

References mitk::FillVector3D().

virtual void mitk::NavigationDataLandmarkTransformFilter::SetUseICPInitialization ( bool  _arg)
virtual
void mitk::NavigationDataLandmarkTransformFilter::UpdateLandmarkTransform ( const LandmarkPointContainer sources,
const LandmarkPointContainer targets 
)
protected

calculates the transform using source and target PointSets

Definition at line 435 of file mitkNavigationDataLandmarkTransformFilter.cpp.

virtual void mitk::NavigationDataLandmarkTransformFilter::UseICPInitializationOff ( )
virtual
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

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

the absolute maximum registration error

Definition at line 174 of file mitkNavigationDataLandmarkTransformFilter.h.

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

maximum registration error / worst fitting landmark distance

Definition at line 173 of file mitkNavigationDataLandmarkTransformFilter.h.

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

Fiducial Registration Error.

Definition at line 169 of file mitkNavigationDataLandmarkTransformFilter.h.

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

minimum registration error / best fitting landmark distance

Definition at line 172 of file mitkNavigationDataLandmarkTransformFilter.h.

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

Root Mean Square of the registration error.

Definition at line 171 of file mitkNavigationDataLandmarkTransformFilter.h.

ErrorVector mitk::NavigationDataLandmarkTransformFilter::m_Errors
protected

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

Definition at line 184 of file mitkNavigationDataLandmarkTransformFilter.h.

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

standard deviation of the Fiducial Registration Error

Definition at line 170 of file mitkNavigationDataLandmarkTransformFilter.h.

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

transform calculated from source and target points

Definition at line 179 of file mitkNavigationDataLandmarkTransformFilter.h.

Referenced by NavigationDataLandmarkTransformFilter().

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

landmark based transform initializer

Definition at line 178 of file mitkNavigationDataLandmarkTransformFilter.h.

Referenced by NavigationDataLandmarkTransformFilter().

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

transform needed to rotate orientation

Definition at line 181 of file mitkNavigationDataLandmarkTransformFilter.h.

Referenced by NavigationDataLandmarkTransformFilter().

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

further transform needed to rotate orientation

Definition at line 182 of file mitkNavigationDataLandmarkTransformFilter.h.

Referenced by NavigationDataLandmarkTransformFilter().

LandmarkPointContainer mitk::NavigationDataLandmarkTransformFilter::m_SourcePoints
protected

positions of the source points

Definition at line 176 of file mitkNavigationDataLandmarkTransformFilter.h.

LandmarkPointContainer mitk::NavigationDataLandmarkTransformFilter::m_TargetPoints
protected

positions of the target points

Definition at line 177 of file mitkNavigationDataLandmarkTransformFilter.h.

bool mitk::NavigationDataLandmarkTransformFilter::m_UseICPInitialization
protected

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

Definition at line 185 of file mitkNavigationDataLandmarkTransformFilter.h.


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