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_xget_centroid_yget_densityget_num_pixelsget_x0get_x1get_y0get_y1set_lower_boundset_noise_filterset_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:
channelKanál, pro který nastavujete mez. Viz konstanty sledovaného kanálu v Lua API: Konstanty.boundMinimá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:
filterNová 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:
channelKanál, pro který nastavujete mez. Viz konstanty sledovaného kanálu v Lua API: Konstanty.boundMaximá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ů.