6.9 KiB
Kép rögzítése - Virtuális IoT Hardver
Ebben a leckében hozzáad egy kameraérzékelőt a virtuális IoT eszközéhez, és képeket olvas be róla.
Hardver
A virtuális IoT eszköz egy szimulált kamerát fog használni, amely vagy fájlokból, vagy a webkamerájáról küld képeket.
Kamera hozzáadása a CounterFit-hez
Ahhoz, hogy virtuális kamerát használjon, hozzá kell adnia egyet a CounterFit alkalmazáshoz.
Feladat - kamera hozzáadása a CounterFit-hez
Adja hozzá a kamerát a CounterFit alkalmazáshoz.
-
Hozzon létre egy új Python alkalmazást a számítógépén egy
fruit-quality-detector
nevű mappában, amely egyetlenapp.py
fájlt és egy Python virtuális környezetet tartalmaz, majd adja hozzá a CounterFit pip csomagokat.⚠️ Ha szükséges, hivatkozhat az 1. leckében található utasításokra a CounterFit Python projekt létrehozásához és beállításához.
-
Telepítsen egy további Pip csomagot, amely egy CounterFit shim-et telepít, amely képes kommunikálni a kameraérzékelőkkel, szimulálva a Picamera Pip csomag egyes funkcióit. Győződjön meg róla, hogy ezt egy olyan terminálból telepíti, amelyben a virtuális környezet aktiválva van.
pip install counterfit-shims-picamera
-
Győződjön meg róla, hogy a CounterFit webalkalmazás fut.
-
Hozzon létre egy kamerát:
-
A Create sensor mezőben, a Sensors panelen, nyissa le a Sensor type mezőt, és válassza a Camera lehetőséget.
-
Állítsa a Name mezőt
Picamera
értékre. -
Válassza ki az Add gombot a kamera létrehozásához.
A kamera létrejön, és megjelenik az érzékelők listájában.
-
Kamera programozása
A virtuális IoT eszköz most már programozható a virtuális kamera használatára.
Feladat - kamera programozása
Programozza az eszközt.
-
Győződjön meg róla, hogy a
fruit-quality-detector
alkalmazás meg van nyitva a VS Code-ban. -
Nyissa meg az
app.py
fájlt. -
Adja hozzá a következő kódot az
app.py
tetejére, hogy az alkalmazást csatlakoztassa a CounterFit-hez:from counterfit_connection import CounterFitConnection CounterFitConnection.init('127.0.0.1', 5000)
-
Adja hozzá a következő kódot az
app.py
fájlhoz:import io from counterfit_shims_picamera import PiCamera
Ez a kód importál néhány szükséges könyvtárat, beleértve a
PiCamera
osztályt a counterfit_shims_picamera könyvtárból. -
Adja hozzá az alábbi kódot, hogy inicializálja a kamerát:
camera = PiCamera() camera.resolution = (640, 480) camera.rotation = 0
Ez a kód létrehoz egy PiCamera objektumot, és beállítja a felbontást 640x480-ra. Bár magasabb felbontások is támogatottak, a képosztályozó sokkal kisebb képeken (227x227) működik, így nincs szükség nagyobb képek rögzítésére és küldésére.
A
camera.rotation = 0
sor beállítja a kép forgatását fokokban. Ha forgatni kell a webkameráról vagy a fájlból származó képet, állítsa be ennek megfelelően. Például, ha egy banán képét egy fekvő módban lévő webkameráról álló módba szeretné forgatni, állítsa acamera.rotation = 90
értékre. -
Adja hozzá az alábbi kódot, hogy a képet bináris adatként rögzítse:
image = io.BytesIO() camera.capture(image, 'jpeg') image.seek(0)
Ez a kód létrehoz egy
BytesIO
objektumot a bináris adatok tárolására. A képet a kamera JPEG fájlként olvassa be, és ebben az objektumban tárolja. Ez az objektum tartalmaz egy pozíciójelzőt, amely megmutatja, hol tart az adatokban, hogy további adatokat lehessen hozzáírni a végéhez, ha szükséges, így aimage.seek(0)
sor visszaállítja ezt a pozíciót az elejére, hogy később az összes adatot el lehessen olvasni. -
Ezután adja hozzá az alábbi kódot, hogy a képet fájlba mentse:
with open('image.jpg', 'wb') as image_file: image_file.write(image.read())
Ez a kód megnyit egy
image.jpg
nevű fájlt írásra, majd az összes adatot beolvassa aBytesIO
objektumból, és azt a fájlba írja.💁 A képet közvetlenül egy fájlba is rögzítheti a
camera.capture
hívásnak átadott fájlnévvel. Azért használjuk aBytesIO
objektumot, hogy a lecke későbbi részében elküldhessük a képet a képosztályozónak. -
Állítsa be a képet, amelyet a CounterFit kamerája rögzíteni fog. Beállíthatja a Source-t File-ra, majd feltölthet egy képfájlt, vagy beállíthatja a Source-t WebCam-ra, és a képek a webkameráról lesznek rögzítve. Győződjön meg róla, hogy a Set gombot kiválasztja, miután kiválasztott egy képet vagy a webkamerát.
-
Egy kép rögzítésre kerül, és
image.jpg
néven mentésre kerül az aktuális mappába. Ezt a fájlt látni fogja a VS Code felfedezőjében. Válassza ki a fájlt a kép megtekintéséhez. Ha forgatásra van szükség, frissítse acamera.rotation = 0
sort szükség szerint, és készítsen egy újabb képet.
💁 Ezt a kódot megtalálja a code-camera/virtual-iot-device mappában.
😀 A kamera programja sikeres volt!
Felelősség kizárása:
Ez a dokumentum az AI fordítási szolgáltatás, a Co-op Translator segítségével lett lefordítva. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Kritikus információk esetén javasolt professzionális emberi fordítást igénybe venni. Nem vállalunk felelősséget semmilyen félreértésért vagy téves értelmezésért, amely a fordítás használatából eredhet.