iso::tracker::MotionTracker Class Reference

#include <iso_tracker_motion_tracker.h>

Collaboration diagram for iso::tracker::MotionTracker:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 MotionTracker (const math::Vector2< unsigned int > &pFrameSize)
 create motion tracker
 MotionTracker (const math::Vector2< unsigned int > &pFrameSize, unsigned int pPyramidLevelCount)
 create motion tracker
 ~MotionTracker ()
 motion tracker
void setMotionIgnoreLevel (unsigned int pMotionIgnoreLevel)
 setMotionIgnoreLevel
IplImage * runningAverage ()
 return running average image
IplImage * diffImage ()
 return temporal difference image
IplImage * silhouette (unsigned int pLevel) throw (base::Exception)
 return silhouette image
IplImage * motionHistory (unsigned int pLevel) throw (base::Exception)
 return motion history image
IplImage * motionMask (unsigned int pLevel) throw (base::Exception)
 return motion mask image
IplImage * motionOrientation (unsigned int pLevel) throw (base::Exception)
 return orientation history image
IplImage * motionImage ()
 return motion image
IplImage * motionRegions ()
 return motion regions image
math::VectorField< float > & motionField ()
 return motion field
void update (IplImage *pImage, QVector< TrackObject * > &pTrackObjects) throw (TrackerException)
 update motion tracker

Public Attributes

IplImage * mInputImage
IplImage * mVelXImage
IplImage * mVelYImage
IplImage * mVelOrientImage
IplImage * mVelMagImage
IplImage * mVelYProcImage
IplImage * mVelCombImage
IplImage * mOutputImage

Protected Member Functions

void createMotionField ()
 ignore motion from top level up to this level calculcate motion field
void calcMotion (unsigned int pLevel) throw (base::Exception)
 calculate horizontal motion
void calcMotion (unsigned int pLevel, const math::Vector2< unsigned int > &pLevelPos, const math::Vector2< unsigned int > &pBottomPos, unsigned int pLevelPixelSize) throw (base::Exception)
 calculate motion
void detectMotionRegions ()
 detect regions of similar motion
void updateTrackObjects (QVector< TrackObject * > &pTrackObjects)
 update track objects
void updateTrackObject (TrackObject *pTrackObjects)
 update track object

Protected Attributes

math::Vector2< unsigned int > mFrameSize
 tracking frame size
IplImage * mImage
 tracker image
IplImage * mRunningAverage
 running average on image
IplImage * mDiffImage
 temporal difference image
MotionPyramid mMotionPyramid
 motion pyramid
unsigned int mMotionIgnoreLevel
IplImage * mBottomMotionImage
 ignore motion from top level up to this level pyramid bottom motion image
IplImage * mMotionImage
 scaled motion image
math::VectorField< float > mMotionField
 3d motion field
IplImage * mMotionRegionImage
 motion region image
IplImage * mMotionLengthImage
 motion length image
math::VectorField< float > mNormMotionField
 normalized 3d motion field
CvMemStorage * mContourStorage
 memory for countour data
CvSeq * mContours
 contour collection
QVector< CvRect > mBBoxes
 contour boundign box collection

Static Protected Attributes

static unsigned int sMotionIgnoreLevel

Constructor & Destructor Documentation

MotionTracker::MotionTracker ( const math::Vector2< unsigned int > &  pFrameSize  ) 

create motion tracker

Parameters:
pFrameSize tracker frame size

MotionTracker::MotionTracker ( const math::Vector2< unsigned int > &  pFrameSize,
unsigned int  pPyramidLevelCount 
)

create motion tracker

Parameters:
pFrameSize tracker frame size
pPyramidLevelCount number of image pyramid levels

MotionTracker::~MotionTracker (  ) 

motion tracker


Member Function Documentation

void MotionTracker::setMotionIgnoreLevel ( unsigned int  pMotionIgnoreLevel  ) 

setMotionIgnoreLevel

Parameters:
pMotionIgnorelevel motion ignore level

IplImage * MotionTracker::runningAverage (  ) 

return running average image

Returns:
running average image

IplImage * MotionTracker::diffImage (  ) 

return temporal difference image

Returns:
temporal difference image

IplImage * MotionTracker::silhouette ( unsigned int  pLevel  )  throw (base::Exception)

return silhouette image

Parameters:
pLevel level index
Returns:
silhouette image
Exceptions:
TrackerException level index out of scope

IplImage * MotionTracker::motionHistory ( unsigned int  pLevel  )  throw (base::Exception)

return motion history image

Parameters:
pLevel level index
Returns:
motion history image
Exceptions:
base::Exception level index out of scope

IplImage * MotionTracker::motionMask ( unsigned int  pLevel  )  throw (base::Exception)

