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

  PUBLIC
NumCostMotEstBC::Interpolate(float,float,float) const
NumCostMotEstBC::BilInt(Point2dC,float,float,float,float,float,float) const
NumCostMotEstBC::GetImageGradient(float,float,float,float,float,float,float,float,float,float) const
NumCostMotEstBC::NumCostMotEstBC(void)
NumCostMotEstBC::NumCostMotEstBC(const NumParametersC &,const DoubleImageC &,const DoubleImageC &,const IntImageC &,int,const PixelC &,const NumMagnitudeRobustC &)
NumCostMotEstBC::NumCostMotEstBC(const NumParametersC &,const DoubleImageC &,const DoubleImageC &,const ImageC &,NumLabelC,const PixelC &,const NumMagnitudeRobustC &)
NumCostMotEstBC::NumCostMotEstBC(istream &)
NumCostMotEstBC::NumCostMotEstBC(const NumCostMotEstBC &)
NumCostMotEstBC::Copy(void) const
NumCostMotEstBC::CompX(const VectorC &,const PixelC &) const
NumCostMotEstBC::InverseCompX(const DoubleImageC &,const VectorC &,const PixelC &) const
NumCostMotEstBC::CompdX(const VectorC &,const PixelC &) const
NumCostMotEstBC::Cost(const VectorC &) const
NumCostMotEstBC::GetMCError(const VectorC &) const
NumCostMotEstBC::GetAbsDiffImage(const VectorC &) const
NumCostMotEstBC::GetMCError(const DoubleImageC &,const VectorC &) const
NumCostMotEstBC::GetMCImage(const DoubleImageC &,const VectorC &) const
NumCostMotEstBC::GetMCMask(const VectorC &,int,int) const
NumCostMotEstBC::Jacobian(const VectorC &) const
NumCostMotEstBC::BuildHessian(const DoubleImageC &,const IntImageC &,int) const
NumCostMotEstBC::BuildHessian(const DoubleImageC &,const ImageC &,NumLabelC) const
NumCostMotEstBC::Hessian(void) const
NumCostMotEstBC::GradientVector(const VectorC &) const
NumCostMotEstBC::ComposeVectors(const VectorC &,const VectorC &) const
NumCostMotEstBC::GetInfo(void) const
NumCostMotEstBC::Save(ostream &) const
NumCostMotEstBaseBC::Copy(void) const
NumCostMotEstBaseBC::Hessian(void) const
NumCostMotEstBaseBC::ComposeVectors(const VectorC &,const VectorC &) const
NumCostMotEstBaseBC::GradientVector(const VectorC &) const
NumCostMotEstBaseBC::Cost(const VectorC &) const
NumCostBC::TransP2X(void) const
NumCostBC::TransX2P(void) const
NumCostBC::ConstP(void) const
NumCostBC::Evaluate(const VectorC &) const
NumCostBC::Cost(const VectorC &) const
NumCostBC::SetMask(const IntSArray1dC &)
NumCostBC::SetConstP(const VectorC &)
NumCostBC::MinX(void) const
NumCostBC::MaxX(void) const
NumCostBC::StartX(void) const
NumCostBC::ConvertX2P(const VectorC &) const
NumCostBC::Steps(void) const
NumCostBC::GetParameters(void) const
NumCostBC::GetInfo(void) const
NumCostBC::Save(ostream &) const
NumFuncBC::Copy(void) const
NumFuncBC::SetSizeX(UIntT)
NumFuncBC::SetSizeY(UIntT)
NumFuncBC::Apply(const VectorC &)
NumFuncBC::Evaluate(const VectorC &) const
NumFuncBC::Evaluate(const DListC &) const
NumFuncBC::operator()(const VectorC &) const
NumFuncBC::Jacobian(const VectorC &) const
NumFuncBC::GetInfo(void) const
NumFuncBC::GetName(void) const
NumFuncBC::SizeX(void) const
NumFuncBC::SizeY(void) const
NumFuncBC::Save(ostream &) const
DPProcessBodyC::Apply(const InT &)
DPProcessBodyC::ApplyArray(const SArray1dC &,SArray1dC &)
DPProcessBodyC::Save(ostream &) const
DPProcessBodyC::InputType(void) const
DPProcessBodyC::OutputType(void) const
DPProcessBaseBodyC::Save(ostream &) const
DPProcessBaseBodyC::InputType(void) const
DPProcessBaseBodyC::OutputType(void) const
DPProcessBaseBodyC::OpType(void) const
DPProcessBaseBodyC::IsStateless(void) const
DPEntityBodyC::Save(ostream &) const
DPEntityBodyC::Copy(void) 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
NumCostMotEstBC<class MotModelT>
 
