Lua API: tracker#

Beschrijving#

De tracker-datastructuur wordt gebruikt om kleurtracking in de CMUcam3 te ondersteunen. Het bevat informatie over de tracking die wordt uitgevoerd, en parameters die kunnen worden ingesteld om te bepalen welke kleur wordt gevolgd en andere aspecten van de kleurtracking. TODO: Add a good description of what hte bounding box is, and what the centroid is

Voorbeeld#

Hier is een kort voorbeeld dat laat zien hoe het tracker-object wordt gebruikt om een rood gebied in het beeldframe van de CMUcam3 te vinden, waarna die box wordt afgedrukt naar het CamScripter-debuggebied in Eclipse.

trkr = tracker_new(195, 0, 0, 255, 45, 45); -- track red
trkr:set_noise_filter(3);  -- 2 is the default

take_picture();
tracker_track_color(trkr);
print_color_tracker(trkr);  -- print color tracker info to the screen
print("num pixels tracked: " .. trkr:get_num_pixels()); -- print number of red pixels found in the picture
-- print_picture(); -- uncomment this line to print the picture itself to the screen as well (slower)

Aanmaken#

Zie tracker_new

Methoden#

  • get_centroid_x

  • get_centroid_y

  • get_density

  • get_num_pixels

  • get_x0

  • get_x1

  • get_y0

  • get_y1

  • set_lower_bound

  • set_noise_filter

  • set_upper_bound

get_centroid_x#

trkr:get_centroid_x()

Parameters:

geen

Retourwaarden:

Integer x-coördinaat van het zwaartepunt

Haal de x-coördinaat op van het zwaartepunt van de kleur die wordt gevolgd, waarbij (0, 0) de linkerbovenhoek van de foto is.

get_centroid_y#

trkr:get_centroid_y()

Parameters:

geen

Retourwaarden:

Integer y-coördinaat van het zwaartepunt

Haal de y-coördinaat op van het zwaartepunt van de kleur die wordt gevolgd, waarbij (0, 0) de linkerbovenhoek van de foto is.

get_density#

trkr:get_density()

Parameters:

geen

Retourwaarden:

Dichtheid van de kleur die wordt gevolgd

Haal de dichtheid op van de kleur die binnen de picture buffer wordt gevolgd. Dichtheid is een maat voor hoe dicht de kleur die wordt gevolgd binnen de bounding box van de kleurtracker is – hoe meer pixels van de gevolgde kleur in de box, hoe hoger de dichtheid is.

get_num_pixels#

trkr:get_num_pixels()

Parameters:

geen

Retourwaarden:

Aantal pixels in de picture buffer dat overeenkomt met de kleur van de kleurtracker

Haal het totale aantal pixels op van de kleur die wordt gevolgd (zoals bepaald door de RGB-waarden die aan tracker_new zijn doorgegeven) die in de picture buffer van de CMUcam3 zijn gevonden.

get_x0#

trkr:get_x0()

Parameters:

geen

Retourwaarden:

De integerwaarde van de x-coördinaat van de linkerbovenhoek van de kleurtracking-bounding-box.

Wanneer tracker_track_color wordt aangeroepen, stelt het een bounding box vast die de grenzen beschrijft van de kleur die binnen de foto wordt gevolgd. (x0, y0) is de locatie van de linkerbovenhoek van die box, en (x1, y1) is de locatie van de rechterbenedenhoek van die box binnen de picture buffer, waarbij (0, 0) de linkerbovenhoek van de picture buffer is. get_x0 retourneert de x-coördinaat van de linkerbovenhoek van de kleurgrensbox.

get_y0#

trkr:get_y0()

Parameters:

geen

Retourwaarden:

De integerwaarde van de y-coördinaat van de linkerbovenhoek van de kleurtracking-bounding-box.

Wanneer tracker_track_color wordt aangeroepen, stelt het een bounding box vast die de grenzen beschrijft van de kleur die binnen de foto wordt gevolgd. (x0, y0) is de locatie van de linkerbovenhoek van die box, en (x1, y1) is de locatie van de rechterbenedenhoek van die box binnen de picture buffer, waarbij (0, 0) de linkerbovenhoek van de picture buffer is. get_y0 retourneert de x-coördinaat van de linkerbovenhoek van de kleurgrensbox.

get_x1#

trkr:get_y1()

Parameters:

geen

Retourwaarden:

De integerwaarde van de x-coördinaat van de rechterbenedenhoek van de kleurtracking-bounding-box.

Wanneer tracker_track_color wordt aangeroepen, stelt het een bounding box vast die de grenzen beschrijft van de kleur die binnen de foto wordt gevolgd. (x0, y0) is de locatie van de linkerbovenhoek van die box, en (x1, y1) is de locatie van de rechterbenedenhoek van die box binnen de picture buffer, waarbij (0, 0) de linkerbovenhoek van de picture buffer is. get_x1 retourneert de x-coördinaat van de linkerbovenhoek van de kleurgrensbox.

get_y1#

trkr:get_y1()

Parameters:

geen

Retourwaarden:

De integerwaarde van de y-coördinaat van de rechterbenedenhoek van de kleurtracking-bounding-box.

Wanneer tracker_track_color wordt aangeroepen, stelt het een bounding box vast die de grenzen beschrijft van de kleur die binnen de foto wordt gevolgd. (x0, y0) is de locatie van de linkerbovenhoek van die box, en (x1, y1) is de locatie van de rechterbenedenhoek van die box binnen de picture buffer, waarbij (0, 0) de linkerbovenhoek van de picture buffer is. get_y1 retourneert de x-coördinaat van de linkerbovenhoek van de kleurgrensbox.

set_lower_bound#

trkr:set_lower_bound(integer channel, integer bound)

Parameters:

channel Het kanaal waarvoor je een grens instelt. Zie de constanten voor het kanaal van interesse in Lua API: Constanten. bound De minimale waarde die mogelijk is voor het gegeven kanaal. Moet tussen 0 en 255 liggen.

Retourwaarden:

geen

Stel de ondergrens voor één kanaal in de kleurtracker in. De ondergrens is de minimale waarde die een pixel in dat kanaal kan hebben om te worden gevolgd. Voor kleurtrackingdoeleinden moet elke pixel, om als volgbaar te worden beschouwd, in elk van zijn kanalen tussen de onder- en bovengrens liggen.

set_noise_filter#

trkr:set_noise_filter(integer filter)

Parameters:

filter De nieuwe ruisfilterwaarde. Standaard is 2.

Retourwaarden:

geen

De ruisfilterwaarde bepaalt hoeveel opeenvolgende actieve pixels vóór een pixel vereist zijn voordat de pixel als gedetecteerd door kleurtracking moet worden geteld. De waarde moet tussen 0 en 255 liggen.

set_upper_bound#

trkr:set_upper_bound(integer channel, integer bound)

Parameters:

channel Het kanaal waarvoor je een grens instelt. Zie de constanten voor het kanaal van interesse in Lua API: Constanten. bound De maximale waarde die mogelijk is voor het gegeven kanaal. Moet tussen 0 en 255 liggen.

Retourwaarden:

geen

Stel de bovengrens voor één kanaal in de kleurtracker in. De bovengrens is de maximale waarde die een pixel in dat kanaal kan hebben om te worden gevolgd. Voor kleurtrackingdoeleinden moet elke pixel, om als volgbaar te worden beschouwd, in elk van zijn kanalen tussen de onder- en bovengrens liggen.