igstk::Landmark3DRegistration Class Reference

This class computes rigid body transformation parameters between two 3D coordinate systems. More...

#include <igstkLandmark3DRegistration.h>

Inheritance diagram for igstk::Landmark3DRegistration:

Inheritance graph
[legend]
Collaboration diagram for igstk::Landmark3DRegistration:

Collaboration graph
[legend]

List of all members.

Public Types

typedef itk::Image< PixelType,
Dimension > 
ImageType
typedef
itk::VersorRigid3DTransform
< double > 
TransformType
 typedefs for the transform types
typedef TransformType::Pointer TransformPointerType
typedef
itk::LandmarkBasedTransformInitializer
< TransformType, ImageType,
ImageType
TransformInitializerType
typedef
TransformInitializerType::LandmarkPointContainer 
LandmarkPointContainerType
typedef
TransformInitializerType::LandmarkPointType 
LandmarkImagePointType
typedef
TransformInitializerType::LandmarkPointType 
LandmarkTrackerPointType
typedef
TransformInitializerType::Pointer 
TransformInitializerPointerType
typedef
LandmarkPointContainerType::const_iterator 
PointsContainerConstIterator

Public Member Functions

void RequestAddImageLandmarkPoint (const LandmarkImagePointType &pt)
 The "RequestAddImageLandmarkPoint" will be used to add point to the image landmark point container.
void RequestAddTrackerLandmarkPoint (const LandmarkImagePointType &pt)
 The "RequestAddTrackerLandmarkPoint" will be used to add a point to the tracker landmark point container.
void RequestResetRegistration ()
 The "RequestResetRegistration" function will be used to start the registration process from the scratch.
void RequestComputeTransform ()
 The "RequestComputeTransform" method will be used to request transform parameter calculation.
void RequestGetTransformFromTrackerToImage ()
 The "RequesteGetTransformFromTrackerToImage" method will be used to request to get the transform from the Tracker to the Image.
void RequestGetTransformFromImageToTracker ()
 The "RequesteGetTransformFromImageToTracker" method will be used to request to get the transform from the Image to the Tracker.
void RequestGetRMSError ()
 The "RequestGetRMSError" method will be used to get the RMS error value.
void RequestSetCollinearityTolerance (const double &tolerance)
 RequestSetCollinearityTolerance method will be used to set collinearity tolerance.
 igstkEventMacro (TransformInitializerEvent, IGSTKEvent)
 Landmark registration events.
 igstkEventMacro (TransformInitializerErrorEvent, IGSTKErrorEvent)
 igstkEventMacro (TransformComputationFailureEvent, TransformInitializerErrorEvent)
 TransformComputationFailureEvent event will be invoked if the transform computation fails.
 igstkEventMacro (TransformComputationSuccessEvent, TransformInitializerEvent)
 TransformComputationSuccessEvent event will be invoked if the transform computation is succesful.

Public Attributes

igstkStandardClassTraitsMacro(Landmark3DRegistration,
Object) public typedef
unsigned char 
PixelType
 Macro with standard traits declarations.

Protected Member Functions

 Landmark3DRegistration (void)
 ~Landmark3DRegistration (void)
void ComputeRMSError ()
 The "ComputeRMSError" method calculates and returns RMS error.
void PrintSelf (std::ostream &os, itk::Indent indent) const
 Print the object information in a stream.


Detailed Description

This class computes rigid body transformation parameters between two 3D coordinate systems.

The Landmark registration class is used to compute rigid body transformation parameters between two 3D coordinate system. For example, transformation between an image coordinate system and a tracker system. The registration algorithm is based on a closed-form solution to the least-squares problem of computing transformation parameters between two coordinate sytems. A minimum of three pair of landmarks are required. The class is basically a wrapper around the itk::LandmarkBasedTransformInitializer.

Before computing the transformation parameters, the algorithm checks if the landmarks are collinear by analyzing the eigen values of the geometric distribution of the landmark points. For this purpose, a tolerance metric is defined. The tolerance metric is given by the ratio of the square sum of the two smallest eigen values to the square of the largest eigen value. By default, the tolerance value is set to 0.01. However, the user can modify the tolerance using RequestSetCollinearityTolerance() method.

igstkLandmark3DRegistration.png

State Machine Diagram

Definition at line 62 of file igstkLandmark3DRegistration.h.


Member Typedef Documentation

typedef itk::Image< PixelType, Dimension > igstk::Landmark3DRegistration::ImageType

Definition at line 77 of file igstkLandmark3DRegistration.h.

