Tutoriels de Pythonia

Guides, IA, tutos et newsletter pour devenir une bête en programmation

🔔 Ne manquez pas la suite de cette série !

Inscrivez-vous pour être informé des prochains tutoriels.

Introduction à l'utilisation d'OpenCV: les fondamentaux

Mis à jour le March 8, 2023, 1:15 p.m.

Niveau: Expert

 

Bienvenue dans cet article dédié aux bases de l'utilisation d'OpenCV, où vous découvrirez les bases de cette bibliothèque open-source de computer vision et comment l'utiliser pour traiter les images et les vidéos en temps réel. Dans cet article nous verrons les 5 points suivants:


1- Installation d'OpenCV
2- Lire une image et l'afficher
3- Sauvegarder une image
4- Ecrire sur l'image
5- Lancer le mode caméra


1-Comment installer et utiliser OpenCV ?

Note: Comme chaque fois je vous conseille d'installer un environnement virtuel.

Pour installer OpenCV, vous devez tout d'abord télécharger et installer les bibliothèques OpenCV sur votre ordinateur. Vous pouvez télécharger les bibliothèques OpenCV à partir du site officiel d'OpenCV. Une fois que vous avez téléchargé et installé les bibliothèques OpenCV, vous pouvez les utiliser en important la bibliothèque OpenCV dans votre script Python.

 

Sous Ubuntu:

pip install opencv-python

 

Sous windows, suivez ces instructions: Installation d'OpenCV sur Windows10

Vérifiez votre installation en tapant python dans votre terminal puis

import cv2
cv2.__version__

Resultats:

 

Vous deviez avoir la dernière version, à savoir la version 4. Assurez vous d'utiliser python 3.6 et supérieure.
Pour connaitre votre version de python, taprez la ligne suivante dans votre terminal:

python --version

 

2- Comment lire et afficher une image?

import cv2

# on lit notre image et on la stocke dans une variable
image = cv2.imread('coco.jpg', "photo_coco")

# pour afficher l'image on écrit:
cv2.imshow('image exemple', image)


Le premier import cv2 permet de charger la bibliothèque OpenCV. La fonction cv2.imread() est ensuite utilisée pour lire une image à partir du fichier "coco.jpg" et stocker cette image dans une variable appelée "image". Le deuxième argument de la fonction imread est un flag optionnel qui détermine le mode de lecture de l'image. Dans ce cas, il est défini sur "photo_coco", mais cela ne semble pas être un flag valide pour la fonction imread. Le flag correct à utiliser pour lire une image en couleur est cv2.IMREAD_COLOR.

Et voilà ;). Mais cela ne suffit pas il faut rajouter les deux lignes suivantes pour que l'image ne disparaisse pas instantanément. Ainsi elle attendra qu'on lui dise de se fermer pour le faire.

cv2.waitKey(0)
cv2.destroyAllWindows()

 

3- Comment sauvegarder une image?

On cherche à sauvegarder une image quand on a fait des modifications dessus.

# pour sauvegarder l'image, il suffit de mettre la ligne suivante:
cv2.imwrite("manouvelleimage.jpg", image)

 

 

4- Comment écrire sur une image?

Lorsque vous travaillez avec des images, il peut être utile d'écrire du texte ou de dessiner des formes sur l'image pour ajouter des annotations ou des marqueurs. Ouvrez un nouveau script,

nommez le comme bon vous semble et mettez le code suivant pour tracer une ligne:

import cv2 

# on lit l'image et on la redimensionne
im = cv2.imread("faces_to_detect.jpg")
img = cv2.resize(im, (960, 540))
print('image lue')

# on enregistre une couleur dans un tuple 
black = (0,0,0)

# le premier argument de "cv2.line" est l'image, ensuite le (0,0) correspond aux
# coordonnées x et y de départ, et (500,500) aux coordonnées x,y de fin
# 0,0 se situe tout en haut à gauche de l'image

image = cv2.line(img, (0, 0), (500, 500), black)

# on met le nom de la nouvelle image ici dessin.jpg
cv2.imwrite("dessin.jpg", image)
print('image sauvegardée')
print('fin du script')

 

Ouvrez un nouveau script, nommez le comme bon vous semble et mettez le code suivant pour tracer un rectangle cette fois:

import cv2 

# on lit l'image et on la redimensionne
im = cv2.imread("faces_to_detect.jpg")
img = cv2.resize(im, (960, 540))
print('image lue')

# on enregistre une couleur dans un tuple 
rouge = (255,0,0)

# le premier argument de "cv2.line" est l'image, ensuite le (0,0) correspond aux
# coordonnées x et y de départ, et (500,500) aux coordonnées x,y de fin
# 0,0 se situe tout en haut à gauche de l'image

