Public Member Functions | Protected Member Functions | List of all members
mirtk::RobustClosestPoint Class Reference

#include <RobustClosestPoint.h>

Inheritance diagram for mirtk::RobustClosestPoint:
Inheritance graph
Collaboration diagram for mirtk::RobustClosestPoint:
Collaboration graph

Public Member Functions

virtual PointCorrespondenceNewInstance () const
 Copy construct a new instance.
 
virtual ParameterList Parameter () const
 Get parameter key/value as string map.
 
 RobustClosestPoint ()
 Default constructor.
 
 RobustClosestPoint (const RegisteredPointSet *, const RegisteredPointSet *)
 Construct correspondence map and initialize it.
 
 RobustClosestPoint (const RobustClosestPoint &)
 Copy constructor.
 
virtual bool Set (const char *, const char *)
 Set parameter value from string.
 
virtual TypeId Type () const
 Type enumeration value.
 
virtual ~RobustClosestPoint ()
 Destructor.
 
- Public Member Functions inherited from mirtk::FuzzyCorrespondence
virtual bool GetInputSourcePoint (int, Point &) const
 Get untransformed source point corresponding to i-th target (sample) point.
 
virtual bool GetInputTargetPoint (int, Point &) const
 Get untransformed target point corresponding to i-th source (sample) point.
 
virtual bool GetSourcePoint (int, Point &) const
 Get (transformed) source point corresponding to i-th target (sample) point.
 
virtual bool GetTargetPoint (int, Point &) const
 Get (transformed) target point corresponding to i-th source (sample) point.
 
virtual void Initialize ()
 Initialize correspondence map.
 
virtual void Reinitialize ()
 Reinitialize correspondence map after change of input topology.
 
virtual void Update ()
 Update correspondence map.
 
virtual bool Upgrade ()
 Update correspondence map after convergence.
 
virtual ~FuzzyCorrespondence ()
 Destructor.
 
- Public Member Functions inherited from mirtk::PointCorrespondence
bool AddFeature (const char *name, double weight=1.0, double slope=1.0, double intercept=.0)
 
int GetIndex (int) const
 
bool GetInputPoint (int, Point &) const
 Get untransformed output point corresponding to i-th input (sample) point.
 
bool GetPoint (int, Point &) const
 Get (transformed) output point corresponding to i-th input (sample) point.
 
virtual int GetSourceIndex (int) const
 
virtual int GetTargetIndex (int) const
 
void RemoveFeature (const char *name)
 
virtual void WriteSpectralPoints (const char *, vtkPointSet *) const
 Write first three spectral coordinates as polydata points.
 
virtual ~PointCorrespondence ()
 Destructor.
 
- Public Member Functions inherited from mirtk::Observable
void AddObserver (Observer &)
 Add observer.
 
void Broadcast (Event, const void *=NULL)
 Broadcast event to observers.
 
void ClearObservers ()
 Delete all observers.
 
void DeleteObserver (Observer &)
 Delete observer.
 
void NotifyObservers (Event, const void *=NULL)
 Notify all observers about given event if this object has changed.
 
int NumberOfObservers () const
 Number of current observers.
 
virtual ~Observable ()
 Destructor.
 
- Public Member Functions inherited from mirtk::Object
virtual const char * NameOfClass () const =0
 Get name of class, which this object is an instance of.
 
bool Parameter (const ParameterList &)
 Set parameters from name/value pairs.
 
virtual ~Object ()
 Destructor.
 

Protected Member Functions

virtual void CalculateWeights ()
 (Re-)calculate weights of correspondence links
 
 mirtkPublicAttributeMacro (double, Sigma)
 
- Protected Member Functions inherited from mirtk::FuzzyCorrespondence
virtual void AddGaussianNoise ()
 Add normally distributed noise to correspondence weights.
 
virtual void CalculateClusters ()
 (Re-)calculate cluster centers from correspondence weights
 
 FuzzyCorrespondence ()
 Default constructor.
 
 FuzzyCorrespondence (const FuzzyCorrespondence &)
 Copy constructor.
 
