Raspberry

Capturer une vidéo avec la caméra du Raspberry

La semaine dernière, nous avons vu comment capturer une image grâce à une caméra branchée sur un raspberry pi.

Dans cet article, nous allons voir comment capturer une vidéo grâce au module ArduCam 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.

Étape 1: Connecter la caméra au Raspberry

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.

Étape 2: Tester la caméra

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.

Étape 3: Installer PiCamera2

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.

Étape 4: Acquérir d’une vidéo

Nous sommes maintenant prêts à capturer une vidéo !

Commençons par créer un fichier « capture_video.py » afin de pouvoir inscrire notre code.

from picamera2 import Picamera2
import cv2
import time

picam2 = Picamera2()
picam2.start()
time.sleep(2)

running = True

while running:
 frame = picam2.capture_array()
 cv2.imshow('video',frame)

 k=cv2.waitKey(1)
 if k == 27:
  running = False

picam2.stop()
cv2.destroyAllWindows()

Tout d’abord, les lignes 1-3 permettent de charger les paquets nécessaires.

Ensuite, nous initialisons la caméra à la ligne 5 avec la classe Picamera2.
À la ligne 6, 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 7 afin de laisser le module initialiser correctement le flux vidéo.

Nous initialisons une variable running, à la ligne 9 qui nous permettra d’arrêter le programme par la suite.
Tant que cette variable est vraie (l.11), nous récupérons une image sous forme de tableau NumPy grâce à la méthode capture_array() (l.12). Puis nous affichons cette image avec la ligne 13.

Nous utilisons la fonction cv2.waitKey(1) à la ligne 15 pour afficher l’image actuelle pendant 1ms et pour récupérer la valeur d’une touche (k) si une touche est pressée. Si la touche « Échap » est pressée, alors k aura la valeur 27, ce qui impliquera que la variable running passe à False (l.16-17).

Dans ce cas, nous fermons proprement la caméra à la ligne 19, puis détruisons la fenêtre d’affichage à la ligne 20.

L’exécution de ce code simple nous permet d’afficher les images capturées par le module ArduCam. Du fait que picamera2 renvoie un np.array permet de facilement utiliser ces données dans un programme utilisant OpenCV.

Florent

Recent Posts

Installer OpenCV 5 sur MacOS

Vous avez commencé un projet de vision par ordinateur ou de traitement d'images ? Alors,…

2 semaines ago

[Étape 3] Création d’un Photobooth – Finalisation

Nous avons vu dans les précédents articles de quel matériel nous avions besoin pour créer…

3 semaines ago

[Étape 2] Création d’un photobooth – Logiciel

Nous avons préparé la semaine dernière toute la partie matérielle du photobooth. Maintenant nous allons…

4 semaines ago

[Étape 1] Création d’un photobooth – Hardware

J'avais il y a quelques années réalisé un photobooth, afin de permettre aux convives de…

1 mois ago

Conduite autonome : comment détecter les lignes d’une route

Détecter les voies de circulation est une étape incontournable pour la réalisation d’un système de…

2 mois ago

Installez OpenCV 4 sur macOs

Vous avez commencé un projet de vision par ordinateur ou de traitement d'images ? Alors,…

4 mois ago