Mode Découverte Gratuit (Accès 1-Clic)

Vous profitez d'un accès libre aux premières leçons de ce cours. Créez un compte gratuit pour enregistrer votre progression et accéder aux quiz !

Créer un compte gratuit

Installation et Premiers Pas avec les Images

Introduction : Voir le Monde à travers le Code

Bienvenue dans le monde fascinant de la vision par ordinateur ! Vous est-il déjà arrivé de vous demander comment votre smartphone peut reconnaître un visage pour le déverrouiller, ou comment une voiture autonome peut identifier un panneau stop ? Au cœur de ces technologies se trouve une discipline : la capacité pour une machine d'interpréter et de comprendre des informations visuelles. Pour nous, développeurs, notre porte d'entrée principale dans ce domaine est la bibliothèque OpenCV.

Dans votre quotidien de développeur, vous manipulez constamment des données : des chaînes de caractères, des nombres, des objets JSON. Une image, pour un ordinateur, n'est rien de plus qu'un autre type de données. Imaginez une feuille de calcul extrêmement dense. Chaque cellule contient une information numérique qui, combinée à des milliers d'autres, forme l'image que vous percevez. OpenCV est notre boîte à outils spécialisée pour lire, analyser et transformer cette "feuille de calcul" visuelle.

Cette première leçon a pour but de démystifier le processus. Nous allons mettre en place notre environnement de travail, apprendre à charger une image en mémoire, comprendre sa structure fondamentale et effectuer nos toutes premières manipulations. Préparez-vous à donner des yeux à vos programmes.

Section 1 : Préparation de l'Atelier - Installation d'OpenCV

Avant de peindre, un artiste prépare sa toile et ses pinceaux. Pour nous, la première étape est de mettre en place notre environnement de développement. La condition sine qua non est d'avoir Python et son gestionnaire de paquets pip installés sur votre machine.

En tant que développeurs soucieux de la propreté de nos projets, nous n'installerons jamais une nouvelle dépendance directement dans notre environnement système. La bonne pratique consiste à créer un environnement virtuel. C'est un espace isolé pour chaque projet, qui évite les conflits de versions entre les bibliothèques. C'est l'équivalent de dédier un atelier distinct pour chaque œuvre d'art.

Ouvrez votre terminal et suivez ces étapes :

  1. Créez un dossier pour votre projet et naviguez à l'intérieur : ```bash mkdir projet-opencv cd projet-opencv

2. **Créez un environnement virtuel** (nommons-le `env`) :
 ```bash
python -m venv env
  1. Activez l'environnement virtuel. La commande varie légèrement selon votre système d'exploitation :
  2. Sur Windows : env\Scripts\activate
  3. Sur macOS/Linux : $source env/bin/activate$

Une fois activé, vous devriez voir (env) apparaître au début de votre ligne de commande.

  1. Installez OpenCV : Maintenant que nous sommes dans notre atelier isolé, nous pouvons installer la bibliothèque en toute sécurité. ```bash pip install opencv-python

Il existe plusieurs paquets OpenCV ($opencv-contrib-python$ inclut des modules additionnels, par exemple), mais $opencv-python$ est la version standard qui contient toutes les fonctionnalités principales dont nous aurons besoin pour commencer.

Pour vérifier que l'installation a réussi, vous pouvez lancer un interpréteur Python ($python$) et tenter d'importer la bibliothèque :

