6.7 KiB
Capturarea unei imagini - Hardware IoT Virtual
În această parte a lecției, vei adăuga un senzor de cameră dispozitivului tău IoT virtual și vei citi imagini de la acesta.
Hardware
Dispozitivul IoT virtual va folosi o cameră simulată care trimite fie imagini din fișiere, fie de la camera web.
Adaugă camera în CounterFit
Pentru a utiliza o cameră virtuală, trebuie să adaugi una în aplicația CounterFit.
Sarcină - adaugă camera în CounterFit
Adaugă camera în aplicația CounterFit.
-
Creează o nouă aplicație Python pe computerul tău într-un folder numit
fruit-quality-detector
, cu un singur fișier numitapp.py
și un mediu virtual Python, și adaugă pachetele pip CounterFit.⚠️ Poți consulta instrucțiunile pentru crearea și configurarea unui proiect Python CounterFit în lecția 1, dacă este necesar.
-
Instalează un pachet Pip suplimentar pentru a instala un shim CounterFit care poate comunica cu senzorii de cameră simulând unele funcționalități ale pachetului Pip Picamera. Asigură-te că instalezi acest pachet dintr-un terminal cu mediul virtual activat.
pip install counterfit-shims-picamera
-
Asigură-te că aplicația web CounterFit este pornită.
-
Creează o cameră:
-
În caseta Create sensor din panoul Sensors, deschide meniul derulant Sensor type și selectează Camera.
-
Setează Name la
Picamera
. -
Selectează butonul Add pentru a crea camera.
Camera va fi creată și va apărea în lista de senzori.
-
Programează camera
Dispozitivul IoT virtual poate fi acum programat pentru a utiliza camera virtuală.
Sarcină - programează camera
Programează dispozitivul.
-
Asigură-te că aplicația
fruit-quality-detector
este deschisă în VS Code. -
Deschide fișierul
app.py
. -
Adaugă următorul cod în partea de sus a fișierului
app.py
pentru a conecta aplicația la CounterFit:from counterfit_connection import CounterFitConnection CounterFitConnection.init('127.0.0.1', 5000)
-
Adaugă următorul cod în fișierul
app.py
:import io from counterfit_shims_picamera import PiCamera
Acest cod importă câteva biblioteci necesare, inclusiv clasa
PiCamera
din biblioteca counterfit_shims_picamera. -
Adaugă următorul cod mai jos pentru a inițializa camera:
camera = PiCamera() camera.resolution = (640, 480) camera.rotation = 0
Acest cod creează un obiect PiCamera, setează rezoluția la 640x480. Deși sunt acceptate rezoluții mai mari, clasificatorul de imagini funcționează cu imagini mult mai mici (227x227), așa că nu este nevoie să capturezi și să trimiți imagini mai mari.
Linia
camera.rotation = 0
setează rotația imaginii în grade. Dacă trebuie să rotești imaginea de la camera web sau din fișier, setează această valoare corespunzător. De exemplu, dacă vrei să schimbi imaginea unei banane de pe o cameră web în mod peisaj la portret, seteazăcamera.rotation = 90
. -
Adaugă următorul cod mai jos pentru a captura imaginea ca date binare:
image = io.BytesIO() camera.capture(image, 'jpeg') image.seek(0)
Acest cod creează un obiect
BytesIO
pentru a stoca date binare. Imaginea este citită de la cameră ca un fișier JPEG și stocată în acest obiect. Acest obiect are un indicator de poziție pentru a ști unde se află în date, astfel încât mai multe date să poată fi scrise la final, dacă este necesar. Liniaimage.seek(0)
mută această poziție înapoi la început, astfel încât toate datele să poată fi citite ulterior. -
Mai jos, adaugă următorul cod pentru a salva imaginea într-un fișier:
with open('image.jpg', 'wb') as image_file: image_file.write(image.read())
Acest cod deschide un fișier numit
image.jpg
pentru scriere, apoi citește toate datele din obiectulBytesIO
și le scrie în fișier.💁 Poți captura imaginea direct într-un fișier în loc de un obiect
BytesIO
prin transmiterea numelui fișierului în apelulcamera.capture
. Motivul utilizării obiectuluiBytesIO
este că mai târziu în această lecție vei putea trimite imaginea către clasificatorul tău de imagini. -
Configurează imaginea pe care camera din CounterFit o va captura. Poți seta Source la File, apoi să încarci un fișier imagine, sau să setezi Source la WebCam, iar imaginile vor fi capturate de la camera web. Asigură-te că selectezi butonul Set după ce alegi o imagine sau camera web.
-
O imagine va fi capturată și salvată ca
image.jpg
în folderul curent. Vei vedea acest fișier în exploratorul VS Code. Selectează fișierul pentru a vizualiza imaginea. Dacă este necesară rotația, actualizează liniacamera.rotation = 0
corespunzător și fă o altă fotografie.
💁 Poți găsi acest cod în folderul code-camera/virtual-iot-device.
😀 Programul tău pentru cameră a fost un succes!
Declinarea responsabilității:
Acest document a fost tradus folosind serviciul de traducere AI Co-op Translator. Deși ne străduim să asigurăm acuratețea, vă rugăm să rețineți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm răspunderea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.