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< byte > | returnCandidateImage (int instance) |
return the image of candidate pixels | |
bool | StereoMatch (PixelPoint points[2], CameraParams params[2], Point3D *retPoint) |
Project corresponding points in 3D. |
Definition at line 48 of file segmentImageMerge.H.
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.
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.
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.
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
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
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
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
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.
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.
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
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.
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().