7.0 KiB
Capturer une image - Matériel IoT Virtuel
Dans cette partie de la leçon, vous allez ajouter un capteur de caméra à votre appareil IoT virtuel et lire des images à partir de celui-ci.
Matériel
L'appareil IoT virtuel utilisera une caméra simulée qui envoie soit des images provenant de fichiers, soit de votre webcam.
Ajouter la caméra à CounterFit
Pour utiliser une caméra virtuelle, vous devez en ajouter une à l'application CounterFit.
Tâche - ajouter la caméra à CounterFit
Ajoutez la caméra à l'application CounterFit.
-
Créez une nouvelle application Python sur votre ordinateur dans un dossier appelé
fruit-quality-detector
avec un seul fichier nomméapp.py
, ainsi qu'un environnement virtuel Python, et ajoutez les packages pip de CounterFit.⚠️ Vous pouvez vous référer aux instructions pour créer et configurer un projet Python CounterFit dans la leçon 1 si nécessaire.
-
Installez un package Pip supplémentaire pour installer un shim CounterFit qui peut communiquer avec des capteurs de caméra en simulant une partie du package Pip Picamera. Assurez-vous de l'installer depuis un terminal avec l'environnement virtuel activé.
pip install counterfit-shims-picamera
-
Assurez-vous que l'application web CounterFit est en cours d'exécution.
-
Créez une caméra :
-
Dans la boîte Créer un capteur du volet Capteurs, déroulez la boîte Type de capteur et sélectionnez Caméra.
-
Définissez le Nom sur
Picamera
. -
Sélectionnez le bouton Ajouter pour créer la caméra.
La caméra sera créée et apparaîtra dans la liste des capteurs.
-
Programmer la caméra
L'appareil IoT virtuel peut maintenant être programmé pour utiliser la caméra virtuelle.
Tâche - programmer la caméra
Programmez l'appareil.
-
Assurez-vous que l'application
fruit-quality-detector
est ouverte dans VS Code. -
Ouvrez le fichier
app.py
. -
Ajoutez le code suivant en haut de
app.py
pour connecter l'application à CounterFit :from counterfit_connection import CounterFitConnection CounterFitConnection.init('127.0.0.1', 5000)
-
Ajoutez le code suivant à votre fichier
app.py
:import io from counterfit_shims_picamera import PiCamera
Ce code importe certaines bibliothèques nécessaires, y compris la classe
PiCamera
de la bibliothèque counterfit_shims_picamera. -
Ajoutez le code suivant en dessous pour initialiser la caméra :
camera = PiCamera() camera.resolution = (640, 480) camera.rotation = 0
Ce code crée un objet PiCamera et définit la résolution sur 640x480. Bien que des résolutions plus élevées soient prises en charge, le classificateur d'images fonctionne sur des images beaucoup plus petites (227x227), il n'est donc pas nécessaire de capturer et d'envoyer des images plus grandes.
La ligne
camera.rotation = 0
définit la rotation de l'image en degrés. Si vous devez faire pivoter l'image provenant de la webcam ou du fichier, ajustez cette valeur en conséquence. Par exemple, si vous souhaitez changer l'image d'une banane sur une webcam en mode paysage pour qu'elle soit en mode portrait, définissezcamera.rotation = 90
. -
Ajoutez le code suivant en dessous pour capturer l'image sous forme de données binaires :
image = io.BytesIO() camera.capture(image, 'jpeg') image.seek(0)
Ce code crée un objet
BytesIO
pour stocker des données binaires. L'image est lue depuis la caméra sous forme de fichier JPEG et stockée dans cet objet. Cet objet possède un indicateur de position pour savoir où il se trouve dans les données afin que d'autres données puissent être écrites à la fin si nécessaire. La ligneimage.seek(0)
déplace cette position au début pour que toutes les données puissent être lues plus tard. -
En dessous, ajoutez le code suivant pour enregistrer l'image dans un fichier :
with open('image.jpg', 'wb') as image_file: image_file.write(image.read())
Ce code ouvre un fichier appelé
image.jpg
en écriture, puis lit toutes les données de l'objetBytesIO
et les écrit dans le fichier.💁 Vous pouvez capturer l'image directement dans un fichier au lieu d'un objet
BytesIO
en passant le nom du fichier à l'appelcamera.capture
. La raison d'utiliser l'objetBytesIO
est qu'ultérieurement dans cette leçon, vous pourrez envoyer l'image à votre classificateur d'images. -
Configurez l'image que la caméra dans CounterFit capturera. Vous pouvez soit définir la Source sur Fichier, puis télécharger un fichier image, soit définir la Source sur WebCam, et les images seront capturées depuis votre webcam. Assurez-vous de sélectionner le bouton Définir après avoir choisi une image ou votre webcam.
-
Une image sera capturée et enregistrée sous le nom
image.jpg
dans le dossier actuel. Vous verrez ce fichier dans l'explorateur de VS Code. Sélectionnez le fichier pour afficher l'image. Si elle nécessite une rotation, mettez à jour la lignecamera.rotation = 0
selon les besoins et prenez une autre photo.
💁 Vous pouvez trouver ce code dans le dossier code-camera/virtual-iot-device.
😀 Votre programme de caméra a été un succès !
Avertissement :
Ce document a été traduit à l'aide du service de traduction automatique Co-op Translator. Bien que nous nous efforcions d'assurer l'exactitude, veuillez noter que les traductions automatisées peuvent contenir des erreurs ou des inexactitudes. Le document original dans sa langue d'origine doit être considéré comme la source faisant autorité. Pour des informations critiques, il est recommandé de recourir à une traduction professionnelle réalisée par un humain. Nous ne sommes pas responsables des malentendus ou des interprétations erronées résultant de l'utilisation de cette traduction.