|
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.
|
|
virtual bool | GetInputSourcePoint (int, Point &) const =0 |
| Get untransformed source point corresponding to i-th target (sample) point.
|
|
virtual bool | GetInputTargetPoint (int, Point &) const =0 |
| Get untransformed target point corresponding to i-th source (sample) point.
|
|
bool | GetPoint (int, Point &) const |
| Get (transformed) output point corresponding to i-th input (sample) point.
|
|
virtual int | GetSourceIndex (int) const |
|
virtual bool | GetSourcePoint (int, Point &) const =0 |
| Get (transformed) source point corresponding to i-th target (sample) point.
|
|
virtual int | GetTargetIndex (int) const |
|
virtual bool | GetTargetPoint (int, Point &) const =0 |
| Get (transformed) target point corresponding to i-th source (sample) point.
|
|
virtual void | Initialize () |
| Initialize correspondence map.
|
|
virtual PointCorrespondence * | NewInstance () const =0 |
| Copy construct a new instance.
|
|
virtual ParameterList | Parameter () const |
| Get parameter key/value as string map.
|
|
virtual void | Reinitialize () |
| Reinitialize correspondence map after change of input topology.
|
|
void | RemoveFeature (const char *name) |
|
virtual bool | Set (const char *, const char *) |
| Set parameter value from string.
|
|
virtual TypeId | Type () const =0 |
| Type enumeration value.
|
|
virtual void | Update () |
| Update correspondence map after change of input data sets.
|
|
virtual bool | Upgrade () |
|
virtual void | WriteDataSets (const char *, const char *, bool=true) const |
| Write input of data fidelity term.
|
|
virtual void | WriteSpectralPoints (const char *, vtkPointSet *) const |
| Write first three spectral coordinates as polydata points.
|
|
virtual | ~PointCorrespondence () |
| Destructor.
|
|
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.
|
|
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.
|
|
|
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 const char * | NameOfType () |
| Get name of this class type.
|
|
|
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.
|
|
| Observable () |
| Default constructor.
|
|
| Observable (const Observable &) |
| Copy constructor.
|
|
Observable & | operator= (const Observable &) |
| Assignment operator.
|
|
template<typename... Args> |
void | Throw (ErrorType err, const char *func, Args... args) const |
|
Locator of corresponding points of point clouds, curves, or surfaces
An instance of a subclass derived from PointCorrespondence finds the point of the source data set which corresponds to the specified point in the target data set, i.e., a solution of the linear assignment problem. In case of curves or surfaces, the corresponding point need not be an explicit point of the source data set, but can also be a point on the line segment or surface element (cell), respectively.
Definition at line 47 of file PointCorrespondence.h.
bool mirtk::PointCorrespondence::AddFeature |
( |
const char * |
name, |
|
|
double |
weight = 1.0 , |
|
|
double |
slope = 1.0 , |
|
|
double |
intercept = .0 |
|
) |
| |
Add point data array to use as feature in point matching
This function is used to specify the point data to use as features in the point matching. By default, if no features are specified, the spatial coordinates of the points are used. When a feature is added to the lists _TargetFeatures and _SourceFeatures, only the named features are used. The point matching is then done between n-dimensional vectors which are the concatenation of the selected features, where each feature may be linearly rescaled to normalize them or adjust their weight in the matching function. If the spatial coordinates are to be used as features along with other point data features, the feature "spatial coordinates" or "spatial point" must be added explicitly as well.
The feature value used is weight
* (slope
* value + intercept
).
- Parameters
-
[in] | name | Case insensitive name of point data array in both target and source dataset. |
[in] | weight | Weight of feature. |
[in] | slope | Slope of feature rescaling function. |
[in] | intercept | Intercept of feature rescaling function, e.g., to normalize feature to zero mean. |
- Note
- Whether a feature name is valid is determined by FinalizeFeatureLists called by Initialize. This cannot be done by AddFeature because the input poly data objects may not be set yet.