Implementation class for cost function used for comparing image regions.
 
include "amma/Motion/NumCostMotEstB.hh"
User Level:Default
Library:GDMotion
Example:exLMSRegion.cc
Section:Image.Motion.Estimation.Model-based
In Scope:std

Comments:
This is the implementation class for a cost function which compares two image regions. If the points in one of regions don't fall onto an integer grid, an interpolation is performed. Because this class is meant for motion estimation the Jacobian() is calculated from the image rather than from the shape of the cost function. The NumCostInterpRegionC handle class should be used.

Parent Classes: Variables:
VectorC Yd;

DoubleImageC scene;

SArray1dC mask;

Point2dC origin;

NumMagnitudeRobustC _metric;

MotModelT motmodel;

MatrixC hessian;

Methods:
float Interpolate(float coord,float pt1,float pt2) const

float BilInt(Point2dC coord,float p1,float p2,float p3,float p4,float dx,float dy) const

Point2dC GetImageGradient(float p1,float p2,float p3,float p4,float p5,float p6,float p7,float p8,float dx,float dy) const

NumCostMotEstBC()
Default constructor

NumCostMotEstBC(const NumParametersC & parameters,const DoubleImageC & scene0,const DoubleImageC & scene1,const IntImageC & neigh,int in_label,const PixelC & orig,const NumMagnitudeRobustC & metric)
Constructor
parametersdescribes which parameters to use for optimisation
scene0 the reference frame
scene the other frame in which to search for a match
mask the patch for which the motion vector is required
in_label the 'in' pixels in the mask
metric a method for calculating the size of |f(X)-scene0|

NumCostMotEstBC(const NumParametersC & parameters,const DoubleImageC & scene0,const DoubleImageC & scene1,const ImageC<NumLabelC> & neigh,NumLabelC in_label,const PixelC & orig,const NumMagnitudeRobustC & metric)
Constructor
parametersdescribes which parameters to use for optimisation
scene0 the reference frame
scene the other frame in which to search for a match
mask the patch for which the motion vector is required
in_label the 'in' pixels in the mask
metric a method for calculating the size of |f(X)-scene0|

NumCostMotEstBC(istream & in)
Contructs from stream

NumCostMotEstBC(const NumCostMotEstBC & oth)
Copy Constructor

BodyRefCounterVC & Copy() const
Makes a deep copy and is virtual

RealT CompX(const VectorC & P,const PixelC & loc) const

RealT InverseCompX(const DoubleImageC & scene0,const VectorC & P,const PixelC & loc) const

Tuple2C<RealT,VectorC> CompdX(const VectorC & P,const PixelC & loc) const

RealT Cost(const VectorC & X) const
Evaluate cost function at X

DoubleImageC GetMCError(const VectorC & X) const
Returns the motion compensated error; the output image will be of the same size as the bounding box of the mask used for motion estimation

DoubleImageC GetAbsDiffImage(const VectorC & X) const
Returns the motion compensated absolute difference; the output image will be of the same size as the bounding box of the mask used for motion estimation

DoubleImageC GetMCError(const DoubleImageC & scene0,const VectorC & X) const
Returns the motion compensated error; the output image will be of the same size as the bounding box of the mask used for motion estimation

DoubleImageC GetMCImage(const DoubleImageC & scene0,const VectorC & X) const
Returns motion compensated image

IntImageC GetMCMask(const VectorC & X,int in_label,int out_label) const
Returns the motion compensated mask

MatrixC Jacobian(const VectorC & X) const
Evaluates Jacobian df(X)/dX

MatrixC BuildHessian(const DoubleImageC & scene0,const IntImageC & m,int in_label) const
Evaluates the Hessian according to equation 3.25 (Diehl).

MatrixC BuildHessian(const DoubleImageC & scene0,const ImageC<NumLabelC> & m,NumLabelC in_label) const
Evaluates the Hessian according to equation 3.25 (Diehl).

