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.
Inscrivez-vous pour être informé des prochains tutoriels.
Mis à jour le March 8, 2023, 1:15 p.m.
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
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
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()
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)
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.
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()
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.
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.
Aucun commentaire pour cet article.