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

  PUBLIC
MatchMotEstC::MatchMotEstC(void)
MatchMotEstC::MatchMotEstC(const DoubleImageC &,const DoubleImageC &,const ImageRectangleC &,const NumMagnitudeRobustC &,const VectorC &)
MatchMotEstC::Estimate(const IntImageC &,int,const PixelC &)
MatchMotEstC::Estimate(const IntImageC &,int,const PixelC &,MultiLevelC)
MatchMotEstC::GetMCError(const VectorC &,const IntImageC &,int,const PixelC &)
MatchMotEstC::GetMCError(const VectorC &,const IntImageC &,int,const PixelC &,const DoubleImageC &,const DoubleImageC &)
MatchMotEstC::GetMCImage(const DoubleImageC &,const VectorC &,const IntImageC &,int,const PixelC &)
MatchMotEstC::GetMCMask(const VectorC &,const IntImageC &,int,const PixelC &)
MatchMotEstC::ConstructAffineVector(const VectorC &)
MatchMotEstC::ConstructNormalVector(const Affine2dC &)
MatchMotEstC::MatchMotEstC(MatchMotEstBC &)
MatchMotEstC::Body(void)
MatchMotEstC::Body(void) const
MatchMotEstBaseC::Body(void)
MatchMotEstBaseC::Body(void) const
MatchMotEstBaseC::Estimate(const IntImageC &,int,const PixelC &)
MatchMotEstBaseC::Estimate(const IntImageC &,int,const PixelC &,MultiLevelC)
MatchMotEstBaseC::GetMCError(const VectorC &,const IntImageC &,int,const PixelC &)
MatchMotEstBaseC::GetMCError(const VectorC &,const IntImageC &,int,const PixelC &,const DoubleImageC &,const DoubleImageC &)
MatchMotEstBaseC::GetMCImage(const DoubleImageC &,const VectorC &,const IntImageC &,int,const PixelC &)
MatchMotEstBaseC::GetMCMask(const VectorC &,const IntImageC &,int,const PixelC &)
MatchMotEstBaseC::ConstructAffineVector(const VectorC &)
MatchMotEstBaseC::ConstructNormalVector(const Affine2dC &)
MatchMotEstBaseC::operator<<(ostream &,const MatchMotEstBaseC &)
MatchMotEstBaseC::operator>>(istream &,MatchMotEstBaseC &)
RCHandleAC::Abstract(void)
RCHandleAC::IsHandleType(const DT &) const
RCHandleAC::CheckHandleType(const DT &) const
RCHandleAC::Save(ostream &) const
RCHandleAC::Copy(void) const
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
MatchMotEstC<class MotModelT,class OptimiserT>
 
Class for motion estimation
 
include "amma/Motion/MatchMotEst.hh"
User Level:Default
Library:GDMotion
Example:exMatchEst.cc
Section:Image.Motion.Estimation.Model-based
In Scope:std

Comments:
Class for motion estimation. The algorithm is based on matching the required patch on the reference frame to the corresponding one in the other frame. The patch can be of arbitrary shape and is defined by a mask. The scheme for deciding where to move the patch is defined by the optimisation algorithm (see Optimisation). The match measure is defined by the cost function (see Cost Functions).

It has been attempted to provide some flexibility within this class. However users who would like a different scheme for motion estimation should write another class similar to this one.

Acknowledgements to everyone who has worked on motion estimation before me in the group.

Parent Classes: Methods:
MatchMotEstC()
Default constructor

MatchMotEstC(const DoubleImageC & filtered_reference_frame,const DoubleImageC & filtered_other_frame,const ImageRectangleC & search_window = ImageRectangleC(-16,16,-16,16),const NumMagnitudeRobustC & metric = NumMagnitudeRobustC(256,NumMagnitudeCityBlockC()),const VectorC & start_motion_vector = VectorC())
Constructor from images
filtered_reference_frame the reference frame
filtered_other_frame other frame in which to search for a match
motion_model the motion model; at present the motion models allowed are TRANSLATIONAL, QUASI_AFFINE and AFFINE.
search_window sets the range over which translational motion parameters are searched for
metric a robust metric (see here for more info)