MatrixC Hessian() const
Evaluates the Hessian according to equation 3.25 (Diehl).

VectorC GradientVector(const VectorC & X) const
Evaluates the gradient vector according to equation 3.17 & 3.26 (Diehl).

VectorC ComposeVectors(const VectorC & A,const VectorC & B) const
A * B = Out

const StringC GetInfo() const
Prints derived class information

BooleanT Save(ostream & out) const
Writes object to stream, can be loaded using constructor

#include "amma/Motion/NumCostMotEstBase.hh"
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.

MatrixC Hessian() const
Evaluates the Hessian according to equation 3.25 (Diehl).

VectorC ComposeVectors(const VectorC & A,const VectorC & B) const
A * B = Out;

VectorC GradientVector(const VectorC & X) const
Evaluates the gradient vector according to equation 3.17 & 3.26 (Diehl).

RealT Cost(const VectorC & X) const
Evaluate cost function at X

#include "amma/Num/NumCostB.hh"
const MatrixC TransP2X() const
Convert variable parameters to X vector

const MatrixC TransX2P() const
Convert X vector to variable parameters

const VectorC ConstP() const
Constant componant of X vector

VectorC Evaluate(const VectorC & X) const
Evaluate Y=f(X) where Yc=1

RealT Cost(const VectorC & X) const
Determines cost of X

void SetMask(const IntSArray1dC & mask)
Used to specify which elements are fixed

void SetConstP(const VectorC & constP)
Used to specify the vector of fixed constant parameters

const VectorC MinX() const
Lower bound on variable parameters

const VectorC MaxX() const
Upper bound on variable parameters

const VectorC StartX() const
Returns the initial point for X as non-const part of constP

VectorC ConvertX2P(const VectorC & X) const
Expands X to P using TransX2P * X + Const P

const IntSArray1dC Steps() const
Number of steps for each parameter

const NumParametersC & GetParameters() const
Access to the parameter storage structure

const StringC GetInfo() const
Prints derived class information

BooleanT Save(ostream & out) const
Writes object to stream, can be loaded using constructor

#include "amma/Num/NumFuncB.hh"
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.

void SetSizeX(UIntT X)
Sets size of input vector

void SetSizeY(UIntT Y)
Sets size of output vector

VectorC Apply(const VectorC & X)
Evaluate Y=f(X) as a process

VectorC Evaluate(const VectorC & X) const
Evaluate Y=f(X)
This is the main function that does all the work and must be overloaded in derived classes.

DListC<VectorC> Evaluate(const DListC<VectorC> & listX) const
Evaluate Y=f(X) for a list of X
This is achieved by iterating through the list of X and using the Evaluate member function that takes a single X. For sophisticated applications where speed is important, this function can be overloaded to do batch processing.

VectorC operator()(const VectorC & X) const
Evaluate Y=f(X)

MatrixC Jacobian(const VectorC & X) const
Calculate Jacobian matrix at X
Performs numerical estimation of the Jacobian using differences. This function has and should be overloaded for all cases where the Jacobian can be calculated analytically.

const StringC GetInfo() const
Derived class information

const StringC & GetName() const
Derived class type

UIntT SizeX() const
Size of input vectors

UIntT SizeY() const
Size of output vectors

BooleanT Save(ostream & out) const
Writes object to stream, can be loaded using constructor

#include "amma/DP/Process.hh"
VectorC Apply(const VectorC &)
Apply operation.

IntT ApplyArray(const SArray1dC<VectorC> & in,SArray1dC<VectorC> & out)
Apply operation to an array of elements.
returns the number of elements processed.

BooleanT Save(ostream & out) const
Save to ostream.

const type_info & InputType() const
Get input type.

const type_info & OutputType() const
Get input type.

BooleanT Save(ostream & out) const
Save to ostream.

const type_info & InputType() const
Get input type.

const type_info & OutputType() const
Get input type.

ProcTypeT OpType() const
Operation type lossy/lossless.

BooleanT IsStateless() const
Is operation stateless ?

#include "amma/DP/Entity.hh"
BooleanT Save(ostream & out) const
Save to ostream.

BodyRefCounterVC & Copy() const
Creat a copy of this object.

#include "amma/BRefCntV.hh"
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.

#include "amma/BRefCnt.hh"
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.

#include "amma/RefCBase.hh"
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