Page : 2/15
Juste au cas où ….
Qui suisje ? Et comment me joindre ?Carole Frindel, [email protected]lyon.fr
Si vous avez des difficultés :– Références à des ouvrages tout au long du cours– Internet est vaste : soyez autonomes.
Si ça ne répond pas à vos questions :– Envoyez un mail à votre enseignant
Page : 3/15
Programme du cours
Introduction Qu’estce qu’une image ? Traitements de base d’une image Convolution Numérique Traitements fréquentiels Détection des contours Segmentation Opérations sur les images binaires Reconnaissance des formes
Page : 5/15
Fonctionnement du cours
Séance de 2 ou 4h (exceptionnellement). Alternance entre séance de cours et de TP
Travaux pratiques– Utilisation de Fiji sous Linux– Programmation de macros sous Fiji
Evaluation du cours– Travaux pratiques (50%) + projet (50%)
Page : 7/15
Fiji
Logiciel de traitement et analyse d'images, surcouche de ImageJ
ImageJ : logiciel multiplateforme et open source de traitement et d'analyse d'images développé par les National Institutes of Health
Il est écrit en Java et permet l'ajout de nouvelles fonctionnalités via des plugins et macros
Téléchargeable sur http://fiji.sc/Fiji Utilisé pour les travaux pratiques
Page : 8/15
Attention : accent mis sur les TP
Ne surtout pas commencer à la dernière minute– Travaillez en plusieurs fois– Se laisser du temps pour réfléchir aux problèmes
Du temps est donné en classe pour les TP– Profitezen pour avancer votre travail !– Evitez de surfez le web dans les cours et relisez votre cours avant de
venir en TP
Page : 9/15
Attention : accent mis sur les TP
C’est un cours de traitement d’images !– Découvrez le logiciel Fiji et ses fonctionnalités– Ecrivez votre rapport en français– Mais expliquez et démontrez le traitement d’images !
Montrez des résultats sur les images– Choisissez les images et expliquez vos résultats– Faites le lien avec ce qui est vu en cours
Page : 10/15
Ouvrages en Traitement d’images
Diane Lingrand. Introduction au Traitement d’Images, Vuibert, Paris, 2004.
Alain Trémeau, Christine FernandezMaloigne & Pierre Bonton. Image Numérique Couleur, Editions Dunod, 2004.
Rafael C. Gonzalez & Richard E. Woords. Digital Image Processing, 2nd edition, PrenticeHall, 2002.
Wilhelm Burger & Mark J. Burge. Digital Image Processing: An Algorithmic Introduction using Java, Springer, 2007.
Page : 11/15
Vision artificielle (Computer Vision)
Qu'est ce que c'est ?– connaissances et technologies qui permettent de concevoir des
machines qui peuvent « voir »
Premier niveau : vision– acquiert une image grâce à une chaîne intégrant des éléments
optiques et un capteur Deuxième niveau : traitement de l'image
– modifie le contenu de l'image afin de mettre en évidence des éléments d'intérêt (objets, contours)
Troisième niveau : reconnaissance– utilise des techniques d'intelligence artificielle pour identifier des
formes connues dans l'image
Page : 12/15
Extension de la perception humaine ? Oui
Capteurs meilleurs que l'oeil humain– voient ce que nous ne voyons pas directement, du fait
de la limitation de notre système visuel
Autres propriétés optiques– problème d'échelle, de résolution, de point de vue (ex :
images satellitaires)
Autres gammes de longueurs d'onde– caméras multispectrales, infrarouge proche,
thermiques (infrarouge lointain)
Autres cadences– caméras à haute cadence, plusieurs milliers d'images
par seconde.
Page : 13/15
Mieux que la perception humaine ? Non
Moins « intelligent » que l'humain– même si les images initiales sont parfois très riches, le
résultat de leur traitement par un système de VA reste souvent basique
Puissance de calcul– les systèmes de VA ont une capacité de calcul infiniment
plus limitée que celle du cerveau humain, ou de celui des animaux évolués
Connaissance et reconnaissance– nous exploitons nos connaissances pour interpréter le
contenu de l'image : on reconnaît parfois des objets alors qu'ils ne sont pas visibles
Page : 14/15
Exemple d'application de la VA : imagerie médicale
Objectifs– aider le médecin lors du diagnostic, le chirurgien lors
de la réalisation d'un geste opératoire
Amélioration des images– rehaussement du contraste, élimination du bruit, mise
en évidence des détails
Détection et localisation– positionnement des organes, détection des tumeurs,
mesure de dimensions et de volumes
Imagerie interventionnelle– assistance enligne au praticien : opérations réalisées
sur les images en tempsréel
Page : 15/15
Vision industrielle : contrôle de la qualité, de l'aspect, ...
Objectifs– éviter le contrôle visuel par un opérateur (tâche
répétitive peu valorisante)
Contrôle dimensionnel– le système de vision détermine la dimension, la forme,
la position de l'objet qu'il observe
Contrôle d'aspect– le système détermine la couleur, la texture des objets
observés
Contrôle de la qualité– à partir des données précédentes, le système détermine
la qualité d'un produit
2
Qu'est-ce qu'une image ?
64 60 69 100 149 151 176 182 17965 62 68 97 145 148 175 183 18165 66 70 95 142 146 176 185 18466 66 68 90 135 140 172 184 18466 64 64 84 129 134 168 181 18259 63 62 88 130 128 166 185 18060 62 60 85 127 125 163 183 17862 62 58 81 122 120 160 181 17663 64 58 78 118 117 159 180 176
Niveaux de gris - 8 bits: 0 - noir 255 - blanc
Source : Tal Hassner. Computer Vision. Weizmann Institute of Science (Israel).
4
Qu'est-ce qu'une image ?
Une image est avant tout un signal 2D (x,y) Souvent, cette image représente une réalité 3D
(x,y,z)
D'un point de vue mathématique : Une image est un matrice de nombres représentant un signal Plusieurs outils permettent de manipuler ce signal
D'un point de vue humain : Une image contient plusieurs informations sémantiques Il faut interpréter le contenu au-delà de la valeur des nombres
5
Images naturelles et artificielles
Image naturelle – Plusieurs moyens d'acquisition caméra, microscope, tomographie, infra-rouge, satellite, …
Image artificielle – Plusieurs outils de représentation synthèse d'images, réalité virtuelle, visualisation scientifique, …
Image naturelle Image artificielle Image artificielle
6
Images en niveaux de gris I(x,y) ∈ [0..255]
Images binaires I(x,y) ∈ {0 , 1}
Images couleurs IR(x,y) IG(x,y) IB(x,y)
Trois principaux types d'images
… et plus encore (image 3D, image réelle, …)
Source : Tal Hassner. Computer Vision. Weizmann Institute of Science (Israel).
7
Image couleur dans l'espace RVB
Mais il existe aussi d’autres codages de la couleur que RVB…
Source : Tal Hassner. Computer Vision. Weizmann Institute of Science (Israel).CVIPTools : File>View Band>{Red,Green,Blue} / Utilities>Convert>Color to Gray
9
Monde Caméra Numériseur Image numérique
Acquisition d'une image
Source : Tal Hassner. Computer Vision. Weizmann Institute of Science (Israel).
10
Capteur – Principe général
Principe général (ex: photodiode) L'énergie incidente est convertie en signal électrique Sortie est proportionnelle à la lumière Filtre pour augmenter la sélectivité
12
Capteur CCD
Caméras numériques CCD
Matrice CCD (Charged Coupled Devices)
Système d'acquisition numérique 2D le plus utilisé
La réponse est proportionnelle à l'intégrale de l'énergie lumineuse qui atteint chaque élément
Pour la couleur, on utilise trois capteurs par pixel réagissant à des longueurs d'ondes différentes (rouge, vert et bleu)
13
Image numérique
Les valeurs de f (x,y) sont la réponse du capteur au phénomène observé
Les valeurs de f (x,y) sont des valeurs de « voltage » continu
Les valeurs de f (x,y) doivent être converties vers le domaine numérique
Conversion Analogique/Numérique (A/N)
Deux procédés sont impliqués pour numériser une image :
Numérisation = Échantillonnage + Quantification
14
Echantillonnage et quantification
Source : Gonzalez and Woods. Digital Image Processing. Prentice-Hall, 2002.
15
Echantillonnage et quantification
L’échantillonnage est limité par la capacité du capteur, 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
Source : Gonzalez and Woods. Digital Image Processing. Prentice-Hall, 2002.
16
Echantillonnage et quantification
Avec un capteur à matrice :
Source : Gonzalez and Woods. Digital Image Processing. Prentice-Hall, 2002.
17
Echantillonnage et quantification
CVIPTools : Utilities>Size>Spatial Quant / Utilities>Convert >Gray Level Quantization
18
Représentation des images
Matrice de dimension M X N Chaque élément à 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 = 2 K
Le nombre de bits pour entreposer un image est donc : b = M X N X K
19
Résolutions des images
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 pixel et une résolution de tons de gris de K bits ou de L niveaux ou tons
20
Résolutions spatiale et tonale
Résolution spatiale : échantillonage
Résolution tonale : quantification
Source : Antoine Mazanera. Introduction et filtrage. ENSTA (France).
26
Profil d'intensité d'une image
Un profil d’intensité d’une ligne dans une image est représenté par des signaux 1D.
Lectures suggérées
● Introduction au Traitement d’Images (Lingrand) : chapitre 1
● Digital Image Processing: An Algorithmic Introduction using Java (Burger & Burge) : chapitre 2
● Wikipédia : Traitement d'images, Image numérique, Image matricielle, Image resolution, Niveaux de gris, Quantification
2
Histogramme d'une image
L'histogramme représente la distribution des niveaux de gris (ou de couleurs) dans une image
H(k) = nombre de pixels de l'image ayant la valeur k.
Nombre de pixels
Niveau de gris
CVIPTools : File>Show Histogram
3
Histogramme d'une image
PI(k)
k
PI(k)
k
1
1
0.5
PI(k)
k
0.1
Dynamique d'une image = [valeur_min,valeur_max]
Source : Tal Hassner. Computer Vision. Weizmann Institute of Science (Israel).
4
Luminance ou brillance d'une image
La luminance (ou brillance) est définie comme la moyenne de tous les pixels de l'image.
Dans les deux images suivantes, seule la luminance est différente :
Source : Eric Favier. L'analyse et le traitement des images. ENISE (France).CVIPTools : Utilities>Stats>Image Statistics (Mean)
5
Contraste d'une image
Le contraste peut être défini de plusieurs façons : Ecart-type des variations des niveaux de gris
Variation entre niveaux de gris min et max
CVIPTools : Utilities>Stats>Image Statistics (S.D.)
6
Contraste d'une image
Les deux images suivantes possèdent un contraste différent :
Source : Eric Favier. L'analyse et le traitement des images. ENISE (France).
7
Exemples de contrastes d’une image
Source : Gonzalez and Woods. Digital Image Processing. Prentice-Hall, 2002.
8
Amélioration du contraste
Plusieurs méthodes possibles : Transformation linéaire Transformation linéaire avec saturation Transformation linéaire par morceau Transformation non-linéaire Égalisation de l’histogramme
Source : Caroline Rougier. Traitement d'images (IFT2730). Univ. de Montréal.CVIPTools : Enhancement>Histograms
9
Transformation linéaire
I’
Imin max
255
0I(i,j)
I’(i,j)
max− minI i , j − min
=255− 0
I ' i , j − 0Alors :
I ' i , j =255max− min
I i , j − min
[ ]1,0minmaxmin)),(( min)),((
minmax255),(' ∈
−−−
−= jiIavecjiIiiI
Source : Caroline Rougier. Traitement d'images (IFT2730). Univ. de Montréal.CVIPTools : Enhancement>Histograms>Linear Modification
10
Transformation linéaire
255
255
min max
255
255
%
0 255min max
0 255
Source : Caroline Rougier. Traitement d'images (IFT2730). Univ. de Montréal.
11
Implémentation…
Pour i=1 à nblig Pour j=1 à nbcol I’(i,j) = 255*(I(i,j)-minI)
/(maxI-minI);
Pas optimal
Utilisation d’une LUT(Look Up Table)
/* Initialisation de la LUT */ Pour i=0 à 255 LUT[i]=255*(i-minI)/(maxI-minI);
/* Initialisation de la LUT */ Pour i=1 à nblig Pour j=1 à nbcol I’(i,j) =LUT[I(i,j)];
Source : Caroline Rougier. Traitement d'images (IFT2730). Univ. de Montréal.
12
Transformation linéaire avec saturation
255
255%
0 255Smin Smax
0 255min max
255
255
Smin Smax
Source : Caroline Rougier. Traitement d'images (IFT2730). Univ. de Montréal.
13
Transformation linéaire avec saturation
)),(max()),(min(
255),('255),('
0),('0),('
)),((255
),('
maxmin
minminmax
jiISSjiI
jiIjiI
jiIjiI
SjiISS
jiI
≤<≤
=⇒≥=⇒≤
−−
=
Source : Caroline Rougier. Traitement d'images (IFT2730). Univ. de Montréal.
14
Transformation linéaire par morceaux
255
255%
0 255Smin Smax
0 255min max
255
255
Smin SmaxS
Source : Caroline Rougier. Traitement d'images (IFT2730). Univ. de Montréal.
15
Transformation linéaire par morceaux
Exemple d’une fonction ad-hoc de modification du contraste de l’image.
Source : Gonzalez and Woods. Digital Image Processing. Prentice-Hall, 2002.
18
Correction de la dynamique de l'image
Image originale Image restaurée
Source : www.crans.ens-cachan.fr/~genest/histogramme.pdf CVIPTools : Utilities>Stats>Image Data Range + Enhancement>Histograms>Histogram Stretch
19
Correction de la dynamique de l'image
Dans le cas où l'histogramme initial occupe toute la plage de dynamique, aucun changement n'est visible.
Source : www.crans.ens-cachan.fr/~genest/histogramme.pdf
20
Egalisation de l'histogramme
0 50 100 150 200 2500
500
1000
1500
2000
2500
3000
3500
0 50 100 150 200 2500
500
1000
1500
2000
2500
3000
3500
Image originale Image plus contrastée
Source : Tal Hassner. Computer Vision. Weizmann Institute of Science (Israel).CVIPTools : Enhancement>Histograms>Histogram Equalization
21
Egalisation de l'histogramme
Pour améliorer le contraste, on cherche à aplanir l’histogramme
Etape 1 : Calcul de l'histogramme
Etape 2 : Normalisation de l'histogramme (Nbp : nombre de pixels de l‘image)
Etape 3 : Densité de probabilité normalisé
Etape 4 : Transformation des niveaux de gris de l'image
k k
h ideal k h k
f ' x , y =C f x , y × 255
C i = ∑j= 0
i
hn j i∈[ 0, 255 ]
hn i =h i Nbp
i∈[ 0, 255 ]
h i i∈[ 0, 255 ]
Note : voir ImAnalyse pour des exemples d'histogrammes cumulés
22
Egalisation de l'histogramme
L'égalisation d'histogramme peut améliorer une image là où la correction de dynamique de l'histogramme est inefficace.
23
Egalisation de l'histogramme
Si on prend la même image avec des contrastes différents, l’égalisation d’histogramme donne le même résultat pour toutes les images.
Source : Gonzalez and Woods. Digital Image Processing. Prentice-Hall, 2002.
24
Egalisation (locale) de l'histogramme
Image originale Egalisation globale
Egalisation locale
L’égalisation locale de l’histogramme est faite en prenant une fenêtre de 7x7 autour de chaque pixel.
Source : Gonzalez and Woods. Digital Image Processing. Prentice-Hall, 2002.CVIPTools : Enhancement>Histograms>Local Equalization
25
Opérations sur les images (ET,OU)
Les opérations logiques fonctionnent aussi sur les images.
ET
OU
=
=
Source : Gonzalez and Woods. Digital Image Processing. Prentice-Hall, 2002.CVIPTools : Utilities>Arith/Logic>{AND,OR}
26
Opérations sur les images (ET,OU)
Source : Gonzalez and Woods. Digital Image Processing. Prentice-Hall, 2002.
27
Addition d’images
Si f et g sont deux images, on peut définir l’addition R pixel à pixel de ces deux images par :
R(x,y) = Min( f(x,y)+g(x,y) ; 255 )
L’addition d’images peut permettre De diminuer le bruit d’une vue dans une série
d’images D’augmenter la luminance en additionnant une
image avec elle-même
Source : Eric Favier. L'analyse et le traitement des images. ENISE.CVIPTools : Utilities>Arith/Logic>Add
28
Soustraction d’images
On peut définir la soustraction S pixel à pixel de deux images f et g par :
S(x,y) = Max( f(x,y)-g(x,y) ; 0 )
La soustraction d’images peut permettre
Détection de défauts Détection de mouvements
Source : Eric Favier. L'analyse et le traitement des images. ENISE.CVIPTools : Utilities>Arith/Logic>Substract
29
Multiplication d’images
La multiplication S d’une image f par un ratio (facteur) peut se définir par :S(x,y) = Max( f(x,y)*ratio ; 255)
La multiplication d’images peut permettre d’améliorer le contraste ou la luminosité
x1,5 = x1,2 =
Source : Eric Favier. L'analyse et le traitement des images. ENISE.CVIPTools : Utilities>Arith/Logic>Multiply
30
Opérations sur les images (+,-)
0.5*F(x,y) + 0.5*G(x,y)F(x,y)
G(x,y)
F(x,y) - G(x,y)
G(x,y) - F(x,y)
Source : www.nte.montaigne.u-bordeaux.fr/SuppCours/5314/Dai/TraitImage01-02.ppt
Lectures suggérées
● Introduction au Traitement d’Images (Lingrand), chapitre 4
● Digital Image Processing: An Algorithmic Introduction using Java (Burger & Burge) : chapitres 4 et 5
● Wikipédia : Histogramme, Brightness (luminance), Contrast, Lookup table, Color balance (amélioration du contraste), Egalisation d'histogramme