Public Member Functions | |
segmentImageMerge2 (int instances) | |
default constructor, also sets up number of tracker instances | |
void | resetAll (int instances) |
void | SIMsetCircleColor (int r, int g, int b, int instance) |
set the tracking color for mass circle | |
void | SIMsetBoxColor (int r, int g, int b, int instance) |
void | SIMsetTrackColor (float h, float hstd, float s, float sstd, float v, float vstd, int instance, bool adapt, int avg) |
set default tracking color values | |
void | SIMsetAdapt (float ha, bool haSTD, float sa, bool saSTD, float va, bool vaSTD, int instance, bool useCluster) |
set initial adaptive color thresholds for tracking | |
void | SIMsetAdaptBound (float Hupper, float Hlower, float Supper, float Slower, float Vupper, float Vlower, int instance) |
set up hard bounds for color adaptation | |
void | SIMsetCameraPosition (float pan, float tilt, int instance, bool stats=false) |
tell this method the pan and tilt postition the camera is moving to | |
void | SIMsetFrame (int x1, int y1, int x2, int y2, int realX, int realY, int instance) |
set frame size for color tracker | |
void | SIMtrackImage (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 | SIMtrackImageMulti (std::vector< Image< PixRGB< byte > > > *image, int instances) |
put image set into tracker and let it sort all this stuff out | |
void | SIMmergeImages (Image< PixRGB< byte > > *image) |
merge qualities of images if needed | |
void | SIMupdateVergance (float distance, float gaussBase=36) |
update the vergance distance if needed for cameras | |
void | SIMverganceSpring (int instance, int current, bool doTracked) |
apply probabalistic model over multiple stereo cameras for vergance | |
void | SIMgetImageTrackXY (int *x, int *y, int instance) |
get back X and Y coords for tracking | |
void | SIMgetImageTrackXY2 (int *x, int *y, int instance) |
get back X and Y coords for tracking | |
void | SIMgetImageTrackXYMerge (int *x, int *y) |
get back merged X and Y coords for tracking | |
bool | SIMreturnLOT (int instance) |
return true if loss of track | |
float | SIMreturnCameraProb (int instance) |
return the P of a good track | |
bool | SIMdoMoveCamera (int instance, float *doPan, float *doTilt) |
return if camera should move based upon maximum LOT's | |
Image< byte > | SIMreturnCandidateImage (int instance) |
return the image of candidate pixels | |
void | SIMSetCluster (int sizeX, int sizeY, int instances, float hweight, float sweight, float vweight) |
Set up color clustering for tracker. | |
void | SIMclusterColor (Image< PixRGB< float > > image, int instance) |
find object in scene that's a best match using clustering | |
bool | SIMstereoMatch (PixelPoint points[2], CameraParams params[2], Point3D *retPoint) |
Project corresponding points in 3D. | |
double | SIMPgauss (double X, double Xbar, double std) |
return the probability of X given Xbar and std using gaussian |
Definition at line 54 of file segmentImageMerge2.H.
segmentImageMerge2::segmentImageMerge2 | ( | int | instances | ) |
default constructor, also sets up number of tracker instances
set the weights in cluster for Hue
set the weights in cluster for Sat
set the weights in cluster for Val
set initial standard deviation for color tracking after Hue
set initial standard deviation for color tracking after Sat
set initial standard deviation for color tracking after Val
Definition at line 457 of file segmentImageMerge2.C.
References blobProp::BP_bound, blobProp::BP_clusterColorStdH, blobProp::BP_clusterColorStdS, blobProp::BP_clusterColorStdV, blobProp::BP_clusterWeightH, blobProp::BP_clusterWeightS, blobProp::BP_clusterWeightSpat, blobProp::BP_clusterWeightV, blobProp::BP_LOTbound, blobProp::BP_maxFrameSize, blobProp::BP_maxMass, blobProp::BP_minClusterSize, blobProp::BP_minMass, blobProp::BP_ratioMax, blobProp::BP_ratioMin, blobProp::BP_softBound, blobProp::BP_softRatioMax, blobProp::BP_softRatioMin, CAMERAMU1, ERRINTERVAL, readConfig::getItemValueF(), and readConfig::openFile().
void segmentImageMerge2::resetAll | ( | int | instances | ) |
set the weights in cluster for Hue
set the weights in cluster for Sat
set the weights in cluster for Val
set initial standard deviation for color tracking after Hue
set initial standard deviation for color tracking after Sat
set initial standard deviation for color tracking after Val
Definition at line 333 of file segmentImageMerge2.C.
References blobProp::BP_bound, blobProp::BP_clusterColorStdH, blobProp::BP_clusterColorStdS, blobProp::BP_clusterColorStdV, blobProp::BP_clusterWeightH, blobProp::BP_clusterWeightS, blobProp::BP_clusterWeightSpat, blobProp::BP_clusterWeightV, blobProp::BP_LOTbound, blobProp::BP_maxFrameSize, blobProp::BP_maxMass, blobProp::BP_minClusterSize, blobProp::BP_minMass, blobProp::BP_ratioMax, blobProp::BP_ratioMin, blobProp::BP_softBound, blobProp::BP_softRatioMax, blobProp::BP_softRatioMin, CAMERAMU1, ERRINTERVAL, readConfig::getItemValueF(), and readConfig::openFile().
find object in scene that's a best match using clustering
run this to find out which color to use for tracking.This will take and image and cluster it looking for the best color match in the image to track
Definition at line 1037 of file segmentImageMerge2.C.
References ASSERT, Image< T >::beginw(), blobProp::BP_clusterColorStdH, blobProp::BP_clusterColorStdS, blobProp::BP_clusterColorStdV, blobProp::BP_clusterWeightH, blobProp::BP_clusterWeightS, blobProp::BP_clusterWeightSpat, blobProp::BP_clusterWeightV, blobProp::BP_minClusterSize, decXY(), Image< T >::endw(), Image< T >::getWidth(), image, newImage, NPclassify2< FLOAT >::NPaddSpace(), NPclassify2< FLOAT >::NPclassifySpaceNew(), NPclassify2< FLOAT >::NPgetClass(), NPclassify2< FLOAT >::NPgetClassSize(), NPclassify2< FLOAT >::NPgetFeature(), NPclassify2< FLOAT >::NPgetStemNumber(), NPclassify2< FLOAT >::NPresetSpace(), SIMPgauss(), segmentImage2::SIsetHue(), segmentImage2::SIsetSat(), and segmentImage2::SIsetVal().
bool segmentImageMerge2::SIMdoMoveCamera | ( | int | instance, | |
float * | doPan, | |||
float * | doTilt | |||
) |
return if camera should move based upon maximum LOT's
Definition at line 996 of file segmentImageMerge2.C.
void segmentImageMerge2::SIMgetImageTrackXY | ( | int * | x, | |
int * | y, | |||
int | instance | |||
) |
get back X and Y coords for tracking
Definition at line 968 of file segmentImageMerge2.C.
void segmentImageMerge2::SIMgetImageTrackXY2 | ( | int * | x, | |
int * | y, | |||
int | instance | |||
) |
get back X and Y coords for tracking
Definition at line 974 of file segmentImageMerge2.C.
void segmentImageMerge2::SIMgetImageTrackXYMerge | ( | int * | x, | |
int * | y | |||
) |
get back merged X and Y coords for tracking
Definition at line 980 of file segmentImageMerge2.C.
merge qualities of images if needed
Definition at line 791 of file segmentImageMerge2.C.
References drawCircle(), and image.
double segmentImageMerge2::SIMPgauss | ( | double | X, | |
double | Xbar, | |||
double | std | |||
) |
return the probability of X given Xbar and std using gaussian
Definition at line 1279 of file segmentImageMerge2.C.
Referenced by SIMclusterColor().
float segmentImageMerge2::SIMreturnCameraProb | ( | int | instance | ) |
return the P of a good track
Definition at line 991 of file segmentImageMerge2.C.
return the image of candidate pixels
Definition at line 1006 of file segmentImageMerge2.C.
References segmentImage2::SIreturnNormalizedCandidates().
bool segmentImageMerge2::SIMreturnLOT | ( | int | instance | ) |
return true if loss of track
Definition at line 986 of file segmentImageMerge2.C.
void segmentImageMerge2::SIMsetAdapt | ( | float | ha, | |
bool | haSTD, | |||
float | sa, | |||
bool | saSTD, | |||
float | va, | |||
bool | vaSTD, | |||
int | instance, | |||
bool | useCluster | |||
) |
set initial adaptive color thresholds for tracking
Definition at line 617 of file segmentImageMerge2.C.
void segmentImageMerge2::SIMsetAdaptBound | ( | 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 631 of file segmentImageMerge2.C.
void segmentImageMerge2::SIMsetBoxColor | ( | 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 590 of file segmentImageMerge2.C.
void segmentImageMerge2::SIMsetCameraPosition | ( | 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 644 of file segmentImageMerge2.C.
References ERRINTERVAL, and sqrt().
void segmentImageMerge2::SIMsetCircleColor | ( | 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 582 of file segmentImageMerge2.C.
void segmentImageMerge2::SIMSetCluster | ( | int | sizeX, | |
int | sizeY, | |||
int | instances, | |||
float | hweight, | |||
float | sweight, | |||
float | vweight | |||
) |
Set up color clustering for tracker.
Call this method before calling SIMclsuterColor to set it up. Do this only once.
sizeX | This is the width of the image to be processed | |
sizeY | this is the height of the image to be processed | |
instances | How many tracker instances are being used | |
hweight | this is the weight to be given to hue in analysis | |
sweight | this is the weight to be given to saturation in analysis | |
vweight | this is the weight to be given to luminance in analysis |
Definition at line 1011 of file segmentImageMerge2.C.
References NPclassify2< FLOAT >::NPresizeSpace(), NPclassify2< FLOAT >::NPsetup(), and readConfig::openFile().
void segmentImageMerge2::SIMsetFrame | ( | int | x1, | |
int | y1, | |||
int | x2, | |||
int | y2, | |||
int | realX, | |||
int | realY, | |||
int | instance | |||
) |
set frame size for color tracker
Definition at line 695 of file segmentImageMerge2.C.
References segmentImage2::SIsetFrame().
void segmentImageMerge2::SIMsetTrackColor | ( | 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 598 of file segmentImageMerge2.C.
References segmentImage2::SIsetHSVavg(), segmentImage2::SIsetHue(), segmentImage2::SIsetSat(), and segmentImage2::SIsetVal().
bool segmentImageMerge2::SIMstereoMatch | ( | PixelPoint | points[2], | |
CameraParams | params[2], | |||
Point3D * | retPoint | |||
) |
Project corresponding points in 3D.
Definition at line 1208 of file segmentImageMerge2.C.
References Point3D< T >::x.
void segmentImageMerge2::SIMtrackImage | ( | 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 702 of file segmentImageMerge2.C.
References ASSERT, decXY(), image, segmentImage2::SIcalcMassCenter(), and segmentImage2::SIsegment().
void segmentImageMerge2::SIMtrackImageMulti | ( | 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 739 of file segmentImageMerge2.C.
References ASSERT, decXY(), image, segmentImage2::SIcalcMassCenter(), SIMupdateVergance(), SIMverganceSpring(), and segmentImage2::SIsegment().
void segmentImageMerge2::SIMupdateVergance | ( | 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 816 of file segmentImageMerge2.C.
References DISTANCE.
Referenced by SIMtrackImageMulti().
void segmentImageMerge2::SIMverganceSpring | ( | 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 834 of file segmentImageMerge2.C.
References abs(), cameraConf::fieldAdjustmentX, cameraConf::fieldAdjustmentY, stats< T >::gauss(), LOTMAX, segmentImage2::SIgetCenterX(), segmentImage2::SInumberBlobs(), cameraConf::Xfield, cameraConf::Xpixel, cameraConf::Yfield, and cameraConf::Ypixel.
Referenced by SIMtrackImageMulti().