Travaux pratiques : Vision industrielle
Filière : GI/GMSA
2025/2026
TP 1 — Traitement d’images (Python / Kaggle)
Lecture, visualisation et manipulations fondamentales
Pour ce TP, vous êtes libre de sélectionner l’image de votre choix.
Exercice 1 — Lecture & informations de base
Objectifs : lire une image, afficher, accéder aux pixels, extraire une ROI.
Tâches:
• Charger [Link].
• Afficher l’image originale.
• Passer en niveaux de gris et relever l’intensité du pixel (100,150).
• Donner (hauteur, largeur, canaux) et le nombre total d’éléments h*w*c.
• Extraire et afficher le quart inférieur gauche de l’image.
À commenter :
• Quelle est la différence entre coordonnées d’image (ligne, colonne) et axes cartésiens
(x, y) ? Où se situe l’origine en imagerie numérique ?
• En quoi la profondeur de codage (uint8 vs float32) influence-t-elle l’affichage et les
calculs (normalisation, saturation) ?
Exercice 2 — Composantes de couleur (RGB)
Objectifs : séparer canaux, analyser leur contribution, transformer et modifier.
Tâches :
• Charger fleur_color.jpg.
• Extraire et afficher les trois plans R, G, B.
• Convertir en niveaux de gris et afficher.
• Inverser le canal bleu (255−B) et afficher le résultat.
À commenter :
• Expliquez la différence entre RGB (dispositif) et YUV/YCbCr (luminance-
chrominance). Quels avantages à travailler sur la luminance ?
• Comment se calcule une image niveaux de gris à partir d’une image RGB (pondérations
typiques) et pourquoi ces pondérations ?
Exercice 3 — Fusion d’images en espace HSV
Objectifs : manipuler HSV et fusionner des plans de deux images.
Tâches :
• Charger lena_color.png et [Link] (les redimensionner si besoin).
• Convertir en HSV et séparer H, S, V.
• Construire une image fusionnée avec H de fruits et S, V de lena.
• Reconvertir en RGB et afficher lena, fruits, et la fusion.
À commenter :
Quels artefacts peuvent apparaître lors de conversions multiples RGB↔HSV (quantification,
arrondis) ?
Exercice 4 — Transformations géométriques & mélange
Objectifs : rotation, redimensionnement, combinaison d’images.
Tâches :
• Charger [Link] et fleur_color.png.
• Tourner lena de 45°.
• Redimensionner l’autre image pour égaliser les tailles.
• Réaliser une addition pondérée (ex. 0.6/0.4) et afficher le résultat.
Exercice 5 — Ajouter différents types de bruit
Objectif : appliquer et comparer visuellement plusieurs bruits standards sur une image en
niveaux de gris.
Préliminaires (notions) :
• Sel & poivre : pixels aléatoirement à 0 ou 255 (impulsions).
• Gaussien : fluctuations additif/centré (σ = intensité du bruit).
• Poisson : bruit lié au comptage (dépend de l’intensité du signal).
Tâches :
1. Charger lena_gray.jpg.
2. Générer trois versions bruitées : sel & poivre (1%), gaussien (σ≈10), poisson.
3. Afficher côte à côte : original + 3 bruitées.
4. Tracer l’histogramme de chaque version (256 bins).
Questions :
• Quelles différences visuelles observes-tu entre les trois bruits ?
• Comment les histogrammes changent-ils (pics aux extrêmes pour S&P, élargissement
pour Gaussien, dépendance au niveau pour Poisson) ?
Exercice 7 — Bruit par canal couleur et bruit spatialement variable
Objectif : appliquer le bruit de façon sélective (par canal RGB) et non uniforme (zones avec
bruit plus fort).
Préliminaires (notions) :
• En couleur, un bruit appliqué à un seul canal modifie la teinte.
• Un bruit spatialement variable simule des conditions réelles (capteurs, éclairage).
Tâches :
1. Charger fleur_color.jpg (RGB).
2. Ajouter un bruit gaussien (σ≈10) uniquement au canal Bleu ; afficher l’image.
Questions :
• Comment le bruit sur B modifie-t-il la couleur perçue ?
Exercice 8 — Filtrage spatial & contours (Sobel/Canny)
Objectifs : lisser pour réduire le bruit et détecter les bords.
Tâches :
• Charger une image couleur et en extraire la version grayscale.
• Appliquer un lissage moyen (boîte 5×5).
• Détecter les bords par Sobel (magnitude) et par Canny.
• Afficher : original, lissé, Sobel, Canny.
À commenter : pourquoi lisser avant Canny et impact sur les contours.