5.6 KiB
Pildi jäädvustamine - Virtuaalne IoT-seade
Selles õppetüki osas lisate oma virtuaalsele IoT-seadmele kaamerasensori ja loete sellest pilte.
Riistvara
Virtuaalne IoT-seade kasutab simuleeritud kaamerat, mis saadab kas pilte failidest või teie veebikaamerast.
Kaamera lisamine CounterFit-i
Virtuaalse kaamera kasutamiseks peate selle CounterFit rakendusse lisama.
Ülesanne - kaamera lisamine CounterFit-i
Lisage kaamera CounterFit rakendusse.
-
Looge oma arvutis uus Python-rakendus kaustas
fruit-quality-detector, millel on üks fail nimegaapp.pyja Python-i virtuaalne keskkond, ning lisage CounterFit pip-paketid.⚠️ Vajadusel saate viidata juhistele CounterFit Python-projekti loomise ja seadistamise kohta 1. õppetükis.
-
Installige täiendav Pip-pakett, et lisada CounterFit shim, mis suudab suhelda kaamerasensoritega, simuleerides mõningaid Picamera Pip-paketi funktsioone. Veenduge, et installite selle terminalist, kus virtuaalne keskkond on aktiveeritud.
pip install counterfit-shims-picamera -
Veenduge, et CounterFit veebirakendus töötab.
-
Looge kaamera:
-
Sensors paneelil Create sensor kastis valige rippmenüüst Sensor type ja valige Camera.
-
Määrake Name väärtuseks
Picamera. -
Valige Add nupp, et kaamera luua.
Kaamera luuakse ja ilmub sensorite loendisse.
-
Kaamera programmeerimine
Virtuaalset IoT-seadet saab nüüd programmeerida kasutama virtuaalset kaamerat.
Ülesanne - kaamera programmeerimine
Programmeerige seade.
-
Veenduge, et
fruit-quality-detectorrakendus on VS Code'is avatud. -
Avage fail
app.py. -
Lisage
app.pyfaili algusesse järgmine kood, et ühendada rakendus CounterFit-iga:from counterfit_connection import CounterFitConnection CounterFitConnection.init('127.0.0.1', 5000) -
Lisage järgmine kood oma
app.pyfaili:import io from counterfit_shims_picamera import PiCameraSee kood impordib mõned vajalikud teegid, sealhulgas
PiCameraklassi counterfit_shims_picamera teegist. -
Lisage sellele alla järgmine kood kaamera initsialiseerimiseks:
camera = PiCamera() camera.resolution = (640, 480) camera.rotation = 0See kood loob PiCamera objekti ja seab resolutsiooniks 640x480. Kuigi toetatakse ka kõrgemaid resolutsioone, töötab pildiklassifikaator palju väiksemate piltidega (227x227), seega pole vaja jäädvustada ja saata suuremaid pilte.
Rida
camera.rotation = 0määrab pildi pööramise kraadides. Kui peate veebikaamera või faili pilti pöörama, seadke see vastavalt. Näiteks, kui soovite muuta veebikaamera horisontaalrežiimis banaanipildi vertikaalseks, seadkecamera.rotation = 90. -
Lisage sellele alla järgmine kood, et jäädvustada pilt binaarandmetena:
image = io.BytesIO() camera.capture(image, 'jpeg') image.seek(0)See kood loob
BytesIOobjekti binaarandmete salvestamiseks. Pilt loetakse kaamerast JPEG-failina ja salvestatakse sellesse objekti. Sellel objektil on positsiooniindikaator, mis näitab, kus andmetes ollakse, et vajadusel saaks rohkem andmeid lõppu kirjutada, seega liigutab ridaimage.seek(0)selle positsiooni tagasi algusesse, et hiljem saaks kõik andmed lugeda. -
Lisage sellele alla järgmine kood, et salvestada pilt faili:
with open('image.jpg', 'wb') as image_file: image_file.write(image.read())See kood avab faili nimega
image.jpgkirjutamiseks, loeb kõik andmedBytesIOobjektist ja kirjutab need faili.💁 Võite jäädvustada pildi otse faili, mitte
BytesIOobjekti, andes faili nimecamera.capturekäsule. Põhjus, miks kasutatakseBytesIOobjekti, on see, et hiljem selles õppetükis saate pildi saata oma pildiklassifikaatorile. -
Konfigureerige pilt, mida CounterFit kaamera jäädvustab. Võite määrata Source väärtuseks File ja üles laadida pildifaili või määrata Source väärtuseks WebCam, et pilte jäädvustataks teie veebikaamerast. Veenduge, et valite Set nupu pärast pildi valimist või veebikaamera seadistamist.
-
Pilt jäädvustatakse ja salvestatakse failina
image.jpgpraeguses kaustas. Näete seda faili VS Code'i failihalduris. Valige fail, et pilti vaadata. Kui see vajab pööramist, uuendage ridacamera.rotation = 0vastavalt ja tehke uus pilt.
💁 Selle koodi leiate kaustast code-camera/virtual-iot-device.
😀 Teie kaameraprogramm töötas edukalt!
Lahtiütlus:
See dokument on tõlgitud AI tõlketeenuse Co-op Translator abil. Kuigi püüame tagada täpsust, palume arvestada, et automaatsed tõlked võivad sisaldada vigu või ebatäpsusi. Algne dokument selle algses keeles tuleks pidada autoriteetseks allikaks. Olulise teabe puhul soovitame kasutada professionaalset inimtõlget. Me ei vastuta selle tõlke kasutamisest tulenevate arusaamatuste või valesti tõlgenduste eest.


