OpenCV (Open Source Computer Vision Library) est une bibliothèque populaire pour la vision par ordinateur qui permet de traiter et analyser des images et des vidéos. Elle propose une large gamme de fonctions permettant de faire des tâches de traitement d’image telles que la détection d’objets, le suivi de mouvements, la reconnaissance de formes, et bien plus encore.
Dans cet article, nous allons aborder :
- Installation d’OpenCV
- Chargement et affichage d’images
- Traitement de base des images (flou, contours, etc.)
- Détection d’objets avec OpenCV
- Application à la vidéo en temps réel
1. Installation d’OpenCV
📌 Installation via pip
OpenCV peut être installé facilement avec le gestionnaire de paquets pip :
bashCopierModifierpip install opencv-python
Cela installera la version de base d’OpenCV. Si vous souhaitez également installer les modules contrib (plus de fonctionnalités), utilisez :
bashCopierModifierpip install opencv-contrib-python
2. Chargement et affichage d’images
Une des fonctionnalités principales d’OpenCV est de lire et afficher des images. Voici comment procéder.
📌 Charger une image
pythonCopierModifierimport cv2
# Charger l'image
image = cv2.imread('chemin/vers/limage.jpg')
# Vérifier si l'image est chargée correctement
if image is None:
print("L'image n'a pas pu être chargée.")
else:
print("Image chargée avec succès.")
📌 Afficher l’image
Pour afficher l’image, on utilise la fonction cv2.imshow() :
pythonCopierModifiercv2.imshow('Image', image)
cv2.waitKey(0) # Attendre que l'utilisateur appuie sur une touche
cv2.destroyAllWindows() # Fermer toutes les fenêtres
📌 Sauvegarder une image modifiée
Pour sauvegarder l’image modifiée :
pythonCopierModifiercv2.imwrite('nouvelle_image.jpg', image)
3. Traitement de base des images
📌 Conversion en niveaux de gris
Convertir une image en niveaux de gris est une étape courante en vision par ordinateur. Voici comment procéder :
pythonCopierModifiergray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
cv2.imshow('Image en niveaux de gris', gray_image)
cv2.waitKey(0)
📌 Flou gaussien
Le flou gaussien permet de réduire le bruit et les détails fins d’une image. Voici comment l’appliquer :
pythonCopierModifierblurred_image = cv2.GaussianBlur(image, (15, 15), 0)
cv2.imshow('Image floutée', blurred_image)
cv2.waitKey(0)
📌 Détection de contours avec Canny
Le détecteur de contours Canny est une méthode populaire pour détecter les contours dans une image :
pythonCopierModifieredges = cv2.Canny(gray_image, 100, 200)
cv2.imshow('Contours', edges)
cv2.waitKey(0)
4. Détection d’objets avec OpenCV
📌 Détection de visages avec un classificateur en cascade (Haar)
OpenCV fournit des classificateurs en cascade pour la détection d’objets comme les visages. Ces classificateurs sont basés sur des techniques d’apprentissage supervisé.
- Téléchargez un classificateur en cascade pour la détection de visages :
Vous pouvez utiliser les classificateurs fournis par OpenCV dans le répertoireopencv/data/haarcascades/. Utilisez le fichierhaarcascade_frontalface_default.xml. - Code de détection de visages :
pythonCopierModifier# Charger le classificateur en cascade pour la détection de visages
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')
# Convertir l'image en niveaux de gris
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# Détecter les visages dans l'image
faces = face_cascade.detectMultiScale(gray_image, scaleFactor=1.1, minNeighbors=5, minSize=(30, 30))
# Dessiner des rectangles autour des visages détectés
for (x, y, w, h) in faces:
cv2.rectangle(image, (x, y), (x + w, y + h), (255, 0, 0), 2)
# Afficher l'image avec les visages détectés
cv2.imshow('Visages détectés', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
5. Application à la vidéo en temps réel
OpenCV permet également de traiter la vidéo en temps réel à partir de la webcam. Voici un exemple pour détecter des visages en temps réel.
📌 Capture vidéo depuis la webcam
pythonCopierModifier# Ouvrir la webcam
cap = cv2.VideoCapture(0)
while True:
ret, frame = cap.read()
# Convertir l'image en niveaux de gris
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
# Détecter les visages
faces = face_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5, minSize=(30, 30))
# Dessiner des rectangles autour des visages
for (x, y, w, h) in faces:
cv2.rectangle(frame, (x, y), (x + w, y + h), (255, 0, 0), 2)
# Afficher la vidéo avec la détection en temps réel
cv2.imshow('Vidéo en temps réel - Détection de visages', frame)
# Appuyer sur 'q' pour quitter
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# Libérer la caméra et fermer les fenêtres
cap.release()
cv2.destroyAllWindows()
Conclusion
Avec OpenCV, vous avez une boîte à outils puissante pour réaliser des projets de vision par ordinateur. Voici les principales étapes que nous avons couvertes :
- Chargement, affichage et sauvegarde d’images
- Traitement d’images de base : conversion en niveaux de gris, flou, détection de contours
- Détection d’objets : exemple avec la détection de visages
- Application à la vidéo en temps réel : utiliser la webcam pour de la détection en direct

















