Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Traitement et analyse des images

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.


Structure du dépôt

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

Contenu des modules

TP1 — Techniques de prétraitement

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.

TP2 — Morphologie mathématique

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é).

Mini-projet — Extraction automatique d'imagettes

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.

OpenCV — Utilitaires Python

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.

Prérequis et utilisation

Scripts Octave (.m)

Les scripts sont exécutables dans GNU Octave (≥ 5.x) ou MATLAB. Packages requis :

pkg load image
pkg load signal

Lancer un script depuis son répertoire :

run partie5_modification_histogramme.m

Les scripts interactifs demandent un numéro de séquence (1, 2, ...) pour choisir la partie à exécuter.

Scripts Python (OpenCV/)

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.


Documents de référence

Les sujets de TP correspondants sont inclus dans chaque dossier :

  • Techniques_prétraitement/sujet_tp1.pdf — Énoncé du TP1
  • Morphologie_mathématique/sujet_tp2.pdf — Énoncé du TP2
  • MiniProjet/sujet_projet.pdf — Description du projet
  • MiniProjet/enonce_projet.pdf — Consignes détaillées du mini-projet

About

Traditional methods of image processing.

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages