Dans cet article, nous allons voir comment capturer simplement une image grâce au module raspicam et à l’utilisation de la librairie picamera2
Prérequis:
Pour ma part, j’utilise un raspberry pi 5 et un module ArduCam de 16MP, mais leurs prix ont fortement augmenté ces derniers temps.
Dans un premier temps, nous allons installer la caméra, ce qui est une opération assez simple : il suffit d’insérer la nappe de la caméra dans le port prévu à cet effet. Je vous conseille fortement de brancher le module caméra sans alimentation afin d’éviter tout court-circuit pouvant endommager le module.
Avant d’aller plus loin, nous pouvons tester que notre caméra fonctionne bien en tapant la commande suivante:
rpicam-hello
Si tout se passe correctement, vous devriez voir en live les images capturées par la caméra
Très bien notre caméra fonctionne bien, nous pouvons attaquer la partie python.
Afin de pouvoir interfacer la caméra avec python, nous pouvons utiliser le module picamera2.
Pour l’installer, rien de plus simple:
pip3 install picamera
Une fois l’installation effectuée, nous pouvons passer à la partie code.
Nous sommes maintenant prêts à capturer notre première image !
Commençons par créer un fichier « capture_image.py » afin de pouvoir inscrire notre code.
from picamera2 import Picamera2
import time
picam2 = Picamera2()
picam2.start()
time.sleep(2)
frame = picam2.capture_array()
print(type(frame), frame.shape) # (hauteur, largeur, 3)
picam2.capture_file("/home/photobooth/image.jpg")
picam2.close()
Tout d’abord, les lignes 1-2 permettent de charger les paquets nécessaires.
Ensuite, nous initialisons la caméra à la ligne 4 avec la classe Picamera2.
À la ligne 5, nous démarrons la capture pour que la caméra soit prête à acquérir des images.
Une courte pause est ensuite ajoutée à la ligne 6 afin de laisser le module initialiser correctement le flux vidéo.
À la ligne 8, nous récupérons une image sous forme de tableau NumPy grâce à la méthode capture_array().
Le type et la forme de cette image sont ensuite affichés à la ligne 9 : un tableau de dimensions (hauteur, largeur, 3), correspondant à une image en couleur RGB.
Enfin, nous pouvons enregistrer cette image sur le disque à la ligne 11 avec la méthode capture_file(), puis fermer proprement la caméra à la ligne 13.
L’exécution de ce code simple nous permet d’enregistrer facilement une image sur notre raspberry. Du fait que picamera2 renvoie un np.array permet de facilement utiliser ces données dans un programme utilisant OpenCV comme par exemple pour la détection de dés.
Détecter les voies de circulation est une étape incontournable pour la réalisation d’un système de…
Aujourd’hui nous allons utiliser Dlib et OpenCV pour détecter les repères faciaux (facial landmarks) dans…
Nous avons vu dans un précédent article comment utiliser l’algorithme MobileNetSSD pour la reconnaissance d’objet…
Dans cet article, nous nous intéressons à l’utilisation des réseaux de neurones convolutifs dans le…
Derrière ce titre un peu trompeur, nous n’allons pas trouver Charlie dans une image, mais…
Vous trouverez dans cet article une cheat sheet rassemblant un ensemble de fonctions d’OpenCV utilisable…