segmentImageMerge Class Reference

Collaboration diagram for segmentImageMerge:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 segmentImageMerge (int instances)
 default constructor, also sets up number of tracker instances
void setCircleColor (int r, int g, int b, int instance)
 set the tracking color for mass circle
void setBoxColor (int r, int g, int b, int instance)
void setTrackColor (float h, float hstd, float s, float sstd, float v, float vstd, int instance, bool adapt, int avg)
 set default tracking color values
void setAdapt (float ha, bool haSTD, float sa, bool saSTD, float va, bool vaSTD, int instance)
 set initial adaptive color thresholds for tracking
void setAdaptBound (float Hupper, float Hlower, float Supper, float Slower, float Vupper, float Vlower, int instance)
 set up hard bounds for color adaptation
void setCameraPosition (float pan, float tilt, int instance, bool stats=false)
 tell this method the pan and tilt postition the camera is moving to
void setFrame (int x1, int y1, int x2, int y2, int realX, int realY, int instance)
 set frame size for color tracker
void trackImage (Image< PixRGB< byte > > input, Image< PixRGB< byte > > *image, int instance, Image< PixRGB< byte > > *auxImage, bool fast=false)
 Put image one at a time into tracker and get back tracker image output.
void trackImageMulti (std::vector< Image< PixRGB< byte > > > *image, int instances)
 put image set into tracker and let it sort all this stuff out
void mergeImages (Image< PixRGB< byte > > *image)
 merge qualities of images if needed
void updateVergance (float distance, float gaussBase=36)
 update the vergance distance if needed for cameras
void verganceSpring (int instance, int current, bool doTracked)
 apply probabalistic model over multiple stereo cameras for vergance
void getImageTrackXY (int *x, int *y, int instance)
 get back X and Y coords for tracking
void getImageTrackXY2 (int *x, int *y, int instance)
 get back X and Y coords for tracking
void getImageTrackXYMerge (int *x, int *y)
 get back merged X and Y coords for tracking
bool returnLOT (int instance)
 return true if loss of track
float returnCameraProb (int instance)
 return the P of a good track
bool doMoveCamera (int instance, float *doPan, float *doTilt)
 return if camera should move based upon maximum LOT's
Image< bytereturnCandidateImage (int instance)
 return the image of candidate pixels
bool StereoMatch (PixelPoint points[2], CameraParams params[2], Point3D *retPoint)
 Project corresponding points in 3D.

Detailed Description

Definition at line 48 of file segmentImageMerge.H.


Constructor & Destructor Documentation

segmentImageMerge::segmentImageMerge ( int  instances  ) 

default constructor, also sets up number of tracker instances

Definition at line 268 of file segmentImageMerge.C.

References CAMERAMU1, and ERRINTERVAL.


Member Function Documentation

bool segmentImageMerge::doMoveCamera ( int  instance,
float *  doPan,
float *  doTilt 
)

return if camera should move based upon maximum LOT's

Definition at line 747 of file segmentImageMerge.C.

void segmentImageMerge::getImageTrackXY ( int *  x,
int *  y,
int  instance 
)

get back X and Y coords for tracking

Definition at line 719 of file segmentImageMerge.C.

void segmentImageMerge::getImageTrackXY2 ( int *  x,
int *  y,
int  instance 
)

get back X and Y coords for tracking

Definition at line 725 of file segmentImageMerge.C.

void segmentImageMerge::getImageTrackXYMerge ( int *  x,
int *  y 
)

get back merged X and Y coords for tracking

Definition at line 731 of file segmentImageMerge.C.

void segmentImageMerge::mergeImages ( Image< PixRGB< byte > > *  image  ) 

merge qualities of images if needed

Definition at line 549 of file segmentImageMerge.C.

References drawCircle(), image, and returnLOT().

float segmentImageMerge::returnCameraProb ( int  instance  ) 

return the P of a good track

Definition at line 742 of file segmentImageMerge.C.

Image< byte > segmentImageMerge::returnCandidateImage ( int  instance  ) 

return the image of candidate pixels

Definition at line 756 of file segmentImageMerge.C.

References segmentImage::returnNormalizedCandidates().

bool segmentImageMerge::returnLOT ( int  instance  ) 

return true if loss of track

Definition at line 737 of file segmentImageMerge.C.

Referenced by mergeImages(), and verganceSpring().

void segmentImageMerge::setAdapt ( float  ha,
bool  haSTD,
float  sa,
bool  saSTD,
float  va,
bool  vaSTD,
int  instance 
)

set initial adaptive color thresholds for tracking

Definition at line 380 of file segmentImageMerge.C.

void segmentImageMerge::setAdaptBound ( float  Hupper,
float  Hlower,
float  Supper,
float  Slower,
float  Vupper,
float  Vlower,
int  instance 
)

set up hard bounds for color adaptation

Parameters:
Hupper upper bound for adaptive hue
Hlower lower bound for adaptive hue
Supper upper bound for adaptive saturation
Slower lower bound for adaptive saturation
Vupper upper bound for adaptive intensity
Vlower lower bound for adaptive intensity
instance Which tracker to apply these settings to

Definition at line 391 of file segmentImageMerge.C.

