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

  PUBLIC
MultiMatchMotEstC::MultiMatchMotEstC(void)
MultiMatchMotEstC::MultiMatchMotEstC(const DoubleImageC &,const DoubleImageC &,MultiLevelC,const ImageRectangleC &,const NumMagnitudeRobustC &,const VectorC &)
MultiMatchMotEstC::Estimate(const IntImageC &,int,const PixelC &) const
MultiMatchMotEstC::Estimate(const ImageC &,NumLabelC,const PixelC &) const
MultiMatchMotEstC::GetMCError(const VectorC &,const IntImageC &,int,const PixelC &) const
MultiMatchMotEstC::GetMCError(const VectorC &,const ImageC &,NumLabelC,const PixelC &) const
MultiMatchMotEstC::GetAbsDiffImage(const VectorC &,const IntImageC &,int,const PixelC &) const
MultiMatchMotEstC::GetAbsDiffImage(const VectorC &,const ImageC &,NumLabelC,const PixelC &) const
MultiMatchMotEstBaseC::Estimate(const IntImageC &,int,const PixelC &) const
MultiMatchMotEstBaseC::Estimate(const ImageC &,NumLabelC,const PixelC &) const
MultiMatchMotEstBaseC::GetMCError(const VectorC &,const IntImageC &,int,const PixelC &) const
MultiMatchMotEstBaseC::GetMCError(const VectorC &,const ImageC &,NumLabelC,const PixelC &) const
MultiMatchMotEstBaseC::GetAbsDiffImage(const VectorC &,const IntImageC &,int,const PixelC &) const
MultiMatchMotEstBaseC::GetAbsDiffImage(const VectorC &,const ImageC &,NumLabelC,const PixelC &) const
MultiMatchMotEstBaseC::operator<<(ostream &,const MultiMatchMotEstBaseC &)
MultiMatchMotEstBaseC::operator>>(istream &,MultiMatchMotEstBaseC &)
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
MultiMatchMotEstC<class MotModelT,class OptimiserT>
 
Motion estimation with templated motion model
 
include "amma/Motion/MultiMatchMotEst.hh"
User Level:Default
Library:GDMotion
Example:exMultiLevelMatchEst.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:
MultiMatchMotEstC()
Default constructor

MultiMatchMotEstC(const DoubleImageC & reference_frame,const DoubleImageC & other_frame,MultiLevelC multilevel,const ImageRectangleC & search_window = ImageRectangleC(-16,16,-16,16),const NumMagnitudeRobustC & metric = NumMagnitudeRobustC(256,NumMagnitudeCityBlockC()),const VectorC & start_motion_vector = VectorC())
Constructor from images
reference_frame the reference frame
other_frame other frame in which to search for a match
multilevel the number of levels to be used for motion estimation
motion_model the motion model; at present the motion models allowed are TRANSLATIONAL, QUASI_AFFINE, AFFINE and PERSPECTIVE.
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) const
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 ImageC<NumLabelC> & mask,NumLabelC in_label,const PixelC & origin) const
Estimate motion parameters for patch.

DoubleImageC GetMCError(const VectorC & dP,const IntImageC & mask,int in_label,const PixelC & origin) const
Returns the motion compensated error; the error is calculated using the 2nd level pair of images if the 2nd level exists

DoubleImageC GetMCError(const VectorC & dP,const ImageC<NumLabelC> & mask,NumLabelC in_label,const PixelC & origin) const
Returns the motion compensated error; the error is calculated using the 2nd level pair of images if the 2nd level exists

DoubleImageC GetAbsDiffImage(const VectorC & dP,const IntImageC & mask,int in_label,const PixelC & origin) const
Returns the motion compensated absolute difference; the error is calculated using the 2nd level pair of images if the 2nd level exists

DoubleImageC GetAbsDiffImage(const VectorC & dP,const ImageC<NumLabelC> & mask,NumLabelC in_label,const PixelC & origin) const
Returns the motion compensated absolute difference; the error is calculated using the 2nd level pair of images if the 2nd level exists

#include "amma/Motion/MultiMatchMotEstBase.hh"
VectorC Estimate(const IntImageC & mask,int in_label,const PixelC & origin) const
Estimate the motion vector

VectorC Estimate(const ImageC<NumLabelC> & mask,NumLabelC in_label,const PixelC & origin) const
Estimate the motion vector

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

DoubleImageC GetMCError(const VectorC & dP,const ImageC<NumLabelC> & mask,NumLabelC in_label,const PixelC & origin) const
Returns the motion compensated error

DoubleImageC GetAbsDiffImage(const VectorC & dP,const IntImageC & mask,int in_label,const PixelC & origin) const
Returns the motion compensated absolute difference

DoubleImageC GetAbsDiffImage(const VectorC & dP,const ImageC<NumLabelC> & mask,NumLabelC in_label,const PixelC & origin) const
Returns the motion compensated absolute difference Friends -------

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

istream & operator>>(istream & s,MultiMatchMotEstBaseC & 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<MultiMatchMotEstBaseBodyC> 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<MultiMatchMotEstBaseBodyC> & operator=(const RCHandleC<MultiMatchMotEstBaseBodyC> & oth)
Assignment.

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

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

MultiMatchMotEstBaseBodyC & Body()
Direct access to body.

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


Programmer:Ratna Rambaruth, Documentation by CxxDoc: Tue Mar 20 10:48:08 2001