Traitement Des Images
Traitement Des Images
Traitement Des Images
INTRODUCTİON
Introduction et définitions
Dr.Ing. ABOUTABIT 1
Introduction
• Image ?
Image : représentation d’une personne ou d’une chose par la peinture, la sculpture,
le dessin, la photo, le film .... (Larousse)
Vision : Perception du monde extérieur par les organes de la vue.
Association Image-Vision:
• Pour l’image intervient donc la notion de représentation interprétation plus ou
moins objectif du monde extérieur.
• La vision humaine incorpore une interprétation partielle subjectif : une scène est
vue différemment par chaque individu suivant le contexte personnel par exemple.
Une machine de vision est forcément objective. L’être humain est subjectif.
Introduction
• Image ?:
Image = support d’information
Image = représentation d’un paramètre physique sur un plan.
Une image est avant tout un signal 2D (x,y).
Souvent, cette image représente une réalité 3D (x,y,z).
Dr.Ing. ABOUTABIT 2
Introduction
• Types d’images:
Image artificielle
Image naturelle
Introduction
• Types d’images :
Dr.Ing. ABOUTABIT 3
Introduction
• Un peu d’histoire:
Années 1950
21ème siècle
Introduction
• Traitement d’image : buts
Feature extraction
Détection de
Image Amélioration contours
Extraction de Reconnaissance de
numérique primitives formes
Restauration Détection de
régions
Analyse
Codage
Segmentation
Compression Traitements de
base
Dr.Ing. ABOUTABIT 4
Introduction
• Amélioration :
Contraste, dynamique, bruit ...
Introduction
• Restauration :
Elimination de dégradations : exemple flou
10
Dr.Ing. ABOUTABIT 5
Introduction
• Codage et compression :
11
Introduction
• Synthèse :
Modèles fractals, Modélisation 2D, Modélisation 3D, mouvement ...
12
Dr.Ing. ABOUTABIT 6
Introduction
• Segmentation :
Approche contour
Image d’origine
Approche région
13
Introduction
• Exemples d’applications :
meteorologie
radar
robotique
surveillance
microscopie
Traitement
d’image
astronomie imagerie
ultrason
14
Dr.Ing. ABOUTABIT 7
Introduction
• Applications :
Drone militaire
Imagerie médicale
Télédétection
15
Contenu du cours
• Introduction : définitions, vision humaine
• Formation d’image : radiométrie, types d’images, colorimétrie, numérisation
• Rehaussement d’image : histogramme, amélioration du contraste
• Filtrage : convolution numérique, filtrage passe-bas
• Segmentation d’image : approche région, approche contour
• Traitement des images binaires : pavage, maillage, distance, fermeture des contours,
étiquetages des composantes connexes,
• Transformée de Fourier
• Extraction de primitives : transformée de Hough, snakes, détection des points d’intérêt
(Harris), SIFT, Histogramme de gradients.
• Estimation du mouvement dans les séquences vidéos : analyse du mouvement, Calcul du
mouvement apparent, flot optique
16
Dr.Ing. ABOUTABIT 8
FORMATİON D’İMAGES
NUMÉRİQUES
Formation de l’image, numérisation, colorimétrie, Formats d’image
17
Formation de l’image
• Acquisition des images :
Emission et réflexion Réflectivité, CCD, CMOS, Barrettes
de la lumière viisble luminance... CCD, ...
Rayonnement IR Luminance IR (chaleur) Bolomètres
18
Dr.Ing. ABOUTABIT 9
Formation de l’image
• Acquisition des images :
Une image au sens optique du terme, est une certaine quantité
d’informations véhiculée par des ondes électromagnétiques caractérisées par
leur longueur d’onde et leur énergie.
La longueur d'onde est la distance séparant deux crêtes successives d'une onde
périodique. On la dénote communément par la lettre grecque λ (lambda).
Mathématiquement, on peut la définir ainsi : si l'onde peut être représentée par une
fonction périodique f qui prend comme argument la distance x, alors la longueur d'onde
est :
le plus petit λ > 0 tel que pour tout x, on ait: f (x + λ) = f (x)
La longueur d'onde est proportionnelle à la période, et donc inversement
proportionnelle à la fréquence, le nombre de sommets de même signe qui traversent un
point en une durée d'une seconde. La longueur d'onde est égale à la vitesse de l'onde
divisée par la fréquence de passage. Lorsque l'onde une onde électromagnétique dans le
vide, cette vitesse est la vitesse de la lumière c dans le vide, et la relation s'écrit :
λ=c/ν
où :
λ = longueur d'onde
c = 3×108 m/s
ν = fréquence de l'onde
19
Formation de l’image
• Longeur d’onde:
Longueur d'onde Domaine Commentaire
> 10 cm radio (150 kHz - 3 GHz)
de 1 mm à 10 cm micro-onde et radar (10 cm - +- 1cm, 3 - 300 GHz)
de 1 µm à 500 µm infrarouge
rouge (620-700 nm)
orange (592-620 nm)
jaune (578-592 nm)
de 400 nm à 700 nm lumière visible
vert (500-578 nm)
bleu (446-500 nm)
violet (400-446 nm)
de 10 nm à 400 nm
ultraviolet (400 - 280 nm)
de 10-8 m à 10-7 m
de 10-11 m à 10-8 m rayon X
de 10-14 m à 10-12 m rayon γ
20
Dr.Ing. ABOUTABIT 10
Formation de l’image
• Acquisition des images :
Ces ondes lumineuses correspondent à une émission d’énergie, sous forme de
photons, due aux transitions atomiques de corps chauffés.
Classification des ondes lumineuses :
21
Formation de l’image
• Lumière:
Lumière visible : Détectée par l’oeil
Lumière chromatique : Composée de plusieurs longueurs d’onde
Lumière monochromatique : Une seule longueur d’onde (LASER)
Lumière achromatique : Seule l’énergie est prise en compte (niveaux
de gris)
22
Dr.Ing. ABOUTABIT 11
Formation de l’image:
Œil et lumière :
• En 1801, Tomas Young (1773-1829) médecin, linguiste et physicien, montre que la
perception des couleurs peut être expliquée par la présence de 3 nerfs rétiniens excités
respectivement par le rouge, le vert et le violet.
• Un demi-siècle plus tard, Hermann Ludwig Ferdinand von Helmholtz (1821-1894) physicien
et physiologiste, redécouvre et développe la théorie de Young : 3 couleurs fondamentales
qui correspondent à 3 types de terminaisons nerveuses. C’est la synthèse de ces 3 couleurs
primaires qui permet au cerveau humain de percevoir toutes les nuances colorées de la
nature.
• Nous ne percevons donc les couleurs et les détails fins qu’en pleine lumière et grâce à 3
types de photorécepteurs sensibles à des longueurs d’onde spécifiques : les cônes bleus
(λ= 430nm)*, les verts (λ= 530nm)*, rouges (λ= 630nm)*.
λ désigne la distance parcourue par l’onde pendant une période.
* Nanomètre : 1 nm = 10-9 m
23
• Spectre du visible :
380 420 480 540 590 610 780 λ (nm)
violet bleu vert jaune orange rouge
IR UV
24
Dr.Ing. ABOUTABIT 12
• Les couleurs proviennent de la séparation de la lumière blanche
naturelle en composantes absorbées et composantes réfléchies.
• Toute source lumineuse visible est composée d’un mélange d’ondes
électromagnétiques cohérentes (couleurs pures), dont la longeur
d’onde est comprise entre 0,4 μm (violet) et 0,7 μm (rouge).
25
26
Dr.Ing. ABOUTABIT 13
• La trichromie : il suffit d’un triplet de couleurs pures pour restituer
l’intégralité des couleurs (en mélangeant ces 3 composantes)
27
28
Dr.Ing. ABOUTABIT 14
• Acquisition de la couleur : chez l’humain
Les dispositifs d’acquisition de la couleur fonctionnent
habituellement par une combinaison locale de capteurs sélectifs
sensibles à certaine partie du spectre lumineux.
29
Couleur
• Espace couleur RVB:
L’espace RVB est l’espace vectoriel engendré par les 3 composantes primaires
(Rouge, Vert, Bleu). L’ensemble des couleurs produites se représente comme
l’intérieur d’un cube :
30
Dr.Ing. ABOUTABIT 15
Couleur
• Espace couleur RVB
31
Couleur
• Espace couleur HSV ou TLS:
Cet espace de représentaiton des couleurs est le plus proche de l’aspect
physiologique de la vision humaine (notamment en ce qui concerne la teinte).
L’analyse d’images couleur utilise fréquement cet espace.
Teinte : angle
Luminance : axe vertical Saturation: module S
32
Dr.Ing. ABOUTABIT 16
Couleur
• Espace couleur XYZ:
C’est le système de coordonnées (surtout utilisé en télédiffusion) dans lequel
il n’y a pas de coordonnées négatives pour les couleurs visibles.
Matrice de passage
33
Formation de l’image
• Acquisition des images :
Monde Image
Caméra Numérisation
réel numérique
34
Dr.Ing. ABOUTABIT 17
Numérisation
• Numérisation :
35
Numérisation
Colonnes
36
Dr.Ing. ABOUTABIT 18
Numérisation
• L’échantillonnage est limité par la capacité du capteur (ex. caméra), donc le
nombre de pixels disponible (ou autre limite imposée).
• La quantification est limitée par la quantité de tons (de gris) définie dans
l’intervalle.
• Une image numérisée est représentée par une matrice de dimension M * N.
• Chaque élément (pixel) a une valeur entière dans l'intervalle [Lmin , Lmax].
• Le nombre de « bits » requis pour représenter les niveaux de gris dans
l’intervalle « L » est « K ».
• La relation entre « K » et « L » est :
L = 2K
• Le nombre de bit pour entreposer une image est donc :
b = M * N * K (taille de l’image)
37
Numérisation
• Résolution spatiale
Le plus petit détail discernable
• Résolution tonale (de tons de gris)
Le plus petit changement discernable
• Une image a donc une résolution spatiale de M X N pixels et une
résolution de tons de gris de K bits ou de L niveaux ou tons
38
Dr.Ing. ABOUTABIT 19
Numérisation
Résolution spatiale : échantillonnage
39
Formats d’image
• Format de fichiers pour sauvegarder les images :
TIF, GIF, JPEG, PNG, PPM, PGM, BMP, ...
• Chaque format a ses particularités :
- Entête contenant les informations de l'image.
- Pixels de l'image codés de différentes façons.
• Formats sans compression :
- Formats les plus simples,
- Les pixels codés directement (les uns après les autres).
- Exemples : PGM (images en niveaux de gris 8bits),
PPM (images couleur RVB 24bits).
BMP (images couleurs 24bits).
40
Dr.Ing. ABOUTABIT 20
Formats d’image
• Formats avec compression :
Les pixels sont compressés pour réduire la taille du fichier à sauvegarder.
- compression sans perte : sans modification des valeurs des pixels
exemple: PNG
- compression avec perte : valeurs des pixels modifiées pour réduire
encore la taille du fichier.
exemple: JPEG
JPEG est très bien pour visualiser les images (vision humaine) mais très
mauvais pour le traitement d'image, car on perd beaucoup
d'informations.
41
TRAİTEMENTS D’İMAGE
42
Dr.Ing. ABOUTABIT 21
Traitement d’image avec Matlab
• Matlab :
langage performant pour le calcul technique.
calcul, visualisation et programmation sont intégrés.
Environnement facile à utiliser.
Utilisation en :
Math et calcul
Développement algorithmique
Acquisition des données
Modélisation simulation et conception de prototypes.
Analyse des données
Réalisation de graphique scientifique
Développement d’application y compris la construction d’interface graphique.
43
44
Dr.Ing. ABOUTABIT 22
Traitement d’image avec Matlab
Menu
• Matlab :
Editeur
Répertoire
actuel
workspace
Historique des
commandes
Fenêtre de
commande
45
Aide :
• Soit par le menu help/matlab help ou raccourci f1
• soit par commande : help “nom de la commande ou fonction “
46
Dr.Ing. ABOUTABIT 23
Traitement d’image avec Matlab
• Matlab : fonction basique pour le traitement d’image
Lecture d’une image :
imread(‘filename’) ou A=imread(‘filename’)
Affichage d’une image :
imshow(A)
Ecriture d’une image :
imwrite(A,‘filename’)
imwrite(A,‘filename’,’tif’) jpg, bmp ...
imwrite(A,‘filename’,’jpg’,’quality’,q) q =0 à 100
Information du fichier image :
imfinfo(‘filename’)
47
48
Dr.Ing. ABOUTABIT 24
TRAİTEMENT D’İMAGE
Traitement de base
49
Traitements de base
• Histogramme
L’histogramme
Nombre
de pixels
Niveau de gris
Histogramme d’une image : l’histogramme représente la distribution des niveaux de
gris (ou de couleurs) dans une image.
H(k) = le nombre de pixels dans l’image ayant la valeur d’intensité k.
50
Dr.Ing. ABOUTABIT 25
Traitements de base
• Histogramme:
L’histogramme (exemples)
Fonction Matlab :
I = imread(‘nom_fichier');
H(k)
figure; imhist(I);
k
H(k)
H(k)
51
Traitements de base
• Définitions:
La dynamique d’une image est l’intervalle entre les valeurs minimale et maximale =
[valeur_min, valeur_max].
La luminance (ou la brillance) est la moyenne de tous les pixels de l’image.
Influence de la luminance
52
Dr.Ing. ABOUTABIT 26
Traitements de base
• Définitions :
Le contraste peut être défini de plusieurs façons :
Ecart-type des variations des niveaux de gris :
53
Traitements de base
• Définitions:
Image sombre
Image claire
Image contrastée
54
Dr.Ing. ABOUTABIT 27
Traitements de base
• Amélioration du contraste:
55
Traitements de base
• Amélioration du contraste
Transformation linéaire
Définition :
• Cas où l’intervalle de variation des niveaux de gris est réduit (max(I(i,j))-
min(I(i,j)) est inférieur à la dynamique maximale possible pour l’image), on le
remet entre 0 et (L-1).
• Si les niveaux de gris de I appartiennent à [min(I(i,j)), max(I(i,j))] et qu’on étire
l’histogramme à l’intervalle [0, L-1], alors on a :
L −1
I ' (i, j ) = ( I (i, j ) − min( I (i, j )))
max( I (i, j )) − min( I (i, j ))
56
Dr.Ing. ABOUTABIT 28
Traitements de base
• Amélioration du contraste
Transformation linéaire
Exemple : cas où l’image est codée sur 8 bits
57
Traitements de base
• Amélioration du contraste
Transformation linéaire
58
Dr.Ing. ABOUTABIT 29
Traitements de base
• Amélioration du contraste
Transformation linéaire
59
Traitements de base
• Amélioration du contraste
Transformation linéaire avec saturation
60
Dr.Ing. ABOUTABIT 30
Traitements de base
• Amélioration du contraste
Transformation linéaire avec saturation
On a donc :
61
Traitements de base
• Amélioration du contraste
Transformation linéaire par morceaux
62
Dr.Ing. ABOUTABIT 31
Traitements de base
• Amélioration du contraste
Transformation linéaire par morceaux
63
Traitements de base
• Amélioration du contraste
Transformation non linéaire
64
Dr.Ing. ABOUTABIT 32
Traitements de base
• Amélioration du contraste
Correction de la dynamique de l’image (étirement de l’histogramme)
Dans ce cas, l’histogramme de l’image original occupe juste une partie de la plage
dynamique possible. Sa correction est donc linéairement possible.
65
Traitements de base
• Amélioration du contraste
Correction de la dynamique de l’image (étirement de l’histogramme)
66
Dr.Ing. ABOUTABIT 33
Traitements de base
• Amélioration du contraste
Égalisation de l’histogramme
67
Traitements de base
• Amélioration du contraste
Égalisation de l’histogramme
Pour égaliser l’histogramme, on cherche à aplanir l’histogramme.
Algorithme :
1. calcul de l’histogramme
2. normalisation de l’histogramme par le nombre de pixels de l’image
3. calcul de la densité de probabilité normalisé
4. transformation des niveaux de gris de l’image
Fonction Matlab :
1. I = imread(‘nom_fichier');
J = histeq(I);
2.
3.
4.
68
Dr.Ing. ABOUTABIT 34
Traitements de base
• Amélioration du contraste
Égalisation de l’histogramme
69
Traitements de base
• Amélioration du contraste
Égalisation de l’histogramme
70
Dr.Ing. ABOUTABIT 35
Traitements de base
• Opérations sur les images
Addition de deux images
71
Traitements de base
• Opérations sur les images
soustraction de deux images
72
Dr.Ing. ABOUTABIT 36
Traitements de base
• TP Matlab
1. Visualisation d’une image :
- Afficher une image en niveaux de gris et une image couleur RGB .
- Calculer et afficher l’histogramme d’une image en niveaux de gris.
2. Amélioration du contraste:
- Réaliser une fonction permettant un étirement d’histogramme par une
transformation linéaire (utilisation de LUT par exemple).
- Appliquer cette fonction sur une image en niveaux de gris de votre choix.
- Afficher les images originale et améliorée.
3. Egalisation d’histogramme :
- Réaliser une égalisation d’histogramme d’une image, puis afficher ces 2
images et leur histogramme en niveaux de gris sur la même figure.
Pour ce faire, utilisez les fonctions histeq pour l’égalisation et imhist pour
afficher l’histogramme.
73
TRAİTEMENT D’İMAGE
segementation
74
Dr.Ing. ABOUTABIT 37
Traitement d’image
• Segmentation :
Qu’est ce que la segmentation ? Et pourquoi segmenter ?
75
Traitement d’image
• Segmentation :
But de la segmentation
- Extration des entités d’une image (les objets, le fond ... ) afin de :
- appliquer un traitement spécifique
- interpreter le contenu d’une image
- En pratique : on construit une image de masque
- Chaque masque est une composante connexe
76
Dr.Ing. ABOUTABIT 38
Traitement d’image
• Segmentation :
Principe de la segmentation
La segmentation peut se faire soit en détectant :
• les discontinuités : contours
- les changements abruptes, frontières entre régions ...
• les zones homogènes : régions
- mêmes couleurs, textures, intensités ...
La segmentation est le découpage d’une image en différentes régions et/ou contours
77
Traitement d’image
• Segmentation :
Approches
78
Dr.Ing. ABOUTABIT 39
Traitement d’image
• Segmentation : Principe de base
seuillage
79
Traitements de base
• Seuillage:
80
Dr.Ing. ABOUTABIT 40
Traitement d’image
• Segmentation : principe de base
Seuillage
Multi-seuils
81
Traitement d’image
• Segmentation : principe de base
Seuillage
82
Dr.Ing. ABOUTABIT 41
Traitement d’image
• Segmentation : principe de base
Seuillage
Choix du seuil optimal
83
Traitement d’image
• Segmentation : principe de base
Seuillage
Choix du seuil optimal
84
Dr.Ing. ABOUTABIT 42
Traitement d’image
• Segmentation : principe de base
Seuillage
Seuillage global
Problème d’éclairage
Seuillage
global pas
évident
Seuillage global
facile
85
Traitement d’image
• Segmentation : principe de base
Seuillage
Seuillage local adaptatif
86
Dr.Ing. ABOUTABIT 43
Traitement d’image
• Segmentation : principe de base
Seuillage
Seuillage local adaptatif
87
Traitement d’image
• Segmentation : Principe de base
seuillage
Avantages Inconvénients
Universel • Connaître le nombre de classes (et donc les seuils)
Temps réel • Apparition de faux éléments (la composante spatiale
Simple n’est pas prise en compte)
88
Dr.Ing. ABOUTABIT 44
Traitement d’image
• Segmentation : principe de base
k-moyennes (k-means)
89
Traitement d’image
• Segmentation :principe de base
k-moyennes (k-means)
90
Dr.Ing. ABOUTABIT 45
Traitement d’image
• Segmentation :principe de base
TP :
1. Réaliser une fonction seuillage multi-seuils, et appliquer la sur différentes
images.
2. Réaliser une segmentation type k-moyennes sur une image niveaux de
gris.
3. Comment modifier votre dernière application pour segmenter une image
couleur RGB ?
91
Traitement d’image
• Segmentation : principe de base
Approche pixels
• L’approche pixels effectue des opérations sur les pixels pour segmenter les régions.
• La méthode utilisant le seuillage est une méthode simple mais qui nécessite un
nettoyage des résultats obtenus :
- élimination des pixels isolés pour conserver que les blocs de pixels.
• Il existe d’autres méthodes de segmentation des régions conservant la connexité des
régions.
92
Dr.Ing. ABOUTABIT 46
Traitement d’image
• Segmentation :principe de base
Division-Fusion
93
Traitement d’image
• Segmentation :principe de base
Division-Fusion (étape de division)
94
Dr.Ing. ABOUTABIT 47
Traitement d’image
• Segmentation :principe de base
Division-Fusion (étape de division)
95
Traitement d’image
• Segmentation : principe de base
Division-Fusion (étape de fusion)
96
Dr.Ing. ABOUTABIT 48
Traitement d’image
• Segmentation : principe de base
Division-Fusion (exemple)
97
Traitement d’image
• Segmentation :principe de base
Croissance de régions
98
Dr.Ing. ABOUTABIT 49
Traitement d’image
• Segmentation : principe de base
Croissance de régions
99
Traitement d’image
• Segmentation : principe de base
Conseils
100
Dr.Ing. ABOUTABIT 50
TRAİTEMENT D’İMAGE
Filtrage
101
Traitement d’image
• Convolution :
Transformation des valeurs des pixels d’une image
102
Dr.Ing. ABOUTABIT 51
Traitement d’image
• Convolution :
Transformation des valeurs des pixels d’une image
103
Traitement d’image
• Convolution :
Convolution numérique
104
Dr.Ing. ABOUTABIT 52
Traitement d’image
• Convolution :
Exemple de convolution 2D
105
Traitement d’image
• Convolution :
Convolution numérique
106
Dr.Ing. ABOUTABIT 53
Traitement d’image
• Convolution :
Convolution numérique R=I*K
107
Traitement d’image
• Convolution :
Convolution numérique R=I*K
108
Dr.Ing. ABOUTABIT 54
Traitement d’image
• Convolution :
Convolution numérique R=I*K
109
Traitement d’image
• Convolution :
Convolution numérique R=I*K
110
Dr.Ing. ABOUTABIT 55
Traitement d’image
• Convolution :
Convolution numérique R=I*K
111
Traitement d’image
• Convolution :
Convolution numérique R=I*K
112
Dr.Ing. ABOUTABIT 56
Traitement d’image
• Convolution :
Filtrage spatial
113
Traitement d’image
• Convolution :
Filtrage spatial : filtre moyenneur
114
Dr.Ing. ABOUTABIT 57
Traitement d’image
• Convolution :
Filtrage spatial : filtre moyenneur
115
Traitement d’image
• Convolution :
Filtrage spatial : filtre moyenneur exemple
116
Dr.Ing. ABOUTABIT 58
Traitement d’image
• Convolution :
Filtrage spatial : filtre Gaussien
117
Traitement d’image
• Convolution :
Filtrage spatial : filtre Gaussien exemple
118
Dr.Ing. ABOUTABIT 59
Traitement d’image
• Filtrage non linéaire:
Filtrage spatial : filtre Médian
119
Traitement d’image
• Filtrage non linéaire:
Filtrage spatial : filtre Médian
120
Dr.Ing. ABOUTABIT 60
Traitement d’image
• Filtrage :
Filtrage spatial : comparaison filtre médian et moyenneur
121
Traitement d’image
TP matlab : réduction du bruit dans une image = filtrage
A partir d’une image bruitée, essayez de faire différents filtres pour la restaurer,
utilisez par exemple :
- un filtre moyenneur de taille 3
- un filtre moyenneur de taille 7
- un filtre médian
Que constatez vous ? Parmi ces trois filtres, quel est le filtre le plus adapté à la
correction de bruits ponctuels ? Pourquoi ?
122
Dr.Ing. ABOUTABIT 61
Traitement d’image
TP matlab : filtrage passe-bas , passe-haut
1. Filtrage passe-bas : utilisation de filtre moyenneurs et médians de noyaux de
convolution de 3*3, 5*5, 7*7 :
- afficher l’image originale (image Lena ou cameraman) et les 3 images filtrées
par les filtres moyenneurs.
- faire de même sur une autre figure pour les filtres médians.
- Expliquer l’effet des filtres moyenneur et médian.
Utiliser imfilter ou filter2 pour le moyenneur et medfilt2 pour le médian.
2. Filtrage passe-haut :
on filtre une image par deux filtres passe-haut 3*3 de noyaux :
H1 = 1/9*[0,-1,0;-1,4,-1;0,-1,0]
H2 = 1/9*[-1,-1,-1;-1,4,-1;0,-1,0]
Commenter et expliquer les résultats obtenus. En déduire une application des
filtres passe-haut.
123
Détection de contours
TRAİTEMENT D’İMAGE
124
Dr.Ing. ABOUTABIT 62
Traitement d’image
• Contour:
Définition :
Un contour est une variation brusque d'intensité.
Par définition, un contour est la frontière qui sépare deux objets dans une image.
Une discontinuité de l’image
Dans notre cas, nous détecterons toutes les lignes marquant des changements
d’intensité :
Pas seulement les contours !
Abus de langage sur la notion de contours !
125
Traitement d’image
• Contour:
Définition :
Exemples de détection des discontinuités :
Profondeur Orientation de
surface
Refléctance
Illumination
126
Dr.Ing. ABOUTABIT 63
Traitement d’image
• Contour:
Type de contours :
127
Traitement d’image
• Contour:
Type de contours :
Et si le contour est bruité ...
Un peu .. Beaucoup ..
128
Dr.Ing. ABOUTABIT 64
Traitement d’image
• Détection de contours:
Définition :
La détection de contours est une technique de réduction d'information dans
les images, qui consiste à transformer l'image en un ensemble de courbes,
pas forcément fermées, formant les frontières significatives de l'image.
Si les structures extraites sont simples à manipuler (courbes fines, régulières,
stables...), elles peuvent être utiles pour la mise en correspondance
d'images (robotique, indexation,...).
129
Traitement d’image
• Détection de contours:
Méthode de détection :
Pour détecter les contours dans une image, la première dérivée de l’image
est l’opérateur de base.
130
Dr.Ing. ABOUTABIT 65
Traitement d’image
• Détection de contours:
Méthode de détection :
La première dérivée de l’image s’exprime analytiquement par :
ou
131
Traitement d’image
• Détection de contours:
Méthode de détection :
La première approximation de la dérivée d’une image discrète est celle
faite par Roberts (1965) filtre de Roberts
Le filtre de Roberts est réalisé en convoluant l’image par deux masques de
convolution. Chaque masque correspond à une direction de la dérivée :
132
Dr.Ing. ABOUTABIT 66
Traitement d’image
• Détection de contours:
Méthode de détection :
Il existe d’autres filtres pour détecter les contours dans une image. Dans
ces filtres on effectue d’autres opérations additionnelles à la dérivée.
Exemples :
133
Traitement d’image
• Détection de contours:
Méthode de détection : Lissage + Dérivée
Le lissage permet une détection de contours moins sensible au bruit.
134
Dr.Ing. ABOUTABIT 67
Traitement d’image
• Détection de contours:
Méthode de détection :
Il est à noter que l’image est une fonction 2D. On parle alors de Gradient
d’image dérivée selon x + dérivée selon y
On obtient alors un vecteur avec une norme et une direction.
135
Traitement d’image
• Détection de contours:
Méthode de détection :
136
Dr.Ing. ABOUTABIT 68
Traitement d’image
• Détection de contours:
Méthode de détection : Seuillage du Gradient
Sobel sans
seuillage
137
Traitement d’image
• Détection de contours:
Méthode de détection :
La première dérivée n’est pas la seule méthode pour détecter les contours.
La dérivée seconde peut aussi les détecter. Pour une image (2D) on
parle alors de Laplacien.
L’opérateur Laplacien est définit de la façon suivante :
138
Dr.Ing. ABOUTABIT 69
Traitement d’image
• Détection de contours:
Méthode de détection :
139
Traitement d’image
• Détection de contours:
Méthode de détection :
140
Dr.Ing. ABOUTABIT 70
Traitement d’image
• Détection de contours:
Méthode de détection :
Pour appliquer le Laplacien sur une image plusieurs approximation
discrètes existent sous forme de masque de type :
141
Traitement d’image
• Détection de contours:
Synthèse:
Plusieurs filtres existent pour détecter les contours. Mais lequel choisir ?
Il faut savoir qu’aucun opérateur n’est parfait.
En réalité, le résultat obtenu est incomplet :
Il résulte des pixels superflus : qui n’appartiennent pas à un contour mais sont
détectés
Il y’a aussi des pixels appartenant à un contour non détectés manque
Il y a des erreurs de position et d’orientation des pixels de contours
Le choix donc dépend de l’utilisateur
Enfin la détection des contours est un traitement de segmentation de bas
niveau dans une chaine de traitement d’image.
La détection des contours par gradient ou laplacien est une méthode dite locale
(les filtres sont appliqués dans un voisinage de chaque pixel).
Il existe d’autres méthodes de type globale: Transformée de Hough par
exemple.
142
Dr.Ing. ABOUTABIT 71
Traitement d’image
• Détection de contours:
TP Matlab:
La fonction à utiliser : edge.m
1. Operateurs 1er ordre:
Travailler sur l’image cameraman.tif.
Calculer la norme du gradient sur l’image . Interpréter les résultats.
Utiliser l’opérateur Sobel. Interpréter.
Même question pour l’opérateur Prewitt.
2. Operateurs 2nd ordre:
Travailler sur l’image cameraman.tif.
Appliquer un opérateur laplacien sur l’image. Commenter.
143
Traitement d’image
• Détection de contours:
TP Matlab:
3. Seuillage :
Réaliser un seuillage pour les opérateurs dérivatifs du premier ordre.
Réaliser un seuillage pour les opérateurs dérivatifs du second ordre.
144
Dr.Ing. ABOUTABIT 72
TRAİTEMENT D’İMAGE
145
Traitement d’image
• Images binaires:
Les images binaires sont des images où
un pixel ne peut prendre que la valeur 0
ou 1 (ou autre valeur non nulle).
Plusieurs techniques
particulières permettent
de manipuler les images
Binaires.
Dr.Ing. ABOUTABIT 73
Traitement d’image
• Images binaires:
Pavage et maillage:
Questions :
Quelle est la distance entre deux points ? A quoi correspond un trou ? Comment
définir une droite ?
147
Traitement d’image
• Images binaires:
Pavage et maillage :
Réponse : Selon le pavage utilisé pour répartir le plan de l’image et le type de la
connexité des pixels (adjacence).
148
Dr.Ing. ABOUTABIT 74
Traitement d’image
• Images binaires:
Pavage et maillage :
On associe à chaque pavage du plan un graphe. Les sommets (noeuds) de ce
graphe représentent les cellules élémentaires, et les arêtes représentent la
relation d'adjacence entre ces cellules (2 cellules sont adjacentes si elles
ont un côté en commun). Un tel graphe est appelé maillage du plan.
Les pavages et les maillages réguliers ont une relation de dualité :
149
Traitement d’image
• Images binaires:
Connexité des pixels :
Connexité-4 et connexité-8
NB: A noter qu’on utilise des connexités différentes entre les contours et les
régions:
connexité-4 pour les régions
connexité-8 pour les contours
150
Dr.Ing. ABOUTABIT 75
Traitement d’image
• Images binaires:
Connexité des pixels : exemples
• Région : connexité-4
• Région : connexité-8
o Contour : connexité-8
o Contour : connexité-4
151
Traitement d’image
• Images binaires:
Distance :
P1
P2
152
Dr.Ing. ABOUTABIT 76
Traitement d’image
• Images binaires:
Distance :
Distance de Manhattan D4: 2
La distance entre deux pixels (x,y) et (s,t) est donnée 2 1 2
D4(p,q) = |x-s|+|y-t| 2 1 0 1 2
Au voisinage autour du pixel (x,y) => 2 1 2
Forme de diamant centré sur le pixel. 2
2 2 2 2 2
D8 (p,q) = maximum (|x-s| , |y-t|)
2 1 1 1 2
Au voisinage autour du pixel (x,y) =>
Forme de carré centré sur le pixel. 2 1 0 1 2
2 1 1 1 2
2 2 2 2 2
153
Traitement d’image
• Images binaires:
Codage de Freeman:
Pour coder les directions dans une image, on utilise le codage de Freeman :
On peut ainsi coder les contours en partant d’un pixel (en haut à gauche) et en
tournant dans le sens des aiguilles d’une montre .
154
Dr.Ing. ABOUTABIT 77
Traitement d’image
• Images binaires:
Codage de Freeman :
Application : Codage des contours
Le codage de Freeman associe
à chaque déplacement
élémentaire (vers un des
voisins définis par la
8-connexité) un code entier
dans l’intervalle [0,7].
155
Traitement d’image
• Images binaires:
Etiquetage des composantes connexes :
Composante connexe = ensemble de pixels connexes (voisins) appartenant a une même
entité Une image segmentée n'est qu'une succession de pixels
On désire donner une valeur commune pour les pixels d'une région ou d'un contour
On désire avoir une valeur différente pour chaque région/contour
C’est une opération utilisée en post-segmentation. Exemple :
156
Dr.Ing. ABOUTABIT 78
Traitement d’image
• Images binaires:
Etiquetage des composantes connexes :
Exemple d’étiquetage :
157
Traitement d’image
• Images binaires:
Etiquetage des composantes connexes :
Exemple d’étiquetage :
158
Dr.Ing. ABOUTABIT 79
Traitement d’image
• Images binaires:
Etiquetage des composantes connexes :
Exemple d’étiquetage :
159
Traitement d’image
• Images binaires:
Etiquetage des composantes connexes :
Exemple d’étiquetage :
160
Dr.Ing. ABOUTABIT 80
Traitement d’image
• Images binaires:
Etiquetage des composantes connexes :
Exemple d’étiquetage :
161
Traitement d’image
• Images binaires:
Etiquetage des composantes connexes :
Exemple d’étiquetage :
162
Dr.Ing. ABOUTABIT 81
Traitement d’image
• Images binaires:
Etiquetage des composantes connexes :
Exemple d’étiquetage :
163
Traitement d’image
• Images binaires:
Etiquetage des composantes connexes :
Exemple d’étiquetage :
164
Dr.Ing. ABOUTABIT 82
Traitement d’image
• Images binaires:
Etiquetage des composantes connexes :
Exemple d’étiquetage :
165
Traitement d’image
• Images binaires:
Etiquetage des composantes connexes :
Exemple d’étiquetage :
166
Dr.Ing. ABOUTABIT 83
Traitement d’image
• Images binaires:
Etiquetage des composantes connexes :
En deux parcours, l’étiquetage des régions est réalisé.
Parfois, deux parcours ne suffisent pas. Exemple : spirale
Mais dans certains cas on peut aussi faire qu’un seul parcours avec:
Gestion d’une table d’équivalence d’étiquettes.
Mise a jour récursive des étiquettes lorsque 2 étiquettes se ≪ rencontrent ≫.
167
Traitement d’image
• Images binaires:
Etiquetage des contours:
L’étiquetage des contours peut se faire avec le même algorithme précédent.
Le seul changement est l’utilisation de la 8-connexité : on regarde 4 voisins au
lieu de 2.
1 2 3
4 ?
A faire attention : normalement l’épaisseur d’un contour doit être d’un seul
pixel ==> supprimer les pixels redondants (non-maxima)
Il existe d’autres algorithmes plus performants pour les contours.
168
Dr.Ing. ABOUTABIT 84
Traitement d’image
• Images binaires:
Fermeture des contours:
Les méthodes de détection des contours vus précédemment ne donnent pas
exactement des contours fermés ==> les résultats contiennent des trous et
morceaux de contours isolés.
Pour pouvoir segmenter les régions à partir des contours il faut les fermer.
Plusieurs méthodes existent mais rien de facile ...
Epaisseur des contours :
Condition importante : un contour doit avoir une
épaisseur de 1 pixel partout.
Si le contour est trop épais, ou si le contour
présente plusieurs chemins, on doit conserver les pixels
de gradient le plus fort.
169
Traitement d’image
• Images binaires:
Fermeture des contours:
Calcul et suivi du meilleur chemin dans le gradient
Au bout des contours, on cherche le chemin permettant de rejoindre une autre
extrémité de contour ==> Suivi du chemin de gradient le plus fort
On peut avoir plusieurs chemins possibles :
- Graphes de possibilités de chemin
- Choix des chemins les plus courts / les plus forts (gradient).
170
Dr.Ing. ABOUTABIT 85
Traitement d’image
• Images binaires:
Fermeture des contours:
Seuillage par hystérésis
Définir deux seuils:
- un seuil bas : minimum pour être un contour
- un seuil haut: minimum pour être contour d'un objet
(1) Seuiller avec le seuil haut
(2) Ajouter les contours connectes supérieur au seuil bas
171
Traitement d’image
• Opérateurs morphologiques:
172
Dr.Ing. ABOUTABIT 86
Traitement d’image
• Opérateurs morphologiques:
173
Traitement d’image
• Opérateurs morphologiques:
174
Dr.Ing. ABOUTABIT 87
Traitement d’image
• Opérateurs morphologiques: Erosion
175
Traitement d’image
• Opérateurs morphologiques: Dilatation
176
Dr.Ing. ABOUTABIT 88
Traitement d’image
• Opérateurs morphologiques: exemple d’application
Combien d’objets ?
1 ou 2 ?
177
Traitement d’image
• Opérateurs morphologiques: exemple de Dilatation
178
Dr.Ing. ABOUTABIT 89
Traitement d’image
• Opérateurs morphologiques: Erosion vs Dilatation
179
Traitement d’image
• Opérateurs morphologiques: Ouverture vs Fermeture
180
Dr.Ing. ABOUTABIT 90
Traitement d’image
• Opérateurs morphologiques: Application
181
Traitement d’image
• Opérateurs morphologiques: Elément structurant
182
Dr.Ing. ABOUTABIT 91
Traitement d’image
• Opérateurs morphologiques: résumé
183
Traitement d’image
• Opérateurs morphologiques: Gradient interne -externe
184
Dr.Ing. ABOUTABIT 92
Traitement d’image
• Opérateurs morphologiques: Gradient morphologique
Réalisation Matlab :
im=imread('saturn.tif');
SE=ones(3);
imB=im2bw(im,0.12);
imD=imdilate(imB,SE);
imE=imerode(imB,SE);
imR=imD-imE;
185
Traitement d’image
• Morphologie mathématique :
TP Matlab :
Lire l’image CIRCUIT.TIF
Binariser l’image en utilisant la méthode de votre choix (suillage, detection de
contours ).
Par convention le « fond » de l’image binaire doit être noir (à « 0 »), et la forme
de l’objet doit être blanche (à « 1 »). Sinon, vous pouvez inverser l’image binaire
avec l’opérateur « ~ » ( I = ~ I ).
Choisisser un élément structurant. Vous pouvez l’écrire directement sous la
forme d’une matrice binaire (ex. SE = ones(3), SE = [0 1 0;1 1 1;0 1 0], … ).
Appliquer une Erosion sur les formes de l’image binaire avec imerode.
De même, appliquer une dilatation sur les formes de l’image binaire avec
imdilate.
Eroder ou dilater l’image binaire en jouant avec la forme de l’élément
structurant (cas symétrique ou non ).
186
Dr.Ing. ABOUTABIT 93
Traitement d’image
• Morphologie mathématique :
TP Matlab (suite):
Analyse qualitative de globules rouges à partir de l’observation microscopique
d’échantillons sanguins. Cette analyse pourrait se faire à l’aide d’un traitement
morphologique des images issues d’un microscope :
Prendre l’image globules.tif
En utilisant des opérateurs morphologique, imaginer et appliquer un algorithme
permettant de segmenter les globules rouges de façon précise : l’algorithme devra éliminer
les plaquettes (petites cellules foncées), les globules rouges qui sont coupés (qui touchent
le bord), les globules rouges qui sont supérposés.
187
Traitement d’image
• Morphologie mathématique :
TP Matlab (suite):
De même imaginer un algorithme pour déterminer les inclusions intra-globules.
188
Dr.Ing. ABOUTABIT 94