void Init ()
 
 mirtkAttributeMacro (PointSet, InputTargetClusters)
 Untransformed target clusters corresponding to source points.
 
 mirtkAttributeMacro (PointSet, InputSourceClusters)
 Untransformed source clusters corresponding to target points.
 
 mirtkAttributeMacro (PointSet, TargetClusters)
 (Transformed) Target clusters corresponding to source points
 
 mirtkAttributeMacro (PointSet, SourceClusters)
 (Transformed) Source clusters corresponding to target points
 
 mirtkAttributeMacro (Array< bool >, TargetOutlier)
 Whether a given target cluster is an outlier.
 
 mirtkAttributeMacro (Array< bool >, SourceOutlier)
 Whether a given source cluster is an outlier.
 
 mirtkPublicAttributeMacro (double, MinWeight)
 Minimum correspondence weight (i.e., threshold used to truncate radial weight function)
 
 mirtkPublicAttributeMacro (double, GaussianNoise)
 Standard deviation of normally distributed noise with zero mean.
 
 mirtkReadOnlyAttributeMacro (WeightMatrix, Weight)
 Weight matrix of fuzzy point correspondences.
 
virtual void NormalizeWeights ()
 Normalize correspondence matrix using Sinkhorn-Knopp algorithm.
 
virtual void WriteDataSets (const char *, const char *, bool=true) const
 Write input of data fidelity term.
 
- Protected Member Functions inherited from mirtk::PointCorrespondence
void CompleteFeatureInfo (const RegisteredPointSet *, FeatureList &)
 
void Init ()
 
 mirtkAttributeMacro (int, M)
 Number of point (samples) in target data set.
 
 mirtkAttributeMacro (int, N)
 Number of point (samples) in source data set.
 
 mirtkAttributeMacro (Vector, TargetEigenvalues)
 Eigenvalues corresponding to spectral coordinates of target.
 
 mirtkAttributeMacro (Vector, SourceEigenvalues)
 Eigenvalues corresponding to spectral coordinates of source.
 
 mirtkPublicAggregateMacro (const RegisteredPointSet, Target)
 (Transformed) target data set
 
 mirtkPublicAggregateMacro (const Array< int >, TargetSample)
 Indices of target point samples or NULL if all points are considered.
 
 mirtkPublicAggregateMacro (const RegisteredPointSet, Source)
 (Transformed) source data set
 
 mirtkPublicAggregateMacro (const Array< int >, SourceSample)
 Indices of source point samples or NULL if all points are considered.
 
 mirtkPublicAttributeMacro (FeatureList, TargetFeatures)
 Indices and rescaling parameters of target point features.
 
 mirtkPublicAttributeMacro (FeatureList, SourceFeatures)
 Indices and rescaling parameters of source point features.
 
 mirtkPublicAttributeMacro (int, DimensionOfSpectralPoints)
 Number of eigenmodes used for spectral features if used.
 
 mirtkPublicAttributeMacro (bool, DiffeomorphicSpectralDecomposition)
 Whether to use diffeomorphic spectral matching for spectral decomposition.
 
 mirtkPublicAttributeMacro (bool, UpdateSpectralPoints)
 Whether to update spectral coordinates of moving dataset.
 
 mirtkPublicAttributeMacro (bool, FromTargetToSource)
 Whether target to source correspondences are needed (i.e., GetSourcePoint)
 
 mirtkPublicAttributeMacro (bool, FromSourceToTarget)
 Whether source to target correspondences are needed (i.e., GetTargetPoint)
 
 mirtkPublicAttributeMacro (Direction, DefaultDirection)
 Default direction (i.e., GetPoint)
 
 mirtkReadOnlyAttributeMacro (int, NumberOfFeatures)
 Dimension of feature vectors.
 
 PointCorrespondence (const RegisteredPointSet *=NULL, const RegisteredPointSet *=NULL)
 Constructor.
 
 PointCorrespondence (const PointCorrespondence &)
 Copy constructor.
 
- Protected Member Functions inherited from mirtk::Observable
 Observable ()
 Default constructor.
 
 Observable (const Observable &)
 Copy constructor.
 
Observableoperator= (const Observable &)
 Assignment operator.
 
