You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IoT-For-Beginners/translations/ro/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md

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.

  1. Creează o nouă aplicație Python pe computerul tău într-un folder numit fruit-quality-detector, cu un singur fișier numit app.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.

  2. 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
    
  3. Asigură-te că aplicația web CounterFit este pornită.

  4. Creează o cameră:

    1. În caseta Create sensor din panoul Sensors, deschide meniul derulant Sensor type și selectează Camera.

    2. Setează Name la Picamera.

    3. Selectează butonul Add pentru a crea camera.

    Setările camerei

    Camera va fi creată și va apărea în lista de senzori.

    Camera creată

Programează camera

Dispozitivul IoT virtual poate fi acum programat pentru a utiliza camera virtuală.

Sarcină - programează camera

Programează dispozitivul.

  1. Asigură-te că aplicația fruit-quality-detector este deschisă în VS Code.

  2. Deschide fișierul app.py.

  3. 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)
    
  4. 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.

  5. 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.

  6. 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. Linia image.seek(0) mută această poziție înapoi la început, astfel încât toate datele să poată fi citite ulterior.

  7. 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 obiectul BytesIO ș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 apelul camera.capture. Motivul utilizării obiectului BytesIO este că mai târziu în această lecție vei putea trimite imaginea către clasificatorul tău de imagini.

  8. 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.

    CounterFit cu un fișier setat ca sursă de imagine și o cameră web afișând o persoană care ține o banană într-o previzualizare a camerei web

  9. 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ă linia camera.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.