|
Developer Documentation |
|
Centre for Vision, Speech & Signal Processing |
|
PUBLIC |
NumOptimiseGibbsSamplingBC::NumOptimiseGibbsSamplingBC(UIntT,RealT,RealT,RealT,const ByteImageC &)
NumOptimiseGibbsSamplingBC::NumOptimiseGibbsSamplingBC(istream &)
NumOptimiseGibbsSamplingBC::NumOptimiseGibbsSamplingBC(const NumOptimiseGibbsSamplingBC &)
NumOptimiseGibbsSamplingBC::Copy(void) const
NumOptimiseGibbsSamplingBC::MinimalX(const NumCostC &)
NumOptimiseGibbsSamplingBC::GetInfo(void) const
NumOptimiseGibbsSamplingBC::Save(ostream &) const
NumOptimiseGibbsSamplingBC::GetPDF(RCHashARC &,const PixelC &,const IntImageC &,RealT) const
NumOptimiseGibbsSamplingBC::GetGibbsLabelfieldSample(const IntImageC &,RealT) const
NumOptimiseGibbsSamplingBC::GetGibbsMeansSample(const VectorC &,RealT) const
NumOptimiseBC::Copy(void) const
NumOptimiseBC::MinimalX(const NumCostC &)
NumOptimiseBC::MaximalX(const NumCostC &)
NumOptimiseBC::GetInfo(void) const
NumOptimiseBC::GetName(void) const
NumOptimiseBC::Save(ostream &) const
BodyRefCounterVC::Copy(void) const
BodyRefCounterVC::operator==(const BodyRefCounterVC &) const
BodyRefCounterVC::operator!=(const BodyRefCounterVC &) const
BodyRefCounterVC::Save(ostream &) const
BodyRefCounterC::AddReference(void)
BodyRefCounterC::RemoveReference(void)
BodyRefCounterC::SetConst(void) const
BodyRefCounterC::SetConst(void)
BodyRefCounterC::IsConst(void) const
BodyRefCounterC::IsNotConst(void) const
BodyRefCounterC::ToBeDeleted(void) const
BodyRefCounterC::ToBeDeletedRemoveIgnoreNoRemove(void)
BodyRefCounterC::ToBeDeletedRemove(void)
BodyRefCounterC::BodyMightBeDeleted(void) const
BodyRefCounterC::IsCountZero(void) const
BodyRefCounterC::BRCPtrCanDeleteObject(void) const
BodyRefCounterC::Count(void) const
BodyRefCounterC::operator=(const BodyRefCounterC &)
BodyRefCounterC::IsValidObject(void) const
BodyRefCounterC::UserBitTest(IntT) const
BodyRefCounterC::UserBitSet(IntT,BooleanT)
BodyRefCounterC::UserBitZero(IntT)
BodyRefCounterC::ReportBRCError(char *)
BodyRefCounterC::Hash(void) const
BodyRefCounterC::SetUndeletable(void)
BodyRefCounterC::ReportInvalidObject(char *) const
RefCounterBaseC::Label(void) const
|
Comments:
This is the implementation class of the GibbsSampling optimiser. The
NumOptimiseGibbsSamplingC handle class should be used. The annealing
schedule used is the one proposed by Geman and Geman. Please refer to
Tekalp Pg.133 for explanation. This optimisation class can only be used
with cost functions which have the GetGibbsSample(X, temp) function.
Parent Classes:
Variables:
- UIntT _iterations;
-
- RealT Tau;
-
- RealT minTemp;
-
- RealT beta;
-
- ByteImageC image;
-
Methods:
- NumOptimiseGibbsSamplingBC(UIntT iterations,RealT Tau,RealT minTemp,RealT beta,const ByteImageC & image)
-
Constructor
| iterations | maximum number of iterations to be used at each temperature |
| Tau | constant |
| minTemp | the minimum temperature to be used during the annealing schedule |
| beta | the 2-pixel clique potential |
| image | the image over which Gibbs sampling is performed. |
|
- NumOptimiseGibbsSamplingBC(istream & in)
-
Constructs from stream
- NumOptimiseGibbsSamplingBC(const NumOptimiseGibbsSamplingBC & oth)
-
Copy constructor
- BodyRefCounterVC & Copy() const
-
Makes a deep copy and is virtual
- VectorC MinimalX(const NumCostC & domain)
-
Determines Xmin=arg min_{X} |f(X)-Yd|
- const StringC GetInfo() const
-
Prints information about the optimiser
- BooleanT Save(ostream & out) const
-
Writes object to stream, can be loaded using constructor
- void GetPDF(RCHashARC<IntT,RealT> & label_potentials,const PixelC & site,const IntImageC & label_image,RealT temp) const
-
- IntImageC GetGibbsLabelfieldSample(const IntImageC & label_image,RealT temp) const
-
- VectorC GetGibbsMeansSample(const VectorC & X,RealT temp) const
-
- BodyRefCounterVC & Copy() const
-
Makes a deep copy and is virtual
As the copy constructor but is virtual so can be called from a base
class reference.
- VectorC MinimalX(const NumCostC & domain)
-
Determines Xmin=arg min_{X} domain(X)
A minimisation algorithm must be provided for each derived optimisation
algorithm. It is not necessary to provide one for maximisation since
that is achieved using a cost function inverter as described in the next
member function.
- VectorC MaximalX(const NumCostC & domain)
-
Determines Xmax=arg max_{X} domain(X)
This is calculated using MinimalX and inverting the cost function using
NumCostInvertC.
- const StringC GetInfo() const
-
Prints derived class information
- const StringC GetName() const
-
Derived class type
- BooleanT Save(ostream & out) const
-
Writes object to stream, can be loaded using constructor
- 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.
- void SetUndeletable()
-
Make object undeletable.
Usefull to prevent recursive deleting in graph structures.
Only hackers need this function.
- void ReportInvalidObject(char * Msg = 0) const
-
Tell user about validation failure.
- 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:Ratna Rambaruth, Documentation by CxxDoc: Tue Mar 20 10:49:27 2001
|