return motion mask image

Parameters:
pLevel level index
Returns:
motion mask image
Exceptions:
base::Exception level index out of scope

IplImage * MotionTracker::motionOrientation ( unsigned int  pLevel  )  throw (base::Exception)

return orientation history image

Parameters:
pLevel level index
Returns:
motion orientation image
Exceptions:
base::Exception level index out of scope

IplImage * MotionTracker::motionImage (  ) 

return motion image

Returns:
motion image

IplImage * MotionTracker::motionRegions (  ) 

return motion regions image

Returns:
motion regions image

math::VectorField< float > & MotionTracker::motionField (  ) 

return motion field

Returns:
motion field

void MotionTracker::update ( IplImage *  pImage,
QVector< TrackObject * > &  pTrackObjects 
) throw (TrackerException)

update motion tracker

Parameters:
pImage image
pTrackObjects vector of track objects
Exceptions:
TrackerException source image is not single channel or images are of wrong size

void MotionTracker::createMotionField (  )  [protected]

ignore motion from top level up to this level calculcate motion field

void MotionTracker::calcMotion ( unsigned int  pLevel  )  throw (base::Exception) [protected]

calculate horizontal motion

Parameters:
pLevel pyramid level
Exceptions:
base::Exception level out of bounds

void MotionTracker::calcMotion ( unsigned int  pLevel,
const math::Vector2< unsigned int > &  pLevelPos,
const math::Vector2< unsigned int > &  pBottomPos,
unsigned int  pLevelPixelSize 
) throw (base::Exception) [protected]

calculate motion

Parameters:
pLevel pyramid level
pLevelPos pixel position within pyramid level frame
pBottomPos pixel position within bottom pyramid level frame
pLevelPixelSize size of pixel at current pyramid level in bottom pyramid level
Exceptions:
base::Exception level out of bounds

void MotionTracker::detectMotionRegions (  )  [protected]

detect regions of similar motion

void MotionTracker::updateTrackObjects ( QVector< TrackObject * > &  pTrackObjects  )  [protected]

update track objects

Parameters:
pTrackObjects vector of track objects

void MotionTracker::updateTrackObject ( TrackObject pTrackObjects  )  [protected]

update track object

Parameters:
pTrackObjects track objects


Member Data Documentation

IplImage* iso::tracker::MotionTracker::mInputImage

IplImage* iso::tracker::MotionTracker::mVelXImage

IplImage* iso::tracker::MotionTracker::mVelYImage

IplImage* iso::tracker::MotionTracker::mVelOrientImage

IplImage* iso::tracker::MotionTracker::mVelMagImage

IplImage* iso::tracker::MotionTracker::mVelYProcImage

IplImage* iso::tracker::MotionTracker::mVelCombImage

IplImage* iso::tracker::MotionTracker::mOutputImage

unsigned int MotionTracker::sMotionIgnoreLevel [static, protected]

math::Vector2<unsigned int> iso::tracker::MotionTracker::mFrameSize [protected]

tracking frame size

IplImage* iso::tracker::MotionTracker::mImage [protected]

tracker image

IplImage* iso::tracker::MotionTracker::mRunningAverage [protected]

running average on image

IplImage* iso::tracker::MotionTracker::mDiffImage [protected]

temporal difference image

MotionPyramid iso::tracker::MotionTracker::mMotionPyramid [protected]

motion pyramid

unsigned int iso::tracker::MotionTracker::mMotionIgnoreLevel [protected]

IplImage* iso::tracker::MotionTracker::mBottomMotionImage [protected]

ignore motion from top level up to this level pyramid bottom motion image

size corresponds to lowest level pyramid size contains both orientation and motion lengt information

IplImage* iso::tracker::MotionTracker::mMotionImage [protected]

scaled motion image

standard camera frame size contains both orientation and motion lengt information

math::VectorField<float> iso::tracker::MotionTracker::mMotionField [protected]

3d motion field

IplImage* iso::tracker::MotionTracker::mMotionRegionImage [protected]

motion region image

binary image indicating regions of similar motion

IplImage* iso::tracker::MotionTracker::mMotionLengthImage [protected]

motion length image

math::VectorField<float> iso::tracker::MotionTracker::mNormMotionField [protected]

normalized 3d motion field

CvMemStorage* iso::tracker::MotionTracker::mContourStorage [protected]

memory for countour data

CvSeq* iso::tracker::MotionTracker::mContours [protected]

contour collection

QVector<CvRect> iso::tracker::MotionTracker::mBBoxes [protected]

contour boundign box collection


The documentation for this class was generated from the following files:
Generated on Fri Feb 25 14:20:29 2011 for iso_tracker by  doxygen 1.5.1