- Protected Member Functions inherited from mirtk::Object
template<typename... Args>
void Throw (ErrorType err, const char *func, Args... args) const
 

Additional Inherited Members

- Public Types inherited from mirtk::FuzzyCorrespondence
typedef GenericSparseMatrix< float > WeightMatrix
 Sparse matrix type used for fuzzy correspondence weights.
 
- Public Types inherited from mirtk::PointCorrespondence
enum  Direction
 Enumeration of correspondence mapping direction.
 
typedef PointLocator::FeatureInfo FeatureInfo
 Info structure of point feature to use for point matching.
 
typedef PointLocator::FeatureList FeatureList
 List of point features to use for point matching.
 
enum  TypeId {
  Unknown, FiducialMatch, ClosestPoint, ClosestPointLabel,
  ClosestCell, SpectralMatch, RobustClosestPoint, RobustPointMatch
}
 Enumeration of available point correspondence maps. More...
 
- Static Public Member Functions inherited from mirtk::PointCorrespondence
static double Distance2BetweenPoints (const double *a, const double *b, int d=3)
 
static int GetNumberOfPoints (vtkPointSet *dataset, const Array< int > *sample=NULL)
 
static int GetNumberOfPoints (const RegisteredPointSet *dataset, const Array< int > *sample=NULL)
 
static void GetPoint (Point &point, vtkPointSet *dataset, const Array< int > *sample, int index)
 
static void GetPoint (Point &point, const RegisteredPointSet *dataset, const Array< int > *sample, int index)
 
static void GetPoint (double *point, vtkPointSet *dataset, const Array< int > *sample, int index, const FeatureList *feature=NULL)
 
static void GetPoint (double *point, const RegisteredPointSet *dataset, const Array< int > *sample, int index, const FeatureList *feature=NULL)
 
static int GetPointDataIndexByCaseInsensitiveName (vtkPointData *, const string &)
 Get index of point data array using case insensitive name.
 
static int GetPointDimension (vtkPointSet *dataset, const FeatureList *feature)
 
static int GetPointDimension (const RegisteredPointSet *dataset, const FeatureList *feature)
 
static int GetPointIndex (vtkPointSet *dataset, const Array< int > *sample, int index)
 
static int GetPointIndex (const RegisteredPointSet *dataset, const Array< int > *sample, int index)
 
static vtkSmartPointer< vtkPoints > GetPoints (vtkPointSet *dataset, const Array< int > *sample)
 
static vtkSmartPointer< vtkPoints > GetPoints (const RegisteredPointSet *dataset, const Array< int > *sample)
 
static vtkSmartPointer< vtkPointSet > GetPointSet (vtkPointSet *dataset, const Array< int > *sample)
 
static vtkSmartPointer< vtkPointSet > GetPointSet (const RegisteredPointSet *dataset, const Array< int > *sample)
 
static PointCorrespondenceNew (TypeId)
 Construct new instance of specified type.
 
static PointCorrespondenceNew (const char *)
 Construct new instance of specified type.
 
- Static Public Member Functions inherited from mirtk::Object
static const char * NameOfType ()
 Get name of this class type.
 
- Static Protected Member Functions inherited from mirtk::Object
template<typename... Args>
static void ThrowStatic (ErrorType err, const char *cls, const char *func, Args... args)
 

Detailed Description

Improved (iterative) closest point (ICP) correspondences

The point correspondences returned by an instance of this class implement an improvied iterative closest point matching with outlier rejection, the reference method used by

Chui and Rangarajan, "A new point matching algorithm for non-rigid registration", Computer Vision and Image Understanding, 89(2-3), pp. 114–141, 2003.

for comparison to the proposed robust point matching (RPM) algorithm. This algorithm is realized by RobustPointMatch.

See also
FiducialRegistrationError

Definition at line 44 of file RobustClosestPoint.h.

Member Function Documentation

§ mirtkPublicAttributeMacro()

mirtk::RobustClosestPoint::mirtkPublicAttributeMacro ( double  ,
Sigma   
)
protected

Factor by which standard deviation of point distances is multiplied for outlier rejection during (iterative) closest point matching


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