typedef itk::VersorRigid3DTransform< double > igstk::Landmark3DRegistration::TransformType

typedefs for the transform types

Definition at line 80 of file igstkLandmark3DRegistration.h.

Definition at line 81 of file igstkLandmark3DRegistration.h.

Definition at line 84 of file igstkLandmark3DRegistration.h.

typedef TransformInitializerType::LandmarkPointContainer igstk::Landmark3DRegistration::LandmarkPointContainerType

Definition at line 87 of file igstkLandmark3DRegistration.h.

typedef TransformInitializerType::LandmarkPointType igstk::Landmark3DRegistration::LandmarkImagePointType

Definition at line 89 of file igstkLandmark3DRegistration.h.

typedef TransformInitializerType::LandmarkPointType igstk::Landmark3DRegistration::LandmarkTrackerPointType

Definition at line 91 of file igstkLandmark3DRegistration.h.

typedef TransformInitializerType::Pointer igstk::Landmark3DRegistration::TransformInitializerPointerType

Definition at line 93 of file igstkLandmark3DRegistration.h.

typedef LandmarkPointContainerType::const_iterator igstk::Landmark3DRegistration::PointsContainerConstIterator

Definition at line 96 of file igstkLandmark3DRegistration.h.


Constructor & Destructor Documentation

igstk::Landmark3DRegistration::Landmark3DRegistration ( void   )  [protected]

igstk::Landmark3DRegistration::~Landmark3DRegistration ( void   )  [protected]


Member Function Documentation

void igstk::Landmark3DRegistration::RequestAddImageLandmarkPoint ( const LandmarkImagePointType pt  ) 

The "RequestAddImageLandmarkPoint" will be used to add point to the image landmark point container.

void igstk::Landmark3DRegistration::RequestAddTrackerLandmarkPoint ( const LandmarkImagePointType pt  ) 

The "RequestAddTrackerLandmarkPoint" will be used to add a point to the tracker landmark point container.

void igstk::Landmark3DRegistration::RequestResetRegistration (  ) 

The "RequestResetRegistration" function will be used to start the registration process from the scratch.

This method empties both the image and tracker point containers and reset the system to idle state

void igstk::Landmark3DRegistration::RequestComputeTransform (  ) 

The "RequestComputeTransform" method will be used to request transform parameter calculation.

void igstk::Landmark3DRegistration::RequestGetTransformFromTrackerToImage (  ) 

The "RequesteGetTransformFromTrackerToImage" method will be used to request to get the transform from the Tracker to the Image.

void igstk::Landmark3DRegistration::RequestGetTransformFromImageToTracker (  ) 

The "RequesteGetTransformFromImageToTracker" method will be used to request to get the transform from the Image to the Tracker.

void igstk::Landmark3DRegistration::RequestGetRMSError (  ) 

The "RequestGetRMSError" method will be used to get the RMS error value.

void igstk::Landmark3DRegistration::RequestSetCollinearityTolerance ( const double &  tolerance  ) 

RequestSetCollinearityTolerance method will be used to set collinearity tolerance.

igstk::Landmark3DRegistration::igstkEventMacro ( TransformInitializerEvent  ,
IGSTKEvent   
)

Landmark registration events.

igstk::Landmark3DRegistration::igstkEventMacro ( TransformInitializerErrorEvent  ,
IGSTKErrorEvent   
)

igstk::Landmark3DRegistration::igstkEventMacro ( TransformComputationFailureEvent  ,
TransformInitializerErrorEvent   
)

TransformComputationFailureEvent event will be invoked if the transform computation fails.

igstk::Landmark3DRegistration::igstkEventMacro ( TransformComputationSuccessEvent  ,
TransformInitializerEvent   
)

TransformComputationSuccessEvent event will be invoked if the transform computation is succesful.

void igstk::Landmark3DRegistration::ComputeRMSError (  )  [protected]

The "ComputeRMSError" method calculates and returns RMS error.

void igstk::Landmark3DRegistration::PrintSelf ( std::ostream &  os,
itk::Indent  indent 
) const [protected, virtual]

Print the object information in a stream.

Reimplemented from igstk::Object.


Member Data Documentation

igstkStandardClassTraitsMacro ( Landmark3DRegistration, Object ) public typedef unsigned char igstk::Landmark3DRegistration::PixelType

Macro with standard traits declarations.

Typedefs typedefs for image and pixel type

Definition at line 68 of file igstkLandmark3DRegistration.h.


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

Generated on Thu Feb 12 09:45:56 2009 for IGSTK by  doxygen 1.5.8