Le traitement numérique des images en C++
Implémentation d'algorithmes avec la bibliothèque Clmg
David Tschumperlé
Christophe Tilmant
Vincent Barra
Ellipses
I Introduction à Clmg
1 Introduction
17
2 Prise en main de la bibliothèque Clmg
33
2.1 Objectif : Subdiviser une image en blocs33
2.2 Installation et premier programme34
2.3 Calcul des variations36
2.4 Calcul de la décomposition40
2.5 Rendu de la décomposition42
2.6 Visualisation interactive47
2.7 Code source final52
II Traitement d'images avec Clmg
3 Transformations point à point
61
3.1 Opérations sur les images61
3.1.1 Transformations mathématiques61
3.1.2 Transformations bit à bit63
3.1.3 Modification de contraste65
3.2 Opérations sur l'histogramme66
3.2.1 Définition66
3.2.2 Spécification d'histogramme67
3.2.3 Spécification locale d'histogramme68
4 Morphologie mathématique
71
4.1 Cas des images binaires72
4.1.1 Dilatation et érosion72
4.1.2 Ouverture et fermeture74
4.2 Les images en niveaux de gris75
4.3 Quelques applications77
4.3.1 Réhaussement de Kramer et Bruckner77
4.3.2 Filtres alternés séquentiels78
4.3.3 Gradients morphologiques80
4.3.4 Squelettisation82
5 Filtrage
87
5.1 Filtrage spatial87
5.1.1 Introduction87
5.1.2 Filtres passe-bas88
5.1.3 Filtres passe-haut93
5.1.4 Filtres adaptatifs97
5.1.5 Filtres à fenêtres adaptatives98
5.2 Filtrage récursif102
5.2.1 Détection optimale de contours103
5.2.2 Le filtre de Deriche104
5.3 Filtrage fréquentiel112
5.3.1 Introduction113
5.3.2 La transformée de Fourier114
5.3.3 Le filtrage fréquentiel120
5.3.4 Traitement d'une image tramée125
5.4 Filtrage de diffusion131
5.4.1 Introduction131
5.4.2 Fondement physique de la diffusion131
5.4.3 Filtre de diffusion linéaire132
5.4.4 Filtre de diffusion non-linéaire en deux dimensions134
5.4.5 Filtre de diffusion non-linéaire sur une séquence vidéo137
6 Extraction de caractéristiques
141
6.1 Détection de points d'intérêt141
6.1.1 Introduction141
6.1.2 Détecteur de Harris et Stephens142
6.1.3 Détecteur de Shi et Tomasi147
6.1.4 Points d'intérêt à précision sous-pixellique147
6.2 Transformée de Hough149
6.2.1 Introduction149
6.2.2 Détection de lignes149
6.2.3 Détection de cercles et d'ellipses155
6.3 Descripteurs de textures158
6.3.1 Spectre de texture159
6.3.2 Coefficients de Tamura161
6.3.3 Local Binary Pattern166
6.3.4 Exemple d'application168
7 Segmentation
173
7.1 Approches contour173
7.1.1 Introduction aux contours actifs implicites173
7.1.2 Représentation implicite d'un contour178
7.1.3 Équation d'évolution181
7.1.4 Discrétisation de l'équation d'évolution182
7.1.5 Algorithme de propagation du modèle géodésique183
7.2 Approches région185
7.2.1 Introduction185
7.2.2 Méthodes fondées sur l'histogramme186
7.2.3 Seuillage par algorithme de classification190
7.2.4 Transformation de régions197
7.2.5 Partitionnement par super-pixels199
8 Estimation de mouvement
205
8.1 Estimation dense par flot optique205
8.1.1 Méthodes variationnelles206
8.1.2 Méthode différentielle de Lucas et Kanade212
8.1.3 Flot affine216
8.2 Estimation éparse218
8.2.1 Champ de déplacements par corrélation spatiale218
8.2.2 Champ de déplacements par corrélation de phase222
8.2.3 Filtrage de Kalman227
9 Approches multispectraies
233
9.1 Réduction de dimension234
9.1.1 Analyse en composantes principales234
9.1.2 Exemple d'application237
9.2 Eléments d'imagerie couleur238
9.2.1 Espaces calorimétriques239
9.2.2 Filtrage médian en imagerie couleur244
9.2.3 Détection de contours en imagerie couleur246
10 Visualisation 3D
251
10.1 Structuration des objets 3D maillés251
10.1.1 Principes de base251
10.2 Tracé 3D d'une fonction z = f(x,y)253
10.3 Création d'objets 3D complexes258
10.3.1 Détails sur la structuration des sommets258
10.3.2 Détails sur la structuration des primitives258
10.3.3 Détails sur la structuration des matériaux259
10.3.4 Détails sur la structuration des opacités260
10.4 Visualisation d'une segmentation cardiaque en IRM260
10.4.1 Description des données d'entrées260
10.4.2 Extraction de la surface du ventricule261
10.4.3 Ajout des vecteurs déplacement 3D263
10.4.4 Ajout des plans de coupe264
10.4.5 Résultat de la visualisation265
11 Et tellement d'autres choses
267
11.1 Compression par transformée (JPEG)267
11.1.1 Introduction - Compression par transformée267
11.1.2 Algorithme JPEG268
11.1.3 Transformée en cosinus discrète et quantification270
11.1.4 Algorithme simplifié du JPEG274
11.2 Reconstruction tomographique277
11.2.1 Introduction277
11.2.2 Reconstruction tomographique analytique278
11.2.3 Reconstruction tomographique algébrique283
11.3 Stéréovision289
11.3.1 Géométrie épipolaire289
11.3.2 Estimation de profondeur294
11.4 Déformation interactive par RBF297
11.4.1 Objectif de l'application297
11.4.2 L'interpolation RBF298
11.4.3 Implémentation des RBF pour la déformation d'images299
11.4.4 Interface utilisateur pour la gestion des points-clés301
Liste des codes Clmg309
Références bibliographiques312
Index313