AI Vision Sensorin käyttö VEXcode V5 C++:ssa

Tämä artikkeli tarjoaa yleiskatsauksen toiminnoista, jotka ovat käytettävissä Pythonin AI Vision Sensorin käytössä, sekä yksinkertaiset ohjeet niiden käyttöön. Opit AI Vision Sensorin käyttöprosessin neljä vaihetta, tietojen hankkimista, saatujen objektien määrän näkemistä, käytettävän kohteen valitsemista tiedoista ja mitä tietoja kohteesta vedetään.

Hanki visuaalista dataa AI Vision Sensorin avulla

AI Vision Sensor kerää tietoa ympäristöstään ottamalla kuvan siitä, mitä se tällä hetkellä katsoo. Kaikki objektit, jotka se tunnistaa määritetylläVisual Signature :llä, tallennetaan sisäisesti AI Vision Sensoriin, jota muut toiminnot voivat käyttää.

.takeSnapshot

Kaikki visuaalista allekirjoitusta on määritettävä ennen kuin niitä voidaan käyttää parametreina. Kun käytät menetelmää, määritä allekirjoitusparametri anturin nimeksi, kaksoisalaviivaksi ja visuaalisen allekirjoituksen nimeksi.

apuohjelma exm.PNG

AIVision6.takeSnapshot(AIVision6__Blue)
AIVision6.takeSnapshot(AIVision6__Red)
AIVision6.takeSnapshot(AIVision6__Vihreä)

Esimerkki

Tässä esimerkissä .takeSnapshot -menetelmää käytetään etsimään "sinistä" visuaalista allekirjoitustavastaavia objekteja. Sitten koodi näyttää objektien määrän, joka on löydetty tälle visuaaliselle allekirjoitukselle .

int main() {
while (true) {
// Ota tilannekuva tarkistaaksesi havaitut kohteet
AIVision6.takeSnapshot(Blue);

// Tyhjennä näyttö/nollaa, jotta voimme näyttää uusia tietoja
Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);

// Tulosta kuinka monta kohdetta havaittiin
Brain.Screen.print("objektien määrä: %d", AIVision6.objectCount);

odota(0,5, sekuntia);
}
}

Määritä, kuinka monta esinettä havaittiin

Koska .takeSnapshot -menetelmä voi havaita useita objekteja samalla visuaalisella allekirjoituksella kerrallaan, voit selvittää .objectCount -ominaisuuden avulla, kuinka monta objektia on havaittu.

Brain.Screen.Print(“%d”, AIVision1.objectCount)

Esimerkki

Tässä esimerkissä .objectCount -ominaisuutta käytetään tarkistamaan, havaittiinko vähintään 1 Visual Signature viimeisessä tilannevedossa, ja tulostetaan sitten joko tosi tai epätosi, jos objekti havaittiin. Jos esine havaittiin, se tulostaa havaittujen objektien kokonaismäärän.

int main() {
while (true) {
// Ota tilannekuva tarkistaaksesi havaitut kohteet
AIVision6.takeSnapshot(Blue);

// Tyhjennä näyttö/nollaa, jotta voimme näyttää uusia tietoja
Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);

// jos esineitä löytyi, tulosta kuinka monta
if (AIVision6.objectCount > 0) {
Brain.Screen.newLine();
Brain.Screen.print("objektien määrä: %d", AIVision6.objectCount);
}

odota(0,5, sekuntia);
}
}

Valitse, mistä objektista haluat saada tietoja

On olemassa kaksi tapaa poimia tietoja AI Vision Sensorista. Yksi tapa on hakea tiedot suoraan suurimmasta objektista, joka on havaittu viimeisimmässä .takeSnapshot -menetelmän käytössä, käyttämällä AIVision.largestObject -ominaisuutta. Toinen menetelmä käyttää ominaisuutta AIVision.objects[] ja määrittää objektiindeksin.

AIVision.largestObject

ai.vision.largest_object() on ominaisuus, jolla pääsee käsiksi suurimmalle objektille.

int main() {
while (true) {
// Ota tilannekuva tarkistaaksesi havaitut kohteet
AIVision6.takeSnapshot(BlueBox);

// Tyhjennä näyttö/nollaa, jotta voimme näyttää uusia tietoja
Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);

// Jos esineitä löytyi, tulosta sijainti
if (AIVision6.objects[0].exists) {
Brain.Screen.print("Center X: %d, AIVision6.largestObject[0].centerX);
} else {
Brain.Screen.print("ei objektia");
}

odota(0,5, sekuntia);
}
}