image = cv2.rectangle(img, (300, 150), (500, 400), rouge, thickness=2)

# on met le nom de la nouvelle image ici dessin.jpg
cv2.imwrite("dessin_rectangle.jpg", image)
print('image sauvegardée')
print('fin du script')

Nous utilisons la fonction cv2.imread() pour lire l'image "faces_to_detect.jpg" et la redimensionner à une taille de (960, 540) pixels à l'aide de cv2.resize(). Ensuite, nous définissons une couleur en utilisant un tuple de 3 valeurs, représentant les valeurs BGR. Nous utilisons ensuite la fonction cv2.rectangle() pour dessiner un rectangle sur l'image redimensionnée. Cette fonction prend comme arguments l'image, les coordonnées des coins supérieur gauche et inférieur droit du rectangle et la couleur du rectangle. Nous enregistrons ensuite l'image modifiée en utilisant la fonction cv2.imwrite() et spécifions le nom de fichier "dessin_rectangle.jpg". Enfin, nous affichons un message pour indiquer que l'image a été sauvegardée et que le script est terminé.

 

Bravo, vous savez lire une image avec OpenCV, la redimensionner, faire des figures géométriques dessus, et l'enregistrer. Passons à l'utlisation de la caméra.

 

5- Utilisation de la caméra avec OpenCV

Une autre base à connaitre est l'utilisation de la caméra avec OpenCV, vous pouvez le faire avec le script ci-dessous

import cv2
webcam = cv2.VideoCapture(0)
# on créé une boucle
while(True):
    #on recupere frame par frame
    ret, frame = webcam.read()
    # on affiche le frame
    cv2.imshow('frame', frame)
    #on dit au logiciel d'attendre que la touche "q" soit pressée pour arrêter >
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
webcam.release()
cv2.destroyAllWindows()

 

Mais vous pouvez aussi vous amusez à mettre du texte sur la video en utilisant la fonction cv2.putText():

import cv2
webcam = cv2.VideoCapture(0)


# Voici les arguments pour notre fonction d'écriture cv2.putText()
# style d'écriture
font_decriture = cv2.FONT_HERSHEY_SIMPLEX #nouvelle ligne

# position de ce qui est écrit sur la video
position = (50, 50) #nouvelle ligne

# taille de l'écriture
taille = 1 #nouvelle ligne

# couleur bleue
bleu = (255, 0, 0) #nouvelle ligne

# epaisseur de l'écriture, changer la valeur pour tester
thickness = 4 #nouvelle ligne


# on créé une boucle
while(True):
    #on recupere frame par frame
    ret, frame = webcam.read()
    # on écrit sur le frame
    frame_ecrit = cv2.putText(frame, "J'utilise OpenCV pour cette camera", 
        position, font_decriture, 
        taille, bleu, thickness, cv2.LINE_AA)
    # on affiche le frame
    cv2.imshow('frame', frame_ecrit)
    #on dit au logiciel d'attendre que la touche "q" soit pressée pour arrêter >
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
webcam.release()
cv2.destroyAllWindows()

 

 

 

 

Pourquoi utiliser OpenCV ?

OpenCV est largement utilisé dans les projets de computer vision en raison de sa flexibilité et de sa polyvalence. Il offre une large gamme de fonctionnalités qui permettent aux développeurs de traiter les images et les vidéos de manière simple efficace.

Comment utiliser OpenCV avec Python ?

Python est l'un des langages de programmation les plus populaires pour travailler avec OpenCV. Il suffit d'installer la bibliothèque OpenCV et de l'importer dans votre script. Ensuite, vous pouvez utiliser les fonctions OpenCV pour effectuer des manipulations sur les images et les vidéos.

 

Voilà, j'espère que cet article vous a été utile. N'oubliez pas de vous abonner à notre newsletter pour être informé de nos dernières mises à jour et publications.

C'est tout pour cette première partie, nous verrons dans la prochaine comment faire des traitements d'images avec OpenCV.

 




Introduction à l'utilisation d'OpenCV: les fondamentaux

Vous êtes sur ce tutoriel

Introduction à l'utilisation d'OpenCV: Manipulations sur image


Introduction à l'utilisation d'OpenCV: Reconnaissance faciale, old school style!


Introduction à l'utilisation d'OpenCV: detection faciale avec le deep learning


Introduction à l'utilisation d'OpenCV: detection et reconnaissance d'objet avec YOLO


Reconnaissance faciale avec le deep learning


Commentaires

Aucun commentaire pour cet article.

Bienvenue sur Pythonia, pour ceux qui veulent réellement maîtriser la programmation et l'intelligence artificielle.

Rejoignez notre communauté de professionnels et de passionnés, pour rester à la pointe des dernières actualités.

Laissez un commentaire