COURS DE TRAITEMENT D'IMAGES

Supports de cours et logiciels


A partir de cette page vous pouvez télécharger des supports de cours de TI et vision, principalement à l'attention des élèves ENSTA, et du Master Info de Paris 6.
Ces supports de cours consistent en :
  1. les polycopiés de cours, copies de transparents, etc. correspondant à - ou complétant - ce que vous avez vu en cours.
  2. un certain nombre de logiciels qui vous permettront d'expérimenter et/ou d'aller plus loin dans la manipulation pratique des notions vues en cours.

Download Morphology Tutorial (version Fév. 2008)

morphology tutorial snapshot
Download Inti 0.1 (version Juil. 2010)

Inti snapshot
Download Fourier 2d (version Fév. 2008)

Fourier tutorial snapshot

  • DOCUMENTS DE COURS

Polycopié de cours "Traitement d'Images et Vision"

Cours TI et Vision (D9-2 : ENSTA 3ème année)

  1. Introduction et filtrage : cours d'Antoine Manzanera. Copie des transparents (pdf 4.0 Mo)
  2. Segmentation : cours de Jean-Christophe Baillie. Poly de cours (pdf 1.2 Mo) et copie des transparents (ppt 2.1 Mo).
  3. Espaces d'échelle : cours d'Antoine Manzanera. Copie des transparents (pdf 2.1 Mo)
  4. Introduction à la couleur : cours d'Antoine Manzanera. Copie des transparents (pdf 2.6 Mo)
  5. Mouvement - Estimation et Poursuite : cours d'Antoine Manzanera. Copie des transparents (pdf 2.5 Mo)
  6. EDP en traitement d'images : cours de Petr Dokladal. Copie des transparents (pdf 1.0 Mo)
  7. Vision active : cours de Jean-Christophe Baillie. Copie des transparents (ppt 1.4 Mo).
Cours Morphologie Mathématique (ESE42 : ENSTA 2ème année)
  1. Introduction et opérateurs de base. Copie des transparents (pdf 779 Ko)
  2. Propriétés évoluées et opérateurs composés. Copie des transparents (pdf 1.0 Mo).
  3. Filtrage morphologique. Copie des transparents (pdf 692 Ko)
  4. Opérateurs connexes. Copie des transparents (pdf 1.3 Mo)
  5. Squelettes et Lignes de Partage des Eaux. Copie des transparents (pdf 905 Ko)

Cours du Master Info de l'UPMC (spécialités "IAD" et "IMA)
  • Introduction aux images numériques (copie des transparents) (PDF 3.4 Mo)
  • Eléments de codage : exemple de la compression Jpeg (copie des transparents) (PDF 650 Ko)
  • Filtrage (copie des transparents) (PDF 2.4 Mo)
  • Restauration (copie des transparents) (PDF 510 Ko)
  • Détection de contours (copie des transparents) (PDF 1.9 Mo)
  • Segmentation d'images (copie des transparents) (PDF 3.0 Mo)
  • Introduction aux images couleur (copie des transparents) (PDF 2.5 Mo)
  • Cours de Morphologie mathématique (copie des transparents) (PDF 4.1 Mo)
  • Transformées en distance et applications (copie des transparents) (PDF 3.3 Mo)
  • Espaces d'échelle en analyse d'images (copie des transparents) (PDF 3.4 Mo)
  • Estimation du mouvement (copie des transparents) (PDF 1.9 Mo)
  • Indexation d'images (copie des transparents) (PDF 1.2 Mo)
+ Liens vers les pages d'Isabelle Bloch et de Florence Tupin

+ Tutoriel de Morphologie (voir ci-dessous) :
télécharger l'archive
+ Quelques images de test :
binaires
en niveaux de gris
+ Recueil d'exercices et sujets d'examen (PDF 291 Ko)
  • LOGICIELS

(1) Introduction :

Tous les logiciels proposés ici sont à vocation essentiellement pédagogique.

Le premier objectif est d'expérimenter simplement des notions vues en cours à partir d'une interface graphique simple à utiliser. Pas besoin de notice pour cela, je pense que l'utilisation en pure interface est assez intuitive.

Le second objectif est que vous puissiez comprendre assez facilement l'algorithmique en examinant le code source : Il y a par conséquent un parti-pris de lisibilité dans le code (à défaut de commentaires me diront certains), au détriment de son efficacité. Ceci se traduit par l'abstraction d'un certain nombre de structures (accès mémoire, entrée sortie, file d'attente,...) censée faciliter la tâche du développeur paresseux, mais qui fera certainement frémir les esthètes de la programmation, comme les maniaques de la complexité.

Le troisième objectif, enfin, est que vous puissiez accèder à une structure de développement d'algorithmes de traitement d'images pour pouvoir tester assez rapidement de nouveaux algos, en faisant l'économie des routines de lecture/écriture, de gestion de la mémoire et de l'affichage. Vous pouvez utiliser librement ce code et ajouter des extensions par exemple dans le cadre de vos stages, projets ou nuits blanches quelconques. Il n'y a pas de documentation pour l'instant ; vous pouvez essayer de comprendre tout seul comment ça marche, ou, si vous avez un projet clair et des questions précises, m'envoyer un e-mail ou passer me voir.