AIVvision.objects

Toinen tapa noutaa tietoja on määrittää sen objektin hakemisto, josta haluat poimia tietoja. Tilannekuva palauttaa havaitut kohteet suurimmalla objektilla ensin indeksillä 0 ja järjestää objektit suurimmasta pienimpään.

int main() {
while (true) {
// Ota tilannekuva tarkistaaksesi havaitut kohteet
AIVision6.takeSnapshot(BlueBox);

// Tyhjennä näyttö/nollaa, jotta voimme näyttää uusia tietoja
Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);

// Jos esineitä löytyi, tulosta sijainti
if (AIVision6.objects[0].exists) {
Brain.Screen.print("Center X: %d, AIVision6.objects[0].centerX);
} else {
Brain.Screen.print("ei objektia");
}

odota(0,5, sekuntia);
}
}

Valitse, mitä tietoja objektista vedetään

Jokaisesta objektista voidaan kutsua kahdeksan ominaisuutta.

  • .korkeus
  • .leveys
  • .centerX
  • .centerY
  • .originX
  • .alkuperä
  • .kulma
  • .olemassa

.korkeus

Ominaisuus .height palauttaa havaitun kohteen korkeuden pikseleinä.

Käytä tätä koodia palauttaaksesi ominaisuuden .height:

AIVvision6.objects[0].height

Ominaisuus .height palauttaa arvon välillä 0 - 240 pikseliä.

.leveys

Ominaisuus .width palauttaa havaitun kohteen leveyden pikseleinä.

Käytä tätä koodia palauttaaksesi ominaisuuden .width:

AIVvision6.objects[0].width

Ominaisuus .width palauttaa arvon välillä 0–320.

.centerX

Ominaisuus .centerX raportoi havaitun visuaalisen allekirjoituksenkeskipisteen X-koordinaatin.

Käytä tätä koodia palauttaaksesi .centerX -ominaisuuden:

AIVision6.objects[0].centerX

Ominaisuus .centerX palauttaa luvun väliltä 0–320.

.centerY

Ominaisuus .centerY raportoi havaitun visuaalisen allekirjoituksenkeskustan Y-koordinaatin.

Käytä tätä koodia palauttaaksesi .centerY -ominaisuuden:

AIVision6.objects[0].centerY

Ominaisuus .centerY palauttaa luvun väliltä 0–240.

.originX

Ominaisuus .originX raportoi havaitun visuaalisen allekirjoituksen vasemman yläkulman X-koordinaatin.

Käytä tätä koodia palauttaaksesi .originX -ominaisuuden:

AIVision6.objects[0].originX

Ominaisuus .originXpalauttaa luvun väliltä 0–320.

.alkuperä

Ominaisuus .originY ilmoittaa havaitun visuaalisen allekirjoituksen vasemman yläkulman Y-koordinaatin.

Käytä tätä koodia palauttaaksesi .originY -ominaisuuden:

AIVision6.objects[0].originY

Ominaisuus .originYpalauttaa luvun väliltä 0–240.

.kulma

Ominaisuus .angle palauttaa Color Coden kulman arvon.

Käytä tätä koodia palauttaaksesi ominaisuuden .angle:

AIVvision6.objects[0].angle

Ominaisuus .angle palauttaa havaitun värikoodin suunnan, joka vaihtelee välillä 0 - 359,99 astetta.

.olemassa

.exists on Boolen ominaisuus, joka palauttaa tosi, jos se on kelvollinen objekti. 

Se palauttaa epätosi, jos objekti on virheellinen, esimerkiksi jos käytetään negatiivista kokonaislukua. Jos objekti on virheellinen, kaikki muut ominaisuudet palauttavat arvokseen nollia.

int main() {
while (true) {
// Ota tilannekuva tarkistaaksesi havaitut kohteet
AIVision6.takeSnapshot(BlueBox);

// Tyhjennä näyttö/nollaa, jotta voimme näyttää uusia tietoja
Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);

// Jos esineitä löytyi, tulosta sijainti
if (AIVision6.objects[0].exists) {
Brain.Screen.print("Center X: %d, AIVision6.objects[0].centerX);
} else {
Brain.Screen.print("ei objektia");
}

odota(0,5, sekuntia);
}
}

For more information, help, and tips, check out the many resources at VEX Professional Development Plus

Last Updated: