banner

Nouvelles

Mar 21, 2023

Comment utiliser le module de caméra Raspberry Pi 3 avec le code Python

Utilisez la bibliothèque Picamera2 pour le contrôler.

Le Raspberry Pi possède bon nombre des meilleurs accessoires et celui qui apparaîtra certainement sur cette liste est le nouveau module de caméra 3. Dans notre examen du module de caméra Raspberry Pi 3, nous avons dit que nous aimons la mise au point automatique rapide et les images HDR et nous voulons partager ces fonctionnalités avec vous dans ce tutoriel.

Si vous n'avez jamais utilisé d'appareil photo Raspberry Pi auparavant, notre guide du débutant sur Picamera2 est une excellente introduction pour que votre Pi prenne de superbes photos. Dans ce guide, nous allons explorer les nombreuses façons d'utiliser le système de mise au point du module de caméra 3 avec Picamera2 et apprendre à prendre des images HDR avec un script simple et rapide qui automatise le processus. Si Python n'est pas votre truc, le module de caméra 3 peut également être contrôlé à l'aide de libcamera via le terminal.

L'autofocus a trois modes dans lesquels il fonctionne.

La mise au point continue utilise un algorithme pour rechercher une cible dans le flux d'images. Peu importe que la cible soit proche (environ 10 cm) ou éloignée, l'algorithme trouvera la cible et se verrouillera. Mais comment l'utilisons-nous ? Faisons un test rapide. Nous utiliserons un mode de mise au point continue pour rechercher la meilleure mise au point possible sur notre cible. Il serait utile d'avoir un objet que l'on puisse tenir devant la caméra, nous avons utilisé un billet d'un dollar.

1.Depuis le menu principal, ouvrez Programmation >> Thonny.

2.Importer Picamera2.

3.Importez la classe de contrôles de libcamera.Avec cela, nous pouvons configurer la caméra en fonction de nos besoins.

4.Créer un objet, picam2que nous utiliserons comme lien entre le code et notre caméra.

5.Démarrer une fenêtre d'aperçu.L'aperçu est l'endroit où l'on voit la sortie de la caméra.

6.Réglez l'AfMode (mode de mise au point automatique) sur continu.

7.Enregistrez le code sous AFtest.py.

8.Cliquez sur Exécuter pour démarrer le code. Une fenêtre d'aperçu apparaîtra. Déplacez un objet, nous avons choisi un billet d'un dollar, autour du cadre et observez le déplacement de la mise au point. Essayez de rapprocher l'objet de l'objectif, rappelez-vous que le point focal le plus proche est à 10 centimètres.

Parfois, une mise au point fixe est ce dont nous avons besoin pour obtenir cette superbe photo. Après tout, nous ne voulons pas capturer un désordre flou. Fixer la mise au point est relativement simple ; en fait, c'est si simple que nous pouvons réutiliser la plupart du code de l'exemple précédent.

1.Utiliser Enregistrer soussur l'exemple précédent to créer un nouveau fichier appelé ManualFocusTest.py

2.Modifiez la dernière ligne pour utiliser LensPosition, dans ce cas, définissez la valeur sur 0,0 pour un focus infini.

3.Exécutez le code.Remarquez comment la mise au point est nette pour les objets éloignés, mais de près, ils sont flous.

4.Modifiez la valeur LensPosition sur 0,5.Cela nous donnera environ une distance focale de 50 cm.

5.Enregistrez et exécutez le code. Déplacez un objet vers et depuis la caméra. Remarquez comment la mise au point devient nette autour de 50 cm.

Qu'il s'agisse d'une caméra d'oiseaux, d'une journée sportive à l'école ou de la sécurité à domicile, nous avons parfois besoin d'obtenir une série d'images nettes. Heureusement, nous pouvons régler le module de caméra 3 pour prendre une série d'images rapides et régler la mise au point automatique à grande vitesse.

1.Créez un nouveau fichier appelé AfFastFocus.py

2.Importer Picamera2.

3.Importez la classe de contrôles de libcamera.Avec cela, nous pouvons configurer la caméra en fonction de nos besoins.

4.Créer un objet, picam2que nous utiliserons comme lien entre le code et notre caméra.

5.Démarrer une fenêtre d'aperçu.L'aperçu est l'endroit où l'on voit la sortie de la caméra.

6.Réglez le mode de mise au point automatique sur Continu et réglez AfSpeed ​​sur Rapide.

7.Réglez l'appareil photo pour capturer trois fichiers, avec un délai d'une demi-seconde entre chaque prise de vue. Le nom de fichier "fastfocus.jpg" ajoutera 0, puis 1 et 2 à chaque fichier. Nous donnant trois fichiers dans l'ordre numérique.

8.Fermez la fenêtre d'aperçu.

9.Fermez la connexion de la caméra.

dix.Enregistrez et exécutez le code. Tenez un objet à trois distances différentes de l'appareil photo et observez le changement de mise au point, la fenêtre d'aperçu se fige lorsque l'appareil photo prend une photo, puis se relâche pour la prise suivante. Une fois que trois photos sont prises, la fenêtre de prévisualisation se ferme.

Les images HDR (High Dynamic Range) peuvent être facilement capturées avec libcamera. Nous avons juste besoin de passer l'argument –hdr lorsque nous exécutons la commande. Mais pour Picamera2, nous devons exécuter une commande de terminal avant d'exécuter notre code Python.

Le HDR augmente la plage de luminosité dynamique des images. Avec HDR, nous obtenons une obscurité plus profonde et des images plus lumineuses. Cela fonctionne en capturant plusieurs images de la même scène, chacune avec des expositions différentes. Ces images sont ensuite combinées en une seule image qui englobe toute la gamme. Le module de caméra 3 peut capturer des images HDR, mais pas à la résolution complète de 12 MP. Au lieu de cela, nous obtenons une image 3MP avec une résolution de 2304 x 1296 pixels.

Pour notre test nous allons réutiliser le code duAfFastFocus.py projet, pour capturer une série d'images HDR. Nous utiliserons également la bibliothèque du système d'exploitation de Python pour exécuter une commande de terminal qui activera et désactivera le paramètre HDR sans interaction de l'utilisateur. Cela signifie que nous n'oublierons pas d'activer et de désactiver les paramètres HDR.

1.Créez un nouveau fichier appelé HDRAfFastFocus.py

2.Importer Picamera2.

3.Importez la classe de contrôles de libcamera.Avec cela, nous pouvons configurer la caméra en fonction de nos besoins.

4.Importer le module du système d'exploitation . Cela permet à notre code d'interagir avec le système d'exploitation sous-jacent, dans ce cas Raspberry Pi OS (Linux).

5.Créer un objet, picam2que nous utiliserons comme lien entre le code et notre caméra.

6.Utilisez la fonction système du module os pour configurer la caméra pour qu'elle utilise le HDR. Picamera2 prend en charge le HDR, mais pas directement dans le module. Le problème concerne V4L2, l'interface du noyau entre la caméra et le système vidéo Linux. À l'heure actuelle, il n'offre pas de prise en charge immédiate du HDR avec cet appareil photo, nous devons donc exécuter cette solution de contournement rapide pour le rendre disponible dans Picamera2.

7.Imprimer un message sur Python Shellnous informant que le HDR est activé.

8.Démarrer une fenêtre d'aperçu.L'aperçu est l'endroit où l'on voit la sortie de la caméra.

9.Réglez le mode de mise au point automatique sur Continuetréglez l'AfSpeed ​​sur Rapide.

dix.Réglez l'appareil photo pour capturer trois fichiers, avec un délai d'une seconde entre chaque prise de vue.Le nom de fichier "HDRfastfocus.jpg ajoutera 0, puis 1 et 2 à chaque fichier. Nous donnant trois fichiers dans l'ordre numérique. Nous doublons le délai entre chaque prise de vue pour donner à l'appareil photo le temps d'enregistrer l'image précédente, puis de régler la mise au point pour le image suivante Nous l'avons testé avec un retard de 0,5 et nos clichés étaient parfois un peu trop flous.

11.Fermez la fenêtre d'aperçu.

12.Fermez la connexion de la caméra.

13.Imprimer un message à l'utilisateurque HDR est maintenant désactivé, puis exécutez la commande à l'aide de os.system.

14.Enregistrez et exécutez le code. Tenez un objet à trois distances différentes de l'appareil photo et observez le changement de mise au point, la fenêtre d'aperçu se fige lorsque l'appareil photo prend une photo, puis se relâche pour la prise suivante. Une fois que trois photos sont prises, la fenêtre de prévisualisation se ferme.

Rejoignez les experts qui lisent Tom's Hardware pour en savoir plus sur l'actualité technologique des passionnés de PC - et ce depuis plus de 25 ans. Nous enverrons les dernières nouvelles et des critiques approfondies des processeurs, des GPU, de l'IA, du matériel des fabricants et plus directement dans votre boîte de réception.

Les Pounder est éditeur associé chez Tom's Hardware. Il est un technologue créatif et a créé pendant sept ans des projets pour éduquer et inspirer les esprits, petits et grands. Il a travaillé avec la Fondation Raspberry Pi pour écrire et dispenser leur programme de formation des enseignants "Picademy".

Projets Raspberry Pi : juin 2023

Raspberry Pi alimente le robot gagnant du bière-pong

La caméra Raspberry Pi utilise le son pour créer des photos avec l'IA

Par Les Pounder23 avril 2023

Par Avram Piltch22 avril 2023

Par Brandon Hill21 avril 2023

Par Avram Piltch20 avril 2023

Par Brandon Hill16 avril 2023

Par Les Pounder15 avril 2023

Par Les Pounder9 avril 2023

Par Les Pounder25 mars 2023

Par Jarred Walton19 mars 2023

Par Les Pounder18 mars 2023

Par Avram Piltch15 mars 2023

Manuel : Auto : Continu : Depuis le menu principal, ouvrez Programmation >> Thonny. Importer Picamera2. Importez la classe de contrôles de libcamera. Créer un objet, picam2 Démarrer une fenêtre de prévisualisation. Réglez l'AfMode (mode de mise au point automatique) sur continu. Enregistrez le code sous AFtest.py. Cliquez sur Exécuter pour démarrer le code. Utilisez Enregistrer sous pour créer un nouveau fichier appelé ManualFocusTest.py Changez la dernière ligne pour utiliser LensPosition Exécutez le code. Modifiez la valeur LensPosition sur 0,5. Enregistrez et exécutez le code. Créez un nouveau fichier appelé AfFastFocus.py Import Picamera2. Importez la classe de contrôles de libcamera. Créer un objet, picam2 Démarrer une fenêtre de prévisualisation. Réglez le mode de mise au point automatique sur Continu et réglez AfSpeed ​​sur Rapide. Réglez l'appareil photo pour capturer trois fichiers, avec un délai d'une demi-seconde entre chaque prise de vue. Fermez la fenêtre d'aperçu. Fermez la connexion de la caméra. Enregistrez et exécutez le code. AfFastFocus.py Créez un nouveau fichier appelé HDRAfFastFocus.py Importer Picamera2. Importez la classe de contrôles de libcamera. Importer le module OS Créer un objet, picam2 Utilisez la fonction système du module os pour configurer la caméra pour qu'elle utilise le HDR. Imprimer un message dans Python Shell Démarrer une fenêtre d'aperçu. Réglez le mode de mise au point automatique sur Continu, réglez AfSpeed ​​sur Rapide. Réglez l'appareil photo pour capturer trois fichiers, avec un délai d'une seconde entre chaque prise de vue. Fermez la fenêtre d'aperçu. Fermez la connexion de la caméra. Imprimer un message à l'utilisateur Enregistrez et exécutez le code.
PARTAGER