Šiame straipsnyje apžvelgiamos funkcijos, kurias galima naudoti naudojant Python AI Vision Sensor, kartu pateikiamos paprastos instrukcijos, kaip jas naudoti. Sužinosite keturis AI Vision Sensor naudojimo etapus, duomenų gavimą, gautų objektų kiekio matymą, objekto pasirinkimą iš duomenų naudoti ir kokius duomenis iš objekto ištraukti.
Gaukite vaizdinius duomenis naudodami AI Vision Sensor
Norėdamas surinkti informaciją iš aplinkos, AI Vision Sensor nufotografuoja tai, ką jis šiuo metu žiūri. Visi objektai, kuriuos ji identifikuoja su nurodytuvaizdiniu parašu yra saugomi AI Vision Sensor viduje, kurį vėliau gali naudoti kitos funkcijos.
.takeSnapshot
Bet kokius vaizdinių parašų reikės sukonfigūruoti, kad juos būtų galima naudoti kaip parametrą. Kai naudojate metodą, nurodykite parašo parametrą kaip jutiklio pavadinimą, dvigubą pabraukimą, po kurio nurodomas vizualinio parašo pavadinimas.
AIVision6.takeSnapshot (AIVision6__Blue)
AIVision6.takeSnapshot(AIVision6__Red)
AIVision6.takeSnapshot (AIVision6__Žalia)
Pavyzdys
Šiame pavyzdyje .takeSnapshot
metodas naudojamas ieškant bet kokių objektų, atitinkančių "Blue" vaizdinį parašą. Tada kodas parodys objektų, rastų pagal tą vaizdinį parašą, skaičių.
int main() {
while (true) {
// Padarykite momentinę nuotrauką, kad patikrintumėte, ar nėra aptiktų objektų
AIVision6.takeSnapshot(Blue);
// Išvalyti ekraną/atstatyti iš naujo, kad galėtume rodyti naują informaciją
Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);
// Spausdinti kiek objektų buvo aptikta
Brain.Screen.print("objektų skaičius: %d", AIVision6.objectCount);
laukti(0,5 sekundės);
}
}
Nustatykite, kiek objektų buvo aptikta
Kadangi .takeSnapshot
metodas vienu metu gali aptikti kelis objektus su tais pačiais Visual Signature , galite sužinoti, kiek objektų buvo aptikta naudojant .objectCount
ypatybę.
Brain.Screen.Print(“%d”, AIVision1.objectCount)
Pavyzdys
Šiame pavyzdyje ypatybė .objectCount
naudojama patikrinti, ar paskutinėje momentinėje nuotraukoje buvo aptiktas bent 1 vizualinis parašas , tada spausdinama tiesa arba klaidinga, jei objektas buvo aptiktas. Jei objektas buvo aptiktas, jis išspausdina iš viso aptiktų objektų skaičių.
int main() {
while (true) {
// Padarykite momentinę nuotrauką, kad patikrintumėte, ar nėra aptiktų objektų
AIVision6.takeSnapshot(Blue);
// Išvalyti ekraną/atstatyti iš naujo, kad galėtume rodyti naują informaciją
Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);
// jei buvo rasti objektai, atspausdinkite kiek
if (AIVision6.objectCount > 0) {
Brain.Screen.newLine();
Brain.Screen.print("objektų skaičius: %d", AIVision6.objectCount);
}
laukti(0,5 sekundės);
}
}
Pasirinkite, iš kurio objekto norite gauti duomenis
Yra du būdai išgauti duomenis iš AI Vision Sensor. Vienas iš būdų yra tiesiogiai gauti informaciją iš didžiausio objekto, aptikto naudojant .takeSnapshot
metodą, naudojant AIVision.largestObject
ypatybę. Kitas metodas naudoja AIVision.objects[]
ypatybę ir nurodo objekto indeksą.
AIVizija.largestObject
ai.vision.largest_object()
yra nuosavybė pasiekti didžiausią objektą.
int main() {
while (true) {
// Padarykite momentinę nuotrauką, kad patikrintumėte, ar nėra aptiktų objektų
AIVision6.takeSnapshot(BlueBox);
// Išvalyti ekraną/atstatyti iš naujo, kad galėtume rodyti naują informaciją
Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);
// Jei buvo rasti objektai, išspausdinkite vietą
if (AIVision6.objects[0].exists) {
Brain.Screen.print("Centras X: %d, AIVision6.largestObject[0].centerX);
} else {
Brain.Screen.print("nėra objekto");
}
laukti(0,5, sekundės);
}
}
AIVijon.objektai
Kitas būdas gauti duomenis yra nurodyti objekto, iš kurio norite išgauti duomenis, indeksą. Momentinė nuotrauka grąžina aptiktus objektus su didžiausiu objektu, kurio indeksas 0, ir išdėsto objektus nuo didžiausio iki mažiausio.
int main() {
while (true) {
// Padarykite momentinę nuotrauką, kad patikrintumėte, ar nėra aptiktų objektų
AIVision6.takeSnapshot(BlueBox);
// Išvalyti ekraną/atstatyti iš naujo, kad galėtume rodyti naują informaciją
Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);
// Jei buvo rasti objektai, išspausdinkite vietą
if (AIVision6.objects[0].exists) {
Brain.Screen.print("Centras X: %d, AIVision6.objects[0].centerX);
} else {
Brain.Screen.print("nėra objekto");
}
laukti(0,5, sekundės);
}
}
Pasirinkite, kokius duomenis paimti iš objekto
Iš kiekvieno objekto yra aštuonios savybės, kurias galima iškviesti.
.aukštis
.plotis
.centerX
.Centras
.originX
.kilmė
.kampas
.egzistuoja
.aukštis
Ypatybė .height
grąžina aptikto objekto aukštį pikseliais.
Naudokite šį kodą norėdami grąžinti .height
nuosavybę:
AIVijon6.objektai[0].aukštis
Ypatybė .height
pateiks vertę nuo 0 iki 240 pikselių.
.plotis
Ypatybė .width
grąžina aptikto objekto pločio pikseliais.
Naudokite šį kodą norėdami grąžinti ypatybę .width
:
AIVijon6.objektai[0].plotis
Ypatybė .width
pateiks vertę nuo 0 iki 320.
.centerX
Ypatybė .centerX
praneša aptikto vaizdinio parašocentro X koordinatę.
Naudokite šį kodą norėdami grąžinti .centerX
nuosavybę:
AIVizija6.objektai[0].centrasX
Ypatybė .centerX
pateiks skaičių nuo 0 iki 320.
.Centras
Ypatybė .centerY
praneša aptikto vaizdinio parašo centro Y koordinatę.
Naudokite šį kodą norėdami grąžinti .centerY
nuosavybę:
AIVizija6.objektai[0].centras
.centras
ypatybė pateiks skaičių nuo 0 iki 240.
.originX
Ypatybė .originX
nurodo aptikto vizualinio parašo viršutinio kairiojo kampo X koordinatę.
Naudokite šį kodą norėdami grąžinti .originX
nuosavybę:
AIVizija6.objektai[0].kilmėX
Ypatybė .originX
pateiks skaičių nuo 0 iki 320.
.kilmė
Ypatybė .originY
nurodo aptikto vizualinio parašo viršutinio kairiojo kampo Y koordinatę.
Naudokite šį kodą norėdami grąžinti .originY
nuosavybę:
AIVizija6.objektai[0].kilmėY
Ypatybė .originY
pateiks skaičių nuo 0 iki 240.
.kampas
Ypatybė .angle
grąžina spalvų kodo kampo vertę.
Naudokite šį kodą norėdami grąžinti ypatybę .angle
:
AIVijon6.objektai[0].kampas
Ypatybė .angle
grąžina aptiktą spalvų kodo orientaciją, kuri svyruoja nuo 0 iki 359,99 laipsnių.
.egzistuoja
.exists
yra Būlio ypatybė, kuri grąžina true, jei tai tinkamas objektas.
Jei objektas neteisingas, pvz., naudojamas neigiamas sveikasis skaičius, jis grąžins false. Jei objektas neteisingas, visos kitos savybės grąžins 0 kaip savo vertę.
int main() {
while (true) {
// Padarykite momentinę nuotrauką, kad patikrintumėte, ar nėra aptiktų objektų
AIVision6.takeSnapshot(BlueBox);
// Išvalyti ekraną/atstatyti iš naujo, kad galėtume rodyti naują informaciją
Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);
// Jei buvo rasti objektai, išspausdinkite vietą
if (AIVision6.objects[0].exists) {
Brain.Screen.print("Centras X: %d, AIVision6.objects[0].centerX);
} else {
Brain.Screen.print("nėra objekto");
}
laukti(0,5, sekundės);
}
}