Lua-API: tracker#

Beschreibung#

Die Tracker-Datenstruktur wird verwendet, um die Farbverfolgung in der CMUcam3 zu unterstützen. Sie enthält Informationen über das durchgeführte Tracking sowie Parameter, die eingestellt werden können, um zu steuern, welche Farbe verfolgt wird, und andere Aspekte der Farbverfolgung. TODO: Add a good description of what hte bounding box is, and what the centroid is

Beispiel#

Hier ist ein kurzes Beispiel, das zeigt, wie das Tracker-Objekt verwendet wird, um einen roten Bereich im Bildrahmen der CMUcam3 zu finden, und dieser Kasten wird dann im CamScripter-Debugging-Bereich in Eclipse ausgegeben.

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)

Erstellung#

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

Parameter:

keine

Rückgabewerte:

Ganzzahlige x-Koordinate des Schwerpunkts

Ruft die x-Koordinate des Schwerpunkts der verfolgten Farbe ab, wobei (0, 0) die obere linke Ecke des Bildes ist.

get_centroid_y#

trkr:get_centroid_y()

Parameter:

keine

Rückgabewerte:

Ganzzahlige y-Koordinate des Schwerpunkts

Ruft die y-Koordinate des Schwerpunkts der verfolgten Farbe ab, wobei (0, 0) die obere linke Ecke des Bildes ist.

get_density#

trkr:get_density()

Parameter:

keine

Rückgabewerte:

Dichte der verfolgten Farbe

Ruft die Dichte der im Bildpuffer verfolgten Farbe ab. Die Dichte ist ein Maß dafür, wie dicht die verfolgte Farbe innerhalb des Begrenzungsrahmens des Farbtrackers ist – je mehr Pixel der verfolgten Farbe sich im Rahmen befinden, desto höher ist die Dichte.

get_num_pixels#

trkr:get_num_pixels()

Parameter:

keine

Rückgabewerte:

Anzahl der Pixel im Bildpuffer, die mit der Farbe des Farbtrackers übereinstimmen

Ruft die Gesamtzahl der Pixel der verfolgten Farbe ab (bestimmt durch die an tracker_new übergebenen RGB-Werte), die im Bildpuffer der CMUcam3 gefunden wurden.

get_x0#

trkr:get_x0()

Parameter:

keine

Rückgabewerte:

Der ganzzahlige Wert der x-Koordinate der oberen linken Ecke des Farbverfolgungs-Begrenzungsrahmens.

Wenn tracker_track_color aufgerufen wird, legt es einen Begrenzungsrahmen fest, der die Grenzen der innerhalb des Bildes verfolgten Farbe beschreibt. (x0, y0) ist die Position der oberen linken Ecke dieses Rahmens und (x1, y1) ist die Position der unteren rechten Ecke dieses Rahmens innerhalb des Bildpuffers, wobei (0, 0) die obere linke Ecke des Bildpuffers ist. get_x0 gibt die x-Koordinate der oberen linken Ecke des Farbbegrenzungsrahmens zurück.

get_y0#

trkr:get_y0()

Parameter:

keine

Rückgabewerte:

Der ganzzahlige Wert der y-Koordinate der oberen linken Ecke des Farbverfolgungs-Begrenzungsrahmens.

Wenn tracker_track_color aufgerufen wird, legt es einen Begrenzungsrahmen fest, der die Grenzen der innerhalb des Bildes verfolgten Farbe beschreibt. (x0, y0) ist die Position der oberen linken Ecke dieses Rahmens und (x1, y1) ist die Position der unteren rechten Ecke dieses Rahmens innerhalb des Bildpuffers, wobei (0, 0) die obere linke Ecke des Bildpuffers ist. get_y0 gibt die x-Koordinate der oberen linken Ecke des Farbbegrenzungsrahmens zurück.

get_x1#

trkr:get_y1()

Parameter:

keine

Rückgabewerte:

Der ganzzahlige Wert der x-Koordinate der unteren rechten Ecke des Farbverfolgungs-Begrenzungsrahmens.

Wenn tracker_track_color aufgerufen wird, legt es einen Begrenzungsrahmen fest, der die Grenzen der innerhalb des Bildes verfolgten Farbe beschreibt. (x0, y0) ist die Position der oberen linken Ecke dieses Rahmens und (x1, y1) ist die Position der unteren rechten Ecke dieses Rahmens innerhalb des Bildpuffers, wobei (0, 0) die obere linke Ecke des Bildpuffers ist. get_x1 gibt die x-Koordinate der oberen linken Ecke des Farbbegrenzungsrahmens zurück.

get_y1#

trkr:get_y1()

Parameter:

keine

Rückgabewerte:

Der ganzzahlige Wert der y-Koordinate der unteren rechten Ecke des Farbverfolgungs-Begrenzungsrahmens.

Wenn tracker_track_color aufgerufen wird, legt es einen Begrenzungsrahmen fest, der die Grenzen der innerhalb des Bildes verfolgten Farbe beschreibt. (x0, y0) ist die Position der oberen linken Ecke dieses Rahmens und (x1, y1) ist die Position der unteren rechten Ecke dieses Rahmens innerhalb des Bildpuffers, wobei (0, 0) die obere linke Ecke des Bildpuffers ist. get_y1 gibt die x-Koordinate der oberen linken Ecke des Farbbegrenzungsrahmens zurück.

set_lower_bound#

trkr:set_lower_bound(integer channel, integer bound)

Parameter:

channel Der Kanal, für den Sie eine Grenze festlegen. Siehe die Konstanten für den Kanal von Interesse in Lua-API: Konstanten. bound Der minimal mögliche Wert für den angegebenen Kanal. Muss zwischen 0 und 255 liegen.

Rückgabewerte:

keine

Legt die untere Grenze für einen Kanal im Color Tracker fest. Die untere Grenze ist der Mindestwert, den ein Pixel in diesem Kanal haben kann, um verfolgt zu werden. Für die Zwecke der Farbverfolgung muss ein Pixel, um als verfolgbar zu gelten, in jedem seiner Kanäle zwischen der unteren und der oberen Grenze liegen.

set_noise_filter#

trkr:set_noise_filter(integer filter)

Parameter:

filter Der neue Rauschfilterwert. Standard ist 2.

Rückgabewerte:

keine

Der Rauschfilterwert bestimmt, wie viele aufeinanderfolgende aktive Pixel vor einem Pixel erforderlich sind, bevor das Pixel als von der Farbverfolgung erkannt gezählt werden soll. Der Wert muss zwischen 0 und 255 liegen.

set_upper_bound#

trkr:set_upper_bound(integer channel, integer bound)

Parameter:

channel Der Kanal, für den Sie eine Grenze festlegen. Siehe die Konstanten für den Kanal von Interesse in Lua-API: Konstanten. bound Der maximal mögliche Wert für den angegebenen Kanal. Muss zwischen 0 und 255 liegen.

Rückgabewerte:

keine

Legt die obere Grenze für einen Kanal im Color Tracker fest. Die obere Grenze ist der Höchstwert, den ein Pixel in diesem Kanal haben kann, um verfolgt zu werden. Für die Zwecke der Farbverfolgung muss ein Pixel, um als verfolgbar zu gelten, in jedem seiner Kanäle zwischen der unteren und der oberen Grenze liegen.