Log in

View Full Version : Tracking only one Light


wingnut1705
18-02-2007, 17:33
Our team wants us to only track one light instead of two. Does anyone know how to alter Kevin Watson's code so that the camera only tracks one light?

Alan Anderson
18-02-2007, 23:05
Someone else on the forum recently suggested having it use one of the bounding box corner values instead of the centroid values. You can pick a left or right corner and end up consistently tracking a single light.

efoote868
18-02-2007, 23:18
I believe you could also change your minimum confidence value.

ace123
18-02-2007, 23:35
The way the example code does it is by taking the leftmost coordinate (x0) and adding a constant to it. This way it ignores the median value of the box.

int lowright_x = packet.x1, centroid_x = packet.mx, upleft_x = packet.x0, target_width=packet.x1-packet.x0;

if ( target_width > WIDEST_ONE_LIGHT ) { // looking at two lights?
targets = 2;

if ( ( lowright_x - centroid_x) < (centroid_x - upleft_x) ) {
// the centroid is nearer the right
target_x = lowright_x- HALF_LIGHT_WIDTH ;
} else {
// the centroid is nearer the left
target_x = upleft_x + HALF_LIGHT_WIDTH ;
}
} else { // the target is NOT wide, it's one light
targets = 1;
target_x = centroid_x; // target that light
}