Reconnaissance faciale – TP1 : La vidéo en python

logo python webcam
logo python webcam
logo python webcam

Maintenant que tu as tout préparé, la première chose que l’on va faire pour commencer c’est d’apprendre à récupérer le flux vidéo en python.

On va aussi en profiter pour se créer une petite classe qui va nous permettre de surveiller les performances de notre script de reconnaissance faciale au fur et à mesure qu’on va l’écrire.

Récupérer la vidéo depuis la webcam en python

Déjà, j’espère que tu as déjà ouvert spyder, sinon, tu ne vas pas aller loin 🙂

Pour récupérer le flux vidéo, on va utiliser une bibliothèque qui contient déjà tout ce qui nous faut et qui s’appelle opencv.

L’algo de départ est simple, on fait une boucle infinie. Cette boucle récupère l’image à l’instant t envoyée par la caméra. Elle affiche l’image dans une fenêtre. Elle vérifie qu’on appuie pas sur la touche Q car si on appuie dessus on sort de la boucle. Et on recommande, on prend l’image de la webcam, on l’affiche dans la fenêtre etc…

C’est parti. Commençons par importer cv2

## On importe CV2
import cv2

On crée une variable qui va contenir l’accès à notre flux vidéo

## On initialise le flux de capture vidéo
## depuis la webcam ou caméra de surveillance
## 0 c'est pour la première webcam, 1 la seconde etc...
videoWebcam = cv2.VideoCapture(0)

Voilà notre boucle infinie.

## Top départ de notre boucle inifinie
## Tant que Vrai est toujours vrai :)
while True:

On récupère la toute dernière image en cours dans le flux vidéo.

    ##on récupère la dernière image de la vidéo 
    valeurRetour, imageWebcam = videoWebcam.read()

Bon, on s’assure que nous avons bien reçu une image sinon ça va faire des chocapics.

    ##on récupère la dernière image de la vidéo 
    valeurRetour, imageWebcam = videoWebcam.read()

Si on a bien récupéré une image, on l’affiche dans une fenêtre.

        ## On affiche l'image 
        cv2.imshow('Image de la webcam', imageWebcam)        

On oublie pas notre porte de sortie de la boucle infinie.

    ## Comme c'est une boucle infinie, il faut bien se prévoir une sortie
    ## Dans notre cas, ce sera l'appui sur la touche Q
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

Si on est sortie de la boucle, un petit nettoyage parce qu’on est des personnes qui travaillent proprement… ou presque 😀

## Si on arrive jusque là, c'est qu'on est sorti de notre boucle
# Donc, on libère le flux de la webcam et on détruit la fenêtre d'affichage
videoWebcam.release()
cv2.destroyAllWindows() 

Et voilà ! Simple, efficace. Un petit F5 pour lancer tout ça et tu peux voir ta petite bouille dans une fenêtre 🙂

2 Comments

  1. Bonjour, j’ai essayé de rentrer le code mais lorsque je dois installer le module outils, je tape pip install outils, je redémarre le kernel mais après, spyder me dit:”No module named ‘outils'”. Quelqu’un saurait ce que je devrais faire?

    • Bonjour Jeremy,

      Effectivement, je ne vois pas la trace du fichier outils.py dans l’article.
      Essaye de remplacer outils.perfImage as perfImage par perfImage
      Cela dépend de la où tu as mis la classe perfImage.

      Ced

Poster un Commentaire

Votre adresse de messagerie ne sera pas publiée.


*


Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.