Lua API: tracker#

Popis#

Datová struktura tracker se používá k asistenci sledování barvy v CMUcam3. Obsahuje informace o prováděném sledování a parametry, které lze nastavit k řízení toho, která barva je sledována, a dalších aspektů sledování barvy. TODO: Přidat dobrý popis toho, co je ohraničující rámeček a co je těžiště

Příklad#

Zde je krátký příklad, který ukazuje, jak se objekt tracker používá k nalezení červené oblasti v obrazovém snímku CMUcam3, a poté je tento rámeček vytištěn do oblasti ladění CamScripteru v 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)

Vytvoření#

Viz tracker_new

Metody#

  • 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()

Parametry:

žádný

Návratové hodnoty:

Celočíselná x-ová souřadnice těžiště

Získá x-ovou souřadnici těžiště sledované barvy, kde (0, 0) je levý horní roh snímku.

get_centroid_y#

trkr:get_centroid_y()

Parametry:

žádný

Návratové hodnoty:

Celočíselná y-ová souřadnice těžiště

Získá y-ovou souřadnici těžiště sledované barvy, kde (0, 0) je levý horní roh snímku.

get_density#

trkr:get_density()

Parametry:

žádný

Návratové hodnoty:

Hustota sledované barvy

Získá hustotu sledované barvy v obrazovém bufferu. Hustota je mírou toho, jak hustá je sledovaná barva uvnitř ohraničujícího rámečku sledovače barvy – čím více pixelů sledované barvy je v rámečku, tím vyšší je hustota.

get_num_pixels#

trkr:get_num_pixels()

Parametry:

žádný

Návratové hodnoty:

Počet pixelů v obrazovém bufferu odpovídajících barvě sledovače barvy

Získá celkový počet pixelů sledované barvy (jak je určeno hodnotami RGB předanými do tracker_new), které byly nalezeny v obrazovém bufferu CMUcam3.

get_x0#

trkr:get_x0()

Parametry:

žádný

Návratové hodnoty:

Celočíselná hodnota x-ové souřadnice levého horního rohu ohraničujícího rámečku sledování barvy.

Když je zavolán tracker_track_color, vytvoří ohraničující rámeček, který popisuje hranice sledované barvy v obrázku. (x0, y0) je poloha levého horního rohu tohoto rámečku a (x1, y1) je poloha pravého dolního rohu tohoto rámečku ve vyrovnávací paměti obrazu, kde (0, 0) je levý horní roh vyrovnávací paměti obrazu. get_x0 vrací souřadnici x levého horního rohu ohraničujícího rámečku barvy.

get_y0#

trkr:get_y0()

Parametry:

žádný

Návratové hodnoty:

Celočíselná hodnota y-ové souřadnice levého horního rohu ohraničujícího rámečku sledování barvy.

Když je zavolán tracker_track_color, vytvoří ohraničující rámeček, který popisuje hranice sledované barvy v obrázku. (x0, y0) je poloha levého horního rohu tohoto rámečku a (x1, y1) je poloha pravého dolního rohu tohoto rámečku ve vyrovnávací paměti obrazu, kde (0, 0) je levý horní roh vyrovnávací paměti obrazu. get_y0 vrací souřadnici x levého horního rohu ohraničujícího rámečku barvy.

get_x1#

trkr:get_y1()

Parametry:

žádný

Návratové hodnoty:

Celočíselná hodnota x-ové souřadnice pravého dolního rohu ohraničujícího rámečku sledování barvy.

Když je zavolán tracker_track_color, vytvoří ohraničující rámeček, který popisuje hranice sledované barvy v obrázku. (x0, y0) je poloha levého horního rohu tohoto rámečku a (x1, y1) je poloha pravého dolního rohu tohoto rámečku ve vyrovnávací paměti obrazu, kde (0, 0) je levý horní roh vyrovnávací paměti obrazu. get_x1 vrací souřadnici x levého horního rohu ohraničujícího rámečku barvy.

get_y1#

trkr:get_y1()

Parametry:

žádný

Návratové hodnoty:

Celočíselná hodnota y-ové souřadnice pravého dolního rohu ohraničujícího rámečku sledování barvy.

Když je zavolán tracker_track_color, vytvoří ohraničující rámeček, který popisuje hranice sledované barvy v obrázku. (x0, y0) je poloha levého horního rohu tohoto rámečku a (x1, y1) je poloha pravého dolního rohu tohoto rámečku ve vyrovnávací paměti obrazu, kde (0, 0) je levý horní roh vyrovnávací paměti obrazu. get_y1 vrací souřadnici x levého horního rohu ohraničujícího rámečku barvy.

set_lower_bound#

trkr:set_lower_bound(integer channel, integer bound)

Parametry:

channel Kanál, pro který nastavujete mez. Viz konstanty sledovaného kanálu v Lua API: Konstanty. bound Minimální možná hodnota pro daný kanál. Musí být mezi 0 a 255.

Návratové hodnoty:

žádný

Nastavte dolní mez pro jeden kanál ve sledovači barvy. Dolní mez je minimální hodnota, kterou může pixel v daném kanálu mít, aby byl sledován. Pro účely sledování barvy musí být jakýkoli pixel, aby byl považován za sledovatelný, mezi dolní a horní mezí v každém ze svých kanálů.

set_noise_filter#

trkr:set_noise_filter(integer filter)

Parametry:

filter Nová hodnota filtru šumu. Výchozí je 2.

Návratové hodnoty:

žádný

Hodnota filtru šumu určuje, kolik po sobě jdoucích aktivních pixelů před pixelem je vyžadováno, než by měl být pixel počítán jako detekovaný sledováním barvy. Hodnota musí být mezi 0 a 255.

set_upper_bound#

trkr:set_upper_bound(integer channel, integer bound)

Parametry:

channel Kanál, pro který nastavujete mez. Viz konstanty sledovaného kanálu v Lua API: Konstanty. bound Maximální možná hodnota pro daný kanál. Musí být mezi 0 a 255.

Návratové hodnoty:

žádný

Nastavte horní mez pro jeden kanál ve sledovači barvy. Horní mez je maximální hodnota, kterou může pixel v daném kanálu mít, aby byl sledován. Pro účely sledování barvy musí být jakýkoli pixel, aby byl považován za sledovatelný, mezi dolní a horní mezí v každém ze svých kanálů.