|
User Documentation |
|
Centre for Vision, Speech & Signal Processing |
|
PUBLIC |
PolRegisHC::PolRegisHC(PolopsC &,VectorSetC &,VectorSetC &,const int &,const int &)
PolRegisHC::PolRegisHC(PolopsC &,PolopsC &,const int &,const int &,const int &)
PolRegisHC::PolRegisHC(PolopsC &,VectorSetC &,const int &)
BaseRegisHC::SetExpectedRT(const RigidTransC &)
BaseRegisHC::SetMaxIter(const int &)
BaseRegisHC::SetPrediction(const EnumPrediction &)
BaseRegisHC::SetRMSThresh(const double &)
BaseRegisHC::SetRegWay(const EnumRegWay &)
BaseRegisHC::SetRegType(const SceModT &)
BaseRegisHC::SetMSECalculation(const EnumMseCalculation &)
BaseRegisHC::SetBoundaryCheck(const EnumBoundary &)
BaseRegisHC::SetNormalCheck(const EnumAngle &)
BaseRegisHC::SetDistanceCheck(const EnumSigmaCheck &)
BaseRegisHC::SetHistory(const int &)
BaseRegisHC::SaveHistory2Com(const char *,const char *)
BaseRegisHC::PerformRegistration(RigidTransC)
RCHandleC::IsValid(void) const
RCHandleC::IsValidObject(void) const
RCHandleC::operator=(const RCHandleC &)
RCHandleC::operator==(const RCHandleC &) const
RCHandleC::operator!=(const RCHandleC &) const
RCHandleC::Hash(void) const
RCHandleC::IsConst(void) const
RCHandleC::IsNotConst(void) const
RCHandleC::SetConst(void) const
RCHandleC::Invalidate(void)
RCHandleC::Body(void)
RCHandleC::Body(void) const
|
Comments:
PolRegisHC is a Handle to the Derived Class PolRegisC, which is reference
counted.
Depending on the constructor called, the Class needs either two polops (fixed
and moveable), one polop (fixed) and two vector sets (moveable points and
their normals) or one polop (fixed) and one vector set (moveale points only
).
Depending on the constructor called the random sampling is either done within
the Class or outside it, ie before calling the constructor. If the random
sampling is not done outside the Class then npts points are randomly chosen
from the moveable.
All vector sets that are passed to the constructors must have the same number
of entries i=1...N.
An initial guess is required to start the iterative process of motion
estimate, which is passed to PerformRegistration (a member function of
BaseRegisC). The result of the final transformation that registers the
two surfaces will be returned as a RigidTransC.
The constructor uses the first PolopsC to do the nearest neighbour (NN)
search on.
There are various options provided by the constructor and member functions,
which affect results, except the trace option. See the Base Class for more
details on these options.
More in depth details are given in "PolRegis.hh".
Parent Classes:
Methods:
- PolRegisHC(PolopsC & fixPol,VectorSetC & movPts,VectorSetC & movNmls,const int & npoints = 200,const int & trace = 0)
-
Constructor
| fixPol | IN: The fixed object |
| movPts | IN: Points on the moveable object |
| movNmls | IN: Normals on the moveable object |
| npoints | IN: Number of random points on moveable |
| trace | IN: 1 = Detailed prints & saves data
|
| | 0 = No prints, no savings |
|
- PolRegisHC(PolopsC & fixPol,PolopsC & movPol,const int & npoints = 200,const int & trace = 0,const int & inputRandomNum = -1)
-
Constructor
| fixPol | IN: The fixed object |
| movPol | IN: The moveable object |
| npoints | IN: Number of random points on moveable |
| trace | IN: 1 = Detailed prints & saves data
|
| | 0 = No prints, no savings |
| inputRandomNum | IN: Input number for PolopRanC |
|
Take npoints of points from movPol which are random and
stores in startMovPoints (defined in BaseRegisC)
- PolRegisHC(PolopsC & fixPol,VectorSetC & movPts,const int & trace)
-
Constructor
| fixPol | IN: The fixed object |
| movPpts | IN: Points from the moveable object |
| trace | IN: 1 = Detailed prints & saves data
|
| | 0 = No prints, no savings |
|
NB 1: No random sampling is performed. This is assummed to
have already been done, since this constructor is used
in conjunction with a .vec file.
NB 2: Since the input was from a .vec file, there are no
normals associated with each point.
Hence DO NOT USE SetNormalCheck()!!!! Otherwise
unpredictable behaviour will occur!
- void SetExpectedRT(const RigidTransC & exp = RigidTransC())
-
Sets the expected Final translation & rotation.
| exp | IN: Expected final Translation and Rotation |
|
This is so that it can be compared with the actual translation and
rotation at the end of the print out. It also allows errors to be
computed.
- void SetMaxIter(const int & iteration = 70)
-
Maximum number of iterations before terminating the registration.
| iteration | IN: Maximum number of iterations |
|
- void SetPrediction(const EnumPrediction & prediction = noPrediction)
-
Whether to use prediction or basic ICP.
| prediction | IN: noPrediction = No Prediction
|
| | prediction = Perform Prediction |
|
- void SetRMSThresh(const double & ratioThres = 0.99)
-
Set threshold for RMS error.
| ratioThres | IN: ratio threshold |
|
Termination occurs when 2 successive ratios exceed ratioThres.
See IterationBreak() for details.
- void SetRegWay(const EnumRegWay & regWay = regis)
-
Chooses the function which will calculate the transform to move the moveable onto the new nearest neighbours on the fixed surface.
| regWay | IN: regis = Regis
|
| | pRegis = PRegis |
|
THE DEFAULT IS THE ONLY OPTION CURRENTLY USED !!!!
- void SetRegType(const SceModT & regType = scene_scene)
-
Defines the registration type.
| regType | IN: scene_scene = scene_scene
|
| | model_scene = model_scene |
|
THE DEFAULT IS THE ONLY OPTION CURRENTLY USED !!!!
- void SetMSECalculation(const EnumMseCalculation & mseCalc = standardMse)
-
Sets the calculation type for the MSE.
| mseCalc | IN: standardMse = Standard MSE
|
| | madEstimator = Uses the MAD Estimator |
|
- void SetBoundaryCheck(const EnumBoundary & bound = discardBoundaryPoints)
-
Whether to modify weights of NN pairs that are on the boundary of fixed.
| bound | IN: keepBoundaryPoints = Don't modify weight values
|
| | discardBoundaryPoints = Modify weight values accordingly |
|
- void SetNormalCheck(const EnumAngle & normal = noAngleCheck)
-
Whether to modify weights of NN pairs that have significantly different normal values.
| normal | IN: noAngleCheck = Don't do normal angle check
|
| | doAngleCheck = Do normal angle check |
|
- void SetDistanceCheck(const EnumSigmaCheck & sigma = noDistanceCheck)
-
Whether to modify weights of NN pairs that have significantly greater distances between them & the moving object, compared to the rest overall.
| sigma | IN: noDistanceCheck = Don't do distance check
|
| | doDistanceCheck = Do distance check |
|
- void SetHistory(const int & hst = 0)
-
Used to set whether a history of RTs (RigidTransforms) are kept.
| hst | IN: 0 = Do not keep history of RTs
|
| | 1 = Keep a history of each RT obtained |
| | after each iteration |
|
Note: Call this function before PerformRegistration().
- void SaveHistory2Com(const char * comfname,const char * movfname)
-
Uses the history information and creates a .com file.
| comfname | IN: Filename for .com file |
| movfname | IN: Filename of the moveable file |
|
Note: Call this function after you have called
PerformRegistration().
- RigidTransC PerformRegistration(RigidTransC guess)
-
Execute registration with initial guess, return desired RT.
- BooleanT IsValid() const
-
Check its a valid handle.
- BooleanT IsValidObject() const
-
Check its a valid handle, and that the object is pointed to is also valid.
- RCHandleC<BaseRegisC> & operator=(const RCHandleC<BaseRegisC> & oth)
-
Assignment.
- BooleanT operator==(const RCHandleC<BaseRegisC> & oth) const
-
Comparison operator.
- BooleanT operator!=(const RCHandleC<BaseRegisC> & oth) const
-
Comparison operator.
- UIntT Hash() const
-
Hash function.x
- BooleanT IsConst() const
-
Is object constant ?
- BooleanT IsNotConst() const
-
Is object not constant ?
- void SetConst(void) const
-
Lock the object.
This is const as a convience though it actual modified the
object, often object you wish to ensure are constant already
have const set.
protected:
- void Invalidate()
-
Turn this into an invalid handle.
- BaseRegisC & Body()
-
Direct access to body.
- const BaseRegisC & Body() const
-
Constant access to body.
|
Programmer: Simon Cunnington , Documentation by CxxDoc: Tue Mar 20 10:48:08 2001
|