void segmentImageMerge::setBoxColor ( int  r,
int  g,
int  b,
int  instance 
)

set the tracking colot for the bounding box set the tracking color for mass circle

Parameters:
r this is the red color for the output bounding box
g this is the green color for the output bounding box
b this is the blue color for the output bounding box
instance this is the tracker to apply these settings to

Definition at line 353 of file segmentImageMerge.C.

void segmentImageMerge::setCameraPosition ( float  pan,
float  tilt,
int  instance,
bool  stats = false 
)

tell this method the pan and tilt postition the camera is moving to

Definition at line 404 of file segmentImageMerge.C.

References ERRINTERVAL, and sqrt().

void segmentImageMerge::setCircleColor ( int  r,
int  g,
int  b,
int  instance 
)

set the tracking color for mass circle

Parameters:
r this is the red color for the output circle
g this is the green color for the output circle
b this is the blue color for the output circle
instance this is the tracker to apply these settings to

Definition at line 345 of file segmentImageMerge.C.

void segmentImageMerge::setFrame ( int  x1,
int  y1,
int  x2,
int  y2,
int  realX,
int  realY,
int  instance 
)

set frame size for color tracker

Definition at line 455 of file segmentImageMerge.C.

References segmentImage::setFrame().

void segmentImageMerge::setTrackColor ( float  h,
float  hstd,
float  s,
float  sstd,
float  v,
float  vstd,
int  instance,
bool  adapt,
int  avg 
)

set default tracking color values

Parameters:
h initial hue value
hstd initial boundary in standard deviation for h
s initial satuaration value
sstd initial boundary in standard deviation for s
v initial intensity value
vstd initial boundary in standard deviation for v
instance which tracker instance to apply these settings too
adapt tells if you want these values to adapt

Definition at line 361 of file segmentImageMerge.C.

References segmentImage::setHSVavg(), segmentImage::setHue(), segmentImage::setSat(), and segmentImage::setVal().

bool segmentImageMerge::StereoMatch ( PixelPoint  points[2],
CameraParams  params[2],
Point3D retPoint 
)

Project corresponding points in 3D.

Definition at line 761 of file segmentImageMerge.C.

References Point3D< T >::x.

void segmentImageMerge::trackImage ( Image< PixRGB< byte > >  input,
Image< PixRGB< byte > > *  image,
int  instance,
Image< PixRGB< byte > > *  auxImage,
bool  fast = false 
)

Put image one at a time into tracker and get back tracker image output.

Parameters:
input this is the raw input image
image this is a pointer to the output image
outputI this is a pointer the the candidate pixel image
instance This is the image instance to which you are using
auxImage this is a pointer to the HSV threshold bar image

Definition at line 462 of file segmentImageMerge.C.

References ASSERT, segmentImage::calcMassCenter(), decXY(), image, and segmentImage::segment().

void segmentImageMerge::trackImageMulti ( std::vector< Image< PixRGB< byte > > > *  image,
int  instances 
)

put image set into tracker and let it sort all this stuff out

this method will track over multiple stereo pair linked cameras and produce blobs to track that agree with assumptions of stereo tracking for instance vergance and spacial locality.

Parameters:
input this is the raw input image
image this is a pointer to the output image
outputI this is a pointer the the candidate pixel image
instance This is the image instance to which you are using
auxImage this is a pointer to the HSV threshold bar image

Definition at line 498 of file segmentImageMerge.C.

References ASSERT, segmentImage::calcMassCenter(), decXY(), image, segmentImage::segment(), updateVergance(), and verganceSpring().

void segmentImageMerge::updateVergance ( float  distance,
float  gaussBase = 36 
)

update the vergance distance if needed for cameras

feed in the new distance to target and extact P over expected vergance

Parameters:
distance is a measure in inches (sorry)

Definition at line 574 of file segmentImageMerge.C.

References DISTANCE.

Referenced by trackImageMulti().

void segmentImageMerge::verganceSpring ( int  instance,
int  current,
bool  doTracked 
)

apply probabalistic model over multiple stereo cameras for vergance

This method will calculate the most likely blob from a set of blobs based upon the vergance of the cameras. That is, joined stereo pairs should. experiance vergance to a target. This method creates virtual springs to pull the cameras into vergance with each other based upon the probability that a target will bring a camera into vergance with the other cameras. To use this method you must have defined a probabalistic model over vergance in the cameras.

Parameters:
instance this is the instance of the track, in this case the camera
doTracked this is true if you wish to apply to cameras that \ are not currently in loss of track (LOT)

Definition at line 590 of file segmentImageMerge.C.

References abs(), cameraConf::fieldAdjustmentX, cameraConf::fieldAdjustmentY, stats< T >::gauss(), segmentImage::getCenterX(), LOTMAX, segmentImage::numberBlobs(), returnLOT(), cameraConf::Xfield, cameraConf::Xpixel, cameraConf::Yfield, and cameraConf::Ypixel.

Referenced by trackImageMulti().


The documentation for this class was generated from the following files:
Generated on Sun May 8 08:43:48 2011 for iLab Neuromorphic Vision Toolkit by  doxygen 1.6.3