VectorC Estimate(const IntImageC & mask,int in_label,const PixelC & origin)
Estimate motion parameters for patch.
Returns the motion vector for the patch defined by those pixels in mask which have the value in_label. The origin of the coordinate system must be specified. Care must be taken during motion compensation to use the same coordinate system as during motion estimation.

VectorC Estimate(const IntImageC & mask,int in_label,const PixelC & origin,MultiLevelC multilevel)
Estimate motion parameters for patch.

ByteImageC GetMCError(const VectorC & dP,const IntImageC & mask,int in_label,const PixelC & origin)
Returns the motion compensated error

ByteImageC GetMCError(const VectorC & dP,const IntImageC & mask,int in_label,const PixelC & origin,const DoubleImageC & orig_frame0,const DoubleImageC & orig_frame1)
Returns the motion compensated error using user-supplied images

ByteImageC GetMCImage(const DoubleImageC & scene0,const VectorC & dP,const IntImageC & mask,int in_label,const PixelC & origin)
Returns the motion compensated image

ByteImageC GetMCMask(const VectorC & dP,const IntImageC & mask,int in_label,const PixelC & origin)
Returns the motion compensated mask

Affine2dC ConstructAffineVector(const VectorC & dP)

VectorC ConstructNormalVector(const Affine2dC & motion_vector)

MatchMotEstC(MatchMotEstBC<MotModelT,OptimiserT> & bod)
Constructor from the body class

MatchMotEstBC<MotModelT,OptimiserT> & Body()
Access Body

const MatchMotEstBC<MotModelT,OptimiserT> & Body() const
Access Body

#include "amma/Motion/MatchMotEstBase.hh"
MatchMotEstBaseBodyC & Body()
Access body.
This isn't really needed, they're just to ensure all derived classes work properly.

const MatchMotEstBaseBodyC & Body() const
Constant access body.
This isn't really needed, they're just to ensure all derived classes work properly.

VectorC Estimate(const IntImageC & mask,int in_label,const PixelC & origin)
Estimate the motion vector

VectorC Estimate(const IntImageC & mask,int in_label,const PixelC & origin,MultiLevelC multilevel)
Estimate the motion vector

ByteImageC GetMCError(const VectorC & dP,const IntImageC & mask,int in_label,const PixelC & origin)
Returns the motion compensated error

ByteImageC GetMCError(const VectorC & dP,const IntImageC & mask,int in_label,const PixelC & origin,const DoubleImageC & orig_frame0,const DoubleImageC & orig_frame1)
Returns the motion compensated error using user-supplied images

ByteImageC GetMCImage(const DoubleImageC & scene0,const VectorC & dP,const IntImageC & mask,int in_label,const PixelC & origin)
Returns the motion compensated image

ByteImageC GetMCMask(const VectorC & dP,const IntImageC & mask,int in_label,const PixelC & origin)
Returns the motion compensated mask

Affine2dC ConstructAffineVector(const VectorC & dP)
Returns the affine motion vector

VectorC ConstructNormalVector(const Affine2dC & motion_vector)
Returns the motion vector in AMMA VectorC form Friends -------

ostream & operator<<(ostream & s,const MatchMotEstBaseC & out)
output stream operator

istream & operator>>(istream & s,MatchMotEstBaseC & in)
input stream operator

#include "amma/RCHandleA.hh"
RCAbstractC Abstract()
Create an abstract handle to this object.

BooleanT IsHandleType(const DT &) const
Is handle of given type ?

void CheckHandleType(const DT & dummy) const
Check handle type. Throw an expception if not.

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

RCHandleAC<MatchMotEstBaseBodyC> Copy() const
Creat a deep copy of this object.
protected:

#include "amma/RCHandle.hh"
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<MatchMotEstBaseBodyC> & operator=(const RCHandleC<MatchMotEstBaseBodyC> & oth)
Assignment.

BooleanT operator==(const RCHandleC<MatchMotEstBaseBodyC> & oth) const
Comparison operator.

BooleanT operator!=(const RCHandleC<MatchMotEstBaseBodyC> & 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.

MatchMotEstBaseBodyC & Body()
Direct access to body.

const MatchMotEstBaseBodyC & Body() const
Constant access to body.


Programmer:Ratna Rambaruth, Documentation by CxxDoc: Tue Mar 20 10:49:27 2001