Description du cours - Ce cours introduit les bases théoriques et pratiques du traitement d’images, avec un focus sur la programmation d’algorithmes utilisant la bibliothèque CImg en langage C++. L’approche pédagogique inversée favorise l’autonomie et la mise en application des concepts via des travaux pratiques concrets. Le cours couvre des thématiques variées comme le filtrage, la segmentation, la reconstruction tomographique, et la vision par ordinateur.
Objectifs d’apprentissage - À la fin de ce cours, l’étudiant sera capable de :
1. Comprendre et appliquer les principes fondamentaux du traitement d’images numériques.
2. Programmer des algorithmes de manipulation, filtrage et transformation d’images en utilisant la bibliothèque CImg.
3. Réaliser des applications concrètes, notamment la stabilisation vidéo, la création de panoramas et l’extraction d’objets ou de texte dans des images.
4. Analyser les performances des algorithmes en termes d’efficacité et de qualité des résultats.
Contenu du cours (12 créneaux de 2h)
1. Introduction au traitement d’images et manipulation basique.
2. Filtrage spatial : lissage et détection de contours.
3. Filtrage fréquentiel et transformée de Fourier.
4. Compression d’images (JPEG) et quantification.
5. Reconstruction tomographique par rétroprojection filtrée.
6. Segmentation : méthodes de seuils avec application OCR.
7. Segmentation avancée : extraction de contours et de régions.
8. Flot optique : stabilisation d’images.
9. Création de panoramas : mosaïquage d’images.
10. Extraction de caractéristiques et points d’intérêt.
11. Reconstruction 3D : estimation de profondeur.
12. Synthèse et projet final.
Méthodes pédagogiques
• Pédagogie inversée : Étude préalable des concepts à travers des lectures, pour maximiser le temps de pratique (TP) en classe.
• Travaux pratiques (TP) : 70 % du temps de cours est consacré à l’implémentation d’algorithmes.
• Évaluation par projet : Le dernier créneau est réservé à un projet final intégrant les connaissances du cours.
• Programmation : Maîtrise de la programmation en C/C++, compréhension des concepts d'algorithmie.
• Mathématiques appliquées : Connaissance de l’algèbre linéaire, de la trigonométrie et des notions de base sur les transformées (Fourier, cosinus).
Le cours intègre des applications concrètes liées aux enjeux de responsabilité sociétale et de durabilité :
Livres :
Documentation en ligne :