#include <RobustClosestPoint.h>
Public Member Functions | |
virtual PointCorrespondence * | NewInstance () 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. | |
Observable & | operator= (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 PointCorrespondence * | New (TypeId) |
Construct new instance of specified type. | |
static PointCorrespondence * | New (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) |
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.
Definition at line 44 of file RobustClosestPoint.h.
|
protected |
Factor by which standard deviation of point distances is multiplied for outlier rejection during (iterative) closest point matching