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/da/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md

6.2 KiB

Tag et billede - Virtuel IoT-hardware

I denne del af lektionen vil du tilføje en kamerasensor til din virtuelle IoT-enhed og læse billeder fra den.

Hardware

Den virtuelle IoT-enhed vil bruge et simuleret kamera, der sender enten billeder fra filer eller fra dit webcam.

Tilføj kameraet til CounterFit

For at bruge et virtuelt kamera skal du tilføje et til CounterFit-appen.

Opgave - tilføj kameraet til CounterFit

Tilføj kameraet til CounterFit-appen.

  1. Opret en ny Python-app på din computer i en mappe kaldet fruit-quality-detector med en enkelt fil kaldet app.py og et Python-virtuelt miljø, og tilføj CounterFit pip-pakkerne.

    ⚠️ Du kan finde instruktionerne til oprettelse og opsætning af et CounterFit Python-projekt i lektion 1, hvis nødvendigt.

  2. Installer en ekstra Pip-pakke for at installere en CounterFit shim, der kan kommunikere med kamerasensorer ved at simulere nogle af Picamera Pip-pakken. Sørg for, at du installerer dette fra en terminal med det virtuelle miljø aktiveret.

    pip install counterfit-shims-picamera
    
  3. Sørg for, at CounterFit-webappen kører.

  4. Opret et kamera:

    1. I Create sensor-boksen i Sensors-panelet skal du vælge Sensor type-boksen og vælge Camera.

    2. Sæt Name til Picamera.

    3. Vælg knappen Add for at oprette kameraet.

    Kameraindstillingerne

    Kameraet vil blive oprettet og vises i sensorlisten.

    Kameraet oprettet

Programmer kameraet

Den virtuelle IoT-enhed kan nu programmeres til at bruge det virtuelle kamera.

Opgave - programmer kameraet

Programmer enheden.

  1. Sørg for, at fruit-quality-detector-appen er åben i VS Code.

  2. Åbn filen app.py.

  3. Tilføj følgende kode øverst i app.py for at forbinde appen til CounterFit:

    from counterfit_connection import CounterFitConnection
    CounterFitConnection.init('127.0.0.1', 5000)
    
  4. Tilføj følgende kode til din app.py-fil:

    import io
    from counterfit_shims_picamera import PiCamera
    

    Denne kode importerer nogle nødvendige biblioteker, inklusive klassen PiCamera fra biblioteket counterfit_shims_picamera.

  5. Tilføj følgende kode nedenunder for at initialisere kameraet:

    camera = PiCamera()
    camera.resolution = (640, 480)
    camera.rotation = 0
    

    Denne kode opretter et PiCamera-objekt og sætter opløsningen til 640x480. Selvom højere opløsninger understøttes, arbejder billedklassificeringen med meget mindre billeder (227x227), så der er ingen grund til at fange og sende større billeder.

    Linjen camera.rotation = 0 angiver rotationen af billedet i grader. Hvis du har brug for at rotere billedet fra webcam eller filen, skal du indstille dette som passende. For eksempel, hvis du vil ændre billedet af en banan på et webcam i landskabsformat til portrætformat, skal du sætte camera.rotation = 90.

  6. Tilføj følgende kode nedenunder for at fange billedet som binære data:

    image = io.BytesIO()
    camera.capture(image, 'jpeg')
    image.seek(0)
    

    Denne kode opretter et BytesIO-objekt til at gemme binære data. Billedet læses fra kameraet som en JPEG-fil og gemmes i dette objekt. Dette objekt har en positionsindikator for at vide, hvor det er i dataene, så der kan skrives mere data til slutningen, hvis nødvendigt. Linjen image.seek(0) flytter denne position tilbage til starten, så alle data kan læses senere.

  7. Tilføj nedenunder følgende for at gemme billedet i en fil:

    with open('image.jpg', 'wb') as image_file:
        image_file.write(image.read())
    

    Denne kode åbner en fil kaldet image.jpg til skrivning, læser derefter alle data fra BytesIO-objektet og skriver dem til filen.

    💁 Du kan fange billedet direkte til en fil i stedet for et BytesIO-objekt ved at angive filnavnet til camera.capture-kaldet. Årsagen til at bruge BytesIO-objektet er, at du senere i denne lektion kan sende billedet til din billedklassificering.

  8. Konfigurer billedet, som kameraet i CounterFit vil fange. Du kan enten sætte Source til File og derefter uploade en billedfil, eller sætte Source til WebCam, og billeder vil blive fanget fra dit webcam. Sørg for at vælge knappen Set efter at have valgt et billede eller dit webcam.

    CounterFit med en fil sat som billedkilde og et webcam, der viser en person, der holder en banan i en forhåndsvisning af webcammet

  9. Et billede vil blive fanget og gemt som image.jpg i den aktuelle mappe. Du vil se denne fil i VS Code-udforskeren. Vælg filen for at se billedet. Hvis det skal roteres, opdater linjen camera.rotation = 0 som nødvendigt og tag et nyt billede.

💁 Du kan finde denne kode i mappen code-camera/virtual-iot-device.

😀 Dit kameraprogram var en succes!


Ansvarsfraskrivelse:
Dette dokument er blevet oversat ved hjælp af AI-oversættelsestjenesten Co-op Translator. Selvom vi bestræber os på nøjagtighed, skal du være opmærksom på, at automatiserede oversættelser kan indeholde fejl eller unøjagtigheder. Det originale dokument på dets oprindelige sprog bør betragtes som den autoritative kilde. For kritisk information anbefales professionel menneskelig oversættelse. Vi påtager os intet ansvar for misforståelser eller fejltolkninger, der måtte opstå som følge af brugen af denne oversættelse.