(2) Plate-formes, installation et utilisation :

Tous les logiciels fonctionnent sous Linux.
Ils ont été compilés sur diverses distributions récentes : Fedora, Suse, Ubuntu, sans difficultés.
Il faut avoir la librairie standard c++ et Tcl/Tk (avec les package "-dev" associés).
La structure (les objets manipulés), ainsi que la plupart des algorithmes sont écrits en C++ mou (ni héritage ni polymorphisme).
L'interface est écrite en Tcl/Tk, en utilisant la structure des TkPhotoImage, qui gère les lecture/écriture en divers formats.

Pour installer les logiciels :
  1. récupérer l'archive *.tgz correspondante 
  2. extraire l'archive par la commande "tar xvzf  machin.tgz", qui crée un répertoire Machin/
  3. changer de répertoire avec "cd Machin/", et compiler avec "make"
Pour utiliser les logiciels :

Il faut éxécuter le script Tcl qui se trouve sur le répertoire créé par l'extraction de l'archive (voir détail pour chaque logiciel).

Les formats d'images supportés de manière standard sont gif et pgm.
De nombreux autres formats peuvent être ajoutés en installant le package tkimg.

(3) Remarques :

Il doit rester de nombreux bugs. Merci de m'envoyer les plus sérieux que vous pourrez trouver.

Merci de me tenir au courant de l'utilisation et des extensions que vous pourriez ajouter à ces logiciels. Je serais ravi de vous ajouter à la (maigre) liste des contributeurs.

Voyez le log des ajouts et mises à jour.

Tutoriel de Morphologie mathématique

Pour apprendre à manipuler les opérateurs de base en morphologie mathématique, et à construire de nouveaux opérateurs par composition / différence / itération.
L'utilisateur définit son élément structurant, éventuellement bicolore (transformée en tout-ou-rien), et peut faire interagir plusieurs images par transformations unaires ou binaires.
Quelques opérations complexes très simples (si j'ose dire) sont disponibles dans le menu.

Utilisation, tapez :
./Morpho.tcl -i <nom de l'image> -nb <nombre d'images>

Voir une copie d'écran

Télécharger l'archive.


Inti

Inti est la version généraliste du logiciel. Elle travaille sur une fenêtre par image (mais plusieurs images peuvent être ouvertes en même temps, normalement).
Elle contient les filtres linéaires et non linéaires de base, des opérateurs morphologiques, l'affichage d'histogrammes et quelques transformations associées.


Utilisation, tapez :
./Inti <nom de l'image>

Voir une copie d'écran

Télécharger l'archive.


Filtrage dans le domaine fréquentiel

Ce petit outil affiche la transformée de Fourier bidimensionnelle d'une image sous la forme (log(|F(u,v)|),arg(F(u,v)).
Il permet d'appliquer les filtres de base dans le domaine de Fourier (passe/coupe-bas/bande), et génère quelques images de test simples.
Ne marche que sur des images de taille 2n x 2p.

Utilisation, tapez :
./fourier.tcl <nom de l'image>

Voir une copie d'écran

Télécharger l'archive.



Quelques images de test...

Contributeurs :

Damien Mercier a programmé la première version de photo.cc qui fait la conversion entre TkPhotoImage et la structure interne, et qui définit le nouvel interpréteur.
Le code de FFT 2D a été écrit par Paul Bourke.
Matthieu Notale
a programmé la structure de pile permettant les fonctions undo/redo et certains traitements interactifs.
Jean-Baptiste Desmottes a corrigé quelques bugs et programmé le détecteur de contours version Canny.
Clément Ponssart a programmé la première version des Local-Jet-NL-Means.


Ajouts - Mis à jour :

Nov. 03 : Matthieu Nottale modifie la structure et programme une pile permettant l'utilisation des fonctions Undo/Redo, ainsi que d'autres fonctions interactives (seuillage dynamique, lignes de niveau,...). Ses modifications sont intégrées à la version en ligne.

Nov. 03 : Ajout de nouvelles fonctions dans Inti :
Sept. 04 : Ajout d'un nouvel outil : Le tracé de profil 1d est réalisé en dessinant un segment sur l'image avec le bouton droit de la souris.
On peut superposer plusieurs profils correspondant à des transformations de l'image en mettant à jour la fenêtre de profil.
+Correction d'un bug concernant la gestion des outils de visualisation (zoom,...) lors de l'affichage de plusieurs images.

Fév. 06 : Mise en conformité de l'instanciation des templates ; ajout de nouvelles images de test (chirps visuels) dans Fourier 2d.

Fév. 08 : Mise à jour des Makefile (suppression de makedepend).
Correction de quelques bugs et ajout de quelques fonctionnalités dans Inti (filtres IIR), dans le tutoriel de morpho (lpe), et dans Fourier 2d (fantômes).

Juil. 10 : Correction de quelques bugs dans le calcul des dérivées de gaussienne et ajout de 2 détecteurs de contours à l'ordre 1, ainsi que des Local-Jet-NL-Means généralisés (opérateurs intermédiaires entre Filtres bilatéraux et NL-Means).



back to home page