Recueil de travaux pratiques universitaires couvrant les techniques fondamentales de traitement et d'analyse d'images : prétraitement, morphologie mathématique, segmentation, et un mini-projet d'extraction automatique d'imagettes. Le dépôt inclut également des outils complémentaires en Python/OpenCV.
Techniques_prétraitement/ # TP1 — Prétraitement des images
├── partie5_modification_histogramme.m
├── partie6_reduction_bruit_lissage.m
├── partie7_filtrage_frequentiel.m
├── partie8_rehaussement_contraste.m
├── sujet_tp1.pdf
├── trees.mat
└── images/ # 15 images
Morphologie_mathématique/ # TP2 — Morphologie mathématique et segmentation
├── partie2_detection_contours.m
├── partie3_seuillage_segmentation.m
├── partie4_morphologie_binaire.m
├── partie5_applications.m
├── partie6_reconnaissance_formes.m
├── partie7_hough_circles.m
├── sujet_tp2.pdf
├── trees.mat
└── images/ # 12 images
MiniProjet/ # Projet fil rouge — Extraction d'imagettes
├── projet_tsi.m
├── sujet_projet.pdf
├── enonce_projet.pdf
└── images/ # 9 images (coloscopie)
OpenCV/ # Utilitaires Python (traitement par lots)
├── augmentation.py
├── functions.py
├── stack_images.py
└── thumbnail_generator.py
| Script | Description |
|---|---|
partie5_modification_histogramme.m |
Modification d'histogramme par étirement de contraste (imadjust) sur une image de séquence ADN. |
partie6_reduction_bruit_lissage.m |
Réduction du bruit gaussien par filtres moyenneur et médian ; réduction du bruit poivre-et-sel par filtrage médian. |
partie7_filtrage_frequentiel.m |
Filtrage fréquentiel via FFT 2D : visualisation du spectre, filtrage passe-bas idéal, séparation hautes/basses fréquences. |
partie8_rehaussement_contraste.m |
Rehaussement de contraste par l'opérateur Laplacien (Ir = I − λ · ∇²I) sur une image floue. |
| Script | Description |
|---|---|
partie2_detection_contours.m |
Détection de contours : filtres de Sobel, Roberts, Prewitt, LoG, Canny. Effet des seuils et de l'échelle (σ) sur Canny. |
partie3_seuillage_segmentation.m |
Segmentation par seuillage automatique (Otsu), binarisation, squelettisation morphologique. |
partie4_morphologie_binaire.m |
Opérations d'érosion et dilatation avec élément structurant disque ; ouverture (suppression du bruit de fond) et fermeture (comblement des défauts). |
partie5_applications.m |
Extraction de caractéristiques (aire, périmètre) sur une pièce mécanique ; comptage et reconnaissance de formes (6 pilules) par critère de circularité C = 4πA/P². |
partie6_reconnaissance_formes.m |
Transformée de Hough pour la détection de lignes droites (recherche de pics, tracé des segments). |
partie7_hough_circles.m |
Détection de cercles par transformée de Hough circulaire (inachevé). |
| Script | Description |
|---|---|
projet_tsi.m |
Charge une image de coloscopie, détecte les contours par Canny, projette en 1D, localise les lignes de grille via findpeaks, découpe 3 colonnes puis 2 lignes pour obtenir 6 imagettes correspondant à différents modes d'acquisition microscopique. |
| Script | Description |
|---|---|
augmentation.py |
Pipeline d'augmentation de données (rotations, déformations élastiques, distortions) pour micrographies d'acier avec leurs masques. |
functions.py |
Fonctions utilitaires : tracé d'histogramme avec seuil, génération de masques binaires par seuillage + ouverture morphologique, extraction de barre d'échelle (ratio pixel/micromètre). |
stack_images.py |
Assemblage de plusieurs images en une grille uniforme pour comparaison visuelle côte à côte. |
thumbnail_generator.py |
Découpage d'une grande image en vignettes (tuilage) par nombre de coupes ou par dimensions en pixels. |
Les scripts sont exécutables dans GNU Octave (≥ 5.x) ou MATLAB. Packages requis :
pkg load image
pkg load signalLancer un script depuis son répertoire :
run partie5_modification_histogramme.mLes scripts interactifs demandent un numéro de séquence (1, 2, ...) pour choisir la partie à exécuter.
Les scripts Python nécessitent les bibliothèques suivantes :
- opencv-python
- numpy
- matplotlib
- scikit-image
- scipy
- albumentations
Installation :
pip install opencv-python numpy matplotlib scikit-image scipy albumentationsÀ l'exception de augmentation.py (exécutable directement), les autres scripts sont conçus pour être importés et appelés interactivement.
Les sujets de TP correspondants sont inclus dans chaque dossier :
Techniques_prétraitement/sujet_tp1.pdf— Énoncé du TP1Morphologie_mathématique/sujet_tp2.pdf— Énoncé du TP2MiniProjet/sujet_projet.pdf— Description du projetMiniProjet/enonce_projet.pdf— Consignes détaillées du mini-projet