Lua API: tracker#
Descriere#
Structura de date tracker este utilizată pentru a asista urmărirea culorii în CMUcam3. Conține informații despre urmărirea efectuată și parametri care pot fi setați pentru a controla ce culoare este urmărită și alte aspecte ale urmăririi culorii. TODO: Add a good description of what hte bounding box is, and what the centroid is
Exemplu#
Iată un scurt exemplu care arată cum este utilizat obiectul tracker pentru a găsi o zonă roșie în cadrul de imagine al CMUcam3, iar apoi acea casetă este tipărită în zona de depanare CamScripter din 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)
Creare#
Consultați tracker_new
Metode#
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()
- Parametri:
niciuna
- Valori returnate:
Coordonata x întreagă a centroidului
Obține coordonata x a centroidului culorii urmărite, unde (0, 0) este colțul din stânga sus al imaginii.
get_centroid_y#
trkr:get_centroid_y()
- Parametri:
niciuna
- Valori returnate:
Coordonata y întreagă a centroidului
Obține coordonata y a centroidului culorii urmărite, unde (0, 0) este colțul din stânga sus al imaginii.
get_density#
trkr:get_density()
- Parametri:
niciuna
- Valori returnate:
Densitatea culorii urmărite
Obține densitatea culorii urmărite în bufferul de imagine. Densitatea este o măsură a cât de densă este culoarea urmărită în interiorul casetei de delimitare a urmăritorului de culoare – cu cât sunt mai mulți pixeli ai culorii urmărite în casetă, cu atât densitatea este mai mare.
get_num_pixels#
trkr:get_num_pixels()
- Parametri:
niciuna
- Valori returnate:
Numărul de pixeli din bufferul de imagine care corespund culorii urmăritorului de culoare
Obține numărul total de pixeli ai culorii urmărite (așa cum este determinat de valorile RGB transmise către tracker_new) care au fost găsiți în bufferul de imagine al CMUcam3.
get_x0#
trkr:get_x0()
- Parametri:
niciuna
- Valori returnate:
Valoarea întreagă a coordonatei x a colțului din stânga sus al casetei de delimitare a urmăririi culorii.
Când este apelat tracker_track_color, acesta stabilește o casetă de delimitare care descrie limitele culorii urmărite în cadrul imaginii. (x0, y0) este locația colțului din stânga sus al acelei casete, iar (x1, y1) este locația colțului din dreapta jos al acelei casete în bufferul imaginii, unde (0, 0) este colțul din stânga sus al bufferului imaginii. get_x0 returnează coordonata x a colțului din stânga sus al casetei de delimitare a culorii.
get_y0#
trkr:get_y0()
- Parametri:
niciuna
- Valori returnate:
Valoarea întreagă a coordonatei y a colțului din stânga sus al casetei de delimitare a urmăririi culorii.
Când este apelat tracker_track_color, acesta stabilește o casetă de delimitare care descrie limitele culorii urmărite în cadrul imaginii. (x0, y0) este locația colțului din stânga sus al acelei casete, iar (x1, y1) este locația colțului din dreapta jos al acelei casete în bufferul imaginii, unde (0, 0) este colțul din stânga sus al bufferului imaginii. get_y0 returnează coordonata x a colțului din stânga sus al casetei de delimitare a culorii.
get_x1#
trkr:get_y1()
- Parametri:
niciuna
- Valori returnate:
Valoarea întreagă a coordonatei x a colțului din dreapta jos al casetei de delimitare a urmăririi culorii.
Când este apelat tracker_track_color, acesta stabilește o casetă de delimitare care descrie limitele culorii urmărite în cadrul imaginii. (x0, y0) este locația colțului din stânga sus al acelei casete, iar (x1, y1) este locația colțului din dreapta jos al acelei casete în bufferul imaginii, unde (0, 0) este colțul din stânga sus al bufferului imaginii. get_x1 returnează coordonata x a colțului din stânga sus al casetei de delimitare a culorii.
get_y1#
trkr:get_y1()
- Parametri:
niciuna
- Valori returnate:
Valoarea întreagă a coordonatei y a colțului din dreapta jos al casetei de delimitare a urmăririi culorii.
Când este apelat tracker_track_color, acesta stabilește o casetă de delimitare care descrie limitele culorii urmărite în cadrul imaginii. (x0, y0) este locația colțului din stânga sus al acelei casete, iar (x1, y1) este locația colțului din dreapta jos al acelei casete în bufferul imaginii, unde (0, 0) este colțul din stânga sus al bufferului imaginii. get_y1 returnează coordonata x a colțului din stânga sus al casetei de delimitare a culorii.
set_lower_bound#
trkr:set_lower_bound(integer channel, integer bound)
- Parametri:
channelCanalul pentru care setați o limită. Consultați constantele canalului de interes în Lua API: Constante.boundValoarea minimă posibilă pentru canalul dat. Trebuie să fie între 0 și 255.- Valori returnate:
niciuna
Setează limita inferioară pentru un canal în urmăritorul de culoare. Limita inferioară este valoarea minimă pe care o poate avea un pixel în acel canal pentru a fi urmărit. În scopul urmăririi culorii, pentru ca orice pixel să fie considerat urmăribil, acel pixel trebuie să se afle între limita inferioară și cea superioară în fiecare dintre canalele sale.
set_noise_filter#
trkr:set_noise_filter(integer filter)
- Parametri:
filterNoua valoare a filtrului de zgomot. Valoarea implicită este 2.- Valori returnate:
niciuna
Valoarea filtrului de zgomot determină câți pixeli activi consecutivi înainte de un pixel sunt necesari pentru ca pixelul să fie numărat ca fiind detectat de urmărirea culorii. Valoarea trebuie să fie între 0 și 255.
set_upper_bound#
trkr:set_upper_bound(integer channel, integer bound)
- Parametri:
channelCanalul pentru care setați o limită. Consultați constantele canalului de interes în Lua API: Constante.boundValoarea maximă posibilă pentru canalul dat. Trebuie să fie între 0 și 255.- Valori returnate:
niciuna
Setează limita superioară pentru un canal în urmăritorul de culoare. Limita superioară este valoarea maximă pe care o poate avea un pixel în acel canal pentru a fi urmărit. În scopul urmăririi culorii, pentru ca orice pixel să fie considerat urmăribil, acel pixel trebuie să se afle între limita inferioară și cea superioară în fiecare dintre canalele sale.