Developer Documentation
Centre for Vision, Speech & Signal Processing
USER IN NAMESPACE AMMA TREE ROOT AMMA SEARCH AMMA HOME
 

  PUBLIC
MeanRegisC::MeanRegisC(CorrSetC,SArray1dC,double,int,int,int)
MeanRegisC::~MeanRegisC(void)
MeanRegisC::SetExpectedRTs(SArray1dC)
MeanRegisC::Solve(void)
MeanRegisC::BuildMeanSurface(void)
MeanRegisC::RegToMean(void)
MeanRegisC::CalcMSE(void)
MeanRegisC::Converged(int)
MeanRegisC
 
MeanRegisC registers N point sets, using Pennec's method of mean shape.
 
include "amma/MeanRegis.hh"
User Level:Default
Library:Regis
Example: testcom.cc
Section: 3D Surface.Registration
In Scope:std

Comments:

MeanRegisC registers N point sets, using Pennec's method of mean shape.

There is a mean surface, a concatenated 2d array of correspondence sets of size nptsM (nptsM being the sum of points from all correspondence sets).

The lookup table, setposM, of size nsets, identifies where each set starts in the mean surface (concatenated 2d array).

 Algorithm
   - While not converged do:
        -> Build mean surface.
        -> Register each view to the surface.
 

The constructor allows guesses to be passed which will then be used to initialise the elements of rtsM. Each element being associated with a view.

The expected rigid transforms can be passed via the function SetExpectedRTs, which is only used for the calculation of delta theta.

Variables:
int nviewsM;
The total number of views.

int ncsetsM;
The total number of correspondence sets.

CorrSetC corrsetM;
Correspondence sets, with member functions which for example can apply an RT per view

SArray1dC csetsM;
Handle to correspondence sets, ie. csetsM = corrsetM.csetsM;

SArray1dC setposM;
Lookup table. Gives index entry into mean surface for each view. So the 1st view will have index entry 0. The 2nd view will have the index entry of 0 + (no. points of 1st view). And so on.

int nptsM;
Total no. of points in all corr sets.

VectorSetC meanSurfaceM;
Mean surface.

SArray1dC rtsM;
Transforms associated with each view

SArray1dC rtsexpectedM;
RTs expected (inverses of guesses)

const double RmsThreshM;
Used in convergence test

const int traceM;
Trace: 0->no trace, 1->basic, 2->full

const int minIterationsM;
Termination criteria is not used until the minimum number of iterations has been done.

const int maxIterationsM;
Maximum number of iterations allowed.

const double NearZeroM;
Used for equal to zero tests

Methods:
MeanRegisC(CorrSetC corrset,SArray1dC<RigidTransC> rtguesses,double rmsthresh = 0.99,int trace = 0,int miniter = -1,int maxiter = 1000)

~MeanRegisC()
Destructor.

void SetExpectedRTs(SArray1dC<RigidTransC> expectedrts)
Used to set the expected RTs.

SArray1dC<RigidTransC> Solve(void)
The main function which determines the optimal Rigid Transforms for each view.

void BuildMeanSurface(void)
Creates Mean Surface. RTs are applied during construction to each view.

void RegToMean(void)
Registers each view to the Mean Surface.

double CalcMSE(void)
Calculates MSE

BooleanT Converged(int iteration)
Determines whether convergence has occured.


Programmer: Simon Cunnington , Documentation by CxxDoc: Tue Mar 20 10:49:27 2001