|
User Documentation |
|
Centre for Vision, Speech & Signal Processing |
Comments:
RanRegisC is derived from the base abstract class BaseRegisC and is reference
counted (Big Object). This is the Body and should not be used directly. It
should be used by the provided Handle Class.
The class requires two range images (FloatRangeC).
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 range image 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.
Parent Classes:
Variables:
Methods:
- int NoValidPoints(const FloatRangeC & mov)
-
This is to be used by the constructor only!!!!!
| mov | IN: The moveable object |
|
It is just to determine the number of valid points within
the moveable FloatRangeC.
- RanRegisC(const FloatRangeC & fix,const FloatRangeC & mov,const int & trace = 0,const RigidTransC & preReg = RigidTransC())
-
Constructor
| fix | IN: The fixed object |
| mov | IN: The moveable object |
| trace | IN: 1 = Detailed prints & save data
|
| | 0 = No prints, no savings |
|
- ~RanRegisC()
-
Destructor
- 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 = 1000)
-
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.
- BodyRefCounterVC & Copy() const
-
Creat a copy of this object.
- BooleanT operator==(const BodyRefCounterVC & oth) const
-
Compair identitys.
- BooleanT operator!=(const BodyRefCounterVC & oth) const
-
Compair identitys.
- BooleanT Save(ostream & out) const
-
Save to ostream.
- void AddReference()
-
Another reference to the object has been created.
- void RemoveReference()
-
One reference to the object was deleted.
Locking scheme
--------------
The object is possible to lock (to make constant). The scheme
assumes that the object is created, it can be locked, after that
it can only be destroyed. The locked object cannot be unlocked.
This locking scheme is very useful
during debugging, using assert() function,
when it is necassary to check that object
is treated as constant and the constancy is not violated by
any casting or passing through the copy constructor of shared
objects.
- void SetConst(void) const
-
This locks the object.
Often objects you wish to lock are already const.
- void SetConst(void)
-
This locks the object.
- BooleanT IsConst(void) const
-
Returns TRUE if the object is locked, ie. it is assumed to be constant.
- BooleanT IsNotConst(void) const
-
Returns TRUE if the object is unlocked.
ie. there is no special
information if the object is constant or not.
Counter state information
-------------------------
- BooleanT ToBeDeleted() const
-
Returns TRUE if there is only one reference to the object and the whole object or its reference counting part can be deleted.
- BooleanT ToBeDeletedRemoveIgnoreNoRemove()
-
Decrement refrence by 1 return true if this leaves no refrences to the object.
- BooleanT ToBeDeletedRemove()
-
Decrement refrence by 1 return true if this leaves no refrences to the object. This also checks the NoRemove flag.
- BooleanT BodyMightBeDeleted() const
-
Returns TRUE if the reference counted part of the object can be deleted, ie. flag NOREMOVE is false .
- BooleanT IsCountZero() const
-
Are there any refrences left ?
- BooleanT BRCPtrCanDeleteObject() const
-
Used by BRRCPtrC to establish if an object has ZERO refrences and can be deleted.
- IntT Count() const
-
Returns the current state of the counter, ie. how many references to this object exist.
- const BodyRefCounterC & operator=(const BodyRefCounterC & b)
-
It has not meaning to assign object 'b' to this object because it would destroy a history of the object which is counted. So this is a dummy function.
- BooleanT IsValidObject() const
-
Test if object is valid.
When amma check is disabled this always returns true.
- BooleanT UserBitTest(IntT x) const
-
Test user flag.
- void UserBitSet(IntT x,BooleanT setit = TRUE)
-
Test user flag.
- void UserBitZero(IntT x)
-
Set bit to zero.
- void ReportBRCError(char * Msg)
-
Report error, used in BRCPtrC.
- UIntT Hash() const
-
Hash on address of object.
- LabelT Label() const
-
Returns the label of this reference counter.
The member function
is useful mainly to recognize objects during debugging.
The value of the label is uniquely defined pointer.
|
Programmer: Simon Cunnington , Documentation by CxxDoc: Tue Mar 20 10:48:08 2001
|