```python
import cv2
print(cv2.__version__)

Si une version s'affiche sans erreur, votre environnement est prêt !

Section 2 : L'Anatomie d'une Image Numérique

Diagramme Mermaid

Visualisation d'une image couleur comme un tableau NumPy à 3 dimensions (Hauteur, Largeur, Canaux BGR).

Avant d'écrire notre premier script, il est crucial de comprendre comment OpenCV "voit" une image. Oubliez la perception humaine. Pour le code, une image est une structure de données, plus précisément un tableau (ou une matrice) NumPy.

Imaginez une image en couleur. Elle possède une hauteur et une largeur, mesurées en pixels. Chaque pixel est un point minuscule doté d'une couleur spécifique. Cette couleur est généralement définie par le mélange de trois couleurs primaires : le Rouge, le Vert et le Bleu (RGB - Red, Green, Blue).

Une image en couleur est donc un tableau à 3 dimensions : 1. La hauteur (nombre de lignes de pixels) 2. La largeur (nombre de colonnes de pixels) 3. Les canaux de couleur (les valeurs pour chaque couleur primaire)

Chaque valeur numérique dans ce tableau va typiquement de 0 (intensité minimale) à 255 (intensité maximale) pour une image 8-bit standard. Par exemple, un pixel purement rouge pourrait être représenté par $(255, 0, 0)$.

Attention, point crucial d'OpenCV : Pour des raisons historiques, OpenCV ne lit pas les images dans l'ordre RGB, mais dans l'ordre BGR (Bleu, Vert, Rouge). C'est une source d'erreur très commune lorsque l'on travaille avec d'autres bibliothèques (comme Matplotlib, qui utilise RGB). Un pixel purement rouge pour OpenCV sera donc $(0, 0, 255)$. Gardez précieusement cette information en tête.

Un autre point important est le système de coordonnées. En mathématiques, l'origine (0,0) est en bas à gauche. En traitement d'images, l'origine (0,0) est toujours en haut à gauche. L'axe des $x$ va vers la droite (colonnes) et l'axe des $y$ va vers le bas (lignes).

Pour une image en niveaux de gris, la structure est plus simple : c'est un tableau à 2 dimensions. Chaque pixel n'a qu'une seule valeur, son intensité lumineuse, allant de 0 (noir) à 255 (blanc).

Section 3 : Votre Premier Script - Le Cycle de Vie d'une Image

Diagramme Mermaid

Diagramme de séquence illustrant le flux d'exécution d'un script OpenCV simple.

Maintenant que la théorie est posée, passons à la pratique. Notre premier objectif est simple : charger une image depuis le disque dur, l'afficher à l'écran, et attendre que l'utilisateur la ferme. C'est le "Hello, World!" de la vision par ordinateur.

Assurez-vous d'avoir une image (par exemple photo.jpg) dans le même dossier que votre script Python.

# Importer la bibliothèque indispensable
import cv2
import sys # Pour quitter proprement

# --- 1. Chargement de l'image ---
# La fonction imread() charge une image depuis un fichier.
# Le premier argument est le chemin d'accès au fichier.
image = cv2.imread('photo.jpg')

# --- 2. Vérification (Bonne pratique) ---
# Si le chemin est incorrect ou le fichier corrompu, imread() retourne None.
# C'est une pratique de développeur senior de toujours vérifier ce cas.
if image is None:
 print("Erreur : Impossible de charger l'image.")
 print("Vérifiez que le fichier 'photo.jpg' existe bien dans le même dossier que le script.")
 sys.exit() # On quitte le script

# --- 3. Exploration des propriétés ---
# L'attribut .shape nous donne un tuple : (hauteur, largeur, nombre de canaux)
hauteur, largeur, canaux = image.shape
print(f"Dimensions de l'image : {largeur}x{hauteur}")
print(f"Nombre de canaux de couleur : {canaux}")

# --- 4. Affichage de l'image ---
# La fonction imshow() affiche l'image dans une fenêtre.
# Le premier argument est le titre de la fenêtre (une chaîne de caractères).
# Le second argument est l'objet image que nous avons chargé.
cv2.imshow('Ma Première Image OpenCV', image)

# --- 5. Attente d'une interaction ---
# C'est une ligne CRUCIALE. Sans elle, la fenêtre apparaîtrait et disparaîtrait
# en une fraction de seconde, avant même que vous ne puissiez la voir.
# waitKey(0) signifie que le programme attend indéfiniment une pression de touche.
cv2.waitKey(0)

# --- 6. Nettoyage ---
# Une fois qu'une touche a été pressée, on ferme toutes les fenêtres ouvertes par OpenCV.
# C'est une bonne habitude pour éviter les fenêtres "fantômes" dans des programmes plus complexes.
cv2.destroyAllWindows()

print("Programme terminé.")

Exécutez ce script. Vous devriez voir une fenêtre apparaître avec votre image, et les dimensions s'afficher dans votre terminal. La fenêtre ne se fermera que lorsque vous appuierez sur n'importe quelle touche de votre clavier.

Section 4 : Manipulation Élémentaire : Conversion et Sauvegarde

Afficher une image est un bon début, mais la véritable puissance d'OpenCV réside dans sa capacité à la transformer. La conversion en niveaux de gris est l'une des opérations les plus courantes, souvent utilisée comme étape de pré-traitement pour simplifier l'analyse.

Reprenons notre script et ajoutons cette fonctionnalité, ainsi que la sauvegarde du résultat.

import cv2
import sys

# Chargement et vérification (identique à l'exemple précédent)
image_couleur = cv2.imread('photo.jpg')
if image_couleur is None:
 print("Erreur de chargement de l'image.")
 sys.exit()

# --- 1. Conversion en niveaux de gris ---
# La fonction cvtColor() convertit une image d'un espace de couleur à un autre.
# Le second argument est un drapeau qui spécifie la conversion.
# Ici, COLOR_BGR2GRAY signifie que nous partons de BGR (le défaut d'OpenCV)
# pour aller vers le niveau de gris (GRAY).
image_gris = cv2.cvtColor(image_couleur, cv2.COLOR_BGR2GRAY)

# Explorons la nouvelle image
print("Shape de l'image en niveaux de gris :", image_gris.shape)
# Vous remarquerez qu'il n'y a plus de 3ème dimension pour les canaux !

# --- 2. Affichage des deux images --- cv2.imshow('Image Originale (Couleur)', image_couleur)
cv2.imshow('Image Transformée (Gris)', image_gris)

# --- 3. Sauvegarde du résultat ---
# La fonction imwrite() sauvegarde une image sur le disque.
# Le premier argument est le nom du fichier de sortie.
# L'extension (.png, .jpg) détermine le format d'encodage.
# Le second argument est l'image à sauvegarder.
success = cv2.imwrite('photo_en_gris.png', image_gris)

if success:
 print("L'image en niveaux de gris a été sauvegardée avec succès sous 'photo_en_gris.png'")
else:
 print("Erreur lors de la sauvegarde de l'image.")


# Attente et nettoyage (identique à l'exemple précédent)
cv2.waitKey(0)
cv2.destroyAllWindows()

En exécutant ce second script, vous verrez deux fenêtres s'ouvrir. De plus, un nouveau fichier nommé photo_en_gris.png sera créé dans votre dossier. Vous venez de compléter votre premier pipeline de traitement d'image : Lecture -> Transformation -> Sauvegarde.

Conclusion : Les Fondations sont Posées

Félicitations ! Vous avez franchi les premières étapes, qui sont souvent les plus intimidantes. Vous êtes maintenant capable de configurer un environnement de travail propre pour la vision par ordinateur, de charger n'importe quelle image dans un programme Python, d'en comprendre la structure matricielle sous-jacente (y compris le piège BGR vs RGB), de l'afficher et de la sauvegarder après une transformation simple.

Ces compétences sont les fondations sur lesquelles reposent toutes les techniques plus avancées. Dans les prochaines leçons, nous nous appuierons sur ces bases pour explorer des manipulations plus complexes : le dessin de formes, le découpage (cropping), l'accès et la modification directe des pixels, ou encore l'application de filtres pour améliorer ou analyser vos images. La toile est prête, les pinceaux sont en main, il est temps de commencer à créer.


Données et Tableaux

Fonction OpenCVDescription
`cv2.imread(path)`Charge une image depuis le chemin spécifié. Retourne un tableau NumPy ou `None` si échec.
`cv2.imshow(winname, img)`Affiche une image dans une fenêtre. Le premier argument est le titre de la fenêtre.
`cv2.waitKey(delay)`Attend une pression de touche pendant `delay` millisecondes. Si `delay` est 0, attend indéfiniment.
`cv2.destroyAllWindows()`Ferme toutes les fenêtres créées par OpenCV.
`cv2.cvtColor(src, code)`Convertit une image d'un espace de couleur à un autre (ex: `cv2.COLOR_BGR2GRAY`).
`cv2.imwrite(filename, img)`Sauvegarde une image sur le disque. Le format est déduit de l'extension du fichier.
Suivant

© 2026 DzSmartEduc Learning Platform

Besoin d'aide ? WhatsApp 17h00 - 22h00 • 7j/7