cours infographie t i 2010
TRANSCRIPT
15122010
1
IINFOGRAPHIENFOGRAPHIE ampampTTRAITEMENTRAITEMENT
NNUMEacuteRIQUEUMEacuteRIQUE DrsquoIDrsquoIMAGESMAGES
Dr Sami GAZZAH
ISITCOM Hammam Sousse
Sami Gazzah 2009 1
Plan du cours Plan du cours
Objectifs
Maicirctriser les concepts de base lieacutes agrave l‟imagerie numeacuterique 2D surordinateur
Deacutevelopper une meacutethodologie de traitement numeacuterique dimageset de manipulation d‟objets graphiques
Comprendre et appliquer les notions d‟infographie 2D et 3D dansle cadre du deacuteveloppement et de l‟utilisation d‟un logicielgraphique
9h35 ndash 12h35
rArrTheacuteorie (15 h)
rArr Travaux pratiques (6h)
rArr Projets Personnel (20h)
11 deacutecembre
Sami Gazzah 2009 2
Contenu du coursContenu du cours
1 Introduction traitement d‟image Versus Infographie
2 Transformations sur les images
3 Restauration d‟Images
4 Rehaussement d‟images
5 Segmentation d‟images
6 Introduction aux opeacuterateurs morphomatheacutematique
7Transformations geacuteomeacutetriques 2D
8 Geacuteneacuteration de segments de droite et de cercles en 2D
9 introduction au traitement dimages avec OpenGL
10 introduction au traitement dimages avec OpenCV3
Travaux pratiquesTravaux pratiques
Six travaux pratiques pour apprendre agrave manipuler et traiter des images Les travaux sont effectueacutes en langage MATLAB
TP1 Manipulation d‟images niveaux de gris et couleurs
TP2 Manipulation sur l‟analyse eacuteleacutementaire d‟image
(Hist)
TP2 Compression
TP3 Restauration d‟images par transformations
geacuteomeacutetriques
TP6 Filtrage deacutetection de contours lissage etc
Sami Gazzah 2009 4
Sami Gazzah 2009 5
Chapitre1
Traitement drsquoimage
Versus
Infographie
1 Traitement drsquoimage Vs Infographie 1 Traitement drsquoimage Vs Infographie 11 Traitement drsquoimage11 Traitement drsquoimage
Pour l‟ecirctre humain l‟image constitue l‟une des
principales sources drsquoinformations
Une scegravene contient une quantiteacute importante
drsquoinformations qu‟il est utile parfois de traiter
et drsquoanalyser dans le but de prendre des
deacutecisions
Sami Gazzah 2009 6
15122010
2
1950-1970 Traitement de lrsquoimage
L‟existence d‟images de mauvaises qualiteacutes (Rayons X OCR hellip) et
volumineuses a conduit les chercheurs agrave s‟inteacuteresser agrave
La restauration (corriger les deacutefauts lieacutes agrave lacquisition)
L‟ameacutelioration (rendre limage belle pour laffichage)
La compression (reacuteduire le volume de limage)
Sami Gazzah 2009 7
1 Traitement drsquoimage Vs Infographie 1 Traitement drsquoimage Vs Infographie 12 Historiquehellip12 Historiquehellip
1970-1980 Du traitement vers lrsquointerpreacutetation
L‟eacutevolution naturelle vers lextraction automatique dinformations a
conduit agrave l‟apparition de nouvelles notions telles que
minus L‟analyse d‟images en vue de l‟extraction automatique
d‟information d‟ougrave les thegravemes seuillage segmentation
extraction de contours morphologie matheacutematique (pour les
images binaires)
minus L‟interpreacutetation dimages et les systegravemes experts
Sami Gazzah 2009 8
1 Traitement drsquoimage Vs Infographie 1 Traitement drsquoimage Vs Infographie 12 Historiquehellip12 Historiquehellip
Sami Gazzah 2009 9
1980- La vision par ordinateur
minus De limage 2D aux modegraveles tri- dimensionnels
minus Analyse du mouvement
minusVision pour la robotique (mouvement 3D deacutetection
dobstacle trajectoire)
minus les bibliothegraveques numeacuteriques
minusTransmission (codage et reacuteseaux)
1 Traitement drsquoimage Vs Infographie 1 Traitement drsquoimage Vs Infographie 12 Historiquehellip12 Historiquehellip
les bibliothegraveques numeacuteriques les bibliothegraveques numeacuteriques Reconnaissance de Reconnaissance de
l‟eacutecriture OCRl‟eacutecriture OCR
Sami Gazzah 2009 10
bullTraitement automatique des chegraveques
bullTri- postale
Sami Gazzah 2009 11
Imagerie biologique
Imagerie biologique
Identification des cellules bacteacuteries virus
comptage des cellules
Sami Gazzah 2009 12
Imagerie meacutedicale
Imagerie meacutedicale
Aide au diagnostique
Reconstruction 3D des images Image de scintigraphie cardiaque
Reconstruction 3D
f6cilusq
15122010
3
Sami Gazzah 2009 13
Vision robotique
Vision des robots
Robots autonomes
Intervention en milieu contamineacute
Sonde d‟exploration
Robotique meacutedical
Assistance au geste meacutedical
Sami Gazzah 2009 14
Imagerie aeacuterienne et satellitaire
Analyse des ressources terrestres
Meacuteteacuteo
Cartographie
Astronomie
Sami Gazzah 2009 15
Biomeacutetrie
Reconnaissance d‟empreintes digitales
Reconnaissance de visage
Reconnaissance d‟iris
Reconnaissance du style d‟eacutecriture du scripteur
Sami Gazzah 2009 16
Videacuteosurveillance
bull Deacutetection de mouvements et
reconnaissance de comportement
Analyse de plaque d‟immatriculation
Deacutetection automatique d‟incidents
Sami Gazzah 2009 17
Infographie
Ensemble de techniques permettant de creacuteer et de manipuler
des images syntheacutetiques
Produit final image syntheacutetique
Informatique Graphismeamp
Sami Gazzah 2009 18
15122010
4
1 Traitement d‟image Vs Infographie1 Traitement d‟image Vs Infographie
Sami Gazzah 2009 19
descriptif
Modegravele
descriptif
Infographie
(Informatique+Graphisme)
Reconnaissance de formes
(vision)
Image
Traitements
drsquoimages
Sami Gazzah 2009 20
Parmi les capteurs on peut distinguer
les capteurs thermiques (thermopiles)
les films photographiques
les capteurs photoeacutelectriques (photodiodes CCD
CMOShellip)
Le signal obtenu est caracteacuteriseacute par
sa dimension 1D 2D ou 3D
sa nature
2 Acquisition des images (1)
Sami Gazzah 2009 21
La repreacutesentation informatique d‟une image est
neacutecessairement discregravete alors qu‟une image est de nature
continue
Certains capteurs effectuent une discreacutetisation
La transformation d‟un signal analogique 2D neacutecessite
Une discreacutetisation de l‟espace c‟est lrsquoeacutechantillonnage
Une discreacutetisation des couleurs c‟est la quantification
2 Acquisition des images (2)
Sami Gazzah 2009 22
2 Acquisition des images (3)
Sami Gazzah 2009 23
2 Acquisition des images (4)
Sami Gazzah 2009 24
Signal lumineux Capteur CCD Signal eacutelectrique
2 Acquisition des images (5)
15122010
5
Sami Gazzah 2009 25
Pour numeacuteriser des images deux opeacuterations
eacutechantillonnage
quantification
3 Repreacutesentation drsquoune image numeacuterique
Sami Gazzah 2009 26
3 Repreacutesentation drsquoune image numeacuterique
Sami Gazzah 2009 27
Valeurs du deacutetail de l‟image Lena
Lena et un deacutetail de lrsquoimage
3 Repreacutesentation drsquoune image numeacuterique
Sami Gazzah 2009 28
(1) Maillage (2) Quantification
pixel (picture element)
Discreacutetisation de l‟espace 2D on deacutecoupe l‟image en pixels
3 Repreacutesentation drsquoune image numeacuterique
Sami Gazzah 2009 29
Une reacutesolution trop faible peut causer des problegravemes d‟aliasing
Apparition d‟escaliers sur les contours obliques
3 Repreacutesentation drsquoune image numeacuterique
Sami Gazzah 2009 30
3 Repreacutesentation drsquoune image numeacuterique
15122010
6
Sami Gazzah 2009 31
255
255
255
255
255
80
80
80
50
40
255
255
70
255
20
255
255
60
40
0
255
255
255
255
255
Image en niveaux de gris et sa repreacutesentation matricielle
Discreacutetisation de l‟espace des couleurs ou niveaux de gris
Une quantification trop faible peut causer des problegravemes de faux contours
3 Repreacutesentation drsquoune image numeacuterique
Sami Gazzah 2009 32
Pavage en quinconce Pavage carreacute Pavage hexagonale
Pavage triangulaire
3 Repreacutesentation drsquoune image numeacuterique3 1 Pavage ou tesselation
A chaque eacutechantillonneur (sommet du maillage) on associe une
surface eacuteleacutementaire dite paveacute ou tesselle
Les pixels sont geacuteneacuteralement arrangeacutes sous forme rectangulaire dans
un tableau 2D hellip il peut exister d‟autres pavages ou tesselations
Le pavage hexagonale
Le pavage triangulaire ou carreacute
Le pavage rectangulaire en quinconce
Sami Gazzah 2009 33
Certains pavage sont motiveacutes par
leurs adeacutequation avec le systegraveme d‟acquisition exemple le pavage
quinconce correspond agrave certains systegravemes d‟acquisitions embarqueacutes dans
les satellites (satellite spot 5)
des relations geacuteomeacutetriques telles que le voisinage nombre des pixels
voisins connexes (4 6 8 32hellip)
3 1 Pavage ou tesselationhellip choixhellipmotivation
3 Repreacutesentation drsquoune image numeacuterique
8 voisins4 voisins 6 voisins
Sami Gaz 29 oct 2010 34Source httpwwweoportalorgdirectorypres_SPOT5html
systegravemes drsquoacquisitions du
satellite spot 5
Introduction du Super-Mode permet la
creacuteation d‟une image agrave 25 megravetres de
reacutesolution agrave partir de deux images agrave 5 megravetres
(acquises simultaneacutement avec un demi-pixel
de deacutecalage)
Sami Gazzah 2009 35
Pour un ordinateur une image rArr ensemble de pixels
Un pixel possegravede une valeur scalaire vecteur hellip
Ordre de grandeur
o si un pixel est codeacute sur 8 bits rArr 28=256 couleurs ou niveau de gris
o si helliphelliphelliphelliphellipsur 16 bits rArr 216=65 536 couleurshellipplus d‟espace
o helliphelliphelliphelliphelliphelliphelliphellip24 bits rArr 224=16 777 216 couleurshellipencore ++
3 Repreacutesentation drsquoune image numeacuterique3 2 Codage des pixels
Sami Gazzah 2009 36
3 Repreacutesentation drsquoune image numeacuterique3 3 Distance entre pixels
Diffeacuterents distances entre 2 points P(ij) et P(kl) peuvent ecirctre utiliseacutees
i
j
l
k
1 Distance euclidienne
+ Cette distance ne privilegravege
aucun axe
22 )()()()(( jliklkPjiP
15122010
7
Sami Gazzah 2009 37
3 Repreacutesentation drsquoune image numeacuterique3 3 Distance entre pixels
Diffeacuterents distances entre 2 points P(ij) et P(kl) peuvent ecirctre utiliseacutees
i
j
l
k2 Distance blocks
Cette distance est appeleacute eacutegalement
laquo Manhatten distance raquo
il faut contourner les blocs
d‟habitations pour relier deux points
Manhatten city NY Sami Gazzah 2009 38
3 Repreacutesentation drsquoune image numeacuterique3 3 Distance entre pixels
Diffeacuterents distances entre 2 points P(ij) et P(kl) peuvent ecirctre utiliseacutees
i
j
l
k
3 Distance tour d‟eacutechiquier
Sami Gazzah 2009 39 Sami Gazzah 2009 40
4 Formats drsquoimages
Une image vectorielle est repreacutesenteacutee par des formes geacuteomeacutetriques simples
Ligne point de deacutepart point d‟arriveacutee hellip
Triangle 3 sommets la couleur du contour la couleur inteacuterieure
(remplissage) hellip
Ex PAO (publication assisteacutee par ordinateur) DAO (dessin assisteacute par
ordinateur) etc
Une image matricielle est repreacutesenteacutee par des matrices de pixels Bitmap
(image en mode point)
Ex image en niveaux de gris ou couleurs de type photo GIF PCX BMP
JPEG PPM PGMhellip
4 1 Image vectorielle Vs Image matricielle
Sami Gazzah 2009 41
4 Formats drsquoimages4 1 Images vectorielles Vs Images matricielles
Images vectorielles Images matricielles
Avantages Inconveacutenients Avantages Inconveacutenients
Peu de place en
meacutemoire
Peut devenir gros
pour une image
complexe
Aucun calcul pour
l‟affichage
Peuvent occuper
beaucoup d‟espace
meacutemoire
Redimensionnement
sans perte
d‟informations
Beaucoup de calculs
pour l‟affichage
La complexiteacute de
l‟image n‟influe pas
sur sa taille
Aucun aliasing si on
manipule l‟objet
graphique
Sami Gazzah 2009 42
4 Formats drsquoimages4 2 Stockage des images
o Pour la meacutemorisation des images sur disque meacutemoire on stocke les informations
concernant les image dans un en-tecircte puis les donneacutees (valeurs de pixels)
o L‟en-tecircte contient la largeur et la hauteur de l‟image aussi on peut ajouter d‟autres
informations telles que le type de donneacutees l‟auteur la datehellip
o Pour certains formats l‟en-tecircte et les donneacutees sont stockeacutes dans 2 fichiers
diffeacuterents
o Les donneacutees sont souvent stockeacutees dans l‟ordre des pixels de gauche agrave droite et
de haut en bas
o Les anciens formats sont simples et tregraves facile agrave lire et agrave eacutecrire
bull PBM pour des images binaires
bull PGM pour des images en niveaux de gris
bull PPM pour des images couleurs
o Les formats les plus courants sont GIF PCX BMPTIFF et JPEG
15122010
8
Sami Gazzah 2009 43
4 Formats drsquoimages4 2 Stockage des images
421 format PBM (Portable Bit Map)
Nombre de colonnes=10
Nom
bre
de c
olon
nes
=10
P1 signifie qursquoil srsquoagit drsquoun format PBM et que les donneacutees sont stockeacutees en ASCII signifie qursquoil srsquoagit drsquoune ligne de commentaire
Sami Gazzah 200944
4 Formats drsquoimages4 2 Stockage des images
421 format PGM(Portable Gray Map)
P2 signifie qursquoil srsquoagit drsquoun format PGM et que les donneacutees sont stockeacutees en ASCII
Sami Gazzah 200945
4 Formats drsquoimages4 2 Stockage des images
421 format PPM(Portable Pixel Map)
P3 signifie qursquoil srsquoagit drsquoun format PPM et que les donneacutees sont stockeacutees en ASCII Les valeurs des pixels sont donneacutees pixel par pixel
Sami Gazzah 2009 46
Sami Gazzah 2009 47
5 Eleacutements de Colorimeacutetrie
Un prisme seacutepare la lumiegravere blanche en ses couleurs
Sami Gazzah 2009 48
6 Les systegravemes de repreacutesentation des couleurs
Kunt a deacutemontreacute qu‟en combinant trois longueurs drsquoondes particuliegraveres il est
possible de syntheacutetiser presque toutes les couleurs existantes Les trois
couleurs de base sont dites laquo couleurs primaires raquo Une couleur peut donc ecirctre
repreacutesenteacutee dans un espace agrave trois dimensions Il en existe plusieurs
- Systegraveme RGB (Red Green Blue)
- Systegraveme CMY (Cyan Magenta Yellow)
- Systegraveme XYZ
- Systegraveme HLS (Hue Magenta Saturation)
Image couleur et sa repreacutesentation matricielle
15122010
9
Sami Gazzah 2009 49
Images couleurs (24 bits)
Lrsquoespace couleur Rouge Vert Bleu (RGB)
Sami Gazzah 2009 50
Valeur R Valeur V Valeur BCouleur
correspondanteCommentaires
0 0 0 noir
0 0 255 bleu
0 255 0 vert
255 0 0 rouge
128 128 128
couleur
intermeacutediaire
correspondant agrave
un gris
255 255 255 blanc
Sami Gazzah ISITCom 200951
Exemple de deacutecomposition drsquoune image couleur en 3 plans de couleur
(a) image originale (b)canal rouge (c)canal vert (d)canal bleu
(b)(a)
(c) (d)
Sami Gazzah 2009 52
Lrsquoespace couleur Cyan Magenta et Jaune (GMJ)
bull les couleurs primaires CMJ sont ici les compleacutementaires des RVB
bull utiliseacute par certaines imprimantes couleurs agrave jet dencre
bull les diffeacuterentes couleurs sont obtenues par soustraction du blanc
Sami Gazzah 2009 53
Le principe de lespace HSV est de caracteacuteriser les couleurs de faccedilon plus
intuitive conformeacutement agrave la perception naturelle des couleurs en termes de
1 teinte (Hue) intuitivement cest le nom quon utilisera pour deacutesigner la couleur
vert mauve etc Ideacutealement associeacute agrave une longueur donde
2 saturation (Saturation)cest le taux de pureteacute de la couleur qui doit varier
entre la pureteacute maximale (couleur eacuteclatante) et lachromatisme (niveau de gris)
3 valeur (Value) cest la mesure de lintensiteacute lumineuse de la couleur qui doit
varier entre le noir absolu et le blanc
Images HSV
Composante valeur
Composante saturation
Composante teinte
Sami Gazzah 2009 54
Pour passer de la repreacutesentation initiale (RGB) agrave cette repreacutesentation on opegravere
de la maniegravere suivante
15122010
10
Sami Gazzah 2009 55
Quelques caracteacuteristiques drsquoimages numeacuteriques
La reacutesolution dune image = nombre de pixels par uniteacute de longueur de la
structure agrave numeacuteriser (dpi (dots per inches) ou ppp (pixel par pouce)
La reacutesolution du format de limage =nombre de pixels qui compose limage en
hauteur et en largeur (512 pixels par 512 pixels par exemple)
La taille des donneacutees pour une image (en bits) = Nlignes x Ncolonnes x B
La profondeur de bits = nombre de bits neacutecessaire pour repreacutesenter un pixel dans
l‟image numeacuterique
La dynamique dune image= leacutetendu de la gamme de couleurs 2nbre de bitspixels ndash 1
Le poids d‟une image numeacuterique est l‟espace meacutemoire qu‟elle occupe sur un
support de stockage numeacuterique = nombre de bits par pixel x nombre total de pixels
Sami Gazzah 2009 56
bullune image 200200 pixels en niveaux du gris fait un poids de
200200=40000 octets
bullimage de 200200 pixels en vraies couleurs (16 millions) (24 bits)
2002003= 120000 octets (117 Ko)
bull image de 200200 pixels en fausses couleurs (256 couleurs) (8 bits)
2002001= 40000 octets (39 Ko)
Taille des limages en pixels
Sami Gazzah 2009 57
Exercice drsquoapplication
Soit une image carreacutee au format PPM(ASCII) de 160 Ko
Quelles sont approximativement les dimensions de cette image si
on neacuteglige la taille de lrsquoen-tecircte
Quelle serait la taille du fichier si cette image eacutetait stockeacutee en
binaire
Remarques Le format PPM (Portable Pixel Map) concerne les
images couleurs Chaque pixel a pour valeur un triplet (RGB) et
chaque couleur est exprimeacutee par un caractegravere et un espace
Sami Gazzah 2009 58
Formats de fichiers dimages
Une image est un tableau de pixels
Une image est stockeacutee soit dans un fichier sous la forme de texte soit dans la
meacutemoire de lordinateur sous la forme dun vecteur
Sami Gazzah 2009 59
Les opeacuterations de bases concernant une image sont la lecture (fichier vers
meacutemoire) et leacutecriture (meacutemoire vers fichier) Les informations
neacutecessaires agrave la manipulation dune image sont
nombre de lignes
nombre de colonnes
format des pixels (bit niveaux de gris niveaux de couleurs)
compression eacuteventuelle
Il existe une multitude de formats de fichiers permettant de stocker ces
informations ainsi que le tableau des valeurs En particulier
Les formats simples fichiers textes comportant un entecircte contenant
les dimensions de limage et le format des pixels Exemples les formats
PNM (portable anymap) PBM (portable bitmap) PGM (prtrable
grayscalemap) PPM (portable pixmap) Les fichiers correspondants sont
constitueacutes des eacuteleacutements suivants Sami Gazzah 2009 60
1 Un nombre magique pour identifier les type du fichier P1 ou P4
pour PBM P2 ou P5 pour PGM et P3 ou P6 pour PPM
2 Un caractegravere despacement (blanc TABs Cs LFs)
3 La largeur de limage (valeur deacutecimale codeacutee en ASCII) suivie dun
caractegravere despacement la longueur de limage (valeur deacutecimale
ASCII) suivie dun caractegravere despacement
4 Uniquement pour PGM et PPM lintensiteacute maximum (valeur deacutecimale
comprise entre 0 et 255 codeacutee en ASCII) suivie dun caractegravere
despacement
5 Largeur x hauteur nombres Ces nombres sont soit des valeurs
deacutecimales codeacutees en ASCII et seacutepareacutees par des espacements dans le
cas des formats P1 P2 P3 soit directement les valeurs binaires sur 1
ou 2 octets dans le cas des formats P4 P5 P6 Dans ce dernier cas il
ny pas de caractegraveres despacement entre les valeurs
15122010
11
Sami Gazzah 2009 61
Chapitre 2
Transformations sur les images
Sami Gazzah 2009 62
Les transformations peuvent ecirctre classeacutees de la maniegravere suivante
bullTransformations ponctuelles
bullTransformations de voisinage
bullTransformations spectrales
bullTransformations morphologiques
Au cours du processus de traitement et drsquoanalyse lrsquoimage subit une seacuterie
de transformations
Introduction
Image sourceTransformationTransformation
TTImage transformeacutee
Sami Gazzah 2009 63
1 Transformations ponctuelles
A partir dune image source la nouvelle valeur du pixel deacutepend uniquement de
son ancienne valeur
Exemple seuillage ajustement luminositeacutecontraste opeacuterations algeacutebriques
opeacuterations logiques et arithmeacutetiques manip dhistogramme
1 Opeacuterations logiques et arithmeacutetiques
Les images opeacuterandes
doivent ecirctre de mecircme taille
peuvent ecirctre des images constantes
Exemples
addition soustraction
ET logique OU logique
Problegravemes
deacutebordements de [0 255]
normalisation Sami Gazzah 2009 64
Images en niveaux de gris ETOU logique bit agrave bit entre les 8 bits
codant les valeurs des pixels
Images binaires ETOU logique entre les pixels
Sami Gazzah 2009 65
Les opeacuterations logiques
bullET I(xy)=I1(xy) ET I2(xy) intersection logique
bullOU I(xy) = I1(xy) OU I2(xy) union logique
bullNOT I(xy) = NOT(I1(xy)
opeacuterations arithmeacutetiques
bullAddition I(xy)=I1(xy)+I2(xy)
bullSoustraction I(xy)=I1(xy)-I2(xy)
bullMultiplication
bullDivision par une constantehellip
Sami Gazzah 2009 66
Les opeacuterations logiques
15122010
12
Sami Gazzah 2009 67
Application
Masquage
Sami Gazzah 2009 68
Les Opeacuterations arithmeacutetiques
Addition dimages
Principe I(xy)=I1(xy)+I2(xy) pour tout pixel de coordonneacutees (xy)
Strateacutegies si deacutepassement de capaciteacute
bullDeacutecalage des valeurs dans [0 127] avant addition (perte du bit de poids faible)
bullSaturation I(xy) = min ( I1(xy)+I2(xy) 255)
bullPreacute-calcul des valeurs finales (theacuteoriques) minimale et maximale
puis recadrage de la dynamique
Utilisations principales
Augmentation de la luminance dune image (par addition dune constante ou
dune image avec elle-mecircme) et diminution du bruit dans une seacuterie dimages
))()((max
))()((min
21)(
max
21)(
min
yxIyxIi
yxIyxIi
Iyx
Iyx
))()((255
)( 21
minmax
yxIyxIii
yxI
Sami Gazzah 2009 69
Les Opeacuterations arithmeacutetiques
Soustraction dimages
Principe I(xy)=I1(xy)-I2(xy) pour tout pixel de coordonneacutees (xy)
Strateacutegies si deacutepassement de capaciteacute
bullSaturation I(xy) = max ( I1(xy) - I2(xy) 0)
bullDiffeacuterence absolue I(xy) = | I1(xy) - I2(xy) |
Utilisations principales
bullDiminution de la luminance dune image
bullDeacutetection de changements entre images
bulldeacutefauts (par comparaison avec une image de reacutefeacuterence)
bullmouvements (par comparaison avec une autre image de la seacutequence)
Sami Gazzah 2009 70
Rim Romdhaneet al AVSS10 rd the 7th IEEE International Conference on
Advanced Video and Signal-Based Surveillance Boston USA 2010
Sami Gazzah 2009 71
Addition et soustraction de deux images
Sami Gazzah 2009 72
Si on dispose de limage en niveau de gris et de limage binaire suivante
15122010
13
Sami Gazzah 2009 73
2 Identiteacute neacutegatif et Seuillage
Sami Gazzah 200974
2 Les opeacuterations geacuteomeacutetriques
Opeacuterations geacuteomeacutetriques sur une image en niveaux de gris
Sami Gazzah 2009 75
Une transformation de voisinage est telle que la nouvelle valeur
drsquoun pixel tient compte des pixels appartenant au voisinage du
pixel consideacutereacute
Le voisinage peut avoir une taille plus ou moins grande (3x3 5x5
7x7hellip) et il peut avoir une forme reacuteguliegravere (carreacute rectangle
hexagonehellip) ou bien une forme quelconque
3 Transformations de voisinage
Sami Gazzah 2009 76
Exemple de transformation de voisinage le
produit de convolution
dans le cas continu le produit de convolution de f par g est
deacutefini par
Dans le cas discret il est geacuteneacuteralement deacutefini sur un voisinage il
est donneacute par
Sami Gazzah 2009 77
Si on applique ceci agrave une image I1 de dimensions
finies et agrave moyenne de convolution K (K
Kernel=noyau) de dimension 3 x 3 les pixels de
lrsquoimage I1 obtenue par convolution de I2 par K ont
pour valeur
Sami Gazzah 2009 78
Nouvelle
image
Nouvelle valeur
de pixel21
1 11
1 111 11
Noyau
Nouvelle valeur de pixel =
9
22 2719
9 19
51 21 14Image
originale
111
111
111
9
1h
15122010
14
Sami Gazzah 2009 79
4-Transformations spectrales (1)
Transformeacutee de Fourier 2D (TF 2D)
- La TF est
Dans la cas 1D (Rappel)
Dans la cas 2D
- La TF inverse
- La TF est
- La TF inverse
Sami Gazzah 2009 80
4-Transformations spectrales (2)
Exemple des transformations spectrales transformeacutee de Fourier
Soit f(xy) deacutefinie par une matrice d‟eacutechantillons reacuteguliegraverement espaceacutes
N le nombre de lignes M nombre de colonnes
- La TF est deacutefinie par
- La TF inverse est deacutefinie par
Sami Gazzah 2009 81 Sami Gazzah 2009 82
Compression RLE (Run Length Encoding)
2 2 2 2 128 128 128 120 120 80 96 96 94 94 94 95 97 97 97 97
4 2 3 128 2 120 1 80 2 96 3 94 1 95 4 97
Utile quand il y a des reacutepeacutetitions dans la chaicircne agrave encoder
Exemple Formats BMP TIFF PCX (Paintbrush)
Sami Gazzah 2009 83
Chapitre 3
RESTAURATION DrsquoIMAGES
Sami Gazzah 2009 84
L‟acquisition s‟accompagne toujours d‟une distorsiondeacutegradation
Il existe diffeacuterentes sources de deacutegradation (bruit) d‟une image
bruit lieacute au contexte de lacquisition Bougeacute mauvaises conditions
d‟eacuteclairagehellip
bruit lieacute au capteur Capteur de mauvaises qualiteacutes mauvaise mise
au point etchellip
bruit lieacute agrave leacutechantillonnage Une mauvaise freacutequence
d‟eacutechantillonnage peut introduire dans l‟image des points blancs ou
noirs connus souvent sous l‟appellation laquo sel et poivre raquo
bruit lieacute agrave la nature de la scegravene Preacutesence de fumeacutee de nuage
etchellip
Il faut corriger l‟image par un proceacutedeacute algorithmique
15122010
15
Sami Gazzah 2009 85
Restauration des Images monochromatiques et des images
couleurs
Au deacutebut de l‟imagerie numeacuterique les algorithmes deacuteveloppeacutes eacutetaient
destineacutes aux images en niveaux de gris Avec les progregraves techniques et le
deacuteveloppement des outils informatiques le traitement des images
couleurs est devenu possible
bull Approche marginale
Sami Gazzah 2009 86
Approche vectorielle
Dans lapproche vectorielle le vecteur couleur est consideacutereacute globalement
et le traitement doit ecirctre alors reacuteellement vectoriel Il ny a pas dans ce cas
une eacutetape de fusion ou de seacuteparation explicite entre les diffeacuterentes
composantes couleur de lrsquoimage Dans ce cas la correacutelation entre les
diffeacuterentes composantes peut ecirctre prise en compte ce qui aboutit
geacuteneacuteralement agrave des reacutesultats meilleurs que ceux du traitement marginal
Sami Gazzah 2009 87
Rappel
Sami Gazzah 2009 88
Sami Gazzah 2009 89
Nouvelle
image
Nouvelle valeur
de pixel21
1 11
1 111 11
Noyau
Nouvelle valeur de pixel =
9
22 2719
9 19
51 21 14Image
originale
Sami Gazzah 2009 90
15122010
16
Sami Gazzah 2009 91
Lissage spatial tout en remplacent la valeur du pixel courant par la moyenne de
tous les pixels inclus dans un voisinage centreacute en ce point
Sami Gazzah 2009 92
Sami Gazzah 2009 93 Sami Gazzah 2009 94
En traitement d‟image les tailles des fenecirctres utiliseacutees pour le
filtrage meacutedian sont geacuteneacuteralement impaires 3 3 5 5 7 7
exemple
fenecirctre de 5 pixels en croix
Pour les fenecirctres de taille paire ( 2 K valeurs ) apregraves
ordonnancement croissant des valeurs prendre la moyenne des 2
valeurs centrales
valeur de sortie( Kiegraveme valeur ordonneacutee + (K+1)iegraveme valeur ordonneacutee )
2=
Sami Gazzah 2009 95 Sami Gazzah 2009 96
15122010
17
Sami Gazzah 2009 97
Image laquo Piegraveces raquo de reacutefeacuterence bruiteacutee ( bruit de type impulsionnel ) puis filtreacutee
avec un filtre moyenneur (33) et un filtre meacutedian (33)
Image de reacutefeacuterence Image bruiteacutee
Bruit
Le filtrage meacutedian est plus adapteacute que le filtrage
lineacuteaire pour reacuteduire le bruit impulsionnel
Observation
Comparaison filtre meacutedian et filtre moyenneur
Sami Gazzah 2009 99 Sami Gazzah 2009 100
Sami Gazzah 2009 101 Sami Gazzah 2009 102
Chapitre 4
REHAUSSEMENT DrsquoIMAGES
15122010
18
Sami Gazzah 2009 103
Introduction
Le preacutetraitement d‟image est l‟ensemble des opeacuterations effectueacutees sur
une image soit pour l‟ameacuteliorer soit pour la restaurer
Le preacutetraitement d‟une image vise soit agrave renforcer la ressemblance des
pixels soit au contraire agrave accentuer les diffeacuterences de pixels d‟une mecircme
reacutegion
Accroitre la seacuteparabiliteacute des reacutegions composant une scegravene revient agrave
augmenter les contrastes vu
On applique le rehaussement des images afin de faciliter l‟interpreacutetation
visuelle et la compreacutehension des images
Pour comprendre ce type de rehaussement il faut comprendre le concept
d‟histogrammeSami Gazzah 2009 104
Deacutefinition de lrsquohistogramme drsquoune image
L‟histogramme est un outil qui permet de comptabiliser le nombre
d‟occurrences de chacune des valeurs dans une image en niveaux de gris
Dans une image couleur il est neacutecessaire d‟utiliser plusieurs
histogramme sur chacune des composantes du systegraveme de repreacutesentation
de la couleur
Soit h l‟histogramme de l‟image I de dimension (w x h) h[i] repreacutesente
le nombre d‟occurrence de chaque niveau de quantification i La probabiliteacute
estimeacutee du niveau i dans une image I est
hw
ihip
][)(
Image de 256 256 pixels
codeacutes chacun sur 8 bitsPopulation de pixels pour chaque
niveaux de gris [0 255]
Pour chaque niveau de gris on compte le nombre de pixels s‟y reacutefeacuterant
Pour chaque niveau on trace le graphe en bacircton du nombre de pixels
(possibiliteacute de regrouper les niveaux proches en une seule classe)
Exemple drsquohistogramme pour une image en niveaux
de gris
0 50 100 150 200 250
0
200
400
600
800
1000
cameraman
Image laquo A raquo en
niveaux de gris
Matrice des valeurs de luminance
des pixels de lrsquoimage laquo A raquo
Histogramme
de lrsquoimage
laquo A raquo
2 2 2 2 2 2 2 2
2 0 0 0 0 0 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 0 0 0 0 0 2
2 2 2 2 2 2 2 2
Les niveaux 0 1 et 2 sont respectivement repreacutesenteacutes par 24 12 et 28 pixels
repreacutesentation de cette population de pixels sur lhistogramme
Limage laquo A raquo comporte 3 niveaux de gris diffeacuterents 0 1 et 2
Compter le nombre de pixels pour chaque niveau de gris agrave lrsquoaide de la
matrice des valeurs de luminance
Exemple simple de calcul drsquohistogramme pour une image
Image laquo A raquoValeurs de luminance de
laquo A raquo
Histogramme cumuleacute de
laquo A raquo
2 2 2 2 2 2 2 2
2 0 0 0 0 0 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 0 0 0 0 0 2
2 2 2 2 2 2 2 2
Calcul dun histogramme particulier faisant appel aux cumuls des niveaux de gris
Histogramme cumuleacute
Utile pour certains traitements dimage tels que lrsquoeacutegalisation
dhistogramme ( ameacutelioration de contraste)
Chaque bacircton cumule le nombre de pixels du niveaux de gris concerneacute et des
niveaux de gris infeacuterieurs les niveaux 0 1 2 sont donc repreacutesenteacutes
respectivement par 24 36 et 64 pixels
Histogramme cumuleacute drsquoune image L‟histogramme ne donne pas L‟histogramme ne donne pas
d‟informations sur la reacutepartitiond‟informations sur la reacutepartition
Trois images diffeacuterentes ayant un mecircme histogramme
15122010
19
Modification de lrsquohistogrammeModification de lrsquohistogramme
On appelle dynamique des niveaux de gris lintervalle [nminnmax] de
niveaux de gris dans lequel sont compris tous les pixels de limage
Le but de la modification dhistogramme modifier chaque niveau de
gris pour accroicirctre le contraste On modeacutelise cette transformation par
leacutequation Irsquo(ij) = g(I(ij)) ougrave g est la fonction de contraste
Chaque transformation sera deacutecrite par une courbe repreacutesentant la
relation entre un niveau de gris de limage de deacutepart (abscisse) et le
niveau qui lui correspond dans limage ameacutelioreacutee (ordonneacutee)
Sami Gazzah 2009 109
Masquage de zones Masquage de zones Extraction d‟une Extraction d‟une
fenecirctre d‟intensiteacutefenecirctre d‟intensiteacute ((slicingslicing intensiteacute)intensiteacute)
Cette transformation consiste agrave remplacer un intervalle de niveaux
de gris par du blanc (nmax) par du noir (nmin) ou par une valeur
intermeacutediaire du niveau de gris
Sami Gazzah 2009 110
Courbes repreacutesentant de gauche agrave droite lextraction dune fenecirctre dintensiteacute et le masquage blanc et noir de lintervalle [ab]
n-1
n-1
0 n-1
n-1
0a ab b n-1
n-1
0 a b
Sami Gazzah 2009 111
Exemples de Masquage de zonesInversion de la dynamiqueInversion de la dynamique
But produire le neacutegatif d‟une image
donneacutee
Sami Gazzah 2009 112
Sami Gazzah 2009 113
Etirement drsquohistogramme
Sami Gazzah 2009 114
Etirement drsquohistogramme
Augmentation du contraste par eacutetirement d‟histogramme
15122010
20
Sami Gazzah 2009 115
Eacutegalisation dhistogramme
But ameacutelioration du contraste
Distribution uniforme des niveaux de gris
Elle se deacutefinit agrave laide de lhistogramme cumuleacute de limage hc(n)
qui repreacutesente le nombre de pixels de limage dont le niveau de
gris est infeacuterieur ou eacutegal agrave n
Deacutefinition de la transformation deacutegalisation dhistogramme soit
I le niveau de gris dun pixel de deacutepart le niveau de gris de limage
darriveacutee I‟ sera
Sami Gazzah 2009 116
Sami Gazzah 2009 117
Effet de lrsquoeacutegalisation drsquohistogramme
Sami Gazzah 2009 118
Augmentation du contraste exemples et comparaison
Original Eacutetirement d‟histogramme Eacutegalisation
Le rehaussement du contraste est plus marqueacute avec l‟eacutegalisation
d‟histogramme autorisant la deacutetection de structures situeacutees dans
l‟ombre
Sami Gazzah 2009 119
Chapitre 5
SEGMENTATION DrsquoIMAGES
Sami Gazzah 2009 120
Une image est geacuteneacuteralement composeacutee d‟objets L‟analyse de cette
image neacutecessite l‟identification de ces objets
La segmentation dimages est lun des problegravemes phares du traitement
dimages Elle consiste agrave partitionner limages en un ensemble de
reacutegions connexes Linteacuterecirct de ces reacutegions est de pouvoir ecirctre
manipuleacutees ensuite via des traitements de haut niveau pour extraire
des caracteacuteristiques de forme de position de taille etc
Introduction
15122010
21
Sami Gazzah 2009 121 Sami Gazzah 2009 122
Meacutethodes statistiquesSegmentation par Histogrammes
Sami Gazzah 2009 123
Meacutethodes statistiquesSeacutelection Reacutecursive sur Histogrammes
Ohlander Price et Reddy (1978)
Sami Gazzah 2009 124
Segmentation par approche contourIntroduction
Le contour est deacutefini comme le lieu des points connexes qui
possegravedent une forte transition d‟intensiteacute lumineuse ou de texture Le
traitement qui vise agrave l‟obtenir est appeleacute extraction de contour on
parle aussi de deacutetection de contour
Le processus d‟extraction de contour peut ecirctre deacutecomposeacute en
plusieurs eacutetapes distinctes que nous allons les deacutetailler comme suit
- La mise en eacutevidence des contours
- L‟extraction des contours
- La fermeture des contours
Sami Gazzah 2009 125
Segmentation par approche contourLa mise en eacutevidence des contours
Elle s‟obtient par une diffeacuterentiation de l‟image et elle peut
s‟appliquer agrave des images binaires ou non le but de la deacutetection de
contours est d‟obtenir dans un premier temps une image binaire ougrave
chaque contour est d‟eacutepaisseur 1 et sans discontinuiteacute
rehausser le contour
suivre le contour
les points du contour correspondent au maximum en valeur absolue
de la deacuteriveacutee primaire de l‟image on obtient alors un gradient ou au
passage par zeacutero de la deacuteriveacutee seconde de l‟image on obtient alors
un laplacien
Sami Gazzah 2009 126
Segmentation par approche contourLa mise en eacutevidence des contours
La deacutetection de contours peut ecirctre reacutealiseacutee gracircce agrave des filtres
dont les coefficients ont eacuteteacute soigneusement choisis Nous
aborderons dans cette preacutesentation 3 filtres les filtres de
Prewitt Roberts et Sobel
Ce jeu de filtres (Prewitt Roberts et Sobel) est constitueacute d‟une
paire de filtres lineacuteaires qui deacutetectent le contours dans deux
directions orthogonales (vertical et horizontal)
15122010
22
Sami Gazzah 2009 127
Segmentation par approche contourFiltre de Perwitt
Les filtres de Perwitt sont les suivants
Filtre horizontal
Filtre vertical
111
000
111
h
101
101
101
v
Sami Gazzah 2009 128
Segmentation par approche contourFiltre de Perwitt
A partir d‟une image I on calcule Gh et Gv images
correspondant au filtrage de I par h et v Ces images
contiennent les contours horizontaux et verticaux
Si l‟on souhaite obtenir une image de contour unique ne tenant
pas compte de l‟orientation on calcule
Orientation du contour
Image binairehellipchoisir un seuil de deacutetection
22
vh GGG
)(vh
GGarctg
Sami Gazzah 2009 129
Segmentation par approche contourFiltre de Sobel
Les filtres de Sobel sont les suivants
Filtre horizontal
Filtre vertical
121
000
121
h
101
202
101
v
Sami Gazzah 2009 130
Segmentation par approche contourFiltre de Sobel
Sami Gazzah 2009 131
Segmentation par approche contourFiltre de Sobel
Sami Gazzah 2009 132
Segmentation par approche contourFiltre de Roberts
Les filtres de Roberts sont les suivants
Filtre diagonal
Filtre anti-diagonal
10
01h
01
10v
15122010
23
Sami Gazzah 2009 133
Segmentation par approche contourFiltre de Kirsch
Ce deacutetecteur utilise huit noyaux de convolution lui permettant de deacutetecter
des contours en fonction de huit directions agrave
15
335
305
335
1
d 15
333
305
355
2
d 15
333
303
555
3
d
15
333
503
553
4
d 15
533
503
533
5
d 15
555
503
333
6
d
15
555
303
333
7
d 15
355
305
333
8
d
Sami Gazzah 2009 134
Contours et Laplacien
Il s‟agit de calculer la deacuteriveacutee seconde de l‟image
Le Laplacien est tregraves sensible au bruit pour limiter l‟effet du bruit le
Laplacien est approximeacute par un masque qui effectue en mecircme temps
une opeacuteration de filtrage par une Gaussienne qui repreacutesente l‟eacutetape
de lissage de l‟image puis vient l‟application du laplacien Les masques
du Laplacien Gaussien sont preacutesenteacutes ci-apregraves
Segmentation par approche contour
Sami Gazzah 2009 135
Contours et Laplacien
Le contour est ensuite deacutetermineacute par la deacutetection des
passages par zeacutero du laplacien de l‟image
88888888888888
010
141
010
1h
111
101
111
2h
121
242
121
3h
Sami Gazzah 2009 136
Contours et Laplacien
Sami Gazzah 2009 137
Seuillage
Les filtres preacuteceacutedents nous fournissent des images des sauts ou
diffeacuterences d‟intensiteacute
Le seuillage permet d‟eacuteliminer des points en lesquels la diffeacuterence
d‟intensiteacute est tregraves faible
Le seuillage peut ecirctre pousser afin d‟obtenir une image binaire (TOR)
Le seuillage dans sa forme le plus simple ne tient pas compte de la
topologie et peut conserver un point bruiteacute isoleacute ou eacuteliminer une portion
de contour d‟intensiteacute faible
Sami Gazzah 2009 138
Seuillage par hysteacutereacutesis
c‟est une fonction agrave deux seuils un seuil bas et un seuil haut
Tout point dont le module de contour est au-dessus du seuil-haut est un
point de contour
Tout point dont le module de contour est au-dessous du seuil-bas n‟est
pas un point de contour
Les points de module entre le seuil-bas et le seuil-haut sont des points
de contour s‟il possegravede un point de contour dans leur voisinage
15122010
24
Sami Gazzah 2009 139
Seuillage par hysteacutereacutesis
seuil haut
Seuil bas
point sur contour
point hors contour
Seuillage par hysteacuterisais les points de lrsquoimage de contour de valeur
supeacuterieur au seuil haut sont des points de contours A partir de ces points de
contours le voisinage de la direction du contour sont examineacutes srsquoils sont de
valeur supeacuterieure au seuil bas ils sont ajouteacutes au points de contoursSami Gazzah 2009 140
Chapitre 6
Introduction aux
opeacuterateurs
morphomatheacutematique
Sami Gazzah 2009 141
1 Introduction
Les opeacuterateurs morphomatheacutematique (=Morphologie Matheacutematique)
permettent d‟ameacuteliorer les images de contours et apporter d‟autres
fonctionnaliteacutes
Ils ont eacuteteacute initialement appliqueacute sur des images NampB (Matheron et
Sarra1965) ensuite eacutetendus agrave des images en nivaux de gris par Doupherty
(1978)
Pour les appliquer sur des images couleurs on peut les appliquer
seacutepareacutement agrave chaque composante couleur et combiner les reacutesultats
Sami Gazzah 2009 142
Diffeacuterentes opeacuterations
eacuterosion dilatation
ouverture fermeture
Squelettisation
hellip
1 Introduction
Sami Gazzah 2009 143
1 Introduction
Dilatation
Ajouter un pixel sur les pourtours de la forme
boucher les trous
Erosion
Enlever un pixel sur les pourtours de la forme
les objets de taille infeacuterieure agrave celle de leacuteleacutement
structurant vont disparaicirctre
agrandit les trous
Sami Gazzah 2009144
1I Rappels sur les ensembles
L‟eacutegaliteacute
L‟inclusion
Lbdquointersection
L‟union
La diffeacuterence
La diffeacuterence symeacutetrique
La compleacutementariteacute E eacutetant un ensemble
servant de reacutefeacuterentielle
Dans ce qui suit les lettres majuscules deacutesignent des ensembles et les lettres
minuscules deacutesignent des eacuteleacutements appartenant aux ensembles
Sur les ensembles on deacutefinit les opeacuterations suivantes
15122010
25
Sami Gazzah 2009145
1I Rappels sur les ensembles
Sami Gazzah 2009146
1I Rappels sur les ensembles
Lois de De Morgan
Reacuteflexion La reacuteflexion d‟un ensemble A est deacutefinie par
Un ensemble symeacutetrique veacuterifiant ndashA=A C‟est le cas des cercles et des carreacute par
exemple
ccc YXYX )(
ccc YXYX )(
AaaA
A -A B -B
Sami Gazzah 2009147
1I Rappels sur les ensembles
Addition de Minkowski l‟addition d‟un eacuteleacutement x agrave un ensemble A par x est
deacutefinie par
Cette notion n‟est pas uniquement ensembliste elle nous oblige agrave deacutefinir un point
de reacutefeacuterence
On en deacuteduit l‟addition d‟un ensemble B agrave un ensemble A c‟est le reacutesultat de
l‟addition de chaque eacuteleacutement de B agrave A
L‟addition de Minkowski est commutative Elle est eacutegalement appeleacute dilatation
AaxaxAB
A
A
x
AxBxAaBaBbbABAC )()()(
le translateacute de X par b
Sami Gazzah 2009148
1I Rappels sur les ensembles
Eleacutement structurant les opeacuterations morphomatheacutematiques sont deacutefinis agrave
partir des ensemble B discrets appeleacute eacuteleacutement structurant Ces eacuteleacutement
permettent de deacutefinir le type de voisinage souhaiteacute
Addition de Minkowski d‟un ensemble A et d‟un ensemble B
BA
Sami Gazzah 2009149
1II Dilatation
Le reacutesultat de dilatation de lrsquoensemble A par lrsquoensemble B
est lrsquoaddition de Minkowski crsquoest lrsquoensemble des points tel
que lorsque B est centreacute sur un de ces points il y a une
intersection non vide entre A et B
Pour des images en niveaux de gris on obtient lrsquoimage
dilateacutee de la forme A en remplaccedilant tout pixel par le
maximum des intensiteacutes des voisins selon la forme B
Sami Gazzah 2009 150
1II Dilatation1 Image NampB
Soit k l‟eacuteleacutement structurant de taille (2k+1) x (2k+1) L‟algorithme de
dilatation est le suivant on parcourt tous les pixels de l‟image sauf les
bord de l‟image d‟eacutepaisseur k pour chaque pixel du fond rencontreacute s‟il
possegravede un voisin au sens de l‟eacuteleacutement structurant qui appartient agrave un
objet il prend le couleur de l‟objet si non il n‟est pas modifieacute
15122010
26
la dilatation (noteacutee ) drsquoune image monochrome laquo f raquo par un
eacuteleacutement structurant laquo B raquo est deacutefinie en terme de sous-graphe
bull f B = T [ Y ] = Supl l tel que (m n l) Y
bullY = U ( f ) U ( B )
En consideacuterant un eacuteleacutement structurant plan de valeur nulle sur son
support
( f B ) (P) = Max valeurs des pixels du voisinage du pixel P
1II Dilatation1 Image niveaux de gris
max
55 68 77 90 91 95 115 151 210
( f B ) (P) = 210
n
115 91 77
95 68 90
55 151 210
exemple
m
Image de reacutefeacuterence
Eacuteleacutement structurant
(8-connexiteacute)
liste ordonneacutee des valeurs du voisinage
- - -
-
-
-
-
-
1II Dilatation1 Image niveaux de gris
Exemples de filtrages morphologiques(eacuteleacutement structurant 33 complet)
Image de reacutefeacuterenceImage dilateacutee
morphologiquement
La dilatation en niveaux de gris accroicirct la luminance des
pixels entoureacutes de voisins plus lumineux
Observation
Sami Gazzah 2009154
VI Erosion
L‟eacuterosion est deacutefinie par
On deacutefinit la soustraction de Minkowski par
On a eacutequivalence entre eacuterosion et soustraction de Minkowski si B est
symeacutetrique (si B=-B)
D‟un point de vue binaire l‟eacuterode de A par B correspond agrave l‟ensemble
des points tels que si B est centre sur ce points B est entiegraverement inclus
dans A
AxBxBbbABAC )()(
)()( BbbABAC
Sami Gazzah 2009 155
VI Erosion1 Image NampB
on parcourt tous les pixels de l‟image sauf les bord de l‟image
d‟eacutepaisseur k pour chaque pixel du fond rencontreacute s‟il possegravede un
voisin au sens de l‟eacuteleacutement structurant qui appartient agrave un objet il
prend le couleur du fond si non il n‟est pas modifieacute
VI Eacuterosion drsquoune image en niveaux de gris
Lrsquoeacuterosion (noteacutee Ө ) drsquoune image monochrome laquo f raquo par un eacuteleacutement
structurant laquo B raquo est deacutefinie en terme de sous-graphe
bull f Ө B = T [ Y ] = Supl l tel que (m n l) Y
bullY = U ( f ) Ө U ( B )
Classiquement on considegravere un eacuteleacutement structurant plan de
valeur nulle sur son support
( f Ө B ) (P) = Min valeurs des pixels du voisinage du pixel P
15122010
27
VI Eacuterosion drsquoune image en niveaux de gris
min
68 90 91 95 151
( f Ө B ) (P) = 68
n
115 91 77
95 68 90
55 151 210
exemple
m
Image de reacutefeacuterence
ӨӨ
Eacuteleacutement structurant
(4-connexiteacute)
liste ordonneacutee des valeurs du voisinage
-
-
-
-
Exemples de filtrages morphologiques(eacuteleacutement structurant 33 complet)
Image eacuterodeacutee
Lrsquoeacuterosion en niveaux de gris reacuteduit la luminance des pixels
qui sont entoureacutes de voisins de moindre intensiteacute
Image de reacutefeacuterence
Observation
Sami Gazzah 2009 159
Eacuteleacutement structurant (a)
(4-connexiteacute)
-
-
-
-
Eacuteleacutement structurant (b)
(8-connexiteacute)
- - -
-
-
-
-
-
Exercice 1 Sur la mecircme image de deacutepart on reacutealise deux opeacuterations
de dilatations avec deux eacuteleacutements structurant diffeacuterents
Dilatation avec (a) Dilatation avec (b)
image de deacutepart
cas a L‟eacuteleacutement structurant est agrave 4-connexiteacute Chaque pixel
du support qui est eacutegal agrave la valeur 1 ou qui a l‟un de ses 4
voisins agrave la valeur 1 est mis agrave la valeur 1 apregraves filtrage
cas b L‟eacuteleacutement structurant est agrave 8-connexiteacute Chaque pixel
du support qui est eacutegal agrave la valeur 1 ou qui a l‟un de ses 8
voisins agrave la valeur 1 est mis agrave la valeur 1 apregraves filtrage
Dans les deux cas on observe qu‟une dilatation eacutelimine les
trous isoleacutes dans les objets et dilate le contour des objets en
tenant compte de l‟eacuteleacutement structurant
Sami Gazzah 2009 160
Exercice 1
Sami Gazzah 2009 161
Eacuteleacutement structurant (a)
(4-connexiteacute)
-
-
-
-
Eacuteleacutement structurant (b)
(8-connexiteacute)
- - -
-
-
-
-
-
Exercice 2 Sur la mecircme image de deacutepart on reacutealise deux opeacuterations
d‟eacuterosions avec deux eacuteleacutements structurant diffeacuterents
Erosion avec (a) Erosion avec (b)
image de deacutepart
cas a L‟eacuteleacutement structurant est agrave 4-connexiteacute (origine agrave 4 voisins)
Chaque pixel du support qui a la valeur 0 ou qui a l‟un de ses 4
voisins agrave la valeur 0 est mis agrave la valeur 0 apregraves filtrage
cas b L‟eacuteleacutement structurant est agrave 8-connexiteacute Chaque pixel du
support qui a la valeur 0 ou qui a l‟un de ses 8 voisins agrave la valeur 0
est mis agrave la valeur 0 apregraves filtrage
Dans les deux cas on observe qu‟une eacuterosion eacutelimine les pixels
isoleacutes sur le fond et eacuterode le contour des objets
Sami Gazzah 2009 162
Exercice 2
15122010
28
ConclusionsConclusions
Erosion
les objets relieacutes entre eux vont ecirctre seacutepareacutes
Une eacuterosion de taille n peut se reacutealiser en reacutepeacutetant une
eacuterosion n fois avec un eacuteleacutement structurant de taille 1 ou en
appliquant une seule eacuterosion avec un eacuteleacutement structurant
de taille n
Dilatation
des objets sont situeacutes agrave une distance moins grande que la taille
de leacuteleacutement structurant il vont fusionner
Sami Gazzah 2009 163 Sami Gazzah 2009 164
Sami Gazzah 2009 165
Elimine pixels isoleacutes sans inteacuterecirct
L‟ouverture (opening) consiste agrave une eacuterosion suivi d‟une dilatation
Les petites structures et deacutetail fins disparaissent et ne sont pas recreacuteeacutees
lors de la dilation Une opeacuteration d‟ouverture est ainsi inteacuteressante pour
eacuteliminer les petits morceaux de contours bruiteacutes dans une image de
contours
V Ouverture et fermeture1 Ouverture
BBABAC )(
Sami Gazzah 2009 166
V Ouverture et fermetureII Fermeture
La fermeture (closing) consiste agrave une dilatation suivi d‟une eacuterosion
Les structures proches fusionnent lors de la dilation mais seules les
fusions ponctuelles disparaissent agrave nouveau lors de l‟eacuterosion Une
opeacuteration de fermeture est ainsi inteacuteressante pour boucher les petits
trous
Sami Gazzah 2009 167 Sami Gazzah 2009 168
Exercice 3 Sur l‟image de deacutepart on reacutealise une opeacuteration de
fermeture binaire par l‟eacuteleacutement structurant 4-connexiteacute Conclusions
Eacuteleacutement structurant
(4-connexiteacute)
-
-
-
-Fermeture = dilatation puis eacuterosion
Image de deacutepart Image dilateacutee Image dilateacutee puis eacuterodeacutee
Combler les trous
Reacutetablir les jonctions
tout en preacuteservant la taille
15122010
29
Sami Gazzah 2009 169
Exercice 4 Sur l‟image de deacutepart on reacutealise une opeacuteration
d‟ouverture binaire par l‟eacuteleacutement structurant 4-connexiteacute Conclusions
Eacuteleacutement structurant
(4-connexiteacute)
-
-
-
-Ouverture = eacuterosion puis dilatation
Image de deacutepart Image eacuterodeacutee Image eacuterodeacutee puis dilateacutee
Supprimer les fausses alarmes
Seacuteparer les objets accoleacutes
tout en preacuteservant la tailleSami Gazzah 2009 170
Appliquer les filtres suivants sur limage donneacutee Quelles sont les valeurs choisies
aux bords de limage et quelles sont les modifications visuelles
a) filtre moyenneur M3acute3(19)
b) eacuterosion
c) dilatation
d) meacutedian
e) fermeture
f) ouverture
Exercice 5
Sami Gazzah 2009 171
IV Amincissement et Squelettisation
La squelette (skeleton) d‟une forme est l‟axe meacutedian L‟inteacuterecirct de cette
opeacuteration est dans
La reconnaissance de caractegraveres
Deacutetection des reacuteseaux routiers
La planification de trajectoirehellip
Une meacutethode couramment employeacutee est une amincissement reacutepeacuteteacute
jusqu‟agrave le convergence (n‟apporte aucune modification)
Sami Gazzah 2009 172
IV Amincissement et Squelettisation1 Opeacuteration Tout Ou Rien laquoHit or Missraquo
Cette transformation est deacutefinie par
leacuteleacutement structurant eacutetendu est centreacute sur chaque pixel de limage
comme pour les opeacuterations ensemblistes
la question poseacutee est est ce que le contenu de limage est identique au
contenu de leacuteleacutement structurant
si la reacuteponse est oui le pixel reacutesultant vaut 1 si non il vaut 0
Une application permet de deacutetecter des configurations locales
particuliegraveres dans une image
plusieurs masques peuvent ecirctre utiliseacutes indeacutependamment les images
reacutesultat eacutetant ensuite combineacutees par une opeacuteration ou
)()( cc BABABA
Bc-
est le compleacutementaire
local de B
Sami Gazzah 2009 173
IV Amincissement et Squelettisation1 Opeacuteration laquoHit or Missraquo
Exemple dopeacuteration Hit or Miss deacutetection des coinsSami Gazzah 2009 174
IV Amincissement et Squelettisation1 Amincissement (thinning)
bull La transformation TOR nous permet eacutegalement de deacutefinir
l‟amincissement
bullL‟amincissement consiste agrave soustraire limage reacutesultat dun hit or miss de
limage initiale
bull des amincissements successifs conduisent au squelettisation
)()( BAAAthin
15122010
30
Sami Gazzah 2009 175
IV Amincissement et Squelettisation1I Squelettisation
Appliquer des amincissements successifs puis s‟arrecircter lorsque l‟amincissement
n‟apporte plus de modification C‟est une eacuterosion particuliegravere ougrave les pixels sont
supprimeacutes agrave la condition quils ne provoquent pas la seacuteparation dune reacutegion en
deux
Sami Gazzah 2009 176
IV Amincissement et Squelettisation1I Squelettisation
Sami Gazzah 2009 177
Chapitre 7
Transformations
geacuteomeacutetriques 2D
Sami Gazzah 2009 178
I Introduction
On entend par transformation 2D l‟ensemble des transformations du
plan pouvant ecirctre appliqueacutees aux pixels de l‟image sans consideacuteration
de l‟intensiteacute
Par exemples
Reacuteduction agrandissement
Deacuteformation d‟image
Recalage d‟une photo scanneacutee
Recaler des images que l‟on veut comparer
Mosaiumlque d‟images
Sami Gazzah 2009 179
I Transformations euclidiennes
Elles preacuteservent les distances et les angles
Elles sont les compositions de translations et de rotations
1) Translation
Ougrave Tx et Ty sont les deacuteplacements en x et en y de la translation
y
x
Tyy
Txx
Sami Gazzah 2009 180
2) Rotation
15122010
31
Sami Gazzah 2009 181 Sami Gazzah 2009 182
3) Remarques (1)
Sami Gazzah 2009 183
3) Remarques (2)
Sami Gazzah 2009 184
II Homotheacuteties
Changement deacutechelle par rapport agrave lorigine (scaling zoom)
Ougrave Sx et Sy sont les facteurs dagrandissement ( gt1) ou de
reacuteduction ( lt1) en x et en y
ySy
xSx
y
x
Sami Gazzah 2009 185
II Homotheacuteties
Sami Gazzah 2009 186
II Homotheacuteties
15122010
32
Sami Gazzah 2009 187
III Reacuteflexions
Reacuteflexions par rapport aux axes (flip miroir)
Sami Gazzah 2009 188
IV Cisaillement
Cisaillement (glissement shearing) on eacutetire suivant un ou plusieurs axes
Sami Gazzah 2009 189
Transformations inverses
Sami Gazzah 2009 190
Repreacutesentation Matricielle
IV Autres (reacuteflexions miroirs et flips)
Sami Gazzah 2009 191
Interpolation Directe
Sami Gazzah 2009 192
oDifficile de distribuer le niveau de gris sur les pixels voisins
oOn n‟a pas la certitude que tous les pixels de l‟image
transformeacutee recevront une valeur =gt ldquotrousrdquo
15122010
33
Interpolation Inverse
Sami Gazzah 2009 193
o Interpolation de la valeur du pixel agrave partir des voisins plus
facile
oAucun ldquotrourdquo car on parcourt tous les pixels de l‟image
transformeacutee Sami Gazzah 2009 194
V Objet vectoriel - Objet bitmap
Objet vectoriel
Essentiellement on transforme
les sommets (ou points de
controcircle) et on retracehellip
Objet ldquobitmaprdquo
On doit calculer la nouvelle
position de chaque pixel De plus on
doit geacuteneacuteralement interpoler les
niveaux de gris (couleurs)hellip
Sami Gazzah 2009 195
IV Assignation des niveaux de gris
Neacutecessaire car la position d‟un pixel transformeacute n‟est pas entiegraverehellip
Plusieurs meacutethodes
Interpolation au plus proche voisin
Interpolation bilineacuteaire
Interpolation bicubique
Autres types d‟interpolation
Sami Gazzah 2009 196
IV Assignation des niveaux de gris
Linterpolation de limage cest ce qui arrive lorsquon redimensionne
une image numeacuterique ou quon la redimensionne avec une distorsion
quon change la perspective etc
Exemple 1
Image originale (sans interpolation)
Image agrandie et donc interpoleacutee
Perte de netteteacute due agrave linterpolation
Sami Gazzah 2009
197
IV Assignation des niveaux de gris
Exemple 2 recadrage dimage
Nous allons agrandir cette image agrave 180
Il va donc nous manquer des informations lagrave ougrave lon va creacuteer des
pixels pour agrandir limage
Reacutesultat sans interpolation le logiciel agrandit simplement les pixels
Reacutesultat avec interpolation le logiciel calcule une couleur intermeacutediaire
pour chaque nouveau pixel
Sami Gazzah 2009
198
IV Assignation des niveaux de gris
Image originale
Interpolation au plus
proche voisin
Interpolation
bilineacuteaireInterpolation
bicubique
15122010
34
Sami Gazzah 2009 199
IIV Interpolation au plus proche voisin
Cest lalgorithme le plus rapide agrave calculer
Prend en compte dans le calcul que le pixel le plus proche du point
agrave interpoler
Consiste tout simplement agrave agrandir chaque pixel
Exemple Interpolation du plus proche voisin par copie des pixels
Copie de chaque colonne et de chaque rang
23 20
25 28
23 23
23 23
20 20
20 20
25 25
25 25
28 28
28 28
Sami Gazzah 2009 200
IIV Interpolation bilineacuteaire
Fonction bilineacuteaire de 4 pixels voisins ( en 2 D )
i-1 i i+1
i-1 i-12 i i+12 i+1 i+32
yi=xiYi+12=(xi+xi+1)2
Problegraveme pour le dernier point
Extrapolation lineacuteaire de
2 xn-xn-1
Principe 1D
attribuer agrave chaque point cible une
combinaison lineacuteaire des quatre
points sources les plus proches par
la transformation inverse
Sami Gazzah 2009 201
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 202
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 203 Sami Gazzah 2009 204
IIV Interpolation bilineacuteaire
15122010
35
Sami Gazzah 2009 205
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 206
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 207
IIV Interpolation bilineacuteaire exemple
Sami Gazzah 2009 208
IIV Interpolation bicubique
Sami Gazzah 2009 209
exemple
Sami Gazzah 2009 210
Chapitre 8
Geacuteneacuteration de segments de
droite et de cercles en 2D
15122010
36
Sami Gazzah 2009 211
Infographie 2D besoin de dessiner des primitives de
base (segments cercles hellip)
Espace discreacutetiseacute (pixels) il faut trouver un moyen pour
afficher des segments ou des cercles
I Segments 2D cercles1 Introduction
Comment trouver les pixels agrave allumer pour approximer au mieux une
droite ou un cercle
Algorithme rapide et preacutecisSami Gazzah 2009 212
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=ax+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ya
Sami Gazzah 2009 213
Rappelhellip
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=mx+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ym
Sami Gazzah 2009 214
Exemple
Sami Gazzah 2009 215
Agrave partir des coordonneacutees des 2 extreacutemiteacutes d‟un segmenthellip
Un algorithme simple
Boucle de x1 agrave x2 dx=1
ALLUME (x Arrondir(y))
Avec x2gtx1
Arrondir(y) = Arrondir(ax+b)
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Sami Gazzah 2009 216
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Choix de lrsquoaxehellip
Peu efficace
bullagrave chaque iteacuteration 1 multiplication (ou division) + 1 addition
+ 1 arrondi
15122010
37
Sami Gazzah 2009 217
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
DDA (Digital Differential Analyzer)
y et m doivent ecirctre des reacuteelsSami Gazzah 2009 218
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Calcul en entier (donc plus rapide)
Baseacute sur le choix entre deux points discrets deacutependant de leur
distance respective avec le point reacuteel ideacuteal
On simplifie le problegraveme en traitant drsquoabord le traceacute drsquoun segment
dans le 1er octant m infeacuterieur agrave1 et positif (0ltmlt 1)
Facilement geacuteneacuteralisable aux autres octants
Sami Gazzah 2009 219
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Traceacute d‟un segment dans le premier octant mlt1
On part d‟un point (xi yi) allumeacute
Sami Gazzah 2009 220
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
On ne calcule pas reacuteellement les distances rArr on veacuterifie si la diffeacuterence
entre les deux distances est positive ou neacutegative
Le signe de la longueur (d1-d2) deacutetermine s‟il faut allumer le pixel L ou H
L
H
Sami Gazzah 2009 221
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Comme m=ΔyΔx on multiplie cette diffeacuterence par Δx pour eacuteviter la
division
Mais que vaut p1
Sami Gazzah 2009 222
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
15122010
38
Sami Gazzah 2009 223
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Pour eacuteviter de calculer cette diffeacuterence pour chaque point on cherche
une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
Sami Gazzah 2009 224
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009 225
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009
Exercice
Tracer le segment de droite
pi xi yi
2 0 0
-6 1 1
6 2 1
-2 3 2
10 4 2
2 5 3
-6 6 4
6 7 4
-2 8 5
10 9 5
2 10 6
6
10
y
x
Sami Gazzah 2009 227
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
Sami Gazzah 2009 228
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
hellip interchanger les points hellip
Si |Δx| lt | Δy| on interchange le rocircle de x et y
15122010
39
Sami Gazzah 2009 229
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (1)
Sami Gazzah 2009 230
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (2)
Sami Gazzah 2009 231
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (3)
Sami Gazzah 2009 232
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Toujours baseacute sur le choix entre deux
points discrets deacutependant de leur
distance respective avec le point reacuteel
On travaille dans le 2e octant agrave partir
de (0r) ainsi pour un point (xi yi) le
prochain point sera
(xi+1 yi) ou (xi+1 yi-1)
Sami Gazzah 2009 233
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On calcule le prochain y et les diffeacuterences respectives avec les points
discrets de la faccedilon suivante
Le signe de pi nous dira si nous devons choisir le point lateacuteral ou le diagonal
Sami Gazzah 2009 234
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Encore une fois pour eacuteviter de calculer cette diffeacuterence pour chaque point on
cherche une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
15122010
40
Sami Gazzah 2009 235
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On considegravere 2 cas
Valeur initiale
Sami Gazzah 2009 236
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Sami Gazzah 2009 237
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Exemple centre = (00) et r = 3
Sami Gazzah 2009 238
Livres
Diane Lingrand Introduction au Traitement d‟Images Paris Editions Vuibert 2e
eacutedition 2008
Steven k Feiner James D Foley John F Hughes Richard l Phillips Andries
Vanam Introduction agrave l‟infographie Paris Editions Vuibert 2000
William K Pratt Digital Image Processing Willy-Inter-sciences 4th edition 2007
Eacuteric Incerti Compression dimage ndash Algorithmes et standards Vuibert 2003
Gilles Burel Introduction au traitement dimages ndash Simulation sous Matlab
Hermegraves 2001
Sites web
Cours de C Rougier (U Montreacuteal)
httpwww-etudiroumontrealca~rougiercift2730courshtml (cf chapitre 3)
Page wikipeacutedia sur JPEG (en anglais plus complegravete que celle en franccedilais)
httpenwikipediaorgwikiJPEG
Cours de P Courtellemont (Campus numeacuterique Espdon)
httppersouniv-lrfrpcourtelespadonsite_web
Applet de deacutemo par C G Jennings
httpcgjenningscatoyboxhjpegindexhtml
Cours de D Marshall (U Cardiff)
httpwwwcscfacukDaveMultimediaPDF
Reacutefeacuterences
Sami Gazzah 2009 239
Chapitre 9
introduction au
traitement
dimages avec OpenGL
Sami Gazzah 2009 240
OpenGL est une librairie graphique Elle a eacuteteacute creacutee par Silicon
Graphics et beacuteneacuteficie sur ces machines de lacceacuteleacuteration mateacuterielle
Elle est constitueacute d‟environ 200 fonctions graphiques
OpenGL est une bibliothegraveque de fonctions
Les fonctions sont de bas niveaux
La version actuelle est l‟ laquo OpenGL 41 raquo (deacutecembre 2010)
Principale caracteacuteristique indeacutependant du mateacuteriel et du systegraveme
d‟exploitation
Une impleacutementation libre de droits dOpenGL tregraves performante a eacuteteacute
eacutecrite par Brian Paul httpwwwmesa3dorg Et tout son code source
est accessible
Preacutesentation geacuteneacuterale
15122010
41
Sami Gazzah 2009 241
OpenGL propose des fonctions de bas niveaux
Primitives geacuteomeacutetriques points segments polygones
Les fonctions de haut niveaux sont deacuteveloppeacutees par l‟utilisateur ou
importeacutees par la librairie en amont d‟OpenGL
Primitives geacuteomeacutetriques complexes Sphegravere splines etc
Toutes les commandes et fonctions utilisent le preacutefixe gl
Exemple glColor2f()
Sami Gazzah 2009 242
Les Bibliothegraveques co-existant avec OpenGL
GLU OpenGL Utility Library contient les routines de bas niveau pour
geacuterer les matrices de transformation et de projection la facettisation des
polygones et le rendu de surface Les bibliothegraveques dextension du
systegraveme de fenecirctres permettent lutilisation du rendu OpenGL Il sagit de
GLX pour X Windows (fonctions ayant pour preacutefixe glX) et de WGL
pour Microsoft Windows (fonctions ayant pour preacutefixe wgl)
GLUT OpenGL Utility Toolkit est une boite agrave outils indeacutependante du
systegraveme de fenecirctrage eacutecrite par Mark
Kilgard pour simplifier la tacircche dutiliser des systegravemes diffeacuterents (fonctions
ayant pour preacutefixe glut)
Sami Gazzah 2009 243
Les primitives geacuteomeacutetriques d rsquoOpenGL
Les primitives sont deacutecrites par un bloc d‟instructions deacutelimiteacute par glBegin et glEnd
Ce bloc contient geacuteneacuteralement une liste de vertex Exemple
glBegin(GL_LINE_LOOP)
glVertex2f(-05 -05)
glVertex2f(05 -05)
glVertex2f(05 05)
glVertex2f(-05 05)
glEnd()
D‟autres attributs peuvent ecirctre speacutecifieacutes en chaque sommet
couleur normale coordonneacutee de texture etcSami Gazzah 2009 244
OpenGL est une machine agrave eacutetats
En modifiant les variables d‟eacutetats on peut changer le style de rendu
Sami Gazzah 2009 245
Exemple Honda Hippo (3dRendercom)
Placage de textures
bullL‟apparence et le toucher ( feel ) d‟une surface
bullUne image utiliseacutee pour deacutefinir les caracteacuteristiques d‟une surface
bullUne image multi-dimensionnelle qui est plaqueacutee sur un espace multi-
dimensionnel
Sami Gazzah 2009 246
15122010
42
Sami Gazzah 2009 247
Reacutefeacuterences openGL
Sami Gazzah 2009 248
Chapitre 10
introduction au
traitement
dimages avec OpenCV
Sami Gazzah 2009 249
Preacutesentation geacuteneacuterale
Quest-ce
Open Source Computer Vision Library
Bibliothegraveque open source de traitement des images numeacuteriques
Projet initieacute par Intel (en 1999)
Teacuteleacutechargeable sur httpsourceforgenetprojectsopencvlibrary
Fortement orienteacutee temps reacuteel
eacutecrite en C et C++
optimiseacutee pour les processeurs multi-cœurs
Multi-plateformes disponible pour Linux Windows et Mac OS X
Que contient-elle
Des fonctionnaliteacutes (structures et routines gt350 algos) de base et
avanceacutees pour bacirctir rapidement des applications autour de la vision par
ordinateur
Exemples dutilisation traitements de bas niveau (filtrage ) deacutetection
de visages reconnaissance et suivi dobjets en mouvement Sami Gazzah 2009 250
Fonctionnaliteacutes
Lectureeacutecriture dimages statiques et de seacutequences videacuteo
APIs de bas et moyen niveaux
Traitement des images binaires
Manipulations dimage (eacutechantillonnage (sampling) reacutegion dinteacuterecirct (ROI)
redimensionnement (resizing) rotation deacuteformation (warping) )
Deacutetection de contours de lignes de coins (edge detection)
Traitements multi-eacutechelles (multiscale processing)
Transformeacutees (Fourier cosinus discregravete )
Modules de haut niveau
Deacutetection reconnaissance et suivi (tracking) de visages
Flot optique (estimation du mouvement) (optical flow)
Calibrage (calibration) de la cameacutera
Mise en correspondance steacutereacuteoscopique (stereo matching)
IA et apprentissage par ordinateur (machine learning)
3D mise en correspondance (registration)
Sami Gazzah 2009 251
Modules principaux
CxCore
Types de base pour manip dimages (ex struct image point isin cxtypesh)
Structures dynamiques (listes files graphes arbres) et persistantes (LE)
Manipulations de matrices meacutethodes de lalgegravebre lineacuteaire et statistiques
Dessin en surimpression (overlay) (ex eacutetiquetage)
Cv
Traitement dimage calibrage cameacutera
Geacuteomeacutetrie algorithmique (triangulation )
Cvaux
Reconnaissance de visage
Code expeacuterimental et obsolegravete
Autres (dans otherlibs)
HighGUI ES videacuteos curseurs fenecirctrage
ML classification regroupement (clustering)Sami Gazzah 2009 252
OpenCV premiers programmesBibliothegraveque OpenCV
15122010
43
Sami Gazzah 2009 253
Livre
G Bradski amp A Kaehler laquo Learning OpenCV raquo OReilly Press (2008)
codes sources httpexamplesoreillycom9780596516130
Ressources en ligne
Reacutefeacuterence complegravete httpopencvwillowgaragecomdocumentation
Wiki httpopencvwillowgaragecomwikiFullOpenCVWiki
bullPreacutesentation teacuteleacutechargement installation
bullavec CodeBlocks httpopencvwillowgaragecomwikiCodeBlocks
bullDeacutebuter avec OpenCV FAQ
Tutoriels
httpnchcdlsourceforgenetsourceforgeopencvlibraryippocvpdf
httpdaslmemdrexeledu~noahKuntzopenCVTut1html agrave Tut11html
httpwwwcognoticscomopencvservo_2007_series
Tutoriel sur la vision utilisant OpenCV (en franccedilais)
httpwwwsiteduzerocomtutoriel-3-8631-vision-par-ordinateurhtml
Reacutefeacuterences openCV
15122010
2
1950-1970 Traitement de lrsquoimage
L‟existence d‟images de mauvaises qualiteacutes (Rayons X OCR hellip) et
volumineuses a conduit les chercheurs agrave s‟inteacuteresser agrave
La restauration (corriger les deacutefauts lieacutes agrave lacquisition)
L‟ameacutelioration (rendre limage belle pour laffichage)
La compression (reacuteduire le volume de limage)
Sami Gazzah 2009 7
1 Traitement drsquoimage Vs Infographie 1 Traitement drsquoimage Vs Infographie 12 Historiquehellip12 Historiquehellip
1970-1980 Du traitement vers lrsquointerpreacutetation
L‟eacutevolution naturelle vers lextraction automatique dinformations a
conduit agrave l‟apparition de nouvelles notions telles que
minus L‟analyse d‟images en vue de l‟extraction automatique
d‟information d‟ougrave les thegravemes seuillage segmentation
extraction de contours morphologie matheacutematique (pour les
images binaires)
minus L‟interpreacutetation dimages et les systegravemes experts
Sami Gazzah 2009 8
1 Traitement drsquoimage Vs Infographie 1 Traitement drsquoimage Vs Infographie 12 Historiquehellip12 Historiquehellip
Sami Gazzah 2009 9
1980- La vision par ordinateur
minus De limage 2D aux modegraveles tri- dimensionnels
minus Analyse du mouvement
minusVision pour la robotique (mouvement 3D deacutetection
dobstacle trajectoire)
minus les bibliothegraveques numeacuteriques
minusTransmission (codage et reacuteseaux)
1 Traitement drsquoimage Vs Infographie 1 Traitement drsquoimage Vs Infographie 12 Historiquehellip12 Historiquehellip
les bibliothegraveques numeacuteriques les bibliothegraveques numeacuteriques Reconnaissance de Reconnaissance de
l‟eacutecriture OCRl‟eacutecriture OCR
Sami Gazzah 2009 10
bullTraitement automatique des chegraveques
bullTri- postale
Sami Gazzah 2009 11
Imagerie biologique
Imagerie biologique
Identification des cellules bacteacuteries virus
comptage des cellules
Sami Gazzah 2009 12
Imagerie meacutedicale
Imagerie meacutedicale
Aide au diagnostique
Reconstruction 3D des images Image de scintigraphie cardiaque
Reconstruction 3D
f6cilusq
15122010
3
Sami Gazzah 2009 13
Vision robotique
Vision des robots
Robots autonomes
Intervention en milieu contamineacute
Sonde d‟exploration
Robotique meacutedical
Assistance au geste meacutedical
Sami Gazzah 2009 14
Imagerie aeacuterienne et satellitaire
Analyse des ressources terrestres
Meacuteteacuteo
Cartographie
Astronomie
Sami Gazzah 2009 15
Biomeacutetrie
Reconnaissance d‟empreintes digitales
Reconnaissance de visage
Reconnaissance d‟iris
Reconnaissance du style d‟eacutecriture du scripteur
Sami Gazzah 2009 16
Videacuteosurveillance
bull Deacutetection de mouvements et
reconnaissance de comportement
Analyse de plaque d‟immatriculation
Deacutetection automatique d‟incidents
Sami Gazzah 2009 17
Infographie
Ensemble de techniques permettant de creacuteer et de manipuler
des images syntheacutetiques
Produit final image syntheacutetique
Informatique Graphismeamp
Sami Gazzah 2009 18
15122010
4
1 Traitement d‟image Vs Infographie1 Traitement d‟image Vs Infographie
Sami Gazzah 2009 19
descriptif
Modegravele
descriptif
Infographie
(Informatique+Graphisme)
Reconnaissance de formes
(vision)
Image
Traitements
drsquoimages
Sami Gazzah 2009 20
Parmi les capteurs on peut distinguer
les capteurs thermiques (thermopiles)
les films photographiques
les capteurs photoeacutelectriques (photodiodes CCD
CMOShellip)
Le signal obtenu est caracteacuteriseacute par
sa dimension 1D 2D ou 3D
sa nature
2 Acquisition des images (1)
Sami Gazzah 2009 21
La repreacutesentation informatique d‟une image est
neacutecessairement discregravete alors qu‟une image est de nature
continue
Certains capteurs effectuent une discreacutetisation
La transformation d‟un signal analogique 2D neacutecessite
Une discreacutetisation de l‟espace c‟est lrsquoeacutechantillonnage
Une discreacutetisation des couleurs c‟est la quantification
2 Acquisition des images (2)
Sami Gazzah 2009 22
2 Acquisition des images (3)
Sami Gazzah 2009 23
2 Acquisition des images (4)
Sami Gazzah 2009 24
Signal lumineux Capteur CCD Signal eacutelectrique
2 Acquisition des images (5)
15122010
5
Sami Gazzah 2009 25
Pour numeacuteriser des images deux opeacuterations
eacutechantillonnage
quantification
3 Repreacutesentation drsquoune image numeacuterique
Sami Gazzah 2009 26
3 Repreacutesentation drsquoune image numeacuterique
Sami Gazzah 2009 27
Valeurs du deacutetail de l‟image Lena
Lena et un deacutetail de lrsquoimage
3 Repreacutesentation drsquoune image numeacuterique
Sami Gazzah 2009 28
(1) Maillage (2) Quantification
pixel (picture element)
Discreacutetisation de l‟espace 2D on deacutecoupe l‟image en pixels
3 Repreacutesentation drsquoune image numeacuterique
Sami Gazzah 2009 29
Une reacutesolution trop faible peut causer des problegravemes d‟aliasing
Apparition d‟escaliers sur les contours obliques
3 Repreacutesentation drsquoune image numeacuterique
Sami Gazzah 2009 30
3 Repreacutesentation drsquoune image numeacuterique
15122010
6
Sami Gazzah 2009 31
255
255
255
255
255
80
80
80
50
40
255
255
70
255
20
255
255
60
40
0
255
255
255
255
255
Image en niveaux de gris et sa repreacutesentation matricielle
Discreacutetisation de l‟espace des couleurs ou niveaux de gris
Une quantification trop faible peut causer des problegravemes de faux contours
3 Repreacutesentation drsquoune image numeacuterique
Sami Gazzah 2009 32
Pavage en quinconce Pavage carreacute Pavage hexagonale
Pavage triangulaire
3 Repreacutesentation drsquoune image numeacuterique3 1 Pavage ou tesselation
A chaque eacutechantillonneur (sommet du maillage) on associe une
surface eacuteleacutementaire dite paveacute ou tesselle
Les pixels sont geacuteneacuteralement arrangeacutes sous forme rectangulaire dans
un tableau 2D hellip il peut exister d‟autres pavages ou tesselations
Le pavage hexagonale
Le pavage triangulaire ou carreacute
Le pavage rectangulaire en quinconce
Sami Gazzah 2009 33
Certains pavage sont motiveacutes par
leurs adeacutequation avec le systegraveme d‟acquisition exemple le pavage
quinconce correspond agrave certains systegravemes d‟acquisitions embarqueacutes dans
les satellites (satellite spot 5)
des relations geacuteomeacutetriques telles que le voisinage nombre des pixels
voisins connexes (4 6 8 32hellip)
3 1 Pavage ou tesselationhellip choixhellipmotivation
3 Repreacutesentation drsquoune image numeacuterique
8 voisins4 voisins 6 voisins
Sami Gaz 29 oct 2010 34Source httpwwweoportalorgdirectorypres_SPOT5html
systegravemes drsquoacquisitions du
satellite spot 5
Introduction du Super-Mode permet la
creacuteation d‟une image agrave 25 megravetres de
reacutesolution agrave partir de deux images agrave 5 megravetres
(acquises simultaneacutement avec un demi-pixel
de deacutecalage)
Sami Gazzah 2009 35
Pour un ordinateur une image rArr ensemble de pixels
Un pixel possegravede une valeur scalaire vecteur hellip
Ordre de grandeur
o si un pixel est codeacute sur 8 bits rArr 28=256 couleurs ou niveau de gris
o si helliphelliphelliphelliphellipsur 16 bits rArr 216=65 536 couleurshellipplus d‟espace
o helliphelliphelliphelliphelliphelliphelliphellip24 bits rArr 224=16 777 216 couleurshellipencore ++
3 Repreacutesentation drsquoune image numeacuterique3 2 Codage des pixels
Sami Gazzah 2009 36
3 Repreacutesentation drsquoune image numeacuterique3 3 Distance entre pixels
Diffeacuterents distances entre 2 points P(ij) et P(kl) peuvent ecirctre utiliseacutees
i
j
l
k
1 Distance euclidienne
+ Cette distance ne privilegravege
aucun axe
22 )()()()(( jliklkPjiP
15122010
7
Sami Gazzah 2009 37
3 Repreacutesentation drsquoune image numeacuterique3 3 Distance entre pixels
Diffeacuterents distances entre 2 points P(ij) et P(kl) peuvent ecirctre utiliseacutees
i
j
l
k2 Distance blocks
Cette distance est appeleacute eacutegalement
laquo Manhatten distance raquo
il faut contourner les blocs
d‟habitations pour relier deux points
Manhatten city NY Sami Gazzah 2009 38
3 Repreacutesentation drsquoune image numeacuterique3 3 Distance entre pixels
Diffeacuterents distances entre 2 points P(ij) et P(kl) peuvent ecirctre utiliseacutees
i
j
l
k
3 Distance tour d‟eacutechiquier
Sami Gazzah 2009 39 Sami Gazzah 2009 40
4 Formats drsquoimages
Une image vectorielle est repreacutesenteacutee par des formes geacuteomeacutetriques simples
Ligne point de deacutepart point d‟arriveacutee hellip
Triangle 3 sommets la couleur du contour la couleur inteacuterieure
(remplissage) hellip
Ex PAO (publication assisteacutee par ordinateur) DAO (dessin assisteacute par
ordinateur) etc
Une image matricielle est repreacutesenteacutee par des matrices de pixels Bitmap
(image en mode point)
Ex image en niveaux de gris ou couleurs de type photo GIF PCX BMP
JPEG PPM PGMhellip
4 1 Image vectorielle Vs Image matricielle
Sami Gazzah 2009 41
4 Formats drsquoimages4 1 Images vectorielles Vs Images matricielles
Images vectorielles Images matricielles
Avantages Inconveacutenients Avantages Inconveacutenients
Peu de place en
meacutemoire
Peut devenir gros
pour une image
complexe
Aucun calcul pour
l‟affichage
Peuvent occuper
beaucoup d‟espace
meacutemoire
Redimensionnement
sans perte
d‟informations
Beaucoup de calculs
pour l‟affichage
La complexiteacute de
l‟image n‟influe pas
sur sa taille
Aucun aliasing si on
manipule l‟objet
graphique
Sami Gazzah 2009 42
4 Formats drsquoimages4 2 Stockage des images
o Pour la meacutemorisation des images sur disque meacutemoire on stocke les informations
concernant les image dans un en-tecircte puis les donneacutees (valeurs de pixels)
o L‟en-tecircte contient la largeur et la hauteur de l‟image aussi on peut ajouter d‟autres
informations telles que le type de donneacutees l‟auteur la datehellip
o Pour certains formats l‟en-tecircte et les donneacutees sont stockeacutes dans 2 fichiers
diffeacuterents
o Les donneacutees sont souvent stockeacutees dans l‟ordre des pixels de gauche agrave droite et
de haut en bas
o Les anciens formats sont simples et tregraves facile agrave lire et agrave eacutecrire
bull PBM pour des images binaires
bull PGM pour des images en niveaux de gris
bull PPM pour des images couleurs
o Les formats les plus courants sont GIF PCX BMPTIFF et JPEG
15122010
8
Sami Gazzah 2009 43
4 Formats drsquoimages4 2 Stockage des images
421 format PBM (Portable Bit Map)
Nombre de colonnes=10
Nom
bre
de c
olon
nes
=10
P1 signifie qursquoil srsquoagit drsquoun format PBM et que les donneacutees sont stockeacutees en ASCII signifie qursquoil srsquoagit drsquoune ligne de commentaire
Sami Gazzah 200944
4 Formats drsquoimages4 2 Stockage des images
421 format PGM(Portable Gray Map)
P2 signifie qursquoil srsquoagit drsquoun format PGM et que les donneacutees sont stockeacutees en ASCII
Sami Gazzah 200945
4 Formats drsquoimages4 2 Stockage des images
421 format PPM(Portable Pixel Map)
P3 signifie qursquoil srsquoagit drsquoun format PPM et que les donneacutees sont stockeacutees en ASCII Les valeurs des pixels sont donneacutees pixel par pixel
Sami Gazzah 2009 46
Sami Gazzah 2009 47
5 Eleacutements de Colorimeacutetrie
Un prisme seacutepare la lumiegravere blanche en ses couleurs
Sami Gazzah 2009 48
6 Les systegravemes de repreacutesentation des couleurs
Kunt a deacutemontreacute qu‟en combinant trois longueurs drsquoondes particuliegraveres il est
possible de syntheacutetiser presque toutes les couleurs existantes Les trois
couleurs de base sont dites laquo couleurs primaires raquo Une couleur peut donc ecirctre
repreacutesenteacutee dans un espace agrave trois dimensions Il en existe plusieurs
- Systegraveme RGB (Red Green Blue)
- Systegraveme CMY (Cyan Magenta Yellow)
- Systegraveme XYZ
- Systegraveme HLS (Hue Magenta Saturation)
Image couleur et sa repreacutesentation matricielle
15122010
9
Sami Gazzah 2009 49
Images couleurs (24 bits)
Lrsquoespace couleur Rouge Vert Bleu (RGB)
Sami Gazzah 2009 50
Valeur R Valeur V Valeur BCouleur
correspondanteCommentaires
0 0 0 noir
0 0 255 bleu
0 255 0 vert
255 0 0 rouge
128 128 128
couleur
intermeacutediaire
correspondant agrave
un gris
255 255 255 blanc
Sami Gazzah ISITCom 200951
Exemple de deacutecomposition drsquoune image couleur en 3 plans de couleur
(a) image originale (b)canal rouge (c)canal vert (d)canal bleu
(b)(a)
(c) (d)
Sami Gazzah 2009 52
Lrsquoespace couleur Cyan Magenta et Jaune (GMJ)
bull les couleurs primaires CMJ sont ici les compleacutementaires des RVB
bull utiliseacute par certaines imprimantes couleurs agrave jet dencre
bull les diffeacuterentes couleurs sont obtenues par soustraction du blanc
Sami Gazzah 2009 53
Le principe de lespace HSV est de caracteacuteriser les couleurs de faccedilon plus
intuitive conformeacutement agrave la perception naturelle des couleurs en termes de
1 teinte (Hue) intuitivement cest le nom quon utilisera pour deacutesigner la couleur
vert mauve etc Ideacutealement associeacute agrave une longueur donde
2 saturation (Saturation)cest le taux de pureteacute de la couleur qui doit varier
entre la pureteacute maximale (couleur eacuteclatante) et lachromatisme (niveau de gris)
3 valeur (Value) cest la mesure de lintensiteacute lumineuse de la couleur qui doit
varier entre le noir absolu et le blanc
Images HSV
Composante valeur
Composante saturation
Composante teinte
Sami Gazzah 2009 54
Pour passer de la repreacutesentation initiale (RGB) agrave cette repreacutesentation on opegravere
de la maniegravere suivante
15122010
10
Sami Gazzah 2009 55
Quelques caracteacuteristiques drsquoimages numeacuteriques
La reacutesolution dune image = nombre de pixels par uniteacute de longueur de la
structure agrave numeacuteriser (dpi (dots per inches) ou ppp (pixel par pouce)
La reacutesolution du format de limage =nombre de pixels qui compose limage en
hauteur et en largeur (512 pixels par 512 pixels par exemple)
La taille des donneacutees pour une image (en bits) = Nlignes x Ncolonnes x B
La profondeur de bits = nombre de bits neacutecessaire pour repreacutesenter un pixel dans
l‟image numeacuterique
La dynamique dune image= leacutetendu de la gamme de couleurs 2nbre de bitspixels ndash 1
Le poids d‟une image numeacuterique est l‟espace meacutemoire qu‟elle occupe sur un
support de stockage numeacuterique = nombre de bits par pixel x nombre total de pixels
Sami Gazzah 2009 56
bullune image 200200 pixels en niveaux du gris fait un poids de
200200=40000 octets
bullimage de 200200 pixels en vraies couleurs (16 millions) (24 bits)
2002003= 120000 octets (117 Ko)
bull image de 200200 pixels en fausses couleurs (256 couleurs) (8 bits)
2002001= 40000 octets (39 Ko)
Taille des limages en pixels
Sami Gazzah 2009 57
Exercice drsquoapplication
Soit une image carreacutee au format PPM(ASCII) de 160 Ko
Quelles sont approximativement les dimensions de cette image si
on neacuteglige la taille de lrsquoen-tecircte
Quelle serait la taille du fichier si cette image eacutetait stockeacutee en
binaire
Remarques Le format PPM (Portable Pixel Map) concerne les
images couleurs Chaque pixel a pour valeur un triplet (RGB) et
chaque couleur est exprimeacutee par un caractegravere et un espace
Sami Gazzah 2009 58
Formats de fichiers dimages
Une image est un tableau de pixels
Une image est stockeacutee soit dans un fichier sous la forme de texte soit dans la
meacutemoire de lordinateur sous la forme dun vecteur
Sami Gazzah 2009 59
Les opeacuterations de bases concernant une image sont la lecture (fichier vers
meacutemoire) et leacutecriture (meacutemoire vers fichier) Les informations
neacutecessaires agrave la manipulation dune image sont
nombre de lignes
nombre de colonnes
format des pixels (bit niveaux de gris niveaux de couleurs)
compression eacuteventuelle
Il existe une multitude de formats de fichiers permettant de stocker ces
informations ainsi que le tableau des valeurs En particulier
Les formats simples fichiers textes comportant un entecircte contenant
les dimensions de limage et le format des pixels Exemples les formats
PNM (portable anymap) PBM (portable bitmap) PGM (prtrable
grayscalemap) PPM (portable pixmap) Les fichiers correspondants sont
constitueacutes des eacuteleacutements suivants Sami Gazzah 2009 60
1 Un nombre magique pour identifier les type du fichier P1 ou P4
pour PBM P2 ou P5 pour PGM et P3 ou P6 pour PPM
2 Un caractegravere despacement (blanc TABs Cs LFs)
3 La largeur de limage (valeur deacutecimale codeacutee en ASCII) suivie dun
caractegravere despacement la longueur de limage (valeur deacutecimale
ASCII) suivie dun caractegravere despacement
4 Uniquement pour PGM et PPM lintensiteacute maximum (valeur deacutecimale
comprise entre 0 et 255 codeacutee en ASCII) suivie dun caractegravere
despacement
5 Largeur x hauteur nombres Ces nombres sont soit des valeurs
deacutecimales codeacutees en ASCII et seacutepareacutees par des espacements dans le
cas des formats P1 P2 P3 soit directement les valeurs binaires sur 1
ou 2 octets dans le cas des formats P4 P5 P6 Dans ce dernier cas il
ny pas de caractegraveres despacement entre les valeurs
15122010
11
Sami Gazzah 2009 61
Chapitre 2
Transformations sur les images
Sami Gazzah 2009 62
Les transformations peuvent ecirctre classeacutees de la maniegravere suivante
bullTransformations ponctuelles
bullTransformations de voisinage
bullTransformations spectrales
bullTransformations morphologiques
Au cours du processus de traitement et drsquoanalyse lrsquoimage subit une seacuterie
de transformations
Introduction
Image sourceTransformationTransformation
TTImage transformeacutee
Sami Gazzah 2009 63
1 Transformations ponctuelles
A partir dune image source la nouvelle valeur du pixel deacutepend uniquement de
son ancienne valeur
Exemple seuillage ajustement luminositeacutecontraste opeacuterations algeacutebriques
opeacuterations logiques et arithmeacutetiques manip dhistogramme
1 Opeacuterations logiques et arithmeacutetiques
Les images opeacuterandes
doivent ecirctre de mecircme taille
peuvent ecirctre des images constantes
Exemples
addition soustraction
ET logique OU logique
Problegravemes
deacutebordements de [0 255]
normalisation Sami Gazzah 2009 64
Images en niveaux de gris ETOU logique bit agrave bit entre les 8 bits
codant les valeurs des pixels
Images binaires ETOU logique entre les pixels
Sami Gazzah 2009 65
Les opeacuterations logiques
bullET I(xy)=I1(xy) ET I2(xy) intersection logique
bullOU I(xy) = I1(xy) OU I2(xy) union logique
bullNOT I(xy) = NOT(I1(xy)
opeacuterations arithmeacutetiques
bullAddition I(xy)=I1(xy)+I2(xy)
bullSoustraction I(xy)=I1(xy)-I2(xy)
bullMultiplication
bullDivision par une constantehellip
Sami Gazzah 2009 66
Les opeacuterations logiques
15122010
12
Sami Gazzah 2009 67
Application
Masquage
Sami Gazzah 2009 68
Les Opeacuterations arithmeacutetiques
Addition dimages
Principe I(xy)=I1(xy)+I2(xy) pour tout pixel de coordonneacutees (xy)
Strateacutegies si deacutepassement de capaciteacute
bullDeacutecalage des valeurs dans [0 127] avant addition (perte du bit de poids faible)
bullSaturation I(xy) = min ( I1(xy)+I2(xy) 255)
bullPreacute-calcul des valeurs finales (theacuteoriques) minimale et maximale
puis recadrage de la dynamique
Utilisations principales
Augmentation de la luminance dune image (par addition dune constante ou
dune image avec elle-mecircme) et diminution du bruit dans une seacuterie dimages
))()((max
))()((min
21)(
max
21)(
min
yxIyxIi
yxIyxIi
Iyx
Iyx
))()((255
)( 21
minmax
yxIyxIii
yxI
Sami Gazzah 2009 69
Les Opeacuterations arithmeacutetiques
Soustraction dimages
Principe I(xy)=I1(xy)-I2(xy) pour tout pixel de coordonneacutees (xy)
Strateacutegies si deacutepassement de capaciteacute
bullSaturation I(xy) = max ( I1(xy) - I2(xy) 0)
bullDiffeacuterence absolue I(xy) = | I1(xy) - I2(xy) |
Utilisations principales
bullDiminution de la luminance dune image
bullDeacutetection de changements entre images
bulldeacutefauts (par comparaison avec une image de reacutefeacuterence)
bullmouvements (par comparaison avec une autre image de la seacutequence)
Sami Gazzah 2009 70
Rim Romdhaneet al AVSS10 rd the 7th IEEE International Conference on
Advanced Video and Signal-Based Surveillance Boston USA 2010
Sami Gazzah 2009 71
Addition et soustraction de deux images
Sami Gazzah 2009 72
Si on dispose de limage en niveau de gris et de limage binaire suivante
15122010
13
Sami Gazzah 2009 73
2 Identiteacute neacutegatif et Seuillage
Sami Gazzah 200974
2 Les opeacuterations geacuteomeacutetriques
Opeacuterations geacuteomeacutetriques sur une image en niveaux de gris
Sami Gazzah 2009 75
Une transformation de voisinage est telle que la nouvelle valeur
drsquoun pixel tient compte des pixels appartenant au voisinage du
pixel consideacutereacute
Le voisinage peut avoir une taille plus ou moins grande (3x3 5x5
7x7hellip) et il peut avoir une forme reacuteguliegravere (carreacute rectangle
hexagonehellip) ou bien une forme quelconque
3 Transformations de voisinage
Sami Gazzah 2009 76
Exemple de transformation de voisinage le
produit de convolution
dans le cas continu le produit de convolution de f par g est
deacutefini par
Dans le cas discret il est geacuteneacuteralement deacutefini sur un voisinage il
est donneacute par
Sami Gazzah 2009 77
Si on applique ceci agrave une image I1 de dimensions
finies et agrave moyenne de convolution K (K
Kernel=noyau) de dimension 3 x 3 les pixels de
lrsquoimage I1 obtenue par convolution de I2 par K ont
pour valeur
Sami Gazzah 2009 78
Nouvelle
image
Nouvelle valeur
de pixel21
1 11
1 111 11
Noyau
Nouvelle valeur de pixel =
9
22 2719
9 19
51 21 14Image
originale
111
111
111
9
1h
15122010
14
Sami Gazzah 2009 79
4-Transformations spectrales (1)
Transformeacutee de Fourier 2D (TF 2D)
- La TF est
Dans la cas 1D (Rappel)
Dans la cas 2D
- La TF inverse
- La TF est
- La TF inverse
Sami Gazzah 2009 80
4-Transformations spectrales (2)
Exemple des transformations spectrales transformeacutee de Fourier
Soit f(xy) deacutefinie par une matrice d‟eacutechantillons reacuteguliegraverement espaceacutes
N le nombre de lignes M nombre de colonnes
- La TF est deacutefinie par
- La TF inverse est deacutefinie par
Sami Gazzah 2009 81 Sami Gazzah 2009 82
Compression RLE (Run Length Encoding)
2 2 2 2 128 128 128 120 120 80 96 96 94 94 94 95 97 97 97 97
4 2 3 128 2 120 1 80 2 96 3 94 1 95 4 97
Utile quand il y a des reacutepeacutetitions dans la chaicircne agrave encoder
Exemple Formats BMP TIFF PCX (Paintbrush)
Sami Gazzah 2009 83
Chapitre 3
RESTAURATION DrsquoIMAGES
Sami Gazzah 2009 84
L‟acquisition s‟accompagne toujours d‟une distorsiondeacutegradation
Il existe diffeacuterentes sources de deacutegradation (bruit) d‟une image
bruit lieacute au contexte de lacquisition Bougeacute mauvaises conditions
d‟eacuteclairagehellip
bruit lieacute au capteur Capteur de mauvaises qualiteacutes mauvaise mise
au point etchellip
bruit lieacute agrave leacutechantillonnage Une mauvaise freacutequence
d‟eacutechantillonnage peut introduire dans l‟image des points blancs ou
noirs connus souvent sous l‟appellation laquo sel et poivre raquo
bruit lieacute agrave la nature de la scegravene Preacutesence de fumeacutee de nuage
etchellip
Il faut corriger l‟image par un proceacutedeacute algorithmique
15122010
15
Sami Gazzah 2009 85
Restauration des Images monochromatiques et des images
couleurs
Au deacutebut de l‟imagerie numeacuterique les algorithmes deacuteveloppeacutes eacutetaient
destineacutes aux images en niveaux de gris Avec les progregraves techniques et le
deacuteveloppement des outils informatiques le traitement des images
couleurs est devenu possible
bull Approche marginale
Sami Gazzah 2009 86
Approche vectorielle
Dans lapproche vectorielle le vecteur couleur est consideacutereacute globalement
et le traitement doit ecirctre alors reacuteellement vectoriel Il ny a pas dans ce cas
une eacutetape de fusion ou de seacuteparation explicite entre les diffeacuterentes
composantes couleur de lrsquoimage Dans ce cas la correacutelation entre les
diffeacuterentes composantes peut ecirctre prise en compte ce qui aboutit
geacuteneacuteralement agrave des reacutesultats meilleurs que ceux du traitement marginal
Sami Gazzah 2009 87
Rappel
Sami Gazzah 2009 88
Sami Gazzah 2009 89
Nouvelle
image
Nouvelle valeur
de pixel21
1 11
1 111 11
Noyau
Nouvelle valeur de pixel =
9
22 2719
9 19
51 21 14Image
originale
Sami Gazzah 2009 90
15122010
16
Sami Gazzah 2009 91
Lissage spatial tout en remplacent la valeur du pixel courant par la moyenne de
tous les pixels inclus dans un voisinage centreacute en ce point
Sami Gazzah 2009 92
Sami Gazzah 2009 93 Sami Gazzah 2009 94
En traitement d‟image les tailles des fenecirctres utiliseacutees pour le
filtrage meacutedian sont geacuteneacuteralement impaires 3 3 5 5 7 7
exemple
fenecirctre de 5 pixels en croix
Pour les fenecirctres de taille paire ( 2 K valeurs ) apregraves
ordonnancement croissant des valeurs prendre la moyenne des 2
valeurs centrales
valeur de sortie( Kiegraveme valeur ordonneacutee + (K+1)iegraveme valeur ordonneacutee )
2=
Sami Gazzah 2009 95 Sami Gazzah 2009 96
15122010
17
Sami Gazzah 2009 97
Image laquo Piegraveces raquo de reacutefeacuterence bruiteacutee ( bruit de type impulsionnel ) puis filtreacutee
avec un filtre moyenneur (33) et un filtre meacutedian (33)
Image de reacutefeacuterence Image bruiteacutee
Bruit
Le filtrage meacutedian est plus adapteacute que le filtrage
lineacuteaire pour reacuteduire le bruit impulsionnel
Observation
Comparaison filtre meacutedian et filtre moyenneur
Sami Gazzah 2009 99 Sami Gazzah 2009 100
Sami Gazzah 2009 101 Sami Gazzah 2009 102
Chapitre 4
REHAUSSEMENT DrsquoIMAGES
15122010
18
Sami Gazzah 2009 103
Introduction
Le preacutetraitement d‟image est l‟ensemble des opeacuterations effectueacutees sur
une image soit pour l‟ameacuteliorer soit pour la restaurer
Le preacutetraitement d‟une image vise soit agrave renforcer la ressemblance des
pixels soit au contraire agrave accentuer les diffeacuterences de pixels d‟une mecircme
reacutegion
Accroitre la seacuteparabiliteacute des reacutegions composant une scegravene revient agrave
augmenter les contrastes vu
On applique le rehaussement des images afin de faciliter l‟interpreacutetation
visuelle et la compreacutehension des images
Pour comprendre ce type de rehaussement il faut comprendre le concept
d‟histogrammeSami Gazzah 2009 104
Deacutefinition de lrsquohistogramme drsquoune image
L‟histogramme est un outil qui permet de comptabiliser le nombre
d‟occurrences de chacune des valeurs dans une image en niveaux de gris
Dans une image couleur il est neacutecessaire d‟utiliser plusieurs
histogramme sur chacune des composantes du systegraveme de repreacutesentation
de la couleur
Soit h l‟histogramme de l‟image I de dimension (w x h) h[i] repreacutesente
le nombre d‟occurrence de chaque niveau de quantification i La probabiliteacute
estimeacutee du niveau i dans une image I est
hw
ihip
][)(
Image de 256 256 pixels
codeacutes chacun sur 8 bitsPopulation de pixels pour chaque
niveaux de gris [0 255]
Pour chaque niveau de gris on compte le nombre de pixels s‟y reacutefeacuterant
Pour chaque niveau on trace le graphe en bacircton du nombre de pixels
(possibiliteacute de regrouper les niveaux proches en une seule classe)
Exemple drsquohistogramme pour une image en niveaux
de gris
0 50 100 150 200 250
0
200
400
600
800
1000
cameraman
Image laquo A raquo en
niveaux de gris
Matrice des valeurs de luminance
des pixels de lrsquoimage laquo A raquo
Histogramme
de lrsquoimage
laquo A raquo
2 2 2 2 2 2 2 2
2 0 0 0 0 0 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 0 0 0 0 0 2
2 2 2 2 2 2 2 2
Les niveaux 0 1 et 2 sont respectivement repreacutesenteacutes par 24 12 et 28 pixels
repreacutesentation de cette population de pixels sur lhistogramme
Limage laquo A raquo comporte 3 niveaux de gris diffeacuterents 0 1 et 2
Compter le nombre de pixels pour chaque niveau de gris agrave lrsquoaide de la
matrice des valeurs de luminance
Exemple simple de calcul drsquohistogramme pour une image
Image laquo A raquoValeurs de luminance de
laquo A raquo
Histogramme cumuleacute de
laquo A raquo
2 2 2 2 2 2 2 2
2 0 0 0 0 0 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 0 0 0 0 0 2
2 2 2 2 2 2 2 2
Calcul dun histogramme particulier faisant appel aux cumuls des niveaux de gris
Histogramme cumuleacute
Utile pour certains traitements dimage tels que lrsquoeacutegalisation
dhistogramme ( ameacutelioration de contraste)
Chaque bacircton cumule le nombre de pixels du niveaux de gris concerneacute et des
niveaux de gris infeacuterieurs les niveaux 0 1 2 sont donc repreacutesenteacutes
respectivement par 24 36 et 64 pixels
Histogramme cumuleacute drsquoune image L‟histogramme ne donne pas L‟histogramme ne donne pas
d‟informations sur la reacutepartitiond‟informations sur la reacutepartition
Trois images diffeacuterentes ayant un mecircme histogramme
15122010
19
Modification de lrsquohistogrammeModification de lrsquohistogramme
On appelle dynamique des niveaux de gris lintervalle [nminnmax] de
niveaux de gris dans lequel sont compris tous les pixels de limage
Le but de la modification dhistogramme modifier chaque niveau de
gris pour accroicirctre le contraste On modeacutelise cette transformation par
leacutequation Irsquo(ij) = g(I(ij)) ougrave g est la fonction de contraste
Chaque transformation sera deacutecrite par une courbe repreacutesentant la
relation entre un niveau de gris de limage de deacutepart (abscisse) et le
niveau qui lui correspond dans limage ameacutelioreacutee (ordonneacutee)
Sami Gazzah 2009 109
Masquage de zones Masquage de zones Extraction d‟une Extraction d‟une
fenecirctre d‟intensiteacutefenecirctre d‟intensiteacute ((slicingslicing intensiteacute)intensiteacute)
Cette transformation consiste agrave remplacer un intervalle de niveaux
de gris par du blanc (nmax) par du noir (nmin) ou par une valeur
intermeacutediaire du niveau de gris
Sami Gazzah 2009 110
Courbes repreacutesentant de gauche agrave droite lextraction dune fenecirctre dintensiteacute et le masquage blanc et noir de lintervalle [ab]
n-1
n-1
0 n-1
n-1
0a ab b n-1
n-1
0 a b
Sami Gazzah 2009 111
Exemples de Masquage de zonesInversion de la dynamiqueInversion de la dynamique
But produire le neacutegatif d‟une image
donneacutee
Sami Gazzah 2009 112
Sami Gazzah 2009 113
Etirement drsquohistogramme
Sami Gazzah 2009 114
Etirement drsquohistogramme
Augmentation du contraste par eacutetirement d‟histogramme
15122010
20
Sami Gazzah 2009 115
Eacutegalisation dhistogramme
But ameacutelioration du contraste
Distribution uniforme des niveaux de gris
Elle se deacutefinit agrave laide de lhistogramme cumuleacute de limage hc(n)
qui repreacutesente le nombre de pixels de limage dont le niveau de
gris est infeacuterieur ou eacutegal agrave n
Deacutefinition de la transformation deacutegalisation dhistogramme soit
I le niveau de gris dun pixel de deacutepart le niveau de gris de limage
darriveacutee I‟ sera
Sami Gazzah 2009 116
Sami Gazzah 2009 117
Effet de lrsquoeacutegalisation drsquohistogramme
Sami Gazzah 2009 118
Augmentation du contraste exemples et comparaison
Original Eacutetirement d‟histogramme Eacutegalisation
Le rehaussement du contraste est plus marqueacute avec l‟eacutegalisation
d‟histogramme autorisant la deacutetection de structures situeacutees dans
l‟ombre
Sami Gazzah 2009 119
Chapitre 5
SEGMENTATION DrsquoIMAGES
Sami Gazzah 2009 120
Une image est geacuteneacuteralement composeacutee d‟objets L‟analyse de cette
image neacutecessite l‟identification de ces objets
La segmentation dimages est lun des problegravemes phares du traitement
dimages Elle consiste agrave partitionner limages en un ensemble de
reacutegions connexes Linteacuterecirct de ces reacutegions est de pouvoir ecirctre
manipuleacutees ensuite via des traitements de haut niveau pour extraire
des caracteacuteristiques de forme de position de taille etc
Introduction
15122010
21
Sami Gazzah 2009 121 Sami Gazzah 2009 122
Meacutethodes statistiquesSegmentation par Histogrammes
Sami Gazzah 2009 123
Meacutethodes statistiquesSeacutelection Reacutecursive sur Histogrammes
Ohlander Price et Reddy (1978)
Sami Gazzah 2009 124
Segmentation par approche contourIntroduction
Le contour est deacutefini comme le lieu des points connexes qui
possegravedent une forte transition d‟intensiteacute lumineuse ou de texture Le
traitement qui vise agrave l‟obtenir est appeleacute extraction de contour on
parle aussi de deacutetection de contour
Le processus d‟extraction de contour peut ecirctre deacutecomposeacute en
plusieurs eacutetapes distinctes que nous allons les deacutetailler comme suit
- La mise en eacutevidence des contours
- L‟extraction des contours
- La fermeture des contours
Sami Gazzah 2009 125
Segmentation par approche contourLa mise en eacutevidence des contours
Elle s‟obtient par une diffeacuterentiation de l‟image et elle peut
s‟appliquer agrave des images binaires ou non le but de la deacutetection de
contours est d‟obtenir dans un premier temps une image binaire ougrave
chaque contour est d‟eacutepaisseur 1 et sans discontinuiteacute
rehausser le contour
suivre le contour
les points du contour correspondent au maximum en valeur absolue
de la deacuteriveacutee primaire de l‟image on obtient alors un gradient ou au
passage par zeacutero de la deacuteriveacutee seconde de l‟image on obtient alors
un laplacien
Sami Gazzah 2009 126
Segmentation par approche contourLa mise en eacutevidence des contours
La deacutetection de contours peut ecirctre reacutealiseacutee gracircce agrave des filtres
dont les coefficients ont eacuteteacute soigneusement choisis Nous
aborderons dans cette preacutesentation 3 filtres les filtres de
Prewitt Roberts et Sobel
Ce jeu de filtres (Prewitt Roberts et Sobel) est constitueacute d‟une
paire de filtres lineacuteaires qui deacutetectent le contours dans deux
directions orthogonales (vertical et horizontal)
15122010
22
Sami Gazzah 2009 127
Segmentation par approche contourFiltre de Perwitt
Les filtres de Perwitt sont les suivants
Filtre horizontal
Filtre vertical
111
000
111
h
101
101
101
v
Sami Gazzah 2009 128
Segmentation par approche contourFiltre de Perwitt
A partir d‟une image I on calcule Gh et Gv images
correspondant au filtrage de I par h et v Ces images
contiennent les contours horizontaux et verticaux
Si l‟on souhaite obtenir une image de contour unique ne tenant
pas compte de l‟orientation on calcule
Orientation du contour
Image binairehellipchoisir un seuil de deacutetection
22
vh GGG
)(vh
GGarctg
Sami Gazzah 2009 129
Segmentation par approche contourFiltre de Sobel
Les filtres de Sobel sont les suivants
Filtre horizontal
Filtre vertical
121
000
121
h
101
202
101
v
Sami Gazzah 2009 130
Segmentation par approche contourFiltre de Sobel
Sami Gazzah 2009 131
Segmentation par approche contourFiltre de Sobel
Sami Gazzah 2009 132
Segmentation par approche contourFiltre de Roberts
Les filtres de Roberts sont les suivants
Filtre diagonal
Filtre anti-diagonal
10
01h
01
10v
15122010
23
Sami Gazzah 2009 133
Segmentation par approche contourFiltre de Kirsch
Ce deacutetecteur utilise huit noyaux de convolution lui permettant de deacutetecter
des contours en fonction de huit directions agrave
15
335
305
335
1
d 15
333
305
355
2
d 15
333
303
555
3
d
15
333
503
553
4
d 15
533
503
533
5
d 15
555
503
333
6
d
15
555
303
333
7
d 15
355
305
333
8
d
Sami Gazzah 2009 134
Contours et Laplacien
Il s‟agit de calculer la deacuteriveacutee seconde de l‟image
Le Laplacien est tregraves sensible au bruit pour limiter l‟effet du bruit le
Laplacien est approximeacute par un masque qui effectue en mecircme temps
une opeacuteration de filtrage par une Gaussienne qui repreacutesente l‟eacutetape
de lissage de l‟image puis vient l‟application du laplacien Les masques
du Laplacien Gaussien sont preacutesenteacutes ci-apregraves
Segmentation par approche contour
Sami Gazzah 2009 135
Contours et Laplacien
Le contour est ensuite deacutetermineacute par la deacutetection des
passages par zeacutero du laplacien de l‟image
88888888888888
010
141
010
1h
111
101
111
2h
121
242
121
3h
Sami Gazzah 2009 136
Contours et Laplacien
Sami Gazzah 2009 137
Seuillage
Les filtres preacuteceacutedents nous fournissent des images des sauts ou
diffeacuterences d‟intensiteacute
Le seuillage permet d‟eacuteliminer des points en lesquels la diffeacuterence
d‟intensiteacute est tregraves faible
Le seuillage peut ecirctre pousser afin d‟obtenir une image binaire (TOR)
Le seuillage dans sa forme le plus simple ne tient pas compte de la
topologie et peut conserver un point bruiteacute isoleacute ou eacuteliminer une portion
de contour d‟intensiteacute faible
Sami Gazzah 2009 138
Seuillage par hysteacutereacutesis
c‟est une fonction agrave deux seuils un seuil bas et un seuil haut
Tout point dont le module de contour est au-dessus du seuil-haut est un
point de contour
Tout point dont le module de contour est au-dessous du seuil-bas n‟est
pas un point de contour
Les points de module entre le seuil-bas et le seuil-haut sont des points
de contour s‟il possegravede un point de contour dans leur voisinage
15122010
24
Sami Gazzah 2009 139
Seuillage par hysteacutereacutesis
seuil haut
Seuil bas
point sur contour
point hors contour
Seuillage par hysteacuterisais les points de lrsquoimage de contour de valeur
supeacuterieur au seuil haut sont des points de contours A partir de ces points de
contours le voisinage de la direction du contour sont examineacutes srsquoils sont de
valeur supeacuterieure au seuil bas ils sont ajouteacutes au points de contoursSami Gazzah 2009 140
Chapitre 6
Introduction aux
opeacuterateurs
morphomatheacutematique
Sami Gazzah 2009 141
1 Introduction
Les opeacuterateurs morphomatheacutematique (=Morphologie Matheacutematique)
permettent d‟ameacuteliorer les images de contours et apporter d‟autres
fonctionnaliteacutes
Ils ont eacuteteacute initialement appliqueacute sur des images NampB (Matheron et
Sarra1965) ensuite eacutetendus agrave des images en nivaux de gris par Doupherty
(1978)
Pour les appliquer sur des images couleurs on peut les appliquer
seacutepareacutement agrave chaque composante couleur et combiner les reacutesultats
Sami Gazzah 2009 142
Diffeacuterentes opeacuterations
eacuterosion dilatation
ouverture fermeture
Squelettisation
hellip
1 Introduction
Sami Gazzah 2009 143
1 Introduction
Dilatation
Ajouter un pixel sur les pourtours de la forme
boucher les trous
Erosion
Enlever un pixel sur les pourtours de la forme
les objets de taille infeacuterieure agrave celle de leacuteleacutement
structurant vont disparaicirctre
agrandit les trous
Sami Gazzah 2009144
1I Rappels sur les ensembles
L‟eacutegaliteacute
L‟inclusion
Lbdquointersection
L‟union
La diffeacuterence
La diffeacuterence symeacutetrique
La compleacutementariteacute E eacutetant un ensemble
servant de reacutefeacuterentielle
Dans ce qui suit les lettres majuscules deacutesignent des ensembles et les lettres
minuscules deacutesignent des eacuteleacutements appartenant aux ensembles
Sur les ensembles on deacutefinit les opeacuterations suivantes
15122010
25
Sami Gazzah 2009145
1I Rappels sur les ensembles
Sami Gazzah 2009146
1I Rappels sur les ensembles
Lois de De Morgan
Reacuteflexion La reacuteflexion d‟un ensemble A est deacutefinie par
Un ensemble symeacutetrique veacuterifiant ndashA=A C‟est le cas des cercles et des carreacute par
exemple
ccc YXYX )(
ccc YXYX )(
AaaA
A -A B -B
Sami Gazzah 2009147
1I Rappels sur les ensembles
Addition de Minkowski l‟addition d‟un eacuteleacutement x agrave un ensemble A par x est
deacutefinie par
Cette notion n‟est pas uniquement ensembliste elle nous oblige agrave deacutefinir un point
de reacutefeacuterence
On en deacuteduit l‟addition d‟un ensemble B agrave un ensemble A c‟est le reacutesultat de
l‟addition de chaque eacuteleacutement de B agrave A
L‟addition de Minkowski est commutative Elle est eacutegalement appeleacute dilatation
AaxaxAB
A
A
x
AxBxAaBaBbbABAC )()()(
le translateacute de X par b
Sami Gazzah 2009148
1I Rappels sur les ensembles
Eleacutement structurant les opeacuterations morphomatheacutematiques sont deacutefinis agrave
partir des ensemble B discrets appeleacute eacuteleacutement structurant Ces eacuteleacutement
permettent de deacutefinir le type de voisinage souhaiteacute
Addition de Minkowski d‟un ensemble A et d‟un ensemble B
BA
Sami Gazzah 2009149
1II Dilatation
Le reacutesultat de dilatation de lrsquoensemble A par lrsquoensemble B
est lrsquoaddition de Minkowski crsquoest lrsquoensemble des points tel
que lorsque B est centreacute sur un de ces points il y a une
intersection non vide entre A et B
Pour des images en niveaux de gris on obtient lrsquoimage
dilateacutee de la forme A en remplaccedilant tout pixel par le
maximum des intensiteacutes des voisins selon la forme B
Sami Gazzah 2009 150
1II Dilatation1 Image NampB
Soit k l‟eacuteleacutement structurant de taille (2k+1) x (2k+1) L‟algorithme de
dilatation est le suivant on parcourt tous les pixels de l‟image sauf les
bord de l‟image d‟eacutepaisseur k pour chaque pixel du fond rencontreacute s‟il
possegravede un voisin au sens de l‟eacuteleacutement structurant qui appartient agrave un
objet il prend le couleur de l‟objet si non il n‟est pas modifieacute
15122010
26
la dilatation (noteacutee ) drsquoune image monochrome laquo f raquo par un
eacuteleacutement structurant laquo B raquo est deacutefinie en terme de sous-graphe
bull f B = T [ Y ] = Supl l tel que (m n l) Y
bullY = U ( f ) U ( B )
En consideacuterant un eacuteleacutement structurant plan de valeur nulle sur son
support
( f B ) (P) = Max valeurs des pixels du voisinage du pixel P
1II Dilatation1 Image niveaux de gris
max
55 68 77 90 91 95 115 151 210
( f B ) (P) = 210
n
115 91 77
95 68 90
55 151 210
exemple
m
Image de reacutefeacuterence
Eacuteleacutement structurant
(8-connexiteacute)
liste ordonneacutee des valeurs du voisinage
- - -
-
-
-
-
-
1II Dilatation1 Image niveaux de gris
Exemples de filtrages morphologiques(eacuteleacutement structurant 33 complet)
Image de reacutefeacuterenceImage dilateacutee
morphologiquement
La dilatation en niveaux de gris accroicirct la luminance des
pixels entoureacutes de voisins plus lumineux
Observation
Sami Gazzah 2009154
VI Erosion
L‟eacuterosion est deacutefinie par
On deacutefinit la soustraction de Minkowski par
On a eacutequivalence entre eacuterosion et soustraction de Minkowski si B est
symeacutetrique (si B=-B)
D‟un point de vue binaire l‟eacuterode de A par B correspond agrave l‟ensemble
des points tels que si B est centre sur ce points B est entiegraverement inclus
dans A
AxBxBbbABAC )()(
)()( BbbABAC
Sami Gazzah 2009 155
VI Erosion1 Image NampB
on parcourt tous les pixels de l‟image sauf les bord de l‟image
d‟eacutepaisseur k pour chaque pixel du fond rencontreacute s‟il possegravede un
voisin au sens de l‟eacuteleacutement structurant qui appartient agrave un objet il
prend le couleur du fond si non il n‟est pas modifieacute
VI Eacuterosion drsquoune image en niveaux de gris
Lrsquoeacuterosion (noteacutee Ө ) drsquoune image monochrome laquo f raquo par un eacuteleacutement
structurant laquo B raquo est deacutefinie en terme de sous-graphe
bull f Ө B = T [ Y ] = Supl l tel que (m n l) Y
bullY = U ( f ) Ө U ( B )
Classiquement on considegravere un eacuteleacutement structurant plan de
valeur nulle sur son support
( f Ө B ) (P) = Min valeurs des pixels du voisinage du pixel P
15122010
27
VI Eacuterosion drsquoune image en niveaux de gris
min
68 90 91 95 151
( f Ө B ) (P) = 68
n
115 91 77
95 68 90
55 151 210
exemple
m
Image de reacutefeacuterence
ӨӨ
Eacuteleacutement structurant
(4-connexiteacute)
liste ordonneacutee des valeurs du voisinage
-
-
-
-
Exemples de filtrages morphologiques(eacuteleacutement structurant 33 complet)
Image eacuterodeacutee
Lrsquoeacuterosion en niveaux de gris reacuteduit la luminance des pixels
qui sont entoureacutes de voisins de moindre intensiteacute
Image de reacutefeacuterence
Observation
Sami Gazzah 2009 159
Eacuteleacutement structurant (a)
(4-connexiteacute)
-
-
-
-
Eacuteleacutement structurant (b)
(8-connexiteacute)
- - -
-
-
-
-
-
Exercice 1 Sur la mecircme image de deacutepart on reacutealise deux opeacuterations
de dilatations avec deux eacuteleacutements structurant diffeacuterents
Dilatation avec (a) Dilatation avec (b)
image de deacutepart
cas a L‟eacuteleacutement structurant est agrave 4-connexiteacute Chaque pixel
du support qui est eacutegal agrave la valeur 1 ou qui a l‟un de ses 4
voisins agrave la valeur 1 est mis agrave la valeur 1 apregraves filtrage
cas b L‟eacuteleacutement structurant est agrave 8-connexiteacute Chaque pixel
du support qui est eacutegal agrave la valeur 1 ou qui a l‟un de ses 8
voisins agrave la valeur 1 est mis agrave la valeur 1 apregraves filtrage
Dans les deux cas on observe qu‟une dilatation eacutelimine les
trous isoleacutes dans les objets et dilate le contour des objets en
tenant compte de l‟eacuteleacutement structurant
Sami Gazzah 2009 160
Exercice 1
Sami Gazzah 2009 161
Eacuteleacutement structurant (a)
(4-connexiteacute)
-
-
-
-
Eacuteleacutement structurant (b)
(8-connexiteacute)
- - -
-
-
-
-
-
Exercice 2 Sur la mecircme image de deacutepart on reacutealise deux opeacuterations
d‟eacuterosions avec deux eacuteleacutements structurant diffeacuterents
Erosion avec (a) Erosion avec (b)
image de deacutepart
cas a L‟eacuteleacutement structurant est agrave 4-connexiteacute (origine agrave 4 voisins)
Chaque pixel du support qui a la valeur 0 ou qui a l‟un de ses 4
voisins agrave la valeur 0 est mis agrave la valeur 0 apregraves filtrage
cas b L‟eacuteleacutement structurant est agrave 8-connexiteacute Chaque pixel du
support qui a la valeur 0 ou qui a l‟un de ses 8 voisins agrave la valeur 0
est mis agrave la valeur 0 apregraves filtrage
Dans les deux cas on observe qu‟une eacuterosion eacutelimine les pixels
isoleacutes sur le fond et eacuterode le contour des objets
Sami Gazzah 2009 162
Exercice 2
15122010
28
ConclusionsConclusions
Erosion
les objets relieacutes entre eux vont ecirctre seacutepareacutes
Une eacuterosion de taille n peut se reacutealiser en reacutepeacutetant une
eacuterosion n fois avec un eacuteleacutement structurant de taille 1 ou en
appliquant une seule eacuterosion avec un eacuteleacutement structurant
de taille n
Dilatation
des objets sont situeacutes agrave une distance moins grande que la taille
de leacuteleacutement structurant il vont fusionner
Sami Gazzah 2009 163 Sami Gazzah 2009 164
Sami Gazzah 2009 165
Elimine pixels isoleacutes sans inteacuterecirct
L‟ouverture (opening) consiste agrave une eacuterosion suivi d‟une dilatation
Les petites structures et deacutetail fins disparaissent et ne sont pas recreacuteeacutees
lors de la dilation Une opeacuteration d‟ouverture est ainsi inteacuteressante pour
eacuteliminer les petits morceaux de contours bruiteacutes dans une image de
contours
V Ouverture et fermeture1 Ouverture
BBABAC )(
Sami Gazzah 2009 166
V Ouverture et fermetureII Fermeture
La fermeture (closing) consiste agrave une dilatation suivi d‟une eacuterosion
Les structures proches fusionnent lors de la dilation mais seules les
fusions ponctuelles disparaissent agrave nouveau lors de l‟eacuterosion Une
opeacuteration de fermeture est ainsi inteacuteressante pour boucher les petits
trous
Sami Gazzah 2009 167 Sami Gazzah 2009 168
Exercice 3 Sur l‟image de deacutepart on reacutealise une opeacuteration de
fermeture binaire par l‟eacuteleacutement structurant 4-connexiteacute Conclusions
Eacuteleacutement structurant
(4-connexiteacute)
-
-
-
-Fermeture = dilatation puis eacuterosion
Image de deacutepart Image dilateacutee Image dilateacutee puis eacuterodeacutee
Combler les trous
Reacutetablir les jonctions
tout en preacuteservant la taille
15122010
29
Sami Gazzah 2009 169
Exercice 4 Sur l‟image de deacutepart on reacutealise une opeacuteration
d‟ouverture binaire par l‟eacuteleacutement structurant 4-connexiteacute Conclusions
Eacuteleacutement structurant
(4-connexiteacute)
-
-
-
-Ouverture = eacuterosion puis dilatation
Image de deacutepart Image eacuterodeacutee Image eacuterodeacutee puis dilateacutee
Supprimer les fausses alarmes
Seacuteparer les objets accoleacutes
tout en preacuteservant la tailleSami Gazzah 2009 170
Appliquer les filtres suivants sur limage donneacutee Quelles sont les valeurs choisies
aux bords de limage et quelles sont les modifications visuelles
a) filtre moyenneur M3acute3(19)
b) eacuterosion
c) dilatation
d) meacutedian
e) fermeture
f) ouverture
Exercice 5
Sami Gazzah 2009 171
IV Amincissement et Squelettisation
La squelette (skeleton) d‟une forme est l‟axe meacutedian L‟inteacuterecirct de cette
opeacuteration est dans
La reconnaissance de caractegraveres
Deacutetection des reacuteseaux routiers
La planification de trajectoirehellip
Une meacutethode couramment employeacutee est une amincissement reacutepeacuteteacute
jusqu‟agrave le convergence (n‟apporte aucune modification)
Sami Gazzah 2009 172
IV Amincissement et Squelettisation1 Opeacuteration Tout Ou Rien laquoHit or Missraquo
Cette transformation est deacutefinie par
leacuteleacutement structurant eacutetendu est centreacute sur chaque pixel de limage
comme pour les opeacuterations ensemblistes
la question poseacutee est est ce que le contenu de limage est identique au
contenu de leacuteleacutement structurant
si la reacuteponse est oui le pixel reacutesultant vaut 1 si non il vaut 0
Une application permet de deacutetecter des configurations locales
particuliegraveres dans une image
plusieurs masques peuvent ecirctre utiliseacutes indeacutependamment les images
reacutesultat eacutetant ensuite combineacutees par une opeacuteration ou
)()( cc BABABA
Bc-
est le compleacutementaire
local de B
Sami Gazzah 2009 173
IV Amincissement et Squelettisation1 Opeacuteration laquoHit or Missraquo
Exemple dopeacuteration Hit or Miss deacutetection des coinsSami Gazzah 2009 174
IV Amincissement et Squelettisation1 Amincissement (thinning)
bull La transformation TOR nous permet eacutegalement de deacutefinir
l‟amincissement
bullL‟amincissement consiste agrave soustraire limage reacutesultat dun hit or miss de
limage initiale
bull des amincissements successifs conduisent au squelettisation
)()( BAAAthin
15122010
30
Sami Gazzah 2009 175
IV Amincissement et Squelettisation1I Squelettisation
Appliquer des amincissements successifs puis s‟arrecircter lorsque l‟amincissement
n‟apporte plus de modification C‟est une eacuterosion particuliegravere ougrave les pixels sont
supprimeacutes agrave la condition quils ne provoquent pas la seacuteparation dune reacutegion en
deux
Sami Gazzah 2009 176
IV Amincissement et Squelettisation1I Squelettisation
Sami Gazzah 2009 177
Chapitre 7
Transformations
geacuteomeacutetriques 2D
Sami Gazzah 2009 178
I Introduction
On entend par transformation 2D l‟ensemble des transformations du
plan pouvant ecirctre appliqueacutees aux pixels de l‟image sans consideacuteration
de l‟intensiteacute
Par exemples
Reacuteduction agrandissement
Deacuteformation d‟image
Recalage d‟une photo scanneacutee
Recaler des images que l‟on veut comparer
Mosaiumlque d‟images
Sami Gazzah 2009 179
I Transformations euclidiennes
Elles preacuteservent les distances et les angles
Elles sont les compositions de translations et de rotations
1) Translation
Ougrave Tx et Ty sont les deacuteplacements en x et en y de la translation
y
x
Tyy
Txx
Sami Gazzah 2009 180
2) Rotation
15122010
31
Sami Gazzah 2009 181 Sami Gazzah 2009 182
3) Remarques (1)
Sami Gazzah 2009 183
3) Remarques (2)
Sami Gazzah 2009 184
II Homotheacuteties
Changement deacutechelle par rapport agrave lorigine (scaling zoom)
Ougrave Sx et Sy sont les facteurs dagrandissement ( gt1) ou de
reacuteduction ( lt1) en x et en y
ySy
xSx
y
x
Sami Gazzah 2009 185
II Homotheacuteties
Sami Gazzah 2009 186
II Homotheacuteties
15122010
32
Sami Gazzah 2009 187
III Reacuteflexions
Reacuteflexions par rapport aux axes (flip miroir)
Sami Gazzah 2009 188
IV Cisaillement
Cisaillement (glissement shearing) on eacutetire suivant un ou plusieurs axes
Sami Gazzah 2009 189
Transformations inverses
Sami Gazzah 2009 190
Repreacutesentation Matricielle
IV Autres (reacuteflexions miroirs et flips)
Sami Gazzah 2009 191
Interpolation Directe
Sami Gazzah 2009 192
oDifficile de distribuer le niveau de gris sur les pixels voisins
oOn n‟a pas la certitude que tous les pixels de l‟image
transformeacutee recevront une valeur =gt ldquotrousrdquo
15122010
33
Interpolation Inverse
Sami Gazzah 2009 193
o Interpolation de la valeur du pixel agrave partir des voisins plus
facile
oAucun ldquotrourdquo car on parcourt tous les pixels de l‟image
transformeacutee Sami Gazzah 2009 194
V Objet vectoriel - Objet bitmap
Objet vectoriel
Essentiellement on transforme
les sommets (ou points de
controcircle) et on retracehellip
Objet ldquobitmaprdquo
On doit calculer la nouvelle
position de chaque pixel De plus on
doit geacuteneacuteralement interpoler les
niveaux de gris (couleurs)hellip
Sami Gazzah 2009 195
IV Assignation des niveaux de gris
Neacutecessaire car la position d‟un pixel transformeacute n‟est pas entiegraverehellip
Plusieurs meacutethodes
Interpolation au plus proche voisin
Interpolation bilineacuteaire
Interpolation bicubique
Autres types d‟interpolation
Sami Gazzah 2009 196
IV Assignation des niveaux de gris
Linterpolation de limage cest ce qui arrive lorsquon redimensionne
une image numeacuterique ou quon la redimensionne avec une distorsion
quon change la perspective etc
Exemple 1
Image originale (sans interpolation)
Image agrandie et donc interpoleacutee
Perte de netteteacute due agrave linterpolation
Sami Gazzah 2009
197
IV Assignation des niveaux de gris
Exemple 2 recadrage dimage
Nous allons agrandir cette image agrave 180
Il va donc nous manquer des informations lagrave ougrave lon va creacuteer des
pixels pour agrandir limage
Reacutesultat sans interpolation le logiciel agrandit simplement les pixels
Reacutesultat avec interpolation le logiciel calcule une couleur intermeacutediaire
pour chaque nouveau pixel
Sami Gazzah 2009
198
IV Assignation des niveaux de gris
Image originale
Interpolation au plus
proche voisin
Interpolation
bilineacuteaireInterpolation
bicubique
15122010
34
Sami Gazzah 2009 199
IIV Interpolation au plus proche voisin
Cest lalgorithme le plus rapide agrave calculer
Prend en compte dans le calcul que le pixel le plus proche du point
agrave interpoler
Consiste tout simplement agrave agrandir chaque pixel
Exemple Interpolation du plus proche voisin par copie des pixels
Copie de chaque colonne et de chaque rang
23 20
25 28
23 23
23 23
20 20
20 20
25 25
25 25
28 28
28 28
Sami Gazzah 2009 200
IIV Interpolation bilineacuteaire
Fonction bilineacuteaire de 4 pixels voisins ( en 2 D )
i-1 i i+1
i-1 i-12 i i+12 i+1 i+32
yi=xiYi+12=(xi+xi+1)2
Problegraveme pour le dernier point
Extrapolation lineacuteaire de
2 xn-xn-1
Principe 1D
attribuer agrave chaque point cible une
combinaison lineacuteaire des quatre
points sources les plus proches par
la transformation inverse
Sami Gazzah 2009 201
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 202
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 203 Sami Gazzah 2009 204
IIV Interpolation bilineacuteaire
15122010
35
Sami Gazzah 2009 205
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 206
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 207
IIV Interpolation bilineacuteaire exemple
Sami Gazzah 2009 208
IIV Interpolation bicubique
Sami Gazzah 2009 209
exemple
Sami Gazzah 2009 210
Chapitre 8
Geacuteneacuteration de segments de
droite et de cercles en 2D
15122010
36
Sami Gazzah 2009 211
Infographie 2D besoin de dessiner des primitives de
base (segments cercles hellip)
Espace discreacutetiseacute (pixels) il faut trouver un moyen pour
afficher des segments ou des cercles
I Segments 2D cercles1 Introduction
Comment trouver les pixels agrave allumer pour approximer au mieux une
droite ou un cercle
Algorithme rapide et preacutecisSami Gazzah 2009 212
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=ax+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ya
Sami Gazzah 2009 213
Rappelhellip
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=mx+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ym
Sami Gazzah 2009 214
Exemple
Sami Gazzah 2009 215
Agrave partir des coordonneacutees des 2 extreacutemiteacutes d‟un segmenthellip
Un algorithme simple
Boucle de x1 agrave x2 dx=1
ALLUME (x Arrondir(y))
Avec x2gtx1
Arrondir(y) = Arrondir(ax+b)
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Sami Gazzah 2009 216
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Choix de lrsquoaxehellip
Peu efficace
bullagrave chaque iteacuteration 1 multiplication (ou division) + 1 addition
+ 1 arrondi
15122010
37
Sami Gazzah 2009 217
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
DDA (Digital Differential Analyzer)
y et m doivent ecirctre des reacuteelsSami Gazzah 2009 218
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Calcul en entier (donc plus rapide)
Baseacute sur le choix entre deux points discrets deacutependant de leur
distance respective avec le point reacuteel ideacuteal
On simplifie le problegraveme en traitant drsquoabord le traceacute drsquoun segment
dans le 1er octant m infeacuterieur agrave1 et positif (0ltmlt 1)
Facilement geacuteneacuteralisable aux autres octants
Sami Gazzah 2009 219
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Traceacute d‟un segment dans le premier octant mlt1
On part d‟un point (xi yi) allumeacute
Sami Gazzah 2009 220
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
On ne calcule pas reacuteellement les distances rArr on veacuterifie si la diffeacuterence
entre les deux distances est positive ou neacutegative
Le signe de la longueur (d1-d2) deacutetermine s‟il faut allumer le pixel L ou H
L
H
Sami Gazzah 2009 221
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Comme m=ΔyΔx on multiplie cette diffeacuterence par Δx pour eacuteviter la
division
Mais que vaut p1
Sami Gazzah 2009 222
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
15122010
38
Sami Gazzah 2009 223
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Pour eacuteviter de calculer cette diffeacuterence pour chaque point on cherche
une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
Sami Gazzah 2009 224
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009 225
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009
Exercice
Tracer le segment de droite
pi xi yi
2 0 0
-6 1 1
6 2 1
-2 3 2
10 4 2
2 5 3
-6 6 4
6 7 4
-2 8 5
10 9 5
2 10 6
6
10
y
x
Sami Gazzah 2009 227
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
Sami Gazzah 2009 228
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
hellip interchanger les points hellip
Si |Δx| lt | Δy| on interchange le rocircle de x et y
15122010
39
Sami Gazzah 2009 229
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (1)
Sami Gazzah 2009 230
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (2)
Sami Gazzah 2009 231
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (3)
Sami Gazzah 2009 232
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Toujours baseacute sur le choix entre deux
points discrets deacutependant de leur
distance respective avec le point reacuteel
On travaille dans le 2e octant agrave partir
de (0r) ainsi pour un point (xi yi) le
prochain point sera
(xi+1 yi) ou (xi+1 yi-1)
Sami Gazzah 2009 233
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On calcule le prochain y et les diffeacuterences respectives avec les points
discrets de la faccedilon suivante
Le signe de pi nous dira si nous devons choisir le point lateacuteral ou le diagonal
Sami Gazzah 2009 234
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Encore une fois pour eacuteviter de calculer cette diffeacuterence pour chaque point on
cherche une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
15122010
40
Sami Gazzah 2009 235
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On considegravere 2 cas
Valeur initiale
Sami Gazzah 2009 236
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Sami Gazzah 2009 237
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Exemple centre = (00) et r = 3
Sami Gazzah 2009 238
Livres
Diane Lingrand Introduction au Traitement d‟Images Paris Editions Vuibert 2e
eacutedition 2008
Steven k Feiner James D Foley John F Hughes Richard l Phillips Andries
Vanam Introduction agrave l‟infographie Paris Editions Vuibert 2000
William K Pratt Digital Image Processing Willy-Inter-sciences 4th edition 2007
Eacuteric Incerti Compression dimage ndash Algorithmes et standards Vuibert 2003
Gilles Burel Introduction au traitement dimages ndash Simulation sous Matlab
Hermegraves 2001
Sites web
Cours de C Rougier (U Montreacuteal)
httpwww-etudiroumontrealca~rougiercift2730courshtml (cf chapitre 3)
Page wikipeacutedia sur JPEG (en anglais plus complegravete que celle en franccedilais)
httpenwikipediaorgwikiJPEG
Cours de P Courtellemont (Campus numeacuterique Espdon)
httppersouniv-lrfrpcourtelespadonsite_web
Applet de deacutemo par C G Jennings
httpcgjenningscatoyboxhjpegindexhtml
Cours de D Marshall (U Cardiff)
httpwwwcscfacukDaveMultimediaPDF
Reacutefeacuterences
Sami Gazzah 2009 239
Chapitre 9
introduction au
traitement
dimages avec OpenGL
Sami Gazzah 2009 240
OpenGL est une librairie graphique Elle a eacuteteacute creacutee par Silicon
Graphics et beacuteneacuteficie sur ces machines de lacceacuteleacuteration mateacuterielle
Elle est constitueacute d‟environ 200 fonctions graphiques
OpenGL est une bibliothegraveque de fonctions
Les fonctions sont de bas niveaux
La version actuelle est l‟ laquo OpenGL 41 raquo (deacutecembre 2010)
Principale caracteacuteristique indeacutependant du mateacuteriel et du systegraveme
d‟exploitation
Une impleacutementation libre de droits dOpenGL tregraves performante a eacuteteacute
eacutecrite par Brian Paul httpwwwmesa3dorg Et tout son code source
est accessible
Preacutesentation geacuteneacuterale
15122010
41
Sami Gazzah 2009 241
OpenGL propose des fonctions de bas niveaux
Primitives geacuteomeacutetriques points segments polygones
Les fonctions de haut niveaux sont deacuteveloppeacutees par l‟utilisateur ou
importeacutees par la librairie en amont d‟OpenGL
Primitives geacuteomeacutetriques complexes Sphegravere splines etc
Toutes les commandes et fonctions utilisent le preacutefixe gl
Exemple glColor2f()
Sami Gazzah 2009 242
Les Bibliothegraveques co-existant avec OpenGL
GLU OpenGL Utility Library contient les routines de bas niveau pour
geacuterer les matrices de transformation et de projection la facettisation des
polygones et le rendu de surface Les bibliothegraveques dextension du
systegraveme de fenecirctres permettent lutilisation du rendu OpenGL Il sagit de
GLX pour X Windows (fonctions ayant pour preacutefixe glX) et de WGL
pour Microsoft Windows (fonctions ayant pour preacutefixe wgl)
GLUT OpenGL Utility Toolkit est une boite agrave outils indeacutependante du
systegraveme de fenecirctrage eacutecrite par Mark
Kilgard pour simplifier la tacircche dutiliser des systegravemes diffeacuterents (fonctions
ayant pour preacutefixe glut)
Sami Gazzah 2009 243
Les primitives geacuteomeacutetriques d rsquoOpenGL
Les primitives sont deacutecrites par un bloc d‟instructions deacutelimiteacute par glBegin et glEnd
Ce bloc contient geacuteneacuteralement une liste de vertex Exemple
glBegin(GL_LINE_LOOP)
glVertex2f(-05 -05)
glVertex2f(05 -05)
glVertex2f(05 05)
glVertex2f(-05 05)
glEnd()
D‟autres attributs peuvent ecirctre speacutecifieacutes en chaque sommet
couleur normale coordonneacutee de texture etcSami Gazzah 2009 244
OpenGL est une machine agrave eacutetats
En modifiant les variables d‟eacutetats on peut changer le style de rendu
Sami Gazzah 2009 245
Exemple Honda Hippo (3dRendercom)
Placage de textures
bullL‟apparence et le toucher ( feel ) d‟une surface
bullUne image utiliseacutee pour deacutefinir les caracteacuteristiques d‟une surface
bullUne image multi-dimensionnelle qui est plaqueacutee sur un espace multi-
dimensionnel
Sami Gazzah 2009 246
15122010
42
Sami Gazzah 2009 247
Reacutefeacuterences openGL
Sami Gazzah 2009 248
Chapitre 10
introduction au
traitement
dimages avec OpenCV
Sami Gazzah 2009 249
Preacutesentation geacuteneacuterale
Quest-ce
Open Source Computer Vision Library
Bibliothegraveque open source de traitement des images numeacuteriques
Projet initieacute par Intel (en 1999)
Teacuteleacutechargeable sur httpsourceforgenetprojectsopencvlibrary
Fortement orienteacutee temps reacuteel
eacutecrite en C et C++
optimiseacutee pour les processeurs multi-cœurs
Multi-plateformes disponible pour Linux Windows et Mac OS X
Que contient-elle
Des fonctionnaliteacutes (structures et routines gt350 algos) de base et
avanceacutees pour bacirctir rapidement des applications autour de la vision par
ordinateur
Exemples dutilisation traitements de bas niveau (filtrage ) deacutetection
de visages reconnaissance et suivi dobjets en mouvement Sami Gazzah 2009 250
Fonctionnaliteacutes
Lectureeacutecriture dimages statiques et de seacutequences videacuteo
APIs de bas et moyen niveaux
Traitement des images binaires
Manipulations dimage (eacutechantillonnage (sampling) reacutegion dinteacuterecirct (ROI)
redimensionnement (resizing) rotation deacuteformation (warping) )
Deacutetection de contours de lignes de coins (edge detection)
Traitements multi-eacutechelles (multiscale processing)
Transformeacutees (Fourier cosinus discregravete )
Modules de haut niveau
Deacutetection reconnaissance et suivi (tracking) de visages
Flot optique (estimation du mouvement) (optical flow)
Calibrage (calibration) de la cameacutera
Mise en correspondance steacutereacuteoscopique (stereo matching)
IA et apprentissage par ordinateur (machine learning)
3D mise en correspondance (registration)
Sami Gazzah 2009 251
Modules principaux
CxCore
Types de base pour manip dimages (ex struct image point isin cxtypesh)
Structures dynamiques (listes files graphes arbres) et persistantes (LE)
Manipulations de matrices meacutethodes de lalgegravebre lineacuteaire et statistiques
Dessin en surimpression (overlay) (ex eacutetiquetage)
Cv
Traitement dimage calibrage cameacutera
Geacuteomeacutetrie algorithmique (triangulation )
Cvaux
Reconnaissance de visage
Code expeacuterimental et obsolegravete
Autres (dans otherlibs)
HighGUI ES videacuteos curseurs fenecirctrage
ML classification regroupement (clustering)Sami Gazzah 2009 252
OpenCV premiers programmesBibliothegraveque OpenCV
15122010
43
Sami Gazzah 2009 253
Livre
G Bradski amp A Kaehler laquo Learning OpenCV raquo OReilly Press (2008)
codes sources httpexamplesoreillycom9780596516130
Ressources en ligne
Reacutefeacuterence complegravete httpopencvwillowgaragecomdocumentation
Wiki httpopencvwillowgaragecomwikiFullOpenCVWiki
bullPreacutesentation teacuteleacutechargement installation
bullavec CodeBlocks httpopencvwillowgaragecomwikiCodeBlocks
bullDeacutebuter avec OpenCV FAQ
Tutoriels
httpnchcdlsourceforgenetsourceforgeopencvlibraryippocvpdf
httpdaslmemdrexeledu~noahKuntzopenCVTut1html agrave Tut11html
httpwwwcognoticscomopencvservo_2007_series
Tutoriel sur la vision utilisant OpenCV (en franccedilais)
httpwwwsiteduzerocomtutoriel-3-8631-vision-par-ordinateurhtml
Reacutefeacuterences openCV
15122010
3
Sami Gazzah 2009 13
Vision robotique
Vision des robots
Robots autonomes
Intervention en milieu contamineacute
Sonde d‟exploration
Robotique meacutedical
Assistance au geste meacutedical
Sami Gazzah 2009 14
Imagerie aeacuterienne et satellitaire
Analyse des ressources terrestres
Meacuteteacuteo
Cartographie
Astronomie
Sami Gazzah 2009 15
Biomeacutetrie
Reconnaissance d‟empreintes digitales
Reconnaissance de visage
Reconnaissance d‟iris
Reconnaissance du style d‟eacutecriture du scripteur
Sami Gazzah 2009 16
Videacuteosurveillance
bull Deacutetection de mouvements et
reconnaissance de comportement
Analyse de plaque d‟immatriculation
Deacutetection automatique d‟incidents
Sami Gazzah 2009 17
Infographie
Ensemble de techniques permettant de creacuteer et de manipuler
des images syntheacutetiques
Produit final image syntheacutetique
Informatique Graphismeamp
Sami Gazzah 2009 18
15122010
4
1 Traitement d‟image Vs Infographie1 Traitement d‟image Vs Infographie
Sami Gazzah 2009 19
descriptif
Modegravele
descriptif
Infographie
(Informatique+Graphisme)
Reconnaissance de formes
(vision)
Image
Traitements
drsquoimages
Sami Gazzah 2009 20
Parmi les capteurs on peut distinguer
les capteurs thermiques (thermopiles)
les films photographiques
les capteurs photoeacutelectriques (photodiodes CCD
CMOShellip)
Le signal obtenu est caracteacuteriseacute par
sa dimension 1D 2D ou 3D
sa nature
2 Acquisition des images (1)
Sami Gazzah 2009 21
La repreacutesentation informatique d‟une image est
neacutecessairement discregravete alors qu‟une image est de nature
continue
Certains capteurs effectuent une discreacutetisation
La transformation d‟un signal analogique 2D neacutecessite
Une discreacutetisation de l‟espace c‟est lrsquoeacutechantillonnage
Une discreacutetisation des couleurs c‟est la quantification
2 Acquisition des images (2)
Sami Gazzah 2009 22
2 Acquisition des images (3)
Sami Gazzah 2009 23
2 Acquisition des images (4)
Sami Gazzah 2009 24
Signal lumineux Capteur CCD Signal eacutelectrique
2 Acquisition des images (5)
15122010
5
Sami Gazzah 2009 25
Pour numeacuteriser des images deux opeacuterations
eacutechantillonnage
quantification
3 Repreacutesentation drsquoune image numeacuterique
Sami Gazzah 2009 26
3 Repreacutesentation drsquoune image numeacuterique
Sami Gazzah 2009 27
Valeurs du deacutetail de l‟image Lena
Lena et un deacutetail de lrsquoimage
3 Repreacutesentation drsquoune image numeacuterique
Sami Gazzah 2009 28
(1) Maillage (2) Quantification
pixel (picture element)
Discreacutetisation de l‟espace 2D on deacutecoupe l‟image en pixels
3 Repreacutesentation drsquoune image numeacuterique
Sami Gazzah 2009 29
Une reacutesolution trop faible peut causer des problegravemes d‟aliasing
Apparition d‟escaliers sur les contours obliques
3 Repreacutesentation drsquoune image numeacuterique
Sami Gazzah 2009 30
3 Repreacutesentation drsquoune image numeacuterique
15122010
6
Sami Gazzah 2009 31
255
255
255
255
255
80
80
80
50
40
255
255
70
255
20
255
255
60
40
0
255
255
255
255
255
Image en niveaux de gris et sa repreacutesentation matricielle
Discreacutetisation de l‟espace des couleurs ou niveaux de gris
Une quantification trop faible peut causer des problegravemes de faux contours
3 Repreacutesentation drsquoune image numeacuterique
Sami Gazzah 2009 32
Pavage en quinconce Pavage carreacute Pavage hexagonale
Pavage triangulaire
3 Repreacutesentation drsquoune image numeacuterique3 1 Pavage ou tesselation
A chaque eacutechantillonneur (sommet du maillage) on associe une
surface eacuteleacutementaire dite paveacute ou tesselle
Les pixels sont geacuteneacuteralement arrangeacutes sous forme rectangulaire dans
un tableau 2D hellip il peut exister d‟autres pavages ou tesselations
Le pavage hexagonale
Le pavage triangulaire ou carreacute
Le pavage rectangulaire en quinconce
Sami Gazzah 2009 33
Certains pavage sont motiveacutes par
leurs adeacutequation avec le systegraveme d‟acquisition exemple le pavage
quinconce correspond agrave certains systegravemes d‟acquisitions embarqueacutes dans
les satellites (satellite spot 5)
des relations geacuteomeacutetriques telles que le voisinage nombre des pixels
voisins connexes (4 6 8 32hellip)
3 1 Pavage ou tesselationhellip choixhellipmotivation
3 Repreacutesentation drsquoune image numeacuterique
8 voisins4 voisins 6 voisins
Sami Gaz 29 oct 2010 34Source httpwwweoportalorgdirectorypres_SPOT5html
systegravemes drsquoacquisitions du
satellite spot 5
Introduction du Super-Mode permet la
creacuteation d‟une image agrave 25 megravetres de
reacutesolution agrave partir de deux images agrave 5 megravetres
(acquises simultaneacutement avec un demi-pixel
de deacutecalage)
Sami Gazzah 2009 35
Pour un ordinateur une image rArr ensemble de pixels
Un pixel possegravede une valeur scalaire vecteur hellip
Ordre de grandeur
o si un pixel est codeacute sur 8 bits rArr 28=256 couleurs ou niveau de gris
o si helliphelliphelliphelliphellipsur 16 bits rArr 216=65 536 couleurshellipplus d‟espace
o helliphelliphelliphelliphelliphelliphelliphellip24 bits rArr 224=16 777 216 couleurshellipencore ++
3 Repreacutesentation drsquoune image numeacuterique3 2 Codage des pixels
Sami Gazzah 2009 36
3 Repreacutesentation drsquoune image numeacuterique3 3 Distance entre pixels
Diffeacuterents distances entre 2 points P(ij) et P(kl) peuvent ecirctre utiliseacutees
i
j
l
k
1 Distance euclidienne
+ Cette distance ne privilegravege
aucun axe
22 )()()()(( jliklkPjiP
15122010
7
Sami Gazzah 2009 37
3 Repreacutesentation drsquoune image numeacuterique3 3 Distance entre pixels
Diffeacuterents distances entre 2 points P(ij) et P(kl) peuvent ecirctre utiliseacutees
i
j
l
k2 Distance blocks
Cette distance est appeleacute eacutegalement
laquo Manhatten distance raquo
il faut contourner les blocs
d‟habitations pour relier deux points
Manhatten city NY Sami Gazzah 2009 38
3 Repreacutesentation drsquoune image numeacuterique3 3 Distance entre pixels
Diffeacuterents distances entre 2 points P(ij) et P(kl) peuvent ecirctre utiliseacutees
i
j
l
k
3 Distance tour d‟eacutechiquier
Sami Gazzah 2009 39 Sami Gazzah 2009 40
4 Formats drsquoimages
Une image vectorielle est repreacutesenteacutee par des formes geacuteomeacutetriques simples
Ligne point de deacutepart point d‟arriveacutee hellip
Triangle 3 sommets la couleur du contour la couleur inteacuterieure
(remplissage) hellip
Ex PAO (publication assisteacutee par ordinateur) DAO (dessin assisteacute par
ordinateur) etc
Une image matricielle est repreacutesenteacutee par des matrices de pixels Bitmap
(image en mode point)
Ex image en niveaux de gris ou couleurs de type photo GIF PCX BMP
JPEG PPM PGMhellip
4 1 Image vectorielle Vs Image matricielle
Sami Gazzah 2009 41
4 Formats drsquoimages4 1 Images vectorielles Vs Images matricielles
Images vectorielles Images matricielles
Avantages Inconveacutenients Avantages Inconveacutenients
Peu de place en
meacutemoire
Peut devenir gros
pour une image
complexe
Aucun calcul pour
l‟affichage
Peuvent occuper
beaucoup d‟espace
meacutemoire
Redimensionnement
sans perte
d‟informations
Beaucoup de calculs
pour l‟affichage
La complexiteacute de
l‟image n‟influe pas
sur sa taille
Aucun aliasing si on
manipule l‟objet
graphique
Sami Gazzah 2009 42
4 Formats drsquoimages4 2 Stockage des images
o Pour la meacutemorisation des images sur disque meacutemoire on stocke les informations
concernant les image dans un en-tecircte puis les donneacutees (valeurs de pixels)
o L‟en-tecircte contient la largeur et la hauteur de l‟image aussi on peut ajouter d‟autres
informations telles que le type de donneacutees l‟auteur la datehellip
o Pour certains formats l‟en-tecircte et les donneacutees sont stockeacutes dans 2 fichiers
diffeacuterents
o Les donneacutees sont souvent stockeacutees dans l‟ordre des pixels de gauche agrave droite et
de haut en bas
o Les anciens formats sont simples et tregraves facile agrave lire et agrave eacutecrire
bull PBM pour des images binaires
bull PGM pour des images en niveaux de gris
bull PPM pour des images couleurs
o Les formats les plus courants sont GIF PCX BMPTIFF et JPEG
15122010
8
Sami Gazzah 2009 43
4 Formats drsquoimages4 2 Stockage des images
421 format PBM (Portable Bit Map)
Nombre de colonnes=10
Nom
bre
de c
olon
nes
=10
P1 signifie qursquoil srsquoagit drsquoun format PBM et que les donneacutees sont stockeacutees en ASCII signifie qursquoil srsquoagit drsquoune ligne de commentaire
Sami Gazzah 200944
4 Formats drsquoimages4 2 Stockage des images
421 format PGM(Portable Gray Map)
P2 signifie qursquoil srsquoagit drsquoun format PGM et que les donneacutees sont stockeacutees en ASCII
Sami Gazzah 200945
4 Formats drsquoimages4 2 Stockage des images
421 format PPM(Portable Pixel Map)
P3 signifie qursquoil srsquoagit drsquoun format PPM et que les donneacutees sont stockeacutees en ASCII Les valeurs des pixels sont donneacutees pixel par pixel
Sami Gazzah 2009 46
Sami Gazzah 2009 47
5 Eleacutements de Colorimeacutetrie
Un prisme seacutepare la lumiegravere blanche en ses couleurs
Sami Gazzah 2009 48
6 Les systegravemes de repreacutesentation des couleurs
Kunt a deacutemontreacute qu‟en combinant trois longueurs drsquoondes particuliegraveres il est
possible de syntheacutetiser presque toutes les couleurs existantes Les trois
couleurs de base sont dites laquo couleurs primaires raquo Une couleur peut donc ecirctre
repreacutesenteacutee dans un espace agrave trois dimensions Il en existe plusieurs
- Systegraveme RGB (Red Green Blue)
- Systegraveme CMY (Cyan Magenta Yellow)
- Systegraveme XYZ
- Systegraveme HLS (Hue Magenta Saturation)
Image couleur et sa repreacutesentation matricielle
15122010
9
Sami Gazzah 2009 49
Images couleurs (24 bits)
Lrsquoespace couleur Rouge Vert Bleu (RGB)
Sami Gazzah 2009 50
Valeur R Valeur V Valeur BCouleur
correspondanteCommentaires
0 0 0 noir
0 0 255 bleu
0 255 0 vert
255 0 0 rouge
128 128 128
couleur
intermeacutediaire
correspondant agrave
un gris
255 255 255 blanc
Sami Gazzah ISITCom 200951
Exemple de deacutecomposition drsquoune image couleur en 3 plans de couleur
(a) image originale (b)canal rouge (c)canal vert (d)canal bleu
(b)(a)
(c) (d)
Sami Gazzah 2009 52
Lrsquoespace couleur Cyan Magenta et Jaune (GMJ)
bull les couleurs primaires CMJ sont ici les compleacutementaires des RVB
bull utiliseacute par certaines imprimantes couleurs agrave jet dencre
bull les diffeacuterentes couleurs sont obtenues par soustraction du blanc
Sami Gazzah 2009 53
Le principe de lespace HSV est de caracteacuteriser les couleurs de faccedilon plus
intuitive conformeacutement agrave la perception naturelle des couleurs en termes de
1 teinte (Hue) intuitivement cest le nom quon utilisera pour deacutesigner la couleur
vert mauve etc Ideacutealement associeacute agrave une longueur donde
2 saturation (Saturation)cest le taux de pureteacute de la couleur qui doit varier
entre la pureteacute maximale (couleur eacuteclatante) et lachromatisme (niveau de gris)
3 valeur (Value) cest la mesure de lintensiteacute lumineuse de la couleur qui doit
varier entre le noir absolu et le blanc
Images HSV
Composante valeur
Composante saturation
Composante teinte
Sami Gazzah 2009 54
Pour passer de la repreacutesentation initiale (RGB) agrave cette repreacutesentation on opegravere
de la maniegravere suivante
15122010
10
Sami Gazzah 2009 55
Quelques caracteacuteristiques drsquoimages numeacuteriques
La reacutesolution dune image = nombre de pixels par uniteacute de longueur de la
structure agrave numeacuteriser (dpi (dots per inches) ou ppp (pixel par pouce)
La reacutesolution du format de limage =nombre de pixels qui compose limage en
hauteur et en largeur (512 pixels par 512 pixels par exemple)
La taille des donneacutees pour une image (en bits) = Nlignes x Ncolonnes x B
La profondeur de bits = nombre de bits neacutecessaire pour repreacutesenter un pixel dans
l‟image numeacuterique
La dynamique dune image= leacutetendu de la gamme de couleurs 2nbre de bitspixels ndash 1
Le poids d‟une image numeacuterique est l‟espace meacutemoire qu‟elle occupe sur un
support de stockage numeacuterique = nombre de bits par pixel x nombre total de pixels
Sami Gazzah 2009 56
bullune image 200200 pixels en niveaux du gris fait un poids de
200200=40000 octets
bullimage de 200200 pixels en vraies couleurs (16 millions) (24 bits)
2002003= 120000 octets (117 Ko)
bull image de 200200 pixels en fausses couleurs (256 couleurs) (8 bits)
2002001= 40000 octets (39 Ko)
Taille des limages en pixels
Sami Gazzah 2009 57
Exercice drsquoapplication
Soit une image carreacutee au format PPM(ASCII) de 160 Ko
Quelles sont approximativement les dimensions de cette image si
on neacuteglige la taille de lrsquoen-tecircte
Quelle serait la taille du fichier si cette image eacutetait stockeacutee en
binaire
Remarques Le format PPM (Portable Pixel Map) concerne les
images couleurs Chaque pixel a pour valeur un triplet (RGB) et
chaque couleur est exprimeacutee par un caractegravere et un espace
Sami Gazzah 2009 58
Formats de fichiers dimages
Une image est un tableau de pixels
Une image est stockeacutee soit dans un fichier sous la forme de texte soit dans la
meacutemoire de lordinateur sous la forme dun vecteur
Sami Gazzah 2009 59
Les opeacuterations de bases concernant une image sont la lecture (fichier vers
meacutemoire) et leacutecriture (meacutemoire vers fichier) Les informations
neacutecessaires agrave la manipulation dune image sont
nombre de lignes
nombre de colonnes
format des pixels (bit niveaux de gris niveaux de couleurs)
compression eacuteventuelle
Il existe une multitude de formats de fichiers permettant de stocker ces
informations ainsi que le tableau des valeurs En particulier
Les formats simples fichiers textes comportant un entecircte contenant
les dimensions de limage et le format des pixels Exemples les formats
PNM (portable anymap) PBM (portable bitmap) PGM (prtrable
grayscalemap) PPM (portable pixmap) Les fichiers correspondants sont
constitueacutes des eacuteleacutements suivants Sami Gazzah 2009 60
1 Un nombre magique pour identifier les type du fichier P1 ou P4
pour PBM P2 ou P5 pour PGM et P3 ou P6 pour PPM
2 Un caractegravere despacement (blanc TABs Cs LFs)
3 La largeur de limage (valeur deacutecimale codeacutee en ASCII) suivie dun
caractegravere despacement la longueur de limage (valeur deacutecimale
ASCII) suivie dun caractegravere despacement
4 Uniquement pour PGM et PPM lintensiteacute maximum (valeur deacutecimale
comprise entre 0 et 255 codeacutee en ASCII) suivie dun caractegravere
despacement
5 Largeur x hauteur nombres Ces nombres sont soit des valeurs
deacutecimales codeacutees en ASCII et seacutepareacutees par des espacements dans le
cas des formats P1 P2 P3 soit directement les valeurs binaires sur 1
ou 2 octets dans le cas des formats P4 P5 P6 Dans ce dernier cas il
ny pas de caractegraveres despacement entre les valeurs
15122010
11
Sami Gazzah 2009 61
Chapitre 2
Transformations sur les images
Sami Gazzah 2009 62
Les transformations peuvent ecirctre classeacutees de la maniegravere suivante
bullTransformations ponctuelles
bullTransformations de voisinage
bullTransformations spectrales
bullTransformations morphologiques
Au cours du processus de traitement et drsquoanalyse lrsquoimage subit une seacuterie
de transformations
Introduction
Image sourceTransformationTransformation
TTImage transformeacutee
Sami Gazzah 2009 63
1 Transformations ponctuelles
A partir dune image source la nouvelle valeur du pixel deacutepend uniquement de
son ancienne valeur
Exemple seuillage ajustement luminositeacutecontraste opeacuterations algeacutebriques
opeacuterations logiques et arithmeacutetiques manip dhistogramme
1 Opeacuterations logiques et arithmeacutetiques
Les images opeacuterandes
doivent ecirctre de mecircme taille
peuvent ecirctre des images constantes
Exemples
addition soustraction
ET logique OU logique
Problegravemes
deacutebordements de [0 255]
normalisation Sami Gazzah 2009 64
Images en niveaux de gris ETOU logique bit agrave bit entre les 8 bits
codant les valeurs des pixels
Images binaires ETOU logique entre les pixels
Sami Gazzah 2009 65
Les opeacuterations logiques
bullET I(xy)=I1(xy) ET I2(xy) intersection logique
bullOU I(xy) = I1(xy) OU I2(xy) union logique
bullNOT I(xy) = NOT(I1(xy)
opeacuterations arithmeacutetiques
bullAddition I(xy)=I1(xy)+I2(xy)
bullSoustraction I(xy)=I1(xy)-I2(xy)
bullMultiplication
bullDivision par une constantehellip
Sami Gazzah 2009 66
Les opeacuterations logiques
15122010
12
Sami Gazzah 2009 67
Application
Masquage
Sami Gazzah 2009 68
Les Opeacuterations arithmeacutetiques
Addition dimages
Principe I(xy)=I1(xy)+I2(xy) pour tout pixel de coordonneacutees (xy)
Strateacutegies si deacutepassement de capaciteacute
bullDeacutecalage des valeurs dans [0 127] avant addition (perte du bit de poids faible)
bullSaturation I(xy) = min ( I1(xy)+I2(xy) 255)
bullPreacute-calcul des valeurs finales (theacuteoriques) minimale et maximale
puis recadrage de la dynamique
Utilisations principales
Augmentation de la luminance dune image (par addition dune constante ou
dune image avec elle-mecircme) et diminution du bruit dans une seacuterie dimages
))()((max
))()((min
21)(
max
21)(
min
yxIyxIi
yxIyxIi
Iyx
Iyx
))()((255
)( 21
minmax
yxIyxIii
yxI
Sami Gazzah 2009 69
Les Opeacuterations arithmeacutetiques
Soustraction dimages
Principe I(xy)=I1(xy)-I2(xy) pour tout pixel de coordonneacutees (xy)
Strateacutegies si deacutepassement de capaciteacute
bullSaturation I(xy) = max ( I1(xy) - I2(xy) 0)
bullDiffeacuterence absolue I(xy) = | I1(xy) - I2(xy) |
Utilisations principales
bullDiminution de la luminance dune image
bullDeacutetection de changements entre images
bulldeacutefauts (par comparaison avec une image de reacutefeacuterence)
bullmouvements (par comparaison avec une autre image de la seacutequence)
Sami Gazzah 2009 70
Rim Romdhaneet al AVSS10 rd the 7th IEEE International Conference on
Advanced Video and Signal-Based Surveillance Boston USA 2010
Sami Gazzah 2009 71
Addition et soustraction de deux images
Sami Gazzah 2009 72
Si on dispose de limage en niveau de gris et de limage binaire suivante
15122010
13
Sami Gazzah 2009 73
2 Identiteacute neacutegatif et Seuillage
Sami Gazzah 200974
2 Les opeacuterations geacuteomeacutetriques
Opeacuterations geacuteomeacutetriques sur une image en niveaux de gris
Sami Gazzah 2009 75
Une transformation de voisinage est telle que la nouvelle valeur
drsquoun pixel tient compte des pixels appartenant au voisinage du
pixel consideacutereacute
Le voisinage peut avoir une taille plus ou moins grande (3x3 5x5
7x7hellip) et il peut avoir une forme reacuteguliegravere (carreacute rectangle
hexagonehellip) ou bien une forme quelconque
3 Transformations de voisinage
Sami Gazzah 2009 76
Exemple de transformation de voisinage le
produit de convolution
dans le cas continu le produit de convolution de f par g est
deacutefini par
Dans le cas discret il est geacuteneacuteralement deacutefini sur un voisinage il
est donneacute par
Sami Gazzah 2009 77
Si on applique ceci agrave une image I1 de dimensions
finies et agrave moyenne de convolution K (K
Kernel=noyau) de dimension 3 x 3 les pixels de
lrsquoimage I1 obtenue par convolution de I2 par K ont
pour valeur
Sami Gazzah 2009 78
Nouvelle
image
Nouvelle valeur
de pixel21
1 11
1 111 11
Noyau
Nouvelle valeur de pixel =
9
22 2719
9 19
51 21 14Image
originale
111
111
111
9
1h
15122010
14
Sami Gazzah 2009 79
4-Transformations spectrales (1)
Transformeacutee de Fourier 2D (TF 2D)
- La TF est
Dans la cas 1D (Rappel)
Dans la cas 2D
- La TF inverse
- La TF est
- La TF inverse
Sami Gazzah 2009 80
4-Transformations spectrales (2)
Exemple des transformations spectrales transformeacutee de Fourier
Soit f(xy) deacutefinie par une matrice d‟eacutechantillons reacuteguliegraverement espaceacutes
N le nombre de lignes M nombre de colonnes
- La TF est deacutefinie par
- La TF inverse est deacutefinie par
Sami Gazzah 2009 81 Sami Gazzah 2009 82
Compression RLE (Run Length Encoding)
2 2 2 2 128 128 128 120 120 80 96 96 94 94 94 95 97 97 97 97
4 2 3 128 2 120 1 80 2 96 3 94 1 95 4 97
Utile quand il y a des reacutepeacutetitions dans la chaicircne agrave encoder
Exemple Formats BMP TIFF PCX (Paintbrush)
Sami Gazzah 2009 83
Chapitre 3
RESTAURATION DrsquoIMAGES
Sami Gazzah 2009 84
L‟acquisition s‟accompagne toujours d‟une distorsiondeacutegradation
Il existe diffeacuterentes sources de deacutegradation (bruit) d‟une image
bruit lieacute au contexte de lacquisition Bougeacute mauvaises conditions
d‟eacuteclairagehellip
bruit lieacute au capteur Capteur de mauvaises qualiteacutes mauvaise mise
au point etchellip
bruit lieacute agrave leacutechantillonnage Une mauvaise freacutequence
d‟eacutechantillonnage peut introduire dans l‟image des points blancs ou
noirs connus souvent sous l‟appellation laquo sel et poivre raquo
bruit lieacute agrave la nature de la scegravene Preacutesence de fumeacutee de nuage
etchellip
Il faut corriger l‟image par un proceacutedeacute algorithmique
15122010
15
Sami Gazzah 2009 85
Restauration des Images monochromatiques et des images
couleurs
Au deacutebut de l‟imagerie numeacuterique les algorithmes deacuteveloppeacutes eacutetaient
destineacutes aux images en niveaux de gris Avec les progregraves techniques et le
deacuteveloppement des outils informatiques le traitement des images
couleurs est devenu possible
bull Approche marginale
Sami Gazzah 2009 86
Approche vectorielle
Dans lapproche vectorielle le vecteur couleur est consideacutereacute globalement
et le traitement doit ecirctre alors reacuteellement vectoriel Il ny a pas dans ce cas
une eacutetape de fusion ou de seacuteparation explicite entre les diffeacuterentes
composantes couleur de lrsquoimage Dans ce cas la correacutelation entre les
diffeacuterentes composantes peut ecirctre prise en compte ce qui aboutit
geacuteneacuteralement agrave des reacutesultats meilleurs que ceux du traitement marginal
Sami Gazzah 2009 87
Rappel
Sami Gazzah 2009 88
Sami Gazzah 2009 89
Nouvelle
image
Nouvelle valeur
de pixel21
1 11
1 111 11
Noyau
Nouvelle valeur de pixel =
9
22 2719
9 19
51 21 14Image
originale
Sami Gazzah 2009 90
15122010
16
Sami Gazzah 2009 91
Lissage spatial tout en remplacent la valeur du pixel courant par la moyenne de
tous les pixels inclus dans un voisinage centreacute en ce point
Sami Gazzah 2009 92
Sami Gazzah 2009 93 Sami Gazzah 2009 94
En traitement d‟image les tailles des fenecirctres utiliseacutees pour le
filtrage meacutedian sont geacuteneacuteralement impaires 3 3 5 5 7 7
exemple
fenecirctre de 5 pixels en croix
Pour les fenecirctres de taille paire ( 2 K valeurs ) apregraves
ordonnancement croissant des valeurs prendre la moyenne des 2
valeurs centrales
valeur de sortie( Kiegraveme valeur ordonneacutee + (K+1)iegraveme valeur ordonneacutee )
2=
Sami Gazzah 2009 95 Sami Gazzah 2009 96
15122010
17
Sami Gazzah 2009 97
Image laquo Piegraveces raquo de reacutefeacuterence bruiteacutee ( bruit de type impulsionnel ) puis filtreacutee
avec un filtre moyenneur (33) et un filtre meacutedian (33)
Image de reacutefeacuterence Image bruiteacutee
Bruit
Le filtrage meacutedian est plus adapteacute que le filtrage
lineacuteaire pour reacuteduire le bruit impulsionnel
Observation
Comparaison filtre meacutedian et filtre moyenneur
Sami Gazzah 2009 99 Sami Gazzah 2009 100
Sami Gazzah 2009 101 Sami Gazzah 2009 102
Chapitre 4
REHAUSSEMENT DrsquoIMAGES
15122010
18
Sami Gazzah 2009 103
Introduction
Le preacutetraitement d‟image est l‟ensemble des opeacuterations effectueacutees sur
une image soit pour l‟ameacuteliorer soit pour la restaurer
Le preacutetraitement d‟une image vise soit agrave renforcer la ressemblance des
pixels soit au contraire agrave accentuer les diffeacuterences de pixels d‟une mecircme
reacutegion
Accroitre la seacuteparabiliteacute des reacutegions composant une scegravene revient agrave
augmenter les contrastes vu
On applique le rehaussement des images afin de faciliter l‟interpreacutetation
visuelle et la compreacutehension des images
Pour comprendre ce type de rehaussement il faut comprendre le concept
d‟histogrammeSami Gazzah 2009 104
Deacutefinition de lrsquohistogramme drsquoune image
L‟histogramme est un outil qui permet de comptabiliser le nombre
d‟occurrences de chacune des valeurs dans une image en niveaux de gris
Dans une image couleur il est neacutecessaire d‟utiliser plusieurs
histogramme sur chacune des composantes du systegraveme de repreacutesentation
de la couleur
Soit h l‟histogramme de l‟image I de dimension (w x h) h[i] repreacutesente
le nombre d‟occurrence de chaque niveau de quantification i La probabiliteacute
estimeacutee du niveau i dans une image I est
hw
ihip
][)(
Image de 256 256 pixels
codeacutes chacun sur 8 bitsPopulation de pixels pour chaque
niveaux de gris [0 255]
Pour chaque niveau de gris on compte le nombre de pixels s‟y reacutefeacuterant
Pour chaque niveau on trace le graphe en bacircton du nombre de pixels
(possibiliteacute de regrouper les niveaux proches en une seule classe)
Exemple drsquohistogramme pour une image en niveaux
de gris
0 50 100 150 200 250
0
200
400
600
800
1000
cameraman
Image laquo A raquo en
niveaux de gris
Matrice des valeurs de luminance
des pixels de lrsquoimage laquo A raquo
Histogramme
de lrsquoimage
laquo A raquo
2 2 2 2 2 2 2 2
2 0 0 0 0 0 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 0 0 0 0 0 2
2 2 2 2 2 2 2 2
Les niveaux 0 1 et 2 sont respectivement repreacutesenteacutes par 24 12 et 28 pixels
repreacutesentation de cette population de pixels sur lhistogramme
Limage laquo A raquo comporte 3 niveaux de gris diffeacuterents 0 1 et 2
Compter le nombre de pixels pour chaque niveau de gris agrave lrsquoaide de la
matrice des valeurs de luminance
Exemple simple de calcul drsquohistogramme pour une image
Image laquo A raquoValeurs de luminance de
laquo A raquo
Histogramme cumuleacute de
laquo A raquo
2 2 2 2 2 2 2 2
2 0 0 0 0 0 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 0 0 0 0 0 2
2 2 2 2 2 2 2 2
Calcul dun histogramme particulier faisant appel aux cumuls des niveaux de gris
Histogramme cumuleacute
Utile pour certains traitements dimage tels que lrsquoeacutegalisation
dhistogramme ( ameacutelioration de contraste)
Chaque bacircton cumule le nombre de pixels du niveaux de gris concerneacute et des
niveaux de gris infeacuterieurs les niveaux 0 1 2 sont donc repreacutesenteacutes
respectivement par 24 36 et 64 pixels
Histogramme cumuleacute drsquoune image L‟histogramme ne donne pas L‟histogramme ne donne pas
d‟informations sur la reacutepartitiond‟informations sur la reacutepartition
Trois images diffeacuterentes ayant un mecircme histogramme
15122010
19
Modification de lrsquohistogrammeModification de lrsquohistogramme
On appelle dynamique des niveaux de gris lintervalle [nminnmax] de
niveaux de gris dans lequel sont compris tous les pixels de limage
Le but de la modification dhistogramme modifier chaque niveau de
gris pour accroicirctre le contraste On modeacutelise cette transformation par
leacutequation Irsquo(ij) = g(I(ij)) ougrave g est la fonction de contraste
Chaque transformation sera deacutecrite par une courbe repreacutesentant la
relation entre un niveau de gris de limage de deacutepart (abscisse) et le
niveau qui lui correspond dans limage ameacutelioreacutee (ordonneacutee)
Sami Gazzah 2009 109
Masquage de zones Masquage de zones Extraction d‟une Extraction d‟une
fenecirctre d‟intensiteacutefenecirctre d‟intensiteacute ((slicingslicing intensiteacute)intensiteacute)
Cette transformation consiste agrave remplacer un intervalle de niveaux
de gris par du blanc (nmax) par du noir (nmin) ou par une valeur
intermeacutediaire du niveau de gris
Sami Gazzah 2009 110
Courbes repreacutesentant de gauche agrave droite lextraction dune fenecirctre dintensiteacute et le masquage blanc et noir de lintervalle [ab]
n-1
n-1
0 n-1
n-1
0a ab b n-1
n-1
0 a b
Sami Gazzah 2009 111
Exemples de Masquage de zonesInversion de la dynamiqueInversion de la dynamique
But produire le neacutegatif d‟une image
donneacutee
Sami Gazzah 2009 112
Sami Gazzah 2009 113
Etirement drsquohistogramme
Sami Gazzah 2009 114
Etirement drsquohistogramme
Augmentation du contraste par eacutetirement d‟histogramme
15122010
20
Sami Gazzah 2009 115
Eacutegalisation dhistogramme
But ameacutelioration du contraste
Distribution uniforme des niveaux de gris
Elle se deacutefinit agrave laide de lhistogramme cumuleacute de limage hc(n)
qui repreacutesente le nombre de pixels de limage dont le niveau de
gris est infeacuterieur ou eacutegal agrave n
Deacutefinition de la transformation deacutegalisation dhistogramme soit
I le niveau de gris dun pixel de deacutepart le niveau de gris de limage
darriveacutee I‟ sera
Sami Gazzah 2009 116
Sami Gazzah 2009 117
Effet de lrsquoeacutegalisation drsquohistogramme
Sami Gazzah 2009 118
Augmentation du contraste exemples et comparaison
Original Eacutetirement d‟histogramme Eacutegalisation
Le rehaussement du contraste est plus marqueacute avec l‟eacutegalisation
d‟histogramme autorisant la deacutetection de structures situeacutees dans
l‟ombre
Sami Gazzah 2009 119
Chapitre 5
SEGMENTATION DrsquoIMAGES
Sami Gazzah 2009 120
Une image est geacuteneacuteralement composeacutee d‟objets L‟analyse de cette
image neacutecessite l‟identification de ces objets
La segmentation dimages est lun des problegravemes phares du traitement
dimages Elle consiste agrave partitionner limages en un ensemble de
reacutegions connexes Linteacuterecirct de ces reacutegions est de pouvoir ecirctre
manipuleacutees ensuite via des traitements de haut niveau pour extraire
des caracteacuteristiques de forme de position de taille etc
Introduction
15122010
21
Sami Gazzah 2009 121 Sami Gazzah 2009 122
Meacutethodes statistiquesSegmentation par Histogrammes
Sami Gazzah 2009 123
Meacutethodes statistiquesSeacutelection Reacutecursive sur Histogrammes
Ohlander Price et Reddy (1978)
Sami Gazzah 2009 124
Segmentation par approche contourIntroduction
Le contour est deacutefini comme le lieu des points connexes qui
possegravedent une forte transition d‟intensiteacute lumineuse ou de texture Le
traitement qui vise agrave l‟obtenir est appeleacute extraction de contour on
parle aussi de deacutetection de contour
Le processus d‟extraction de contour peut ecirctre deacutecomposeacute en
plusieurs eacutetapes distinctes que nous allons les deacutetailler comme suit
- La mise en eacutevidence des contours
- L‟extraction des contours
- La fermeture des contours
Sami Gazzah 2009 125
Segmentation par approche contourLa mise en eacutevidence des contours
Elle s‟obtient par une diffeacuterentiation de l‟image et elle peut
s‟appliquer agrave des images binaires ou non le but de la deacutetection de
contours est d‟obtenir dans un premier temps une image binaire ougrave
chaque contour est d‟eacutepaisseur 1 et sans discontinuiteacute
rehausser le contour
suivre le contour
les points du contour correspondent au maximum en valeur absolue
de la deacuteriveacutee primaire de l‟image on obtient alors un gradient ou au
passage par zeacutero de la deacuteriveacutee seconde de l‟image on obtient alors
un laplacien
Sami Gazzah 2009 126
Segmentation par approche contourLa mise en eacutevidence des contours
La deacutetection de contours peut ecirctre reacutealiseacutee gracircce agrave des filtres
dont les coefficients ont eacuteteacute soigneusement choisis Nous
aborderons dans cette preacutesentation 3 filtres les filtres de
Prewitt Roberts et Sobel
Ce jeu de filtres (Prewitt Roberts et Sobel) est constitueacute d‟une
paire de filtres lineacuteaires qui deacutetectent le contours dans deux
directions orthogonales (vertical et horizontal)
15122010
22
Sami Gazzah 2009 127
Segmentation par approche contourFiltre de Perwitt
Les filtres de Perwitt sont les suivants
Filtre horizontal
Filtre vertical
111
000
111
h
101
101
101
v
Sami Gazzah 2009 128
Segmentation par approche contourFiltre de Perwitt
A partir d‟une image I on calcule Gh et Gv images
correspondant au filtrage de I par h et v Ces images
contiennent les contours horizontaux et verticaux
Si l‟on souhaite obtenir une image de contour unique ne tenant
pas compte de l‟orientation on calcule
Orientation du contour
Image binairehellipchoisir un seuil de deacutetection
22
vh GGG
)(vh
GGarctg
Sami Gazzah 2009 129
Segmentation par approche contourFiltre de Sobel
Les filtres de Sobel sont les suivants
Filtre horizontal
Filtre vertical
121
000
121
h
101
202
101
v
Sami Gazzah 2009 130
Segmentation par approche contourFiltre de Sobel
Sami Gazzah 2009 131
Segmentation par approche contourFiltre de Sobel
Sami Gazzah 2009 132
Segmentation par approche contourFiltre de Roberts
Les filtres de Roberts sont les suivants
Filtre diagonal
Filtre anti-diagonal
10
01h
01
10v
15122010
23
Sami Gazzah 2009 133
Segmentation par approche contourFiltre de Kirsch
Ce deacutetecteur utilise huit noyaux de convolution lui permettant de deacutetecter
des contours en fonction de huit directions agrave
15
335
305
335
1
d 15
333
305
355
2
d 15
333
303
555
3
d
15
333
503
553
4
d 15
533
503
533
5
d 15
555
503
333
6
d
15
555
303
333
7
d 15
355
305
333
8
d
Sami Gazzah 2009 134
Contours et Laplacien
Il s‟agit de calculer la deacuteriveacutee seconde de l‟image
Le Laplacien est tregraves sensible au bruit pour limiter l‟effet du bruit le
Laplacien est approximeacute par un masque qui effectue en mecircme temps
une opeacuteration de filtrage par une Gaussienne qui repreacutesente l‟eacutetape
de lissage de l‟image puis vient l‟application du laplacien Les masques
du Laplacien Gaussien sont preacutesenteacutes ci-apregraves
Segmentation par approche contour
Sami Gazzah 2009 135
Contours et Laplacien
Le contour est ensuite deacutetermineacute par la deacutetection des
passages par zeacutero du laplacien de l‟image
88888888888888
010
141
010
1h
111
101
111
2h
121
242
121
3h
Sami Gazzah 2009 136
Contours et Laplacien
Sami Gazzah 2009 137
Seuillage
Les filtres preacuteceacutedents nous fournissent des images des sauts ou
diffeacuterences d‟intensiteacute
Le seuillage permet d‟eacuteliminer des points en lesquels la diffeacuterence
d‟intensiteacute est tregraves faible
Le seuillage peut ecirctre pousser afin d‟obtenir une image binaire (TOR)
Le seuillage dans sa forme le plus simple ne tient pas compte de la
topologie et peut conserver un point bruiteacute isoleacute ou eacuteliminer une portion
de contour d‟intensiteacute faible
Sami Gazzah 2009 138
Seuillage par hysteacutereacutesis
c‟est une fonction agrave deux seuils un seuil bas et un seuil haut
Tout point dont le module de contour est au-dessus du seuil-haut est un
point de contour
Tout point dont le module de contour est au-dessous du seuil-bas n‟est
pas un point de contour
Les points de module entre le seuil-bas et le seuil-haut sont des points
de contour s‟il possegravede un point de contour dans leur voisinage
15122010
24
Sami Gazzah 2009 139
Seuillage par hysteacutereacutesis
seuil haut
Seuil bas
point sur contour
point hors contour
Seuillage par hysteacuterisais les points de lrsquoimage de contour de valeur
supeacuterieur au seuil haut sont des points de contours A partir de ces points de
contours le voisinage de la direction du contour sont examineacutes srsquoils sont de
valeur supeacuterieure au seuil bas ils sont ajouteacutes au points de contoursSami Gazzah 2009 140
Chapitre 6
Introduction aux
opeacuterateurs
morphomatheacutematique
Sami Gazzah 2009 141
1 Introduction
Les opeacuterateurs morphomatheacutematique (=Morphologie Matheacutematique)
permettent d‟ameacuteliorer les images de contours et apporter d‟autres
fonctionnaliteacutes
Ils ont eacuteteacute initialement appliqueacute sur des images NampB (Matheron et
Sarra1965) ensuite eacutetendus agrave des images en nivaux de gris par Doupherty
(1978)
Pour les appliquer sur des images couleurs on peut les appliquer
seacutepareacutement agrave chaque composante couleur et combiner les reacutesultats
Sami Gazzah 2009 142
Diffeacuterentes opeacuterations
eacuterosion dilatation
ouverture fermeture
Squelettisation
hellip
1 Introduction
Sami Gazzah 2009 143
1 Introduction
Dilatation
Ajouter un pixel sur les pourtours de la forme
boucher les trous
Erosion
Enlever un pixel sur les pourtours de la forme
les objets de taille infeacuterieure agrave celle de leacuteleacutement
structurant vont disparaicirctre
agrandit les trous
Sami Gazzah 2009144
1I Rappels sur les ensembles
L‟eacutegaliteacute
L‟inclusion
Lbdquointersection
L‟union
La diffeacuterence
La diffeacuterence symeacutetrique
La compleacutementariteacute E eacutetant un ensemble
servant de reacutefeacuterentielle
Dans ce qui suit les lettres majuscules deacutesignent des ensembles et les lettres
minuscules deacutesignent des eacuteleacutements appartenant aux ensembles
Sur les ensembles on deacutefinit les opeacuterations suivantes
15122010
25
Sami Gazzah 2009145
1I Rappels sur les ensembles
Sami Gazzah 2009146
1I Rappels sur les ensembles
Lois de De Morgan
Reacuteflexion La reacuteflexion d‟un ensemble A est deacutefinie par
Un ensemble symeacutetrique veacuterifiant ndashA=A C‟est le cas des cercles et des carreacute par
exemple
ccc YXYX )(
ccc YXYX )(
AaaA
A -A B -B
Sami Gazzah 2009147
1I Rappels sur les ensembles
Addition de Minkowski l‟addition d‟un eacuteleacutement x agrave un ensemble A par x est
deacutefinie par
Cette notion n‟est pas uniquement ensembliste elle nous oblige agrave deacutefinir un point
de reacutefeacuterence
On en deacuteduit l‟addition d‟un ensemble B agrave un ensemble A c‟est le reacutesultat de
l‟addition de chaque eacuteleacutement de B agrave A
L‟addition de Minkowski est commutative Elle est eacutegalement appeleacute dilatation
AaxaxAB
A
A
x
AxBxAaBaBbbABAC )()()(
le translateacute de X par b
Sami Gazzah 2009148
1I Rappels sur les ensembles
Eleacutement structurant les opeacuterations morphomatheacutematiques sont deacutefinis agrave
partir des ensemble B discrets appeleacute eacuteleacutement structurant Ces eacuteleacutement
permettent de deacutefinir le type de voisinage souhaiteacute
Addition de Minkowski d‟un ensemble A et d‟un ensemble B
BA
Sami Gazzah 2009149
1II Dilatation
Le reacutesultat de dilatation de lrsquoensemble A par lrsquoensemble B
est lrsquoaddition de Minkowski crsquoest lrsquoensemble des points tel
que lorsque B est centreacute sur un de ces points il y a une
intersection non vide entre A et B
Pour des images en niveaux de gris on obtient lrsquoimage
dilateacutee de la forme A en remplaccedilant tout pixel par le
maximum des intensiteacutes des voisins selon la forme B
Sami Gazzah 2009 150
1II Dilatation1 Image NampB
Soit k l‟eacuteleacutement structurant de taille (2k+1) x (2k+1) L‟algorithme de
dilatation est le suivant on parcourt tous les pixels de l‟image sauf les
bord de l‟image d‟eacutepaisseur k pour chaque pixel du fond rencontreacute s‟il
possegravede un voisin au sens de l‟eacuteleacutement structurant qui appartient agrave un
objet il prend le couleur de l‟objet si non il n‟est pas modifieacute
15122010
26
la dilatation (noteacutee ) drsquoune image monochrome laquo f raquo par un
eacuteleacutement structurant laquo B raquo est deacutefinie en terme de sous-graphe
bull f B = T [ Y ] = Supl l tel que (m n l) Y
bullY = U ( f ) U ( B )
En consideacuterant un eacuteleacutement structurant plan de valeur nulle sur son
support
( f B ) (P) = Max valeurs des pixels du voisinage du pixel P
1II Dilatation1 Image niveaux de gris
max
55 68 77 90 91 95 115 151 210
( f B ) (P) = 210
n
115 91 77
95 68 90
55 151 210
exemple
m
Image de reacutefeacuterence
Eacuteleacutement structurant
(8-connexiteacute)
liste ordonneacutee des valeurs du voisinage
- - -
-
-
-
-
-
1II Dilatation1 Image niveaux de gris
Exemples de filtrages morphologiques(eacuteleacutement structurant 33 complet)
Image de reacutefeacuterenceImage dilateacutee
morphologiquement
La dilatation en niveaux de gris accroicirct la luminance des
pixels entoureacutes de voisins plus lumineux
Observation
Sami Gazzah 2009154
VI Erosion
L‟eacuterosion est deacutefinie par
On deacutefinit la soustraction de Minkowski par
On a eacutequivalence entre eacuterosion et soustraction de Minkowski si B est
symeacutetrique (si B=-B)
D‟un point de vue binaire l‟eacuterode de A par B correspond agrave l‟ensemble
des points tels que si B est centre sur ce points B est entiegraverement inclus
dans A
AxBxBbbABAC )()(
)()( BbbABAC
Sami Gazzah 2009 155
VI Erosion1 Image NampB
on parcourt tous les pixels de l‟image sauf les bord de l‟image
d‟eacutepaisseur k pour chaque pixel du fond rencontreacute s‟il possegravede un
voisin au sens de l‟eacuteleacutement structurant qui appartient agrave un objet il
prend le couleur du fond si non il n‟est pas modifieacute
VI Eacuterosion drsquoune image en niveaux de gris
Lrsquoeacuterosion (noteacutee Ө ) drsquoune image monochrome laquo f raquo par un eacuteleacutement
structurant laquo B raquo est deacutefinie en terme de sous-graphe
bull f Ө B = T [ Y ] = Supl l tel que (m n l) Y
bullY = U ( f ) Ө U ( B )
Classiquement on considegravere un eacuteleacutement structurant plan de
valeur nulle sur son support
( f Ө B ) (P) = Min valeurs des pixels du voisinage du pixel P
15122010
27
VI Eacuterosion drsquoune image en niveaux de gris
min
68 90 91 95 151
( f Ө B ) (P) = 68
n
115 91 77
95 68 90
55 151 210
exemple
m
Image de reacutefeacuterence
ӨӨ
Eacuteleacutement structurant
(4-connexiteacute)
liste ordonneacutee des valeurs du voisinage
-
-
-
-
Exemples de filtrages morphologiques(eacuteleacutement structurant 33 complet)
Image eacuterodeacutee
Lrsquoeacuterosion en niveaux de gris reacuteduit la luminance des pixels
qui sont entoureacutes de voisins de moindre intensiteacute
Image de reacutefeacuterence
Observation
Sami Gazzah 2009 159
Eacuteleacutement structurant (a)
(4-connexiteacute)
-
-
-
-
Eacuteleacutement structurant (b)
(8-connexiteacute)
- - -
-
-
-
-
-
Exercice 1 Sur la mecircme image de deacutepart on reacutealise deux opeacuterations
de dilatations avec deux eacuteleacutements structurant diffeacuterents
Dilatation avec (a) Dilatation avec (b)
image de deacutepart
cas a L‟eacuteleacutement structurant est agrave 4-connexiteacute Chaque pixel
du support qui est eacutegal agrave la valeur 1 ou qui a l‟un de ses 4
voisins agrave la valeur 1 est mis agrave la valeur 1 apregraves filtrage
cas b L‟eacuteleacutement structurant est agrave 8-connexiteacute Chaque pixel
du support qui est eacutegal agrave la valeur 1 ou qui a l‟un de ses 8
voisins agrave la valeur 1 est mis agrave la valeur 1 apregraves filtrage
Dans les deux cas on observe qu‟une dilatation eacutelimine les
trous isoleacutes dans les objets et dilate le contour des objets en
tenant compte de l‟eacuteleacutement structurant
Sami Gazzah 2009 160
Exercice 1
Sami Gazzah 2009 161
Eacuteleacutement structurant (a)
(4-connexiteacute)
-
-
-
-
Eacuteleacutement structurant (b)
(8-connexiteacute)
- - -
-
-
-
-
-
Exercice 2 Sur la mecircme image de deacutepart on reacutealise deux opeacuterations
d‟eacuterosions avec deux eacuteleacutements structurant diffeacuterents
Erosion avec (a) Erosion avec (b)
image de deacutepart
cas a L‟eacuteleacutement structurant est agrave 4-connexiteacute (origine agrave 4 voisins)
Chaque pixel du support qui a la valeur 0 ou qui a l‟un de ses 4
voisins agrave la valeur 0 est mis agrave la valeur 0 apregraves filtrage
cas b L‟eacuteleacutement structurant est agrave 8-connexiteacute Chaque pixel du
support qui a la valeur 0 ou qui a l‟un de ses 8 voisins agrave la valeur 0
est mis agrave la valeur 0 apregraves filtrage
Dans les deux cas on observe qu‟une eacuterosion eacutelimine les pixels
isoleacutes sur le fond et eacuterode le contour des objets
Sami Gazzah 2009 162
Exercice 2
15122010
28
ConclusionsConclusions
Erosion
les objets relieacutes entre eux vont ecirctre seacutepareacutes
Une eacuterosion de taille n peut se reacutealiser en reacutepeacutetant une
eacuterosion n fois avec un eacuteleacutement structurant de taille 1 ou en
appliquant une seule eacuterosion avec un eacuteleacutement structurant
de taille n
Dilatation
des objets sont situeacutes agrave une distance moins grande que la taille
de leacuteleacutement structurant il vont fusionner
Sami Gazzah 2009 163 Sami Gazzah 2009 164
Sami Gazzah 2009 165
Elimine pixels isoleacutes sans inteacuterecirct
L‟ouverture (opening) consiste agrave une eacuterosion suivi d‟une dilatation
Les petites structures et deacutetail fins disparaissent et ne sont pas recreacuteeacutees
lors de la dilation Une opeacuteration d‟ouverture est ainsi inteacuteressante pour
eacuteliminer les petits morceaux de contours bruiteacutes dans une image de
contours
V Ouverture et fermeture1 Ouverture
BBABAC )(
Sami Gazzah 2009 166
V Ouverture et fermetureII Fermeture
La fermeture (closing) consiste agrave une dilatation suivi d‟une eacuterosion
Les structures proches fusionnent lors de la dilation mais seules les
fusions ponctuelles disparaissent agrave nouveau lors de l‟eacuterosion Une
opeacuteration de fermeture est ainsi inteacuteressante pour boucher les petits
trous
Sami Gazzah 2009 167 Sami Gazzah 2009 168
Exercice 3 Sur l‟image de deacutepart on reacutealise une opeacuteration de
fermeture binaire par l‟eacuteleacutement structurant 4-connexiteacute Conclusions
Eacuteleacutement structurant
(4-connexiteacute)
-
-
-
-Fermeture = dilatation puis eacuterosion
Image de deacutepart Image dilateacutee Image dilateacutee puis eacuterodeacutee
Combler les trous
Reacutetablir les jonctions
tout en preacuteservant la taille
15122010
29
Sami Gazzah 2009 169
Exercice 4 Sur l‟image de deacutepart on reacutealise une opeacuteration
d‟ouverture binaire par l‟eacuteleacutement structurant 4-connexiteacute Conclusions
Eacuteleacutement structurant
(4-connexiteacute)
-
-
-
-Ouverture = eacuterosion puis dilatation
Image de deacutepart Image eacuterodeacutee Image eacuterodeacutee puis dilateacutee
Supprimer les fausses alarmes
Seacuteparer les objets accoleacutes
tout en preacuteservant la tailleSami Gazzah 2009 170
Appliquer les filtres suivants sur limage donneacutee Quelles sont les valeurs choisies
aux bords de limage et quelles sont les modifications visuelles
a) filtre moyenneur M3acute3(19)
b) eacuterosion
c) dilatation
d) meacutedian
e) fermeture
f) ouverture
Exercice 5
Sami Gazzah 2009 171
IV Amincissement et Squelettisation
La squelette (skeleton) d‟une forme est l‟axe meacutedian L‟inteacuterecirct de cette
opeacuteration est dans
La reconnaissance de caractegraveres
Deacutetection des reacuteseaux routiers
La planification de trajectoirehellip
Une meacutethode couramment employeacutee est une amincissement reacutepeacuteteacute
jusqu‟agrave le convergence (n‟apporte aucune modification)
Sami Gazzah 2009 172
IV Amincissement et Squelettisation1 Opeacuteration Tout Ou Rien laquoHit or Missraquo
Cette transformation est deacutefinie par
leacuteleacutement structurant eacutetendu est centreacute sur chaque pixel de limage
comme pour les opeacuterations ensemblistes
la question poseacutee est est ce que le contenu de limage est identique au
contenu de leacuteleacutement structurant
si la reacuteponse est oui le pixel reacutesultant vaut 1 si non il vaut 0
Une application permet de deacutetecter des configurations locales
particuliegraveres dans une image
plusieurs masques peuvent ecirctre utiliseacutes indeacutependamment les images
reacutesultat eacutetant ensuite combineacutees par une opeacuteration ou
)()( cc BABABA
Bc-
est le compleacutementaire
local de B
Sami Gazzah 2009 173
IV Amincissement et Squelettisation1 Opeacuteration laquoHit or Missraquo
Exemple dopeacuteration Hit or Miss deacutetection des coinsSami Gazzah 2009 174
IV Amincissement et Squelettisation1 Amincissement (thinning)
bull La transformation TOR nous permet eacutegalement de deacutefinir
l‟amincissement
bullL‟amincissement consiste agrave soustraire limage reacutesultat dun hit or miss de
limage initiale
bull des amincissements successifs conduisent au squelettisation
)()( BAAAthin
15122010
30
Sami Gazzah 2009 175
IV Amincissement et Squelettisation1I Squelettisation
Appliquer des amincissements successifs puis s‟arrecircter lorsque l‟amincissement
n‟apporte plus de modification C‟est une eacuterosion particuliegravere ougrave les pixels sont
supprimeacutes agrave la condition quils ne provoquent pas la seacuteparation dune reacutegion en
deux
Sami Gazzah 2009 176
IV Amincissement et Squelettisation1I Squelettisation
Sami Gazzah 2009 177
Chapitre 7
Transformations
geacuteomeacutetriques 2D
Sami Gazzah 2009 178
I Introduction
On entend par transformation 2D l‟ensemble des transformations du
plan pouvant ecirctre appliqueacutees aux pixels de l‟image sans consideacuteration
de l‟intensiteacute
Par exemples
Reacuteduction agrandissement
Deacuteformation d‟image
Recalage d‟une photo scanneacutee
Recaler des images que l‟on veut comparer
Mosaiumlque d‟images
Sami Gazzah 2009 179
I Transformations euclidiennes
Elles preacuteservent les distances et les angles
Elles sont les compositions de translations et de rotations
1) Translation
Ougrave Tx et Ty sont les deacuteplacements en x et en y de la translation
y
x
Tyy
Txx
Sami Gazzah 2009 180
2) Rotation
15122010
31
Sami Gazzah 2009 181 Sami Gazzah 2009 182
3) Remarques (1)
Sami Gazzah 2009 183
3) Remarques (2)
Sami Gazzah 2009 184
II Homotheacuteties
Changement deacutechelle par rapport agrave lorigine (scaling zoom)
Ougrave Sx et Sy sont les facteurs dagrandissement ( gt1) ou de
reacuteduction ( lt1) en x et en y
ySy
xSx
y
x
Sami Gazzah 2009 185
II Homotheacuteties
Sami Gazzah 2009 186
II Homotheacuteties
15122010
32
Sami Gazzah 2009 187
III Reacuteflexions
Reacuteflexions par rapport aux axes (flip miroir)
Sami Gazzah 2009 188
IV Cisaillement
Cisaillement (glissement shearing) on eacutetire suivant un ou plusieurs axes
Sami Gazzah 2009 189
Transformations inverses
Sami Gazzah 2009 190
Repreacutesentation Matricielle
IV Autres (reacuteflexions miroirs et flips)
Sami Gazzah 2009 191
Interpolation Directe
Sami Gazzah 2009 192
oDifficile de distribuer le niveau de gris sur les pixels voisins
oOn n‟a pas la certitude que tous les pixels de l‟image
transformeacutee recevront une valeur =gt ldquotrousrdquo
15122010
33
Interpolation Inverse
Sami Gazzah 2009 193
o Interpolation de la valeur du pixel agrave partir des voisins plus
facile
oAucun ldquotrourdquo car on parcourt tous les pixels de l‟image
transformeacutee Sami Gazzah 2009 194
V Objet vectoriel - Objet bitmap
Objet vectoriel
Essentiellement on transforme
les sommets (ou points de
controcircle) et on retracehellip
Objet ldquobitmaprdquo
On doit calculer la nouvelle
position de chaque pixel De plus on
doit geacuteneacuteralement interpoler les
niveaux de gris (couleurs)hellip
Sami Gazzah 2009 195
IV Assignation des niveaux de gris
Neacutecessaire car la position d‟un pixel transformeacute n‟est pas entiegraverehellip
Plusieurs meacutethodes
Interpolation au plus proche voisin
Interpolation bilineacuteaire
Interpolation bicubique
Autres types d‟interpolation
Sami Gazzah 2009 196
IV Assignation des niveaux de gris
Linterpolation de limage cest ce qui arrive lorsquon redimensionne
une image numeacuterique ou quon la redimensionne avec une distorsion
quon change la perspective etc
Exemple 1
Image originale (sans interpolation)
Image agrandie et donc interpoleacutee
Perte de netteteacute due agrave linterpolation
Sami Gazzah 2009
197
IV Assignation des niveaux de gris
Exemple 2 recadrage dimage
Nous allons agrandir cette image agrave 180
Il va donc nous manquer des informations lagrave ougrave lon va creacuteer des
pixels pour agrandir limage
Reacutesultat sans interpolation le logiciel agrandit simplement les pixels
Reacutesultat avec interpolation le logiciel calcule une couleur intermeacutediaire
pour chaque nouveau pixel
Sami Gazzah 2009
198
IV Assignation des niveaux de gris
Image originale
Interpolation au plus
proche voisin
Interpolation
bilineacuteaireInterpolation
bicubique
15122010
34
Sami Gazzah 2009 199
IIV Interpolation au plus proche voisin
Cest lalgorithme le plus rapide agrave calculer
Prend en compte dans le calcul que le pixel le plus proche du point
agrave interpoler
Consiste tout simplement agrave agrandir chaque pixel
Exemple Interpolation du plus proche voisin par copie des pixels
Copie de chaque colonne et de chaque rang
23 20
25 28
23 23
23 23
20 20
20 20
25 25
25 25
28 28
28 28
Sami Gazzah 2009 200
IIV Interpolation bilineacuteaire
Fonction bilineacuteaire de 4 pixels voisins ( en 2 D )
i-1 i i+1
i-1 i-12 i i+12 i+1 i+32
yi=xiYi+12=(xi+xi+1)2
Problegraveme pour le dernier point
Extrapolation lineacuteaire de
2 xn-xn-1
Principe 1D
attribuer agrave chaque point cible une
combinaison lineacuteaire des quatre
points sources les plus proches par
la transformation inverse
Sami Gazzah 2009 201
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 202
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 203 Sami Gazzah 2009 204
IIV Interpolation bilineacuteaire
15122010
35
Sami Gazzah 2009 205
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 206
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 207
IIV Interpolation bilineacuteaire exemple
Sami Gazzah 2009 208
IIV Interpolation bicubique
Sami Gazzah 2009 209
exemple
Sami Gazzah 2009 210
Chapitre 8
Geacuteneacuteration de segments de
droite et de cercles en 2D
15122010
36
Sami Gazzah 2009 211
Infographie 2D besoin de dessiner des primitives de
base (segments cercles hellip)
Espace discreacutetiseacute (pixels) il faut trouver un moyen pour
afficher des segments ou des cercles
I Segments 2D cercles1 Introduction
Comment trouver les pixels agrave allumer pour approximer au mieux une
droite ou un cercle
Algorithme rapide et preacutecisSami Gazzah 2009 212
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=ax+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ya
Sami Gazzah 2009 213
Rappelhellip
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=mx+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ym
Sami Gazzah 2009 214
Exemple
Sami Gazzah 2009 215
Agrave partir des coordonneacutees des 2 extreacutemiteacutes d‟un segmenthellip
Un algorithme simple
Boucle de x1 agrave x2 dx=1
ALLUME (x Arrondir(y))
Avec x2gtx1
Arrondir(y) = Arrondir(ax+b)
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Sami Gazzah 2009 216
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Choix de lrsquoaxehellip
Peu efficace
bullagrave chaque iteacuteration 1 multiplication (ou division) + 1 addition
+ 1 arrondi
15122010
37
Sami Gazzah 2009 217
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
DDA (Digital Differential Analyzer)
y et m doivent ecirctre des reacuteelsSami Gazzah 2009 218
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Calcul en entier (donc plus rapide)
Baseacute sur le choix entre deux points discrets deacutependant de leur
distance respective avec le point reacuteel ideacuteal
On simplifie le problegraveme en traitant drsquoabord le traceacute drsquoun segment
dans le 1er octant m infeacuterieur agrave1 et positif (0ltmlt 1)
Facilement geacuteneacuteralisable aux autres octants
Sami Gazzah 2009 219
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Traceacute d‟un segment dans le premier octant mlt1
On part d‟un point (xi yi) allumeacute
Sami Gazzah 2009 220
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
On ne calcule pas reacuteellement les distances rArr on veacuterifie si la diffeacuterence
entre les deux distances est positive ou neacutegative
Le signe de la longueur (d1-d2) deacutetermine s‟il faut allumer le pixel L ou H
L
H
Sami Gazzah 2009 221
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Comme m=ΔyΔx on multiplie cette diffeacuterence par Δx pour eacuteviter la
division
Mais que vaut p1
Sami Gazzah 2009 222
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
15122010
38
Sami Gazzah 2009 223
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Pour eacuteviter de calculer cette diffeacuterence pour chaque point on cherche
une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
Sami Gazzah 2009 224
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009 225
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009
Exercice
Tracer le segment de droite
pi xi yi
2 0 0
-6 1 1
6 2 1
-2 3 2
10 4 2
2 5 3
-6 6 4
6 7 4
-2 8 5
10 9 5
2 10 6
6
10
y
x
Sami Gazzah 2009 227
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
Sami Gazzah 2009 228
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
hellip interchanger les points hellip
Si |Δx| lt | Δy| on interchange le rocircle de x et y
15122010
39
Sami Gazzah 2009 229
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (1)
Sami Gazzah 2009 230
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (2)
Sami Gazzah 2009 231
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (3)
Sami Gazzah 2009 232
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Toujours baseacute sur le choix entre deux
points discrets deacutependant de leur
distance respective avec le point reacuteel
On travaille dans le 2e octant agrave partir
de (0r) ainsi pour un point (xi yi) le
prochain point sera
(xi+1 yi) ou (xi+1 yi-1)
Sami Gazzah 2009 233
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On calcule le prochain y et les diffeacuterences respectives avec les points
discrets de la faccedilon suivante
Le signe de pi nous dira si nous devons choisir le point lateacuteral ou le diagonal
Sami Gazzah 2009 234
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Encore une fois pour eacuteviter de calculer cette diffeacuterence pour chaque point on
cherche une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
15122010
40
Sami Gazzah 2009 235
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On considegravere 2 cas
Valeur initiale
Sami Gazzah 2009 236
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Sami Gazzah 2009 237
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Exemple centre = (00) et r = 3
Sami Gazzah 2009 238
Livres
Diane Lingrand Introduction au Traitement d‟Images Paris Editions Vuibert 2e
eacutedition 2008
Steven k Feiner James D Foley John F Hughes Richard l Phillips Andries
Vanam Introduction agrave l‟infographie Paris Editions Vuibert 2000
William K Pratt Digital Image Processing Willy-Inter-sciences 4th edition 2007
Eacuteric Incerti Compression dimage ndash Algorithmes et standards Vuibert 2003
Gilles Burel Introduction au traitement dimages ndash Simulation sous Matlab
Hermegraves 2001
Sites web
Cours de C Rougier (U Montreacuteal)
httpwww-etudiroumontrealca~rougiercift2730courshtml (cf chapitre 3)
Page wikipeacutedia sur JPEG (en anglais plus complegravete que celle en franccedilais)
httpenwikipediaorgwikiJPEG
Cours de P Courtellemont (Campus numeacuterique Espdon)
httppersouniv-lrfrpcourtelespadonsite_web
Applet de deacutemo par C G Jennings
httpcgjenningscatoyboxhjpegindexhtml
Cours de D Marshall (U Cardiff)
httpwwwcscfacukDaveMultimediaPDF
Reacutefeacuterences
Sami Gazzah 2009 239
Chapitre 9
introduction au
traitement
dimages avec OpenGL
Sami Gazzah 2009 240
OpenGL est une librairie graphique Elle a eacuteteacute creacutee par Silicon
Graphics et beacuteneacuteficie sur ces machines de lacceacuteleacuteration mateacuterielle
Elle est constitueacute d‟environ 200 fonctions graphiques
OpenGL est une bibliothegraveque de fonctions
Les fonctions sont de bas niveaux
La version actuelle est l‟ laquo OpenGL 41 raquo (deacutecembre 2010)
Principale caracteacuteristique indeacutependant du mateacuteriel et du systegraveme
d‟exploitation
Une impleacutementation libre de droits dOpenGL tregraves performante a eacuteteacute
eacutecrite par Brian Paul httpwwwmesa3dorg Et tout son code source
est accessible
Preacutesentation geacuteneacuterale
15122010
41
Sami Gazzah 2009 241
OpenGL propose des fonctions de bas niveaux
Primitives geacuteomeacutetriques points segments polygones
Les fonctions de haut niveaux sont deacuteveloppeacutees par l‟utilisateur ou
importeacutees par la librairie en amont d‟OpenGL
Primitives geacuteomeacutetriques complexes Sphegravere splines etc
Toutes les commandes et fonctions utilisent le preacutefixe gl
Exemple glColor2f()
Sami Gazzah 2009 242
Les Bibliothegraveques co-existant avec OpenGL
GLU OpenGL Utility Library contient les routines de bas niveau pour
geacuterer les matrices de transformation et de projection la facettisation des
polygones et le rendu de surface Les bibliothegraveques dextension du
systegraveme de fenecirctres permettent lutilisation du rendu OpenGL Il sagit de
GLX pour X Windows (fonctions ayant pour preacutefixe glX) et de WGL
pour Microsoft Windows (fonctions ayant pour preacutefixe wgl)
GLUT OpenGL Utility Toolkit est une boite agrave outils indeacutependante du
systegraveme de fenecirctrage eacutecrite par Mark
Kilgard pour simplifier la tacircche dutiliser des systegravemes diffeacuterents (fonctions
ayant pour preacutefixe glut)
Sami Gazzah 2009 243
Les primitives geacuteomeacutetriques d rsquoOpenGL
Les primitives sont deacutecrites par un bloc d‟instructions deacutelimiteacute par glBegin et glEnd
Ce bloc contient geacuteneacuteralement une liste de vertex Exemple
glBegin(GL_LINE_LOOP)
glVertex2f(-05 -05)
glVertex2f(05 -05)
glVertex2f(05 05)
glVertex2f(-05 05)
glEnd()
D‟autres attributs peuvent ecirctre speacutecifieacutes en chaque sommet
couleur normale coordonneacutee de texture etcSami Gazzah 2009 244
OpenGL est une machine agrave eacutetats
En modifiant les variables d‟eacutetats on peut changer le style de rendu
Sami Gazzah 2009 245
Exemple Honda Hippo (3dRendercom)
Placage de textures
bullL‟apparence et le toucher ( feel ) d‟une surface
bullUne image utiliseacutee pour deacutefinir les caracteacuteristiques d‟une surface
bullUne image multi-dimensionnelle qui est plaqueacutee sur un espace multi-
dimensionnel
Sami Gazzah 2009 246
15122010
42
Sami Gazzah 2009 247
Reacutefeacuterences openGL
Sami Gazzah 2009 248
Chapitre 10
introduction au
traitement
dimages avec OpenCV
Sami Gazzah 2009 249
Preacutesentation geacuteneacuterale
Quest-ce
Open Source Computer Vision Library
Bibliothegraveque open source de traitement des images numeacuteriques
Projet initieacute par Intel (en 1999)
Teacuteleacutechargeable sur httpsourceforgenetprojectsopencvlibrary
Fortement orienteacutee temps reacuteel
eacutecrite en C et C++
optimiseacutee pour les processeurs multi-cœurs
Multi-plateformes disponible pour Linux Windows et Mac OS X
Que contient-elle
Des fonctionnaliteacutes (structures et routines gt350 algos) de base et
avanceacutees pour bacirctir rapidement des applications autour de la vision par
ordinateur
Exemples dutilisation traitements de bas niveau (filtrage ) deacutetection
de visages reconnaissance et suivi dobjets en mouvement Sami Gazzah 2009 250
Fonctionnaliteacutes
Lectureeacutecriture dimages statiques et de seacutequences videacuteo
APIs de bas et moyen niveaux
Traitement des images binaires
Manipulations dimage (eacutechantillonnage (sampling) reacutegion dinteacuterecirct (ROI)
redimensionnement (resizing) rotation deacuteformation (warping) )
Deacutetection de contours de lignes de coins (edge detection)
Traitements multi-eacutechelles (multiscale processing)
Transformeacutees (Fourier cosinus discregravete )
Modules de haut niveau
Deacutetection reconnaissance et suivi (tracking) de visages
Flot optique (estimation du mouvement) (optical flow)
Calibrage (calibration) de la cameacutera
Mise en correspondance steacutereacuteoscopique (stereo matching)
IA et apprentissage par ordinateur (machine learning)
3D mise en correspondance (registration)
Sami Gazzah 2009 251
Modules principaux
CxCore
Types de base pour manip dimages (ex struct image point isin cxtypesh)
Structures dynamiques (listes files graphes arbres) et persistantes (LE)
Manipulations de matrices meacutethodes de lalgegravebre lineacuteaire et statistiques
Dessin en surimpression (overlay) (ex eacutetiquetage)
Cv
Traitement dimage calibrage cameacutera
Geacuteomeacutetrie algorithmique (triangulation )
Cvaux
Reconnaissance de visage
Code expeacuterimental et obsolegravete
Autres (dans otherlibs)
HighGUI ES videacuteos curseurs fenecirctrage
ML classification regroupement (clustering)Sami Gazzah 2009 252
OpenCV premiers programmesBibliothegraveque OpenCV
15122010
43
Sami Gazzah 2009 253
Livre
G Bradski amp A Kaehler laquo Learning OpenCV raquo OReilly Press (2008)
codes sources httpexamplesoreillycom9780596516130
Ressources en ligne
Reacutefeacuterence complegravete httpopencvwillowgaragecomdocumentation
Wiki httpopencvwillowgaragecomwikiFullOpenCVWiki
bullPreacutesentation teacuteleacutechargement installation
bullavec CodeBlocks httpopencvwillowgaragecomwikiCodeBlocks
bullDeacutebuter avec OpenCV FAQ
Tutoriels
httpnchcdlsourceforgenetsourceforgeopencvlibraryippocvpdf
httpdaslmemdrexeledu~noahKuntzopenCVTut1html agrave Tut11html
httpwwwcognoticscomopencvservo_2007_series
Tutoriel sur la vision utilisant OpenCV (en franccedilais)
httpwwwsiteduzerocomtutoriel-3-8631-vision-par-ordinateurhtml
Reacutefeacuterences openCV
15122010
4
1 Traitement d‟image Vs Infographie1 Traitement d‟image Vs Infographie
Sami Gazzah 2009 19
descriptif
Modegravele
descriptif
Infographie
(Informatique+Graphisme)
Reconnaissance de formes
(vision)
Image
Traitements
drsquoimages
Sami Gazzah 2009 20
Parmi les capteurs on peut distinguer
les capteurs thermiques (thermopiles)
les films photographiques
les capteurs photoeacutelectriques (photodiodes CCD
CMOShellip)
Le signal obtenu est caracteacuteriseacute par
sa dimension 1D 2D ou 3D
sa nature
2 Acquisition des images (1)
Sami Gazzah 2009 21
La repreacutesentation informatique d‟une image est
neacutecessairement discregravete alors qu‟une image est de nature
continue
Certains capteurs effectuent une discreacutetisation
La transformation d‟un signal analogique 2D neacutecessite
Une discreacutetisation de l‟espace c‟est lrsquoeacutechantillonnage
Une discreacutetisation des couleurs c‟est la quantification
2 Acquisition des images (2)
Sami Gazzah 2009 22
2 Acquisition des images (3)
Sami Gazzah 2009 23
2 Acquisition des images (4)
Sami Gazzah 2009 24
Signal lumineux Capteur CCD Signal eacutelectrique
2 Acquisition des images (5)
15122010
5
Sami Gazzah 2009 25
Pour numeacuteriser des images deux opeacuterations
eacutechantillonnage
quantification
3 Repreacutesentation drsquoune image numeacuterique
Sami Gazzah 2009 26
3 Repreacutesentation drsquoune image numeacuterique
Sami Gazzah 2009 27
Valeurs du deacutetail de l‟image Lena
Lena et un deacutetail de lrsquoimage
3 Repreacutesentation drsquoune image numeacuterique
Sami Gazzah 2009 28
(1) Maillage (2) Quantification
pixel (picture element)
Discreacutetisation de l‟espace 2D on deacutecoupe l‟image en pixels
3 Repreacutesentation drsquoune image numeacuterique
Sami Gazzah 2009 29
Une reacutesolution trop faible peut causer des problegravemes d‟aliasing
Apparition d‟escaliers sur les contours obliques
3 Repreacutesentation drsquoune image numeacuterique
Sami Gazzah 2009 30
3 Repreacutesentation drsquoune image numeacuterique
15122010
6
Sami Gazzah 2009 31
255
255
255
255
255
80
80
80
50
40
255
255
70
255
20
255
255
60
40
0
255
255
255
255
255
Image en niveaux de gris et sa repreacutesentation matricielle
Discreacutetisation de l‟espace des couleurs ou niveaux de gris
Une quantification trop faible peut causer des problegravemes de faux contours
3 Repreacutesentation drsquoune image numeacuterique
Sami Gazzah 2009 32
Pavage en quinconce Pavage carreacute Pavage hexagonale
Pavage triangulaire
3 Repreacutesentation drsquoune image numeacuterique3 1 Pavage ou tesselation
A chaque eacutechantillonneur (sommet du maillage) on associe une
surface eacuteleacutementaire dite paveacute ou tesselle
Les pixels sont geacuteneacuteralement arrangeacutes sous forme rectangulaire dans
un tableau 2D hellip il peut exister d‟autres pavages ou tesselations
Le pavage hexagonale
Le pavage triangulaire ou carreacute
Le pavage rectangulaire en quinconce
Sami Gazzah 2009 33
Certains pavage sont motiveacutes par
leurs adeacutequation avec le systegraveme d‟acquisition exemple le pavage
quinconce correspond agrave certains systegravemes d‟acquisitions embarqueacutes dans
les satellites (satellite spot 5)
des relations geacuteomeacutetriques telles que le voisinage nombre des pixels
voisins connexes (4 6 8 32hellip)
3 1 Pavage ou tesselationhellip choixhellipmotivation
3 Repreacutesentation drsquoune image numeacuterique
8 voisins4 voisins 6 voisins
Sami Gaz 29 oct 2010 34Source httpwwweoportalorgdirectorypres_SPOT5html
systegravemes drsquoacquisitions du
satellite spot 5
Introduction du Super-Mode permet la
creacuteation d‟une image agrave 25 megravetres de
reacutesolution agrave partir de deux images agrave 5 megravetres
(acquises simultaneacutement avec un demi-pixel
de deacutecalage)
Sami Gazzah 2009 35
Pour un ordinateur une image rArr ensemble de pixels
Un pixel possegravede une valeur scalaire vecteur hellip
Ordre de grandeur
o si un pixel est codeacute sur 8 bits rArr 28=256 couleurs ou niveau de gris
o si helliphelliphelliphelliphellipsur 16 bits rArr 216=65 536 couleurshellipplus d‟espace
o helliphelliphelliphelliphelliphelliphelliphellip24 bits rArr 224=16 777 216 couleurshellipencore ++
3 Repreacutesentation drsquoune image numeacuterique3 2 Codage des pixels
Sami Gazzah 2009 36
3 Repreacutesentation drsquoune image numeacuterique3 3 Distance entre pixels
Diffeacuterents distances entre 2 points P(ij) et P(kl) peuvent ecirctre utiliseacutees
i
j
l
k
1 Distance euclidienne
+ Cette distance ne privilegravege
aucun axe
22 )()()()(( jliklkPjiP
15122010
7
Sami Gazzah 2009 37
3 Repreacutesentation drsquoune image numeacuterique3 3 Distance entre pixels
Diffeacuterents distances entre 2 points P(ij) et P(kl) peuvent ecirctre utiliseacutees
i
j
l
k2 Distance blocks
Cette distance est appeleacute eacutegalement
laquo Manhatten distance raquo
il faut contourner les blocs
d‟habitations pour relier deux points
Manhatten city NY Sami Gazzah 2009 38
3 Repreacutesentation drsquoune image numeacuterique3 3 Distance entre pixels
Diffeacuterents distances entre 2 points P(ij) et P(kl) peuvent ecirctre utiliseacutees
i
j
l
k
3 Distance tour d‟eacutechiquier
Sami Gazzah 2009 39 Sami Gazzah 2009 40
4 Formats drsquoimages
Une image vectorielle est repreacutesenteacutee par des formes geacuteomeacutetriques simples
Ligne point de deacutepart point d‟arriveacutee hellip
Triangle 3 sommets la couleur du contour la couleur inteacuterieure
(remplissage) hellip
Ex PAO (publication assisteacutee par ordinateur) DAO (dessin assisteacute par
ordinateur) etc
Une image matricielle est repreacutesenteacutee par des matrices de pixels Bitmap
(image en mode point)
Ex image en niveaux de gris ou couleurs de type photo GIF PCX BMP
JPEG PPM PGMhellip
4 1 Image vectorielle Vs Image matricielle
Sami Gazzah 2009 41
4 Formats drsquoimages4 1 Images vectorielles Vs Images matricielles
Images vectorielles Images matricielles
Avantages Inconveacutenients Avantages Inconveacutenients
Peu de place en
meacutemoire
Peut devenir gros
pour une image
complexe
Aucun calcul pour
l‟affichage
Peuvent occuper
beaucoup d‟espace
meacutemoire
Redimensionnement
sans perte
d‟informations
Beaucoup de calculs
pour l‟affichage
La complexiteacute de
l‟image n‟influe pas
sur sa taille
Aucun aliasing si on
manipule l‟objet
graphique
Sami Gazzah 2009 42
4 Formats drsquoimages4 2 Stockage des images
o Pour la meacutemorisation des images sur disque meacutemoire on stocke les informations
concernant les image dans un en-tecircte puis les donneacutees (valeurs de pixels)
o L‟en-tecircte contient la largeur et la hauteur de l‟image aussi on peut ajouter d‟autres
informations telles que le type de donneacutees l‟auteur la datehellip
o Pour certains formats l‟en-tecircte et les donneacutees sont stockeacutes dans 2 fichiers
diffeacuterents
o Les donneacutees sont souvent stockeacutees dans l‟ordre des pixels de gauche agrave droite et
de haut en bas
o Les anciens formats sont simples et tregraves facile agrave lire et agrave eacutecrire
bull PBM pour des images binaires
bull PGM pour des images en niveaux de gris
bull PPM pour des images couleurs
o Les formats les plus courants sont GIF PCX BMPTIFF et JPEG
15122010
8
Sami Gazzah 2009 43
4 Formats drsquoimages4 2 Stockage des images
421 format PBM (Portable Bit Map)
Nombre de colonnes=10
Nom
bre
de c
olon
nes
=10
P1 signifie qursquoil srsquoagit drsquoun format PBM et que les donneacutees sont stockeacutees en ASCII signifie qursquoil srsquoagit drsquoune ligne de commentaire
Sami Gazzah 200944
4 Formats drsquoimages4 2 Stockage des images
421 format PGM(Portable Gray Map)
P2 signifie qursquoil srsquoagit drsquoun format PGM et que les donneacutees sont stockeacutees en ASCII
Sami Gazzah 200945
4 Formats drsquoimages4 2 Stockage des images
421 format PPM(Portable Pixel Map)
P3 signifie qursquoil srsquoagit drsquoun format PPM et que les donneacutees sont stockeacutees en ASCII Les valeurs des pixels sont donneacutees pixel par pixel
Sami Gazzah 2009 46
Sami Gazzah 2009 47
5 Eleacutements de Colorimeacutetrie
Un prisme seacutepare la lumiegravere blanche en ses couleurs
Sami Gazzah 2009 48
6 Les systegravemes de repreacutesentation des couleurs
Kunt a deacutemontreacute qu‟en combinant trois longueurs drsquoondes particuliegraveres il est
possible de syntheacutetiser presque toutes les couleurs existantes Les trois
couleurs de base sont dites laquo couleurs primaires raquo Une couleur peut donc ecirctre
repreacutesenteacutee dans un espace agrave trois dimensions Il en existe plusieurs
- Systegraveme RGB (Red Green Blue)
- Systegraveme CMY (Cyan Magenta Yellow)
- Systegraveme XYZ
- Systegraveme HLS (Hue Magenta Saturation)
Image couleur et sa repreacutesentation matricielle
15122010
9
Sami Gazzah 2009 49
Images couleurs (24 bits)
Lrsquoespace couleur Rouge Vert Bleu (RGB)
Sami Gazzah 2009 50
Valeur R Valeur V Valeur BCouleur
correspondanteCommentaires
0 0 0 noir
0 0 255 bleu
0 255 0 vert
255 0 0 rouge
128 128 128
couleur
intermeacutediaire
correspondant agrave
un gris
255 255 255 blanc
Sami Gazzah ISITCom 200951
Exemple de deacutecomposition drsquoune image couleur en 3 plans de couleur
(a) image originale (b)canal rouge (c)canal vert (d)canal bleu
(b)(a)
(c) (d)
Sami Gazzah 2009 52
Lrsquoespace couleur Cyan Magenta et Jaune (GMJ)
bull les couleurs primaires CMJ sont ici les compleacutementaires des RVB
bull utiliseacute par certaines imprimantes couleurs agrave jet dencre
bull les diffeacuterentes couleurs sont obtenues par soustraction du blanc
Sami Gazzah 2009 53
Le principe de lespace HSV est de caracteacuteriser les couleurs de faccedilon plus
intuitive conformeacutement agrave la perception naturelle des couleurs en termes de
1 teinte (Hue) intuitivement cest le nom quon utilisera pour deacutesigner la couleur
vert mauve etc Ideacutealement associeacute agrave une longueur donde
2 saturation (Saturation)cest le taux de pureteacute de la couleur qui doit varier
entre la pureteacute maximale (couleur eacuteclatante) et lachromatisme (niveau de gris)
3 valeur (Value) cest la mesure de lintensiteacute lumineuse de la couleur qui doit
varier entre le noir absolu et le blanc
Images HSV
Composante valeur
Composante saturation
Composante teinte
Sami Gazzah 2009 54
Pour passer de la repreacutesentation initiale (RGB) agrave cette repreacutesentation on opegravere
de la maniegravere suivante
15122010
10
Sami Gazzah 2009 55
Quelques caracteacuteristiques drsquoimages numeacuteriques
La reacutesolution dune image = nombre de pixels par uniteacute de longueur de la
structure agrave numeacuteriser (dpi (dots per inches) ou ppp (pixel par pouce)
La reacutesolution du format de limage =nombre de pixels qui compose limage en
hauteur et en largeur (512 pixels par 512 pixels par exemple)
La taille des donneacutees pour une image (en bits) = Nlignes x Ncolonnes x B
La profondeur de bits = nombre de bits neacutecessaire pour repreacutesenter un pixel dans
l‟image numeacuterique
La dynamique dune image= leacutetendu de la gamme de couleurs 2nbre de bitspixels ndash 1
Le poids d‟une image numeacuterique est l‟espace meacutemoire qu‟elle occupe sur un
support de stockage numeacuterique = nombre de bits par pixel x nombre total de pixels
Sami Gazzah 2009 56
bullune image 200200 pixels en niveaux du gris fait un poids de
200200=40000 octets
bullimage de 200200 pixels en vraies couleurs (16 millions) (24 bits)
2002003= 120000 octets (117 Ko)
bull image de 200200 pixels en fausses couleurs (256 couleurs) (8 bits)
2002001= 40000 octets (39 Ko)
Taille des limages en pixels
Sami Gazzah 2009 57
Exercice drsquoapplication
Soit une image carreacutee au format PPM(ASCII) de 160 Ko
Quelles sont approximativement les dimensions de cette image si
on neacuteglige la taille de lrsquoen-tecircte
Quelle serait la taille du fichier si cette image eacutetait stockeacutee en
binaire
Remarques Le format PPM (Portable Pixel Map) concerne les
images couleurs Chaque pixel a pour valeur un triplet (RGB) et
chaque couleur est exprimeacutee par un caractegravere et un espace
Sami Gazzah 2009 58
Formats de fichiers dimages
Une image est un tableau de pixels
Une image est stockeacutee soit dans un fichier sous la forme de texte soit dans la
meacutemoire de lordinateur sous la forme dun vecteur
Sami Gazzah 2009 59
Les opeacuterations de bases concernant une image sont la lecture (fichier vers
meacutemoire) et leacutecriture (meacutemoire vers fichier) Les informations
neacutecessaires agrave la manipulation dune image sont
nombre de lignes
nombre de colonnes
format des pixels (bit niveaux de gris niveaux de couleurs)
compression eacuteventuelle
Il existe une multitude de formats de fichiers permettant de stocker ces
informations ainsi que le tableau des valeurs En particulier
Les formats simples fichiers textes comportant un entecircte contenant
les dimensions de limage et le format des pixels Exemples les formats
PNM (portable anymap) PBM (portable bitmap) PGM (prtrable
grayscalemap) PPM (portable pixmap) Les fichiers correspondants sont
constitueacutes des eacuteleacutements suivants Sami Gazzah 2009 60
1 Un nombre magique pour identifier les type du fichier P1 ou P4
pour PBM P2 ou P5 pour PGM et P3 ou P6 pour PPM
2 Un caractegravere despacement (blanc TABs Cs LFs)
3 La largeur de limage (valeur deacutecimale codeacutee en ASCII) suivie dun
caractegravere despacement la longueur de limage (valeur deacutecimale
ASCII) suivie dun caractegravere despacement
4 Uniquement pour PGM et PPM lintensiteacute maximum (valeur deacutecimale
comprise entre 0 et 255 codeacutee en ASCII) suivie dun caractegravere
despacement
5 Largeur x hauteur nombres Ces nombres sont soit des valeurs
deacutecimales codeacutees en ASCII et seacutepareacutees par des espacements dans le
cas des formats P1 P2 P3 soit directement les valeurs binaires sur 1
ou 2 octets dans le cas des formats P4 P5 P6 Dans ce dernier cas il
ny pas de caractegraveres despacement entre les valeurs
15122010
11
Sami Gazzah 2009 61
Chapitre 2
Transformations sur les images
Sami Gazzah 2009 62
Les transformations peuvent ecirctre classeacutees de la maniegravere suivante
bullTransformations ponctuelles
bullTransformations de voisinage
bullTransformations spectrales
bullTransformations morphologiques
Au cours du processus de traitement et drsquoanalyse lrsquoimage subit une seacuterie
de transformations
Introduction
Image sourceTransformationTransformation
TTImage transformeacutee
Sami Gazzah 2009 63
1 Transformations ponctuelles
A partir dune image source la nouvelle valeur du pixel deacutepend uniquement de
son ancienne valeur
Exemple seuillage ajustement luminositeacutecontraste opeacuterations algeacutebriques
opeacuterations logiques et arithmeacutetiques manip dhistogramme
1 Opeacuterations logiques et arithmeacutetiques
Les images opeacuterandes
doivent ecirctre de mecircme taille
peuvent ecirctre des images constantes
Exemples
addition soustraction
ET logique OU logique
Problegravemes
deacutebordements de [0 255]
normalisation Sami Gazzah 2009 64
Images en niveaux de gris ETOU logique bit agrave bit entre les 8 bits
codant les valeurs des pixels
Images binaires ETOU logique entre les pixels
Sami Gazzah 2009 65
Les opeacuterations logiques
bullET I(xy)=I1(xy) ET I2(xy) intersection logique
bullOU I(xy) = I1(xy) OU I2(xy) union logique
bullNOT I(xy) = NOT(I1(xy)
opeacuterations arithmeacutetiques
bullAddition I(xy)=I1(xy)+I2(xy)
bullSoustraction I(xy)=I1(xy)-I2(xy)
bullMultiplication
bullDivision par une constantehellip
Sami Gazzah 2009 66
Les opeacuterations logiques
15122010
12
Sami Gazzah 2009 67
Application
Masquage
Sami Gazzah 2009 68
Les Opeacuterations arithmeacutetiques
Addition dimages
Principe I(xy)=I1(xy)+I2(xy) pour tout pixel de coordonneacutees (xy)
Strateacutegies si deacutepassement de capaciteacute
bullDeacutecalage des valeurs dans [0 127] avant addition (perte du bit de poids faible)
bullSaturation I(xy) = min ( I1(xy)+I2(xy) 255)
bullPreacute-calcul des valeurs finales (theacuteoriques) minimale et maximale
puis recadrage de la dynamique
Utilisations principales
Augmentation de la luminance dune image (par addition dune constante ou
dune image avec elle-mecircme) et diminution du bruit dans une seacuterie dimages
))()((max
))()((min
21)(
max
21)(
min
yxIyxIi
yxIyxIi
Iyx
Iyx
))()((255
)( 21
minmax
yxIyxIii
yxI
Sami Gazzah 2009 69
Les Opeacuterations arithmeacutetiques
Soustraction dimages
Principe I(xy)=I1(xy)-I2(xy) pour tout pixel de coordonneacutees (xy)
Strateacutegies si deacutepassement de capaciteacute
bullSaturation I(xy) = max ( I1(xy) - I2(xy) 0)
bullDiffeacuterence absolue I(xy) = | I1(xy) - I2(xy) |
Utilisations principales
bullDiminution de la luminance dune image
bullDeacutetection de changements entre images
bulldeacutefauts (par comparaison avec une image de reacutefeacuterence)
bullmouvements (par comparaison avec une autre image de la seacutequence)
Sami Gazzah 2009 70
Rim Romdhaneet al AVSS10 rd the 7th IEEE International Conference on
Advanced Video and Signal-Based Surveillance Boston USA 2010
Sami Gazzah 2009 71
Addition et soustraction de deux images
Sami Gazzah 2009 72
Si on dispose de limage en niveau de gris et de limage binaire suivante
15122010
13
Sami Gazzah 2009 73
2 Identiteacute neacutegatif et Seuillage
Sami Gazzah 200974
2 Les opeacuterations geacuteomeacutetriques
Opeacuterations geacuteomeacutetriques sur une image en niveaux de gris
Sami Gazzah 2009 75
Une transformation de voisinage est telle que la nouvelle valeur
drsquoun pixel tient compte des pixels appartenant au voisinage du
pixel consideacutereacute
Le voisinage peut avoir une taille plus ou moins grande (3x3 5x5
7x7hellip) et il peut avoir une forme reacuteguliegravere (carreacute rectangle
hexagonehellip) ou bien une forme quelconque
3 Transformations de voisinage
Sami Gazzah 2009 76
Exemple de transformation de voisinage le
produit de convolution
dans le cas continu le produit de convolution de f par g est
deacutefini par
Dans le cas discret il est geacuteneacuteralement deacutefini sur un voisinage il
est donneacute par
Sami Gazzah 2009 77
Si on applique ceci agrave une image I1 de dimensions
finies et agrave moyenne de convolution K (K
Kernel=noyau) de dimension 3 x 3 les pixels de
lrsquoimage I1 obtenue par convolution de I2 par K ont
pour valeur
Sami Gazzah 2009 78
Nouvelle
image
Nouvelle valeur
de pixel21
1 11
1 111 11
Noyau
Nouvelle valeur de pixel =
9
22 2719
9 19
51 21 14Image
originale
111
111
111
9
1h
15122010
14
Sami Gazzah 2009 79
4-Transformations spectrales (1)
Transformeacutee de Fourier 2D (TF 2D)
- La TF est
Dans la cas 1D (Rappel)
Dans la cas 2D
- La TF inverse
- La TF est
- La TF inverse
Sami Gazzah 2009 80
4-Transformations spectrales (2)
Exemple des transformations spectrales transformeacutee de Fourier
Soit f(xy) deacutefinie par une matrice d‟eacutechantillons reacuteguliegraverement espaceacutes
N le nombre de lignes M nombre de colonnes
- La TF est deacutefinie par
- La TF inverse est deacutefinie par
Sami Gazzah 2009 81 Sami Gazzah 2009 82
Compression RLE (Run Length Encoding)
2 2 2 2 128 128 128 120 120 80 96 96 94 94 94 95 97 97 97 97
4 2 3 128 2 120 1 80 2 96 3 94 1 95 4 97
Utile quand il y a des reacutepeacutetitions dans la chaicircne agrave encoder
Exemple Formats BMP TIFF PCX (Paintbrush)
Sami Gazzah 2009 83
Chapitre 3
RESTAURATION DrsquoIMAGES
Sami Gazzah 2009 84
L‟acquisition s‟accompagne toujours d‟une distorsiondeacutegradation
Il existe diffeacuterentes sources de deacutegradation (bruit) d‟une image
bruit lieacute au contexte de lacquisition Bougeacute mauvaises conditions
d‟eacuteclairagehellip
bruit lieacute au capteur Capteur de mauvaises qualiteacutes mauvaise mise
au point etchellip
bruit lieacute agrave leacutechantillonnage Une mauvaise freacutequence
d‟eacutechantillonnage peut introduire dans l‟image des points blancs ou
noirs connus souvent sous l‟appellation laquo sel et poivre raquo
bruit lieacute agrave la nature de la scegravene Preacutesence de fumeacutee de nuage
etchellip
Il faut corriger l‟image par un proceacutedeacute algorithmique
15122010
15
Sami Gazzah 2009 85
Restauration des Images monochromatiques et des images
couleurs
Au deacutebut de l‟imagerie numeacuterique les algorithmes deacuteveloppeacutes eacutetaient
destineacutes aux images en niveaux de gris Avec les progregraves techniques et le
deacuteveloppement des outils informatiques le traitement des images
couleurs est devenu possible
bull Approche marginale
Sami Gazzah 2009 86
Approche vectorielle
Dans lapproche vectorielle le vecteur couleur est consideacutereacute globalement
et le traitement doit ecirctre alors reacuteellement vectoriel Il ny a pas dans ce cas
une eacutetape de fusion ou de seacuteparation explicite entre les diffeacuterentes
composantes couleur de lrsquoimage Dans ce cas la correacutelation entre les
diffeacuterentes composantes peut ecirctre prise en compte ce qui aboutit
geacuteneacuteralement agrave des reacutesultats meilleurs que ceux du traitement marginal
Sami Gazzah 2009 87
Rappel
Sami Gazzah 2009 88
Sami Gazzah 2009 89
Nouvelle
image
Nouvelle valeur
de pixel21
1 11
1 111 11
Noyau
Nouvelle valeur de pixel =
9
22 2719
9 19
51 21 14Image
originale
Sami Gazzah 2009 90
15122010
16
Sami Gazzah 2009 91
Lissage spatial tout en remplacent la valeur du pixel courant par la moyenne de
tous les pixels inclus dans un voisinage centreacute en ce point
Sami Gazzah 2009 92
Sami Gazzah 2009 93 Sami Gazzah 2009 94
En traitement d‟image les tailles des fenecirctres utiliseacutees pour le
filtrage meacutedian sont geacuteneacuteralement impaires 3 3 5 5 7 7
exemple
fenecirctre de 5 pixels en croix
Pour les fenecirctres de taille paire ( 2 K valeurs ) apregraves
ordonnancement croissant des valeurs prendre la moyenne des 2
valeurs centrales
valeur de sortie( Kiegraveme valeur ordonneacutee + (K+1)iegraveme valeur ordonneacutee )
2=
Sami Gazzah 2009 95 Sami Gazzah 2009 96
15122010
17
Sami Gazzah 2009 97
Image laquo Piegraveces raquo de reacutefeacuterence bruiteacutee ( bruit de type impulsionnel ) puis filtreacutee
avec un filtre moyenneur (33) et un filtre meacutedian (33)
Image de reacutefeacuterence Image bruiteacutee
Bruit
Le filtrage meacutedian est plus adapteacute que le filtrage
lineacuteaire pour reacuteduire le bruit impulsionnel
Observation
Comparaison filtre meacutedian et filtre moyenneur
Sami Gazzah 2009 99 Sami Gazzah 2009 100
Sami Gazzah 2009 101 Sami Gazzah 2009 102
Chapitre 4
REHAUSSEMENT DrsquoIMAGES
15122010
18
Sami Gazzah 2009 103
Introduction
Le preacutetraitement d‟image est l‟ensemble des opeacuterations effectueacutees sur
une image soit pour l‟ameacuteliorer soit pour la restaurer
Le preacutetraitement d‟une image vise soit agrave renforcer la ressemblance des
pixels soit au contraire agrave accentuer les diffeacuterences de pixels d‟une mecircme
reacutegion
Accroitre la seacuteparabiliteacute des reacutegions composant une scegravene revient agrave
augmenter les contrastes vu
On applique le rehaussement des images afin de faciliter l‟interpreacutetation
visuelle et la compreacutehension des images
Pour comprendre ce type de rehaussement il faut comprendre le concept
d‟histogrammeSami Gazzah 2009 104
Deacutefinition de lrsquohistogramme drsquoune image
L‟histogramme est un outil qui permet de comptabiliser le nombre
d‟occurrences de chacune des valeurs dans une image en niveaux de gris
Dans une image couleur il est neacutecessaire d‟utiliser plusieurs
histogramme sur chacune des composantes du systegraveme de repreacutesentation
de la couleur
Soit h l‟histogramme de l‟image I de dimension (w x h) h[i] repreacutesente
le nombre d‟occurrence de chaque niveau de quantification i La probabiliteacute
estimeacutee du niveau i dans une image I est
hw
ihip
][)(
Image de 256 256 pixels
codeacutes chacun sur 8 bitsPopulation de pixels pour chaque
niveaux de gris [0 255]
Pour chaque niveau de gris on compte le nombre de pixels s‟y reacutefeacuterant
Pour chaque niveau on trace le graphe en bacircton du nombre de pixels
(possibiliteacute de regrouper les niveaux proches en une seule classe)
Exemple drsquohistogramme pour une image en niveaux
de gris
0 50 100 150 200 250
0
200
400
600
800
1000
cameraman
Image laquo A raquo en
niveaux de gris
Matrice des valeurs de luminance
des pixels de lrsquoimage laquo A raquo
Histogramme
de lrsquoimage
laquo A raquo
2 2 2 2 2 2 2 2
2 0 0 0 0 0 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 0 0 0 0 0 2
2 2 2 2 2 2 2 2
Les niveaux 0 1 et 2 sont respectivement repreacutesenteacutes par 24 12 et 28 pixels
repreacutesentation de cette population de pixels sur lhistogramme
Limage laquo A raquo comporte 3 niveaux de gris diffeacuterents 0 1 et 2
Compter le nombre de pixels pour chaque niveau de gris agrave lrsquoaide de la
matrice des valeurs de luminance
Exemple simple de calcul drsquohistogramme pour une image
Image laquo A raquoValeurs de luminance de
laquo A raquo
Histogramme cumuleacute de
laquo A raquo
2 2 2 2 2 2 2 2
2 0 0 0 0 0 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 0 0 0 0 0 2
2 2 2 2 2 2 2 2
Calcul dun histogramme particulier faisant appel aux cumuls des niveaux de gris
Histogramme cumuleacute
Utile pour certains traitements dimage tels que lrsquoeacutegalisation
dhistogramme ( ameacutelioration de contraste)
Chaque bacircton cumule le nombre de pixels du niveaux de gris concerneacute et des
niveaux de gris infeacuterieurs les niveaux 0 1 2 sont donc repreacutesenteacutes
respectivement par 24 36 et 64 pixels
Histogramme cumuleacute drsquoune image L‟histogramme ne donne pas L‟histogramme ne donne pas
d‟informations sur la reacutepartitiond‟informations sur la reacutepartition
Trois images diffeacuterentes ayant un mecircme histogramme
15122010
19
Modification de lrsquohistogrammeModification de lrsquohistogramme
On appelle dynamique des niveaux de gris lintervalle [nminnmax] de
niveaux de gris dans lequel sont compris tous les pixels de limage
Le but de la modification dhistogramme modifier chaque niveau de
gris pour accroicirctre le contraste On modeacutelise cette transformation par
leacutequation Irsquo(ij) = g(I(ij)) ougrave g est la fonction de contraste
Chaque transformation sera deacutecrite par une courbe repreacutesentant la
relation entre un niveau de gris de limage de deacutepart (abscisse) et le
niveau qui lui correspond dans limage ameacutelioreacutee (ordonneacutee)
Sami Gazzah 2009 109
Masquage de zones Masquage de zones Extraction d‟une Extraction d‟une
fenecirctre d‟intensiteacutefenecirctre d‟intensiteacute ((slicingslicing intensiteacute)intensiteacute)
Cette transformation consiste agrave remplacer un intervalle de niveaux
de gris par du blanc (nmax) par du noir (nmin) ou par une valeur
intermeacutediaire du niveau de gris
Sami Gazzah 2009 110
Courbes repreacutesentant de gauche agrave droite lextraction dune fenecirctre dintensiteacute et le masquage blanc et noir de lintervalle [ab]
n-1
n-1
0 n-1
n-1
0a ab b n-1
n-1
0 a b
Sami Gazzah 2009 111
Exemples de Masquage de zonesInversion de la dynamiqueInversion de la dynamique
But produire le neacutegatif d‟une image
donneacutee
Sami Gazzah 2009 112
Sami Gazzah 2009 113
Etirement drsquohistogramme
Sami Gazzah 2009 114
Etirement drsquohistogramme
Augmentation du contraste par eacutetirement d‟histogramme
15122010
20
Sami Gazzah 2009 115
Eacutegalisation dhistogramme
But ameacutelioration du contraste
Distribution uniforme des niveaux de gris
Elle se deacutefinit agrave laide de lhistogramme cumuleacute de limage hc(n)
qui repreacutesente le nombre de pixels de limage dont le niveau de
gris est infeacuterieur ou eacutegal agrave n
Deacutefinition de la transformation deacutegalisation dhistogramme soit
I le niveau de gris dun pixel de deacutepart le niveau de gris de limage
darriveacutee I‟ sera
Sami Gazzah 2009 116
Sami Gazzah 2009 117
Effet de lrsquoeacutegalisation drsquohistogramme
Sami Gazzah 2009 118
Augmentation du contraste exemples et comparaison
Original Eacutetirement d‟histogramme Eacutegalisation
Le rehaussement du contraste est plus marqueacute avec l‟eacutegalisation
d‟histogramme autorisant la deacutetection de structures situeacutees dans
l‟ombre
Sami Gazzah 2009 119
Chapitre 5
SEGMENTATION DrsquoIMAGES
Sami Gazzah 2009 120
Une image est geacuteneacuteralement composeacutee d‟objets L‟analyse de cette
image neacutecessite l‟identification de ces objets
La segmentation dimages est lun des problegravemes phares du traitement
dimages Elle consiste agrave partitionner limages en un ensemble de
reacutegions connexes Linteacuterecirct de ces reacutegions est de pouvoir ecirctre
manipuleacutees ensuite via des traitements de haut niveau pour extraire
des caracteacuteristiques de forme de position de taille etc
Introduction
15122010
21
Sami Gazzah 2009 121 Sami Gazzah 2009 122
Meacutethodes statistiquesSegmentation par Histogrammes
Sami Gazzah 2009 123
Meacutethodes statistiquesSeacutelection Reacutecursive sur Histogrammes
Ohlander Price et Reddy (1978)
Sami Gazzah 2009 124
Segmentation par approche contourIntroduction
Le contour est deacutefini comme le lieu des points connexes qui
possegravedent une forte transition d‟intensiteacute lumineuse ou de texture Le
traitement qui vise agrave l‟obtenir est appeleacute extraction de contour on
parle aussi de deacutetection de contour
Le processus d‟extraction de contour peut ecirctre deacutecomposeacute en
plusieurs eacutetapes distinctes que nous allons les deacutetailler comme suit
- La mise en eacutevidence des contours
- L‟extraction des contours
- La fermeture des contours
Sami Gazzah 2009 125
Segmentation par approche contourLa mise en eacutevidence des contours
Elle s‟obtient par une diffeacuterentiation de l‟image et elle peut
s‟appliquer agrave des images binaires ou non le but de la deacutetection de
contours est d‟obtenir dans un premier temps une image binaire ougrave
chaque contour est d‟eacutepaisseur 1 et sans discontinuiteacute
rehausser le contour
suivre le contour
les points du contour correspondent au maximum en valeur absolue
de la deacuteriveacutee primaire de l‟image on obtient alors un gradient ou au
passage par zeacutero de la deacuteriveacutee seconde de l‟image on obtient alors
un laplacien
Sami Gazzah 2009 126
Segmentation par approche contourLa mise en eacutevidence des contours
La deacutetection de contours peut ecirctre reacutealiseacutee gracircce agrave des filtres
dont les coefficients ont eacuteteacute soigneusement choisis Nous
aborderons dans cette preacutesentation 3 filtres les filtres de
Prewitt Roberts et Sobel
Ce jeu de filtres (Prewitt Roberts et Sobel) est constitueacute d‟une
paire de filtres lineacuteaires qui deacutetectent le contours dans deux
directions orthogonales (vertical et horizontal)
15122010
22
Sami Gazzah 2009 127
Segmentation par approche contourFiltre de Perwitt
Les filtres de Perwitt sont les suivants
Filtre horizontal
Filtre vertical
111
000
111
h
101
101
101
v
Sami Gazzah 2009 128
Segmentation par approche contourFiltre de Perwitt
A partir d‟une image I on calcule Gh et Gv images
correspondant au filtrage de I par h et v Ces images
contiennent les contours horizontaux et verticaux
Si l‟on souhaite obtenir une image de contour unique ne tenant
pas compte de l‟orientation on calcule
Orientation du contour
Image binairehellipchoisir un seuil de deacutetection
22
vh GGG
)(vh
GGarctg
Sami Gazzah 2009 129
Segmentation par approche contourFiltre de Sobel
Les filtres de Sobel sont les suivants
Filtre horizontal
Filtre vertical
121
000
121
h
101
202
101
v
Sami Gazzah 2009 130
Segmentation par approche contourFiltre de Sobel
Sami Gazzah 2009 131
Segmentation par approche contourFiltre de Sobel
Sami Gazzah 2009 132
Segmentation par approche contourFiltre de Roberts
Les filtres de Roberts sont les suivants
Filtre diagonal
Filtre anti-diagonal
10
01h
01
10v
15122010
23
Sami Gazzah 2009 133
Segmentation par approche contourFiltre de Kirsch
Ce deacutetecteur utilise huit noyaux de convolution lui permettant de deacutetecter
des contours en fonction de huit directions agrave
15
335
305
335
1
d 15
333
305
355
2
d 15
333
303
555
3
d
15
333
503
553
4
d 15
533
503
533
5
d 15
555
503
333
6
d
15
555
303
333
7
d 15
355
305
333
8
d
Sami Gazzah 2009 134
Contours et Laplacien
Il s‟agit de calculer la deacuteriveacutee seconde de l‟image
Le Laplacien est tregraves sensible au bruit pour limiter l‟effet du bruit le
Laplacien est approximeacute par un masque qui effectue en mecircme temps
une opeacuteration de filtrage par une Gaussienne qui repreacutesente l‟eacutetape
de lissage de l‟image puis vient l‟application du laplacien Les masques
du Laplacien Gaussien sont preacutesenteacutes ci-apregraves
Segmentation par approche contour
Sami Gazzah 2009 135
Contours et Laplacien
Le contour est ensuite deacutetermineacute par la deacutetection des
passages par zeacutero du laplacien de l‟image
88888888888888
010
141
010
1h
111
101
111
2h
121
242
121
3h
Sami Gazzah 2009 136
Contours et Laplacien
Sami Gazzah 2009 137
Seuillage
Les filtres preacuteceacutedents nous fournissent des images des sauts ou
diffeacuterences d‟intensiteacute
Le seuillage permet d‟eacuteliminer des points en lesquels la diffeacuterence
d‟intensiteacute est tregraves faible
Le seuillage peut ecirctre pousser afin d‟obtenir une image binaire (TOR)
Le seuillage dans sa forme le plus simple ne tient pas compte de la
topologie et peut conserver un point bruiteacute isoleacute ou eacuteliminer une portion
de contour d‟intensiteacute faible
Sami Gazzah 2009 138
Seuillage par hysteacutereacutesis
c‟est une fonction agrave deux seuils un seuil bas et un seuil haut
Tout point dont le module de contour est au-dessus du seuil-haut est un
point de contour
Tout point dont le module de contour est au-dessous du seuil-bas n‟est
pas un point de contour
Les points de module entre le seuil-bas et le seuil-haut sont des points
de contour s‟il possegravede un point de contour dans leur voisinage
15122010
24
Sami Gazzah 2009 139
Seuillage par hysteacutereacutesis
seuil haut
Seuil bas
point sur contour
point hors contour
Seuillage par hysteacuterisais les points de lrsquoimage de contour de valeur
supeacuterieur au seuil haut sont des points de contours A partir de ces points de
contours le voisinage de la direction du contour sont examineacutes srsquoils sont de
valeur supeacuterieure au seuil bas ils sont ajouteacutes au points de contoursSami Gazzah 2009 140
Chapitre 6
Introduction aux
opeacuterateurs
morphomatheacutematique
Sami Gazzah 2009 141
1 Introduction
Les opeacuterateurs morphomatheacutematique (=Morphologie Matheacutematique)
permettent d‟ameacuteliorer les images de contours et apporter d‟autres
fonctionnaliteacutes
Ils ont eacuteteacute initialement appliqueacute sur des images NampB (Matheron et
Sarra1965) ensuite eacutetendus agrave des images en nivaux de gris par Doupherty
(1978)
Pour les appliquer sur des images couleurs on peut les appliquer
seacutepareacutement agrave chaque composante couleur et combiner les reacutesultats
Sami Gazzah 2009 142
Diffeacuterentes opeacuterations
eacuterosion dilatation
ouverture fermeture
Squelettisation
hellip
1 Introduction
Sami Gazzah 2009 143
1 Introduction
Dilatation
Ajouter un pixel sur les pourtours de la forme
boucher les trous
Erosion
Enlever un pixel sur les pourtours de la forme
les objets de taille infeacuterieure agrave celle de leacuteleacutement
structurant vont disparaicirctre
agrandit les trous
Sami Gazzah 2009144
1I Rappels sur les ensembles
L‟eacutegaliteacute
L‟inclusion
Lbdquointersection
L‟union
La diffeacuterence
La diffeacuterence symeacutetrique
La compleacutementariteacute E eacutetant un ensemble
servant de reacutefeacuterentielle
Dans ce qui suit les lettres majuscules deacutesignent des ensembles et les lettres
minuscules deacutesignent des eacuteleacutements appartenant aux ensembles
Sur les ensembles on deacutefinit les opeacuterations suivantes
15122010
25
Sami Gazzah 2009145
1I Rappels sur les ensembles
Sami Gazzah 2009146
1I Rappels sur les ensembles
Lois de De Morgan
Reacuteflexion La reacuteflexion d‟un ensemble A est deacutefinie par
Un ensemble symeacutetrique veacuterifiant ndashA=A C‟est le cas des cercles et des carreacute par
exemple
ccc YXYX )(
ccc YXYX )(
AaaA
A -A B -B
Sami Gazzah 2009147
1I Rappels sur les ensembles
Addition de Minkowski l‟addition d‟un eacuteleacutement x agrave un ensemble A par x est
deacutefinie par
Cette notion n‟est pas uniquement ensembliste elle nous oblige agrave deacutefinir un point
de reacutefeacuterence
On en deacuteduit l‟addition d‟un ensemble B agrave un ensemble A c‟est le reacutesultat de
l‟addition de chaque eacuteleacutement de B agrave A
L‟addition de Minkowski est commutative Elle est eacutegalement appeleacute dilatation
AaxaxAB
A
A
x
AxBxAaBaBbbABAC )()()(
le translateacute de X par b
Sami Gazzah 2009148
1I Rappels sur les ensembles
Eleacutement structurant les opeacuterations morphomatheacutematiques sont deacutefinis agrave
partir des ensemble B discrets appeleacute eacuteleacutement structurant Ces eacuteleacutement
permettent de deacutefinir le type de voisinage souhaiteacute
Addition de Minkowski d‟un ensemble A et d‟un ensemble B
BA
Sami Gazzah 2009149
1II Dilatation
Le reacutesultat de dilatation de lrsquoensemble A par lrsquoensemble B
est lrsquoaddition de Minkowski crsquoest lrsquoensemble des points tel
que lorsque B est centreacute sur un de ces points il y a une
intersection non vide entre A et B
Pour des images en niveaux de gris on obtient lrsquoimage
dilateacutee de la forme A en remplaccedilant tout pixel par le
maximum des intensiteacutes des voisins selon la forme B
Sami Gazzah 2009 150
1II Dilatation1 Image NampB
Soit k l‟eacuteleacutement structurant de taille (2k+1) x (2k+1) L‟algorithme de
dilatation est le suivant on parcourt tous les pixels de l‟image sauf les
bord de l‟image d‟eacutepaisseur k pour chaque pixel du fond rencontreacute s‟il
possegravede un voisin au sens de l‟eacuteleacutement structurant qui appartient agrave un
objet il prend le couleur de l‟objet si non il n‟est pas modifieacute
15122010
26
la dilatation (noteacutee ) drsquoune image monochrome laquo f raquo par un
eacuteleacutement structurant laquo B raquo est deacutefinie en terme de sous-graphe
bull f B = T [ Y ] = Supl l tel que (m n l) Y
bullY = U ( f ) U ( B )
En consideacuterant un eacuteleacutement structurant plan de valeur nulle sur son
support
( f B ) (P) = Max valeurs des pixels du voisinage du pixel P
1II Dilatation1 Image niveaux de gris
max
55 68 77 90 91 95 115 151 210
( f B ) (P) = 210
n
115 91 77
95 68 90
55 151 210
exemple
m
Image de reacutefeacuterence
Eacuteleacutement structurant
(8-connexiteacute)
liste ordonneacutee des valeurs du voisinage
- - -
-
-
-
-
-
1II Dilatation1 Image niveaux de gris
Exemples de filtrages morphologiques(eacuteleacutement structurant 33 complet)
Image de reacutefeacuterenceImage dilateacutee
morphologiquement
La dilatation en niveaux de gris accroicirct la luminance des
pixels entoureacutes de voisins plus lumineux
Observation
Sami Gazzah 2009154
VI Erosion
L‟eacuterosion est deacutefinie par
On deacutefinit la soustraction de Minkowski par
On a eacutequivalence entre eacuterosion et soustraction de Minkowski si B est
symeacutetrique (si B=-B)
D‟un point de vue binaire l‟eacuterode de A par B correspond agrave l‟ensemble
des points tels que si B est centre sur ce points B est entiegraverement inclus
dans A
AxBxBbbABAC )()(
)()( BbbABAC
Sami Gazzah 2009 155
VI Erosion1 Image NampB
on parcourt tous les pixels de l‟image sauf les bord de l‟image
d‟eacutepaisseur k pour chaque pixel du fond rencontreacute s‟il possegravede un
voisin au sens de l‟eacuteleacutement structurant qui appartient agrave un objet il
prend le couleur du fond si non il n‟est pas modifieacute
VI Eacuterosion drsquoune image en niveaux de gris
Lrsquoeacuterosion (noteacutee Ө ) drsquoune image monochrome laquo f raquo par un eacuteleacutement
structurant laquo B raquo est deacutefinie en terme de sous-graphe
bull f Ө B = T [ Y ] = Supl l tel que (m n l) Y
bullY = U ( f ) Ө U ( B )
Classiquement on considegravere un eacuteleacutement structurant plan de
valeur nulle sur son support
( f Ө B ) (P) = Min valeurs des pixels du voisinage du pixel P
15122010
27
VI Eacuterosion drsquoune image en niveaux de gris
min
68 90 91 95 151
( f Ө B ) (P) = 68
n
115 91 77
95 68 90
55 151 210
exemple
m
Image de reacutefeacuterence
ӨӨ
Eacuteleacutement structurant
(4-connexiteacute)
liste ordonneacutee des valeurs du voisinage
-
-
-
-
Exemples de filtrages morphologiques(eacuteleacutement structurant 33 complet)
Image eacuterodeacutee
Lrsquoeacuterosion en niveaux de gris reacuteduit la luminance des pixels
qui sont entoureacutes de voisins de moindre intensiteacute
Image de reacutefeacuterence
Observation
Sami Gazzah 2009 159
Eacuteleacutement structurant (a)
(4-connexiteacute)
-
-
-
-
Eacuteleacutement structurant (b)
(8-connexiteacute)
- - -
-
-
-
-
-
Exercice 1 Sur la mecircme image de deacutepart on reacutealise deux opeacuterations
de dilatations avec deux eacuteleacutements structurant diffeacuterents
Dilatation avec (a) Dilatation avec (b)
image de deacutepart
cas a L‟eacuteleacutement structurant est agrave 4-connexiteacute Chaque pixel
du support qui est eacutegal agrave la valeur 1 ou qui a l‟un de ses 4
voisins agrave la valeur 1 est mis agrave la valeur 1 apregraves filtrage
cas b L‟eacuteleacutement structurant est agrave 8-connexiteacute Chaque pixel
du support qui est eacutegal agrave la valeur 1 ou qui a l‟un de ses 8
voisins agrave la valeur 1 est mis agrave la valeur 1 apregraves filtrage
Dans les deux cas on observe qu‟une dilatation eacutelimine les
trous isoleacutes dans les objets et dilate le contour des objets en
tenant compte de l‟eacuteleacutement structurant
Sami Gazzah 2009 160
Exercice 1
Sami Gazzah 2009 161
Eacuteleacutement structurant (a)
(4-connexiteacute)
-
-
-
-
Eacuteleacutement structurant (b)
(8-connexiteacute)
- - -
-
-
-
-
-
Exercice 2 Sur la mecircme image de deacutepart on reacutealise deux opeacuterations
d‟eacuterosions avec deux eacuteleacutements structurant diffeacuterents
Erosion avec (a) Erosion avec (b)
image de deacutepart
cas a L‟eacuteleacutement structurant est agrave 4-connexiteacute (origine agrave 4 voisins)
Chaque pixel du support qui a la valeur 0 ou qui a l‟un de ses 4
voisins agrave la valeur 0 est mis agrave la valeur 0 apregraves filtrage
cas b L‟eacuteleacutement structurant est agrave 8-connexiteacute Chaque pixel du
support qui a la valeur 0 ou qui a l‟un de ses 8 voisins agrave la valeur 0
est mis agrave la valeur 0 apregraves filtrage
Dans les deux cas on observe qu‟une eacuterosion eacutelimine les pixels
isoleacutes sur le fond et eacuterode le contour des objets
Sami Gazzah 2009 162
Exercice 2
15122010
28
ConclusionsConclusions
Erosion
les objets relieacutes entre eux vont ecirctre seacutepareacutes
Une eacuterosion de taille n peut se reacutealiser en reacutepeacutetant une
eacuterosion n fois avec un eacuteleacutement structurant de taille 1 ou en
appliquant une seule eacuterosion avec un eacuteleacutement structurant
de taille n
Dilatation
des objets sont situeacutes agrave une distance moins grande que la taille
de leacuteleacutement structurant il vont fusionner
Sami Gazzah 2009 163 Sami Gazzah 2009 164
Sami Gazzah 2009 165
Elimine pixels isoleacutes sans inteacuterecirct
L‟ouverture (opening) consiste agrave une eacuterosion suivi d‟une dilatation
Les petites structures et deacutetail fins disparaissent et ne sont pas recreacuteeacutees
lors de la dilation Une opeacuteration d‟ouverture est ainsi inteacuteressante pour
eacuteliminer les petits morceaux de contours bruiteacutes dans une image de
contours
V Ouverture et fermeture1 Ouverture
BBABAC )(
Sami Gazzah 2009 166
V Ouverture et fermetureII Fermeture
La fermeture (closing) consiste agrave une dilatation suivi d‟une eacuterosion
Les structures proches fusionnent lors de la dilation mais seules les
fusions ponctuelles disparaissent agrave nouveau lors de l‟eacuterosion Une
opeacuteration de fermeture est ainsi inteacuteressante pour boucher les petits
trous
Sami Gazzah 2009 167 Sami Gazzah 2009 168
Exercice 3 Sur l‟image de deacutepart on reacutealise une opeacuteration de
fermeture binaire par l‟eacuteleacutement structurant 4-connexiteacute Conclusions
Eacuteleacutement structurant
(4-connexiteacute)
-
-
-
-Fermeture = dilatation puis eacuterosion
Image de deacutepart Image dilateacutee Image dilateacutee puis eacuterodeacutee
Combler les trous
Reacutetablir les jonctions
tout en preacuteservant la taille
15122010
29
Sami Gazzah 2009 169
Exercice 4 Sur l‟image de deacutepart on reacutealise une opeacuteration
d‟ouverture binaire par l‟eacuteleacutement structurant 4-connexiteacute Conclusions
Eacuteleacutement structurant
(4-connexiteacute)
-
-
-
-Ouverture = eacuterosion puis dilatation
Image de deacutepart Image eacuterodeacutee Image eacuterodeacutee puis dilateacutee
Supprimer les fausses alarmes
Seacuteparer les objets accoleacutes
tout en preacuteservant la tailleSami Gazzah 2009 170
Appliquer les filtres suivants sur limage donneacutee Quelles sont les valeurs choisies
aux bords de limage et quelles sont les modifications visuelles
a) filtre moyenneur M3acute3(19)
b) eacuterosion
c) dilatation
d) meacutedian
e) fermeture
f) ouverture
Exercice 5
Sami Gazzah 2009 171
IV Amincissement et Squelettisation
La squelette (skeleton) d‟une forme est l‟axe meacutedian L‟inteacuterecirct de cette
opeacuteration est dans
La reconnaissance de caractegraveres
Deacutetection des reacuteseaux routiers
La planification de trajectoirehellip
Une meacutethode couramment employeacutee est une amincissement reacutepeacuteteacute
jusqu‟agrave le convergence (n‟apporte aucune modification)
Sami Gazzah 2009 172
IV Amincissement et Squelettisation1 Opeacuteration Tout Ou Rien laquoHit or Missraquo
Cette transformation est deacutefinie par
leacuteleacutement structurant eacutetendu est centreacute sur chaque pixel de limage
comme pour les opeacuterations ensemblistes
la question poseacutee est est ce que le contenu de limage est identique au
contenu de leacuteleacutement structurant
si la reacuteponse est oui le pixel reacutesultant vaut 1 si non il vaut 0
Une application permet de deacutetecter des configurations locales
particuliegraveres dans une image
plusieurs masques peuvent ecirctre utiliseacutes indeacutependamment les images
reacutesultat eacutetant ensuite combineacutees par une opeacuteration ou
)()( cc BABABA
Bc-
est le compleacutementaire
local de B
Sami Gazzah 2009 173
IV Amincissement et Squelettisation1 Opeacuteration laquoHit or Missraquo
Exemple dopeacuteration Hit or Miss deacutetection des coinsSami Gazzah 2009 174
IV Amincissement et Squelettisation1 Amincissement (thinning)
bull La transformation TOR nous permet eacutegalement de deacutefinir
l‟amincissement
bullL‟amincissement consiste agrave soustraire limage reacutesultat dun hit or miss de
limage initiale
bull des amincissements successifs conduisent au squelettisation
)()( BAAAthin
15122010
30
Sami Gazzah 2009 175
IV Amincissement et Squelettisation1I Squelettisation
Appliquer des amincissements successifs puis s‟arrecircter lorsque l‟amincissement
n‟apporte plus de modification C‟est une eacuterosion particuliegravere ougrave les pixels sont
supprimeacutes agrave la condition quils ne provoquent pas la seacuteparation dune reacutegion en
deux
Sami Gazzah 2009 176
IV Amincissement et Squelettisation1I Squelettisation
Sami Gazzah 2009 177
Chapitre 7
Transformations
geacuteomeacutetriques 2D
Sami Gazzah 2009 178
I Introduction
On entend par transformation 2D l‟ensemble des transformations du
plan pouvant ecirctre appliqueacutees aux pixels de l‟image sans consideacuteration
de l‟intensiteacute
Par exemples
Reacuteduction agrandissement
Deacuteformation d‟image
Recalage d‟une photo scanneacutee
Recaler des images que l‟on veut comparer
Mosaiumlque d‟images
Sami Gazzah 2009 179
I Transformations euclidiennes
Elles preacuteservent les distances et les angles
Elles sont les compositions de translations et de rotations
1) Translation
Ougrave Tx et Ty sont les deacuteplacements en x et en y de la translation
y
x
Tyy
Txx
Sami Gazzah 2009 180
2) Rotation
15122010
31
Sami Gazzah 2009 181 Sami Gazzah 2009 182
3) Remarques (1)
Sami Gazzah 2009 183
3) Remarques (2)
Sami Gazzah 2009 184
II Homotheacuteties
Changement deacutechelle par rapport agrave lorigine (scaling zoom)
Ougrave Sx et Sy sont les facteurs dagrandissement ( gt1) ou de
reacuteduction ( lt1) en x et en y
ySy
xSx
y
x
Sami Gazzah 2009 185
II Homotheacuteties
Sami Gazzah 2009 186
II Homotheacuteties
15122010
32
Sami Gazzah 2009 187
III Reacuteflexions
Reacuteflexions par rapport aux axes (flip miroir)
Sami Gazzah 2009 188
IV Cisaillement
Cisaillement (glissement shearing) on eacutetire suivant un ou plusieurs axes
Sami Gazzah 2009 189
Transformations inverses
Sami Gazzah 2009 190
Repreacutesentation Matricielle
IV Autres (reacuteflexions miroirs et flips)
Sami Gazzah 2009 191
Interpolation Directe
Sami Gazzah 2009 192
oDifficile de distribuer le niveau de gris sur les pixels voisins
oOn n‟a pas la certitude que tous les pixels de l‟image
transformeacutee recevront une valeur =gt ldquotrousrdquo
15122010
33
Interpolation Inverse
Sami Gazzah 2009 193
o Interpolation de la valeur du pixel agrave partir des voisins plus
facile
oAucun ldquotrourdquo car on parcourt tous les pixels de l‟image
transformeacutee Sami Gazzah 2009 194
V Objet vectoriel - Objet bitmap
Objet vectoriel
Essentiellement on transforme
les sommets (ou points de
controcircle) et on retracehellip
Objet ldquobitmaprdquo
On doit calculer la nouvelle
position de chaque pixel De plus on
doit geacuteneacuteralement interpoler les
niveaux de gris (couleurs)hellip
Sami Gazzah 2009 195
IV Assignation des niveaux de gris
Neacutecessaire car la position d‟un pixel transformeacute n‟est pas entiegraverehellip
Plusieurs meacutethodes
Interpolation au plus proche voisin
Interpolation bilineacuteaire
Interpolation bicubique
Autres types d‟interpolation
Sami Gazzah 2009 196
IV Assignation des niveaux de gris
Linterpolation de limage cest ce qui arrive lorsquon redimensionne
une image numeacuterique ou quon la redimensionne avec une distorsion
quon change la perspective etc
Exemple 1
Image originale (sans interpolation)
Image agrandie et donc interpoleacutee
Perte de netteteacute due agrave linterpolation
Sami Gazzah 2009
197
IV Assignation des niveaux de gris
Exemple 2 recadrage dimage
Nous allons agrandir cette image agrave 180
Il va donc nous manquer des informations lagrave ougrave lon va creacuteer des
pixels pour agrandir limage
Reacutesultat sans interpolation le logiciel agrandit simplement les pixels
Reacutesultat avec interpolation le logiciel calcule une couleur intermeacutediaire
pour chaque nouveau pixel
Sami Gazzah 2009
198
IV Assignation des niveaux de gris
Image originale
Interpolation au plus
proche voisin
Interpolation
bilineacuteaireInterpolation
bicubique
15122010
34
Sami Gazzah 2009 199
IIV Interpolation au plus proche voisin
Cest lalgorithme le plus rapide agrave calculer
Prend en compte dans le calcul que le pixel le plus proche du point
agrave interpoler
Consiste tout simplement agrave agrandir chaque pixel
Exemple Interpolation du plus proche voisin par copie des pixels
Copie de chaque colonne et de chaque rang
23 20
25 28
23 23
23 23
20 20
20 20
25 25
25 25
28 28
28 28
Sami Gazzah 2009 200
IIV Interpolation bilineacuteaire
Fonction bilineacuteaire de 4 pixels voisins ( en 2 D )
i-1 i i+1
i-1 i-12 i i+12 i+1 i+32
yi=xiYi+12=(xi+xi+1)2
Problegraveme pour le dernier point
Extrapolation lineacuteaire de
2 xn-xn-1
Principe 1D
attribuer agrave chaque point cible une
combinaison lineacuteaire des quatre
points sources les plus proches par
la transformation inverse
Sami Gazzah 2009 201
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 202
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 203 Sami Gazzah 2009 204
IIV Interpolation bilineacuteaire
15122010
35
Sami Gazzah 2009 205
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 206
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 207
IIV Interpolation bilineacuteaire exemple
Sami Gazzah 2009 208
IIV Interpolation bicubique
Sami Gazzah 2009 209
exemple
Sami Gazzah 2009 210
Chapitre 8
Geacuteneacuteration de segments de
droite et de cercles en 2D
15122010
36
Sami Gazzah 2009 211
Infographie 2D besoin de dessiner des primitives de
base (segments cercles hellip)
Espace discreacutetiseacute (pixels) il faut trouver un moyen pour
afficher des segments ou des cercles
I Segments 2D cercles1 Introduction
Comment trouver les pixels agrave allumer pour approximer au mieux une
droite ou un cercle
Algorithme rapide et preacutecisSami Gazzah 2009 212
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=ax+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ya
Sami Gazzah 2009 213
Rappelhellip
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=mx+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ym
Sami Gazzah 2009 214
Exemple
Sami Gazzah 2009 215
Agrave partir des coordonneacutees des 2 extreacutemiteacutes d‟un segmenthellip
Un algorithme simple
Boucle de x1 agrave x2 dx=1
ALLUME (x Arrondir(y))
Avec x2gtx1
Arrondir(y) = Arrondir(ax+b)
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Sami Gazzah 2009 216
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Choix de lrsquoaxehellip
Peu efficace
bullagrave chaque iteacuteration 1 multiplication (ou division) + 1 addition
+ 1 arrondi
15122010
37
Sami Gazzah 2009 217
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
DDA (Digital Differential Analyzer)
y et m doivent ecirctre des reacuteelsSami Gazzah 2009 218
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Calcul en entier (donc plus rapide)
Baseacute sur le choix entre deux points discrets deacutependant de leur
distance respective avec le point reacuteel ideacuteal
On simplifie le problegraveme en traitant drsquoabord le traceacute drsquoun segment
dans le 1er octant m infeacuterieur agrave1 et positif (0ltmlt 1)
Facilement geacuteneacuteralisable aux autres octants
Sami Gazzah 2009 219
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Traceacute d‟un segment dans le premier octant mlt1
On part d‟un point (xi yi) allumeacute
Sami Gazzah 2009 220
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
On ne calcule pas reacuteellement les distances rArr on veacuterifie si la diffeacuterence
entre les deux distances est positive ou neacutegative
Le signe de la longueur (d1-d2) deacutetermine s‟il faut allumer le pixel L ou H
L
H
Sami Gazzah 2009 221
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Comme m=ΔyΔx on multiplie cette diffeacuterence par Δx pour eacuteviter la
division
Mais que vaut p1
Sami Gazzah 2009 222
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
15122010
38
Sami Gazzah 2009 223
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Pour eacuteviter de calculer cette diffeacuterence pour chaque point on cherche
une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
Sami Gazzah 2009 224
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009 225
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009
Exercice
Tracer le segment de droite
pi xi yi
2 0 0
-6 1 1
6 2 1
-2 3 2
10 4 2
2 5 3
-6 6 4
6 7 4
-2 8 5
10 9 5
2 10 6
6
10
y
x
Sami Gazzah 2009 227
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
Sami Gazzah 2009 228
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
hellip interchanger les points hellip
Si |Δx| lt | Δy| on interchange le rocircle de x et y
15122010
39
Sami Gazzah 2009 229
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (1)
Sami Gazzah 2009 230
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (2)
Sami Gazzah 2009 231
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (3)
Sami Gazzah 2009 232
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Toujours baseacute sur le choix entre deux
points discrets deacutependant de leur
distance respective avec le point reacuteel
On travaille dans le 2e octant agrave partir
de (0r) ainsi pour un point (xi yi) le
prochain point sera
(xi+1 yi) ou (xi+1 yi-1)
Sami Gazzah 2009 233
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On calcule le prochain y et les diffeacuterences respectives avec les points
discrets de la faccedilon suivante
Le signe de pi nous dira si nous devons choisir le point lateacuteral ou le diagonal
Sami Gazzah 2009 234
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Encore une fois pour eacuteviter de calculer cette diffeacuterence pour chaque point on
cherche une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
15122010
40
Sami Gazzah 2009 235
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On considegravere 2 cas
Valeur initiale
Sami Gazzah 2009 236
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Sami Gazzah 2009 237
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Exemple centre = (00) et r = 3
Sami Gazzah 2009 238
Livres
Diane Lingrand Introduction au Traitement d‟Images Paris Editions Vuibert 2e
eacutedition 2008
Steven k Feiner James D Foley John F Hughes Richard l Phillips Andries
Vanam Introduction agrave l‟infographie Paris Editions Vuibert 2000
William K Pratt Digital Image Processing Willy-Inter-sciences 4th edition 2007
Eacuteric Incerti Compression dimage ndash Algorithmes et standards Vuibert 2003
Gilles Burel Introduction au traitement dimages ndash Simulation sous Matlab
Hermegraves 2001
Sites web
Cours de C Rougier (U Montreacuteal)
httpwww-etudiroumontrealca~rougiercift2730courshtml (cf chapitre 3)
Page wikipeacutedia sur JPEG (en anglais plus complegravete que celle en franccedilais)
httpenwikipediaorgwikiJPEG
Cours de P Courtellemont (Campus numeacuterique Espdon)
httppersouniv-lrfrpcourtelespadonsite_web
Applet de deacutemo par C G Jennings
httpcgjenningscatoyboxhjpegindexhtml
Cours de D Marshall (U Cardiff)
httpwwwcscfacukDaveMultimediaPDF
Reacutefeacuterences
Sami Gazzah 2009 239
Chapitre 9
introduction au
traitement
dimages avec OpenGL
Sami Gazzah 2009 240
OpenGL est une librairie graphique Elle a eacuteteacute creacutee par Silicon
Graphics et beacuteneacuteficie sur ces machines de lacceacuteleacuteration mateacuterielle
Elle est constitueacute d‟environ 200 fonctions graphiques
OpenGL est une bibliothegraveque de fonctions
Les fonctions sont de bas niveaux
La version actuelle est l‟ laquo OpenGL 41 raquo (deacutecembre 2010)
Principale caracteacuteristique indeacutependant du mateacuteriel et du systegraveme
d‟exploitation
Une impleacutementation libre de droits dOpenGL tregraves performante a eacuteteacute
eacutecrite par Brian Paul httpwwwmesa3dorg Et tout son code source
est accessible
Preacutesentation geacuteneacuterale
15122010
41
Sami Gazzah 2009 241
OpenGL propose des fonctions de bas niveaux
Primitives geacuteomeacutetriques points segments polygones
Les fonctions de haut niveaux sont deacuteveloppeacutees par l‟utilisateur ou
importeacutees par la librairie en amont d‟OpenGL
Primitives geacuteomeacutetriques complexes Sphegravere splines etc
Toutes les commandes et fonctions utilisent le preacutefixe gl
Exemple glColor2f()
Sami Gazzah 2009 242
Les Bibliothegraveques co-existant avec OpenGL
GLU OpenGL Utility Library contient les routines de bas niveau pour
geacuterer les matrices de transformation et de projection la facettisation des
polygones et le rendu de surface Les bibliothegraveques dextension du
systegraveme de fenecirctres permettent lutilisation du rendu OpenGL Il sagit de
GLX pour X Windows (fonctions ayant pour preacutefixe glX) et de WGL
pour Microsoft Windows (fonctions ayant pour preacutefixe wgl)
GLUT OpenGL Utility Toolkit est une boite agrave outils indeacutependante du
systegraveme de fenecirctrage eacutecrite par Mark
Kilgard pour simplifier la tacircche dutiliser des systegravemes diffeacuterents (fonctions
ayant pour preacutefixe glut)
Sami Gazzah 2009 243
Les primitives geacuteomeacutetriques d rsquoOpenGL
Les primitives sont deacutecrites par un bloc d‟instructions deacutelimiteacute par glBegin et glEnd
Ce bloc contient geacuteneacuteralement une liste de vertex Exemple
glBegin(GL_LINE_LOOP)
glVertex2f(-05 -05)
glVertex2f(05 -05)
glVertex2f(05 05)
glVertex2f(-05 05)
glEnd()
D‟autres attributs peuvent ecirctre speacutecifieacutes en chaque sommet
couleur normale coordonneacutee de texture etcSami Gazzah 2009 244
OpenGL est une machine agrave eacutetats
En modifiant les variables d‟eacutetats on peut changer le style de rendu
Sami Gazzah 2009 245
Exemple Honda Hippo (3dRendercom)
Placage de textures
bullL‟apparence et le toucher ( feel ) d‟une surface
bullUne image utiliseacutee pour deacutefinir les caracteacuteristiques d‟une surface
bullUne image multi-dimensionnelle qui est plaqueacutee sur un espace multi-
dimensionnel
Sami Gazzah 2009 246
15122010
42
Sami Gazzah 2009 247
Reacutefeacuterences openGL
Sami Gazzah 2009 248
Chapitre 10
introduction au
traitement
dimages avec OpenCV
Sami Gazzah 2009 249
Preacutesentation geacuteneacuterale
Quest-ce
Open Source Computer Vision Library
Bibliothegraveque open source de traitement des images numeacuteriques
Projet initieacute par Intel (en 1999)
Teacuteleacutechargeable sur httpsourceforgenetprojectsopencvlibrary
Fortement orienteacutee temps reacuteel
eacutecrite en C et C++
optimiseacutee pour les processeurs multi-cœurs
Multi-plateformes disponible pour Linux Windows et Mac OS X
Que contient-elle
Des fonctionnaliteacutes (structures et routines gt350 algos) de base et
avanceacutees pour bacirctir rapidement des applications autour de la vision par
ordinateur
Exemples dutilisation traitements de bas niveau (filtrage ) deacutetection
de visages reconnaissance et suivi dobjets en mouvement Sami Gazzah 2009 250
Fonctionnaliteacutes
Lectureeacutecriture dimages statiques et de seacutequences videacuteo
APIs de bas et moyen niveaux
Traitement des images binaires
Manipulations dimage (eacutechantillonnage (sampling) reacutegion dinteacuterecirct (ROI)
redimensionnement (resizing) rotation deacuteformation (warping) )
Deacutetection de contours de lignes de coins (edge detection)
Traitements multi-eacutechelles (multiscale processing)
Transformeacutees (Fourier cosinus discregravete )
Modules de haut niveau
Deacutetection reconnaissance et suivi (tracking) de visages
Flot optique (estimation du mouvement) (optical flow)
Calibrage (calibration) de la cameacutera
Mise en correspondance steacutereacuteoscopique (stereo matching)
IA et apprentissage par ordinateur (machine learning)
3D mise en correspondance (registration)
Sami Gazzah 2009 251
Modules principaux
CxCore
Types de base pour manip dimages (ex struct image point isin cxtypesh)
Structures dynamiques (listes files graphes arbres) et persistantes (LE)
Manipulations de matrices meacutethodes de lalgegravebre lineacuteaire et statistiques
Dessin en surimpression (overlay) (ex eacutetiquetage)
Cv
Traitement dimage calibrage cameacutera
Geacuteomeacutetrie algorithmique (triangulation )
Cvaux
Reconnaissance de visage
Code expeacuterimental et obsolegravete
Autres (dans otherlibs)
HighGUI ES videacuteos curseurs fenecirctrage
ML classification regroupement (clustering)Sami Gazzah 2009 252
OpenCV premiers programmesBibliothegraveque OpenCV
15122010
43
Sami Gazzah 2009 253
Livre
G Bradski amp A Kaehler laquo Learning OpenCV raquo OReilly Press (2008)
codes sources httpexamplesoreillycom9780596516130
Ressources en ligne
Reacutefeacuterence complegravete httpopencvwillowgaragecomdocumentation
Wiki httpopencvwillowgaragecomwikiFullOpenCVWiki
bullPreacutesentation teacuteleacutechargement installation
bullavec CodeBlocks httpopencvwillowgaragecomwikiCodeBlocks
bullDeacutebuter avec OpenCV FAQ
Tutoriels
httpnchcdlsourceforgenetsourceforgeopencvlibraryippocvpdf
httpdaslmemdrexeledu~noahKuntzopenCVTut1html agrave Tut11html
httpwwwcognoticscomopencvservo_2007_series
Tutoriel sur la vision utilisant OpenCV (en franccedilais)
httpwwwsiteduzerocomtutoriel-3-8631-vision-par-ordinateurhtml
Reacutefeacuterences openCV
15122010
5
Sami Gazzah 2009 25
Pour numeacuteriser des images deux opeacuterations
eacutechantillonnage
quantification
3 Repreacutesentation drsquoune image numeacuterique
Sami Gazzah 2009 26
3 Repreacutesentation drsquoune image numeacuterique
Sami Gazzah 2009 27
Valeurs du deacutetail de l‟image Lena
Lena et un deacutetail de lrsquoimage
3 Repreacutesentation drsquoune image numeacuterique
Sami Gazzah 2009 28
(1) Maillage (2) Quantification
pixel (picture element)
Discreacutetisation de l‟espace 2D on deacutecoupe l‟image en pixels
3 Repreacutesentation drsquoune image numeacuterique
Sami Gazzah 2009 29
Une reacutesolution trop faible peut causer des problegravemes d‟aliasing
Apparition d‟escaliers sur les contours obliques
3 Repreacutesentation drsquoune image numeacuterique
Sami Gazzah 2009 30
3 Repreacutesentation drsquoune image numeacuterique
15122010
6
Sami Gazzah 2009 31
255
255
255
255
255
80
80
80
50
40
255
255
70
255
20
255
255
60
40
0
255
255
255
255
255
Image en niveaux de gris et sa repreacutesentation matricielle
Discreacutetisation de l‟espace des couleurs ou niveaux de gris
Une quantification trop faible peut causer des problegravemes de faux contours
3 Repreacutesentation drsquoune image numeacuterique
Sami Gazzah 2009 32
Pavage en quinconce Pavage carreacute Pavage hexagonale
Pavage triangulaire
3 Repreacutesentation drsquoune image numeacuterique3 1 Pavage ou tesselation
A chaque eacutechantillonneur (sommet du maillage) on associe une
surface eacuteleacutementaire dite paveacute ou tesselle
Les pixels sont geacuteneacuteralement arrangeacutes sous forme rectangulaire dans
un tableau 2D hellip il peut exister d‟autres pavages ou tesselations
Le pavage hexagonale
Le pavage triangulaire ou carreacute
Le pavage rectangulaire en quinconce
Sami Gazzah 2009 33
Certains pavage sont motiveacutes par
leurs adeacutequation avec le systegraveme d‟acquisition exemple le pavage
quinconce correspond agrave certains systegravemes d‟acquisitions embarqueacutes dans
les satellites (satellite spot 5)
des relations geacuteomeacutetriques telles que le voisinage nombre des pixels
voisins connexes (4 6 8 32hellip)
3 1 Pavage ou tesselationhellip choixhellipmotivation
3 Repreacutesentation drsquoune image numeacuterique
8 voisins4 voisins 6 voisins
Sami Gaz 29 oct 2010 34Source httpwwweoportalorgdirectorypres_SPOT5html
systegravemes drsquoacquisitions du
satellite spot 5
Introduction du Super-Mode permet la
creacuteation d‟une image agrave 25 megravetres de
reacutesolution agrave partir de deux images agrave 5 megravetres
(acquises simultaneacutement avec un demi-pixel
de deacutecalage)
Sami Gazzah 2009 35
Pour un ordinateur une image rArr ensemble de pixels
Un pixel possegravede une valeur scalaire vecteur hellip
Ordre de grandeur
o si un pixel est codeacute sur 8 bits rArr 28=256 couleurs ou niveau de gris
o si helliphelliphelliphelliphellipsur 16 bits rArr 216=65 536 couleurshellipplus d‟espace
o helliphelliphelliphelliphelliphelliphelliphellip24 bits rArr 224=16 777 216 couleurshellipencore ++
3 Repreacutesentation drsquoune image numeacuterique3 2 Codage des pixels
Sami Gazzah 2009 36
3 Repreacutesentation drsquoune image numeacuterique3 3 Distance entre pixels
Diffeacuterents distances entre 2 points P(ij) et P(kl) peuvent ecirctre utiliseacutees
i
j
l
k
1 Distance euclidienne
+ Cette distance ne privilegravege
aucun axe
22 )()()()(( jliklkPjiP
15122010
7
Sami Gazzah 2009 37
3 Repreacutesentation drsquoune image numeacuterique3 3 Distance entre pixels
Diffeacuterents distances entre 2 points P(ij) et P(kl) peuvent ecirctre utiliseacutees
i
j
l
k2 Distance blocks
Cette distance est appeleacute eacutegalement
laquo Manhatten distance raquo
il faut contourner les blocs
d‟habitations pour relier deux points
Manhatten city NY Sami Gazzah 2009 38
3 Repreacutesentation drsquoune image numeacuterique3 3 Distance entre pixels
Diffeacuterents distances entre 2 points P(ij) et P(kl) peuvent ecirctre utiliseacutees
i
j
l
k
3 Distance tour d‟eacutechiquier
Sami Gazzah 2009 39 Sami Gazzah 2009 40
4 Formats drsquoimages
Une image vectorielle est repreacutesenteacutee par des formes geacuteomeacutetriques simples
Ligne point de deacutepart point d‟arriveacutee hellip
Triangle 3 sommets la couleur du contour la couleur inteacuterieure
(remplissage) hellip
Ex PAO (publication assisteacutee par ordinateur) DAO (dessin assisteacute par
ordinateur) etc
Une image matricielle est repreacutesenteacutee par des matrices de pixels Bitmap
(image en mode point)
Ex image en niveaux de gris ou couleurs de type photo GIF PCX BMP
JPEG PPM PGMhellip
4 1 Image vectorielle Vs Image matricielle
Sami Gazzah 2009 41
4 Formats drsquoimages4 1 Images vectorielles Vs Images matricielles
Images vectorielles Images matricielles
Avantages Inconveacutenients Avantages Inconveacutenients
Peu de place en
meacutemoire
Peut devenir gros
pour une image
complexe
Aucun calcul pour
l‟affichage
Peuvent occuper
beaucoup d‟espace
meacutemoire
Redimensionnement
sans perte
d‟informations
Beaucoup de calculs
pour l‟affichage
La complexiteacute de
l‟image n‟influe pas
sur sa taille
Aucun aliasing si on
manipule l‟objet
graphique
Sami Gazzah 2009 42
4 Formats drsquoimages4 2 Stockage des images
o Pour la meacutemorisation des images sur disque meacutemoire on stocke les informations
concernant les image dans un en-tecircte puis les donneacutees (valeurs de pixels)
o L‟en-tecircte contient la largeur et la hauteur de l‟image aussi on peut ajouter d‟autres
informations telles que le type de donneacutees l‟auteur la datehellip
o Pour certains formats l‟en-tecircte et les donneacutees sont stockeacutes dans 2 fichiers
diffeacuterents
o Les donneacutees sont souvent stockeacutees dans l‟ordre des pixels de gauche agrave droite et
de haut en bas
o Les anciens formats sont simples et tregraves facile agrave lire et agrave eacutecrire
bull PBM pour des images binaires
bull PGM pour des images en niveaux de gris
bull PPM pour des images couleurs
o Les formats les plus courants sont GIF PCX BMPTIFF et JPEG
15122010
8
Sami Gazzah 2009 43
4 Formats drsquoimages4 2 Stockage des images
421 format PBM (Portable Bit Map)
Nombre de colonnes=10
Nom
bre
de c
olon
nes
=10
P1 signifie qursquoil srsquoagit drsquoun format PBM et que les donneacutees sont stockeacutees en ASCII signifie qursquoil srsquoagit drsquoune ligne de commentaire
Sami Gazzah 200944
4 Formats drsquoimages4 2 Stockage des images
421 format PGM(Portable Gray Map)
P2 signifie qursquoil srsquoagit drsquoun format PGM et que les donneacutees sont stockeacutees en ASCII
Sami Gazzah 200945
4 Formats drsquoimages4 2 Stockage des images
421 format PPM(Portable Pixel Map)
P3 signifie qursquoil srsquoagit drsquoun format PPM et que les donneacutees sont stockeacutees en ASCII Les valeurs des pixels sont donneacutees pixel par pixel
Sami Gazzah 2009 46
Sami Gazzah 2009 47
5 Eleacutements de Colorimeacutetrie
Un prisme seacutepare la lumiegravere blanche en ses couleurs
Sami Gazzah 2009 48
6 Les systegravemes de repreacutesentation des couleurs
Kunt a deacutemontreacute qu‟en combinant trois longueurs drsquoondes particuliegraveres il est
possible de syntheacutetiser presque toutes les couleurs existantes Les trois
couleurs de base sont dites laquo couleurs primaires raquo Une couleur peut donc ecirctre
repreacutesenteacutee dans un espace agrave trois dimensions Il en existe plusieurs
- Systegraveme RGB (Red Green Blue)
- Systegraveme CMY (Cyan Magenta Yellow)
- Systegraveme XYZ
- Systegraveme HLS (Hue Magenta Saturation)
Image couleur et sa repreacutesentation matricielle
15122010
9
Sami Gazzah 2009 49
Images couleurs (24 bits)
Lrsquoespace couleur Rouge Vert Bleu (RGB)
Sami Gazzah 2009 50
Valeur R Valeur V Valeur BCouleur
correspondanteCommentaires
0 0 0 noir
0 0 255 bleu
0 255 0 vert
255 0 0 rouge
128 128 128
couleur
intermeacutediaire
correspondant agrave
un gris
255 255 255 blanc
Sami Gazzah ISITCom 200951
Exemple de deacutecomposition drsquoune image couleur en 3 plans de couleur
(a) image originale (b)canal rouge (c)canal vert (d)canal bleu
(b)(a)
(c) (d)
Sami Gazzah 2009 52
Lrsquoespace couleur Cyan Magenta et Jaune (GMJ)
bull les couleurs primaires CMJ sont ici les compleacutementaires des RVB
bull utiliseacute par certaines imprimantes couleurs agrave jet dencre
bull les diffeacuterentes couleurs sont obtenues par soustraction du blanc
Sami Gazzah 2009 53
Le principe de lespace HSV est de caracteacuteriser les couleurs de faccedilon plus
intuitive conformeacutement agrave la perception naturelle des couleurs en termes de
1 teinte (Hue) intuitivement cest le nom quon utilisera pour deacutesigner la couleur
vert mauve etc Ideacutealement associeacute agrave une longueur donde
2 saturation (Saturation)cest le taux de pureteacute de la couleur qui doit varier
entre la pureteacute maximale (couleur eacuteclatante) et lachromatisme (niveau de gris)
3 valeur (Value) cest la mesure de lintensiteacute lumineuse de la couleur qui doit
varier entre le noir absolu et le blanc
Images HSV
Composante valeur
Composante saturation
Composante teinte
Sami Gazzah 2009 54
Pour passer de la repreacutesentation initiale (RGB) agrave cette repreacutesentation on opegravere
de la maniegravere suivante
15122010
10
Sami Gazzah 2009 55
Quelques caracteacuteristiques drsquoimages numeacuteriques
La reacutesolution dune image = nombre de pixels par uniteacute de longueur de la
structure agrave numeacuteriser (dpi (dots per inches) ou ppp (pixel par pouce)
La reacutesolution du format de limage =nombre de pixels qui compose limage en
hauteur et en largeur (512 pixels par 512 pixels par exemple)
La taille des donneacutees pour une image (en bits) = Nlignes x Ncolonnes x B
La profondeur de bits = nombre de bits neacutecessaire pour repreacutesenter un pixel dans
l‟image numeacuterique
La dynamique dune image= leacutetendu de la gamme de couleurs 2nbre de bitspixels ndash 1
Le poids d‟une image numeacuterique est l‟espace meacutemoire qu‟elle occupe sur un
support de stockage numeacuterique = nombre de bits par pixel x nombre total de pixels
Sami Gazzah 2009 56
bullune image 200200 pixels en niveaux du gris fait un poids de
200200=40000 octets
bullimage de 200200 pixels en vraies couleurs (16 millions) (24 bits)
2002003= 120000 octets (117 Ko)
bull image de 200200 pixels en fausses couleurs (256 couleurs) (8 bits)
2002001= 40000 octets (39 Ko)
Taille des limages en pixels
Sami Gazzah 2009 57
Exercice drsquoapplication
Soit une image carreacutee au format PPM(ASCII) de 160 Ko
Quelles sont approximativement les dimensions de cette image si
on neacuteglige la taille de lrsquoen-tecircte
Quelle serait la taille du fichier si cette image eacutetait stockeacutee en
binaire
Remarques Le format PPM (Portable Pixel Map) concerne les
images couleurs Chaque pixel a pour valeur un triplet (RGB) et
chaque couleur est exprimeacutee par un caractegravere et un espace
Sami Gazzah 2009 58
Formats de fichiers dimages
Une image est un tableau de pixels
Une image est stockeacutee soit dans un fichier sous la forme de texte soit dans la
meacutemoire de lordinateur sous la forme dun vecteur
Sami Gazzah 2009 59
Les opeacuterations de bases concernant une image sont la lecture (fichier vers
meacutemoire) et leacutecriture (meacutemoire vers fichier) Les informations
neacutecessaires agrave la manipulation dune image sont
nombre de lignes
nombre de colonnes
format des pixels (bit niveaux de gris niveaux de couleurs)
compression eacuteventuelle
Il existe une multitude de formats de fichiers permettant de stocker ces
informations ainsi que le tableau des valeurs En particulier
Les formats simples fichiers textes comportant un entecircte contenant
les dimensions de limage et le format des pixels Exemples les formats
PNM (portable anymap) PBM (portable bitmap) PGM (prtrable
grayscalemap) PPM (portable pixmap) Les fichiers correspondants sont
constitueacutes des eacuteleacutements suivants Sami Gazzah 2009 60
1 Un nombre magique pour identifier les type du fichier P1 ou P4
pour PBM P2 ou P5 pour PGM et P3 ou P6 pour PPM
2 Un caractegravere despacement (blanc TABs Cs LFs)
3 La largeur de limage (valeur deacutecimale codeacutee en ASCII) suivie dun
caractegravere despacement la longueur de limage (valeur deacutecimale
ASCII) suivie dun caractegravere despacement
4 Uniquement pour PGM et PPM lintensiteacute maximum (valeur deacutecimale
comprise entre 0 et 255 codeacutee en ASCII) suivie dun caractegravere
despacement
5 Largeur x hauteur nombres Ces nombres sont soit des valeurs
deacutecimales codeacutees en ASCII et seacutepareacutees par des espacements dans le
cas des formats P1 P2 P3 soit directement les valeurs binaires sur 1
ou 2 octets dans le cas des formats P4 P5 P6 Dans ce dernier cas il
ny pas de caractegraveres despacement entre les valeurs
15122010
11
Sami Gazzah 2009 61
Chapitre 2
Transformations sur les images
Sami Gazzah 2009 62
Les transformations peuvent ecirctre classeacutees de la maniegravere suivante
bullTransformations ponctuelles
bullTransformations de voisinage
bullTransformations spectrales
bullTransformations morphologiques
Au cours du processus de traitement et drsquoanalyse lrsquoimage subit une seacuterie
de transformations
Introduction
Image sourceTransformationTransformation
TTImage transformeacutee
Sami Gazzah 2009 63
1 Transformations ponctuelles
A partir dune image source la nouvelle valeur du pixel deacutepend uniquement de
son ancienne valeur
Exemple seuillage ajustement luminositeacutecontraste opeacuterations algeacutebriques
opeacuterations logiques et arithmeacutetiques manip dhistogramme
1 Opeacuterations logiques et arithmeacutetiques
Les images opeacuterandes
doivent ecirctre de mecircme taille
peuvent ecirctre des images constantes
Exemples
addition soustraction
ET logique OU logique
Problegravemes
deacutebordements de [0 255]
normalisation Sami Gazzah 2009 64
Images en niveaux de gris ETOU logique bit agrave bit entre les 8 bits
codant les valeurs des pixels
Images binaires ETOU logique entre les pixels
Sami Gazzah 2009 65
Les opeacuterations logiques
bullET I(xy)=I1(xy) ET I2(xy) intersection logique
bullOU I(xy) = I1(xy) OU I2(xy) union logique
bullNOT I(xy) = NOT(I1(xy)
opeacuterations arithmeacutetiques
bullAddition I(xy)=I1(xy)+I2(xy)
bullSoustraction I(xy)=I1(xy)-I2(xy)
bullMultiplication
bullDivision par une constantehellip
Sami Gazzah 2009 66
Les opeacuterations logiques
15122010
12
Sami Gazzah 2009 67
Application
Masquage
Sami Gazzah 2009 68
Les Opeacuterations arithmeacutetiques
Addition dimages
Principe I(xy)=I1(xy)+I2(xy) pour tout pixel de coordonneacutees (xy)
Strateacutegies si deacutepassement de capaciteacute
bullDeacutecalage des valeurs dans [0 127] avant addition (perte du bit de poids faible)
bullSaturation I(xy) = min ( I1(xy)+I2(xy) 255)
bullPreacute-calcul des valeurs finales (theacuteoriques) minimale et maximale
puis recadrage de la dynamique
Utilisations principales
Augmentation de la luminance dune image (par addition dune constante ou
dune image avec elle-mecircme) et diminution du bruit dans une seacuterie dimages
))()((max
))()((min
21)(
max
21)(
min
yxIyxIi
yxIyxIi
Iyx
Iyx
))()((255
)( 21
minmax
yxIyxIii
yxI
Sami Gazzah 2009 69
Les Opeacuterations arithmeacutetiques
Soustraction dimages
Principe I(xy)=I1(xy)-I2(xy) pour tout pixel de coordonneacutees (xy)
Strateacutegies si deacutepassement de capaciteacute
bullSaturation I(xy) = max ( I1(xy) - I2(xy) 0)
bullDiffeacuterence absolue I(xy) = | I1(xy) - I2(xy) |
Utilisations principales
bullDiminution de la luminance dune image
bullDeacutetection de changements entre images
bulldeacutefauts (par comparaison avec une image de reacutefeacuterence)
bullmouvements (par comparaison avec une autre image de la seacutequence)
Sami Gazzah 2009 70
Rim Romdhaneet al AVSS10 rd the 7th IEEE International Conference on
Advanced Video and Signal-Based Surveillance Boston USA 2010
Sami Gazzah 2009 71
Addition et soustraction de deux images
Sami Gazzah 2009 72
Si on dispose de limage en niveau de gris et de limage binaire suivante
15122010
13
Sami Gazzah 2009 73
2 Identiteacute neacutegatif et Seuillage
Sami Gazzah 200974
2 Les opeacuterations geacuteomeacutetriques
Opeacuterations geacuteomeacutetriques sur une image en niveaux de gris
Sami Gazzah 2009 75
Une transformation de voisinage est telle que la nouvelle valeur
drsquoun pixel tient compte des pixels appartenant au voisinage du
pixel consideacutereacute
Le voisinage peut avoir une taille plus ou moins grande (3x3 5x5
7x7hellip) et il peut avoir une forme reacuteguliegravere (carreacute rectangle
hexagonehellip) ou bien une forme quelconque
3 Transformations de voisinage
Sami Gazzah 2009 76
Exemple de transformation de voisinage le
produit de convolution
dans le cas continu le produit de convolution de f par g est
deacutefini par
Dans le cas discret il est geacuteneacuteralement deacutefini sur un voisinage il
est donneacute par
Sami Gazzah 2009 77
Si on applique ceci agrave une image I1 de dimensions
finies et agrave moyenne de convolution K (K
Kernel=noyau) de dimension 3 x 3 les pixels de
lrsquoimage I1 obtenue par convolution de I2 par K ont
pour valeur
Sami Gazzah 2009 78
Nouvelle
image
Nouvelle valeur
de pixel21
1 11
1 111 11
Noyau
Nouvelle valeur de pixel =
9
22 2719
9 19
51 21 14Image
originale
111
111
111
9
1h
15122010
14
Sami Gazzah 2009 79
4-Transformations spectrales (1)
Transformeacutee de Fourier 2D (TF 2D)
- La TF est
Dans la cas 1D (Rappel)
Dans la cas 2D
- La TF inverse
- La TF est
- La TF inverse
Sami Gazzah 2009 80
4-Transformations spectrales (2)
Exemple des transformations spectrales transformeacutee de Fourier
Soit f(xy) deacutefinie par une matrice d‟eacutechantillons reacuteguliegraverement espaceacutes
N le nombre de lignes M nombre de colonnes
- La TF est deacutefinie par
- La TF inverse est deacutefinie par
Sami Gazzah 2009 81 Sami Gazzah 2009 82
Compression RLE (Run Length Encoding)
2 2 2 2 128 128 128 120 120 80 96 96 94 94 94 95 97 97 97 97
4 2 3 128 2 120 1 80 2 96 3 94 1 95 4 97
Utile quand il y a des reacutepeacutetitions dans la chaicircne agrave encoder
Exemple Formats BMP TIFF PCX (Paintbrush)
Sami Gazzah 2009 83
Chapitre 3
RESTAURATION DrsquoIMAGES
Sami Gazzah 2009 84
L‟acquisition s‟accompagne toujours d‟une distorsiondeacutegradation
Il existe diffeacuterentes sources de deacutegradation (bruit) d‟une image
bruit lieacute au contexte de lacquisition Bougeacute mauvaises conditions
d‟eacuteclairagehellip
bruit lieacute au capteur Capteur de mauvaises qualiteacutes mauvaise mise
au point etchellip
bruit lieacute agrave leacutechantillonnage Une mauvaise freacutequence
d‟eacutechantillonnage peut introduire dans l‟image des points blancs ou
noirs connus souvent sous l‟appellation laquo sel et poivre raquo
bruit lieacute agrave la nature de la scegravene Preacutesence de fumeacutee de nuage
etchellip
Il faut corriger l‟image par un proceacutedeacute algorithmique
15122010
15
Sami Gazzah 2009 85
Restauration des Images monochromatiques et des images
couleurs
Au deacutebut de l‟imagerie numeacuterique les algorithmes deacuteveloppeacutes eacutetaient
destineacutes aux images en niveaux de gris Avec les progregraves techniques et le
deacuteveloppement des outils informatiques le traitement des images
couleurs est devenu possible
bull Approche marginale
Sami Gazzah 2009 86
Approche vectorielle
Dans lapproche vectorielle le vecteur couleur est consideacutereacute globalement
et le traitement doit ecirctre alors reacuteellement vectoriel Il ny a pas dans ce cas
une eacutetape de fusion ou de seacuteparation explicite entre les diffeacuterentes
composantes couleur de lrsquoimage Dans ce cas la correacutelation entre les
diffeacuterentes composantes peut ecirctre prise en compte ce qui aboutit
geacuteneacuteralement agrave des reacutesultats meilleurs que ceux du traitement marginal
Sami Gazzah 2009 87
Rappel
Sami Gazzah 2009 88
Sami Gazzah 2009 89
Nouvelle
image
Nouvelle valeur
de pixel21
1 11
1 111 11
Noyau
Nouvelle valeur de pixel =
9
22 2719
9 19
51 21 14Image
originale
Sami Gazzah 2009 90
15122010
16
Sami Gazzah 2009 91
Lissage spatial tout en remplacent la valeur du pixel courant par la moyenne de
tous les pixels inclus dans un voisinage centreacute en ce point
Sami Gazzah 2009 92
Sami Gazzah 2009 93 Sami Gazzah 2009 94
En traitement d‟image les tailles des fenecirctres utiliseacutees pour le
filtrage meacutedian sont geacuteneacuteralement impaires 3 3 5 5 7 7
exemple
fenecirctre de 5 pixels en croix
Pour les fenecirctres de taille paire ( 2 K valeurs ) apregraves
ordonnancement croissant des valeurs prendre la moyenne des 2
valeurs centrales
valeur de sortie( Kiegraveme valeur ordonneacutee + (K+1)iegraveme valeur ordonneacutee )
2=
Sami Gazzah 2009 95 Sami Gazzah 2009 96
15122010
17
Sami Gazzah 2009 97
Image laquo Piegraveces raquo de reacutefeacuterence bruiteacutee ( bruit de type impulsionnel ) puis filtreacutee
avec un filtre moyenneur (33) et un filtre meacutedian (33)
Image de reacutefeacuterence Image bruiteacutee
Bruit
Le filtrage meacutedian est plus adapteacute que le filtrage
lineacuteaire pour reacuteduire le bruit impulsionnel
Observation
Comparaison filtre meacutedian et filtre moyenneur
Sami Gazzah 2009 99 Sami Gazzah 2009 100
Sami Gazzah 2009 101 Sami Gazzah 2009 102
Chapitre 4
REHAUSSEMENT DrsquoIMAGES
15122010
18
Sami Gazzah 2009 103
Introduction
Le preacutetraitement d‟image est l‟ensemble des opeacuterations effectueacutees sur
une image soit pour l‟ameacuteliorer soit pour la restaurer
Le preacutetraitement d‟une image vise soit agrave renforcer la ressemblance des
pixels soit au contraire agrave accentuer les diffeacuterences de pixels d‟une mecircme
reacutegion
Accroitre la seacuteparabiliteacute des reacutegions composant une scegravene revient agrave
augmenter les contrastes vu
On applique le rehaussement des images afin de faciliter l‟interpreacutetation
visuelle et la compreacutehension des images
Pour comprendre ce type de rehaussement il faut comprendre le concept
d‟histogrammeSami Gazzah 2009 104
Deacutefinition de lrsquohistogramme drsquoune image
L‟histogramme est un outil qui permet de comptabiliser le nombre
d‟occurrences de chacune des valeurs dans une image en niveaux de gris
Dans une image couleur il est neacutecessaire d‟utiliser plusieurs
histogramme sur chacune des composantes du systegraveme de repreacutesentation
de la couleur
Soit h l‟histogramme de l‟image I de dimension (w x h) h[i] repreacutesente
le nombre d‟occurrence de chaque niveau de quantification i La probabiliteacute
estimeacutee du niveau i dans une image I est
hw
ihip
][)(
Image de 256 256 pixels
codeacutes chacun sur 8 bitsPopulation de pixels pour chaque
niveaux de gris [0 255]
Pour chaque niveau de gris on compte le nombre de pixels s‟y reacutefeacuterant
Pour chaque niveau on trace le graphe en bacircton du nombre de pixels
(possibiliteacute de regrouper les niveaux proches en une seule classe)
Exemple drsquohistogramme pour une image en niveaux
de gris
0 50 100 150 200 250
0
200
400
600
800
1000
cameraman
Image laquo A raquo en
niveaux de gris
Matrice des valeurs de luminance
des pixels de lrsquoimage laquo A raquo
Histogramme
de lrsquoimage
laquo A raquo
2 2 2 2 2 2 2 2
2 0 0 0 0 0 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 0 0 0 0 0 2
2 2 2 2 2 2 2 2
Les niveaux 0 1 et 2 sont respectivement repreacutesenteacutes par 24 12 et 28 pixels
repreacutesentation de cette population de pixels sur lhistogramme
Limage laquo A raquo comporte 3 niveaux de gris diffeacuterents 0 1 et 2
Compter le nombre de pixels pour chaque niveau de gris agrave lrsquoaide de la
matrice des valeurs de luminance
Exemple simple de calcul drsquohistogramme pour une image
Image laquo A raquoValeurs de luminance de
laquo A raquo
Histogramme cumuleacute de
laquo A raquo
2 2 2 2 2 2 2 2
2 0 0 0 0 0 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 0 0 0 0 0 2
2 2 2 2 2 2 2 2
Calcul dun histogramme particulier faisant appel aux cumuls des niveaux de gris
Histogramme cumuleacute
Utile pour certains traitements dimage tels que lrsquoeacutegalisation
dhistogramme ( ameacutelioration de contraste)
Chaque bacircton cumule le nombre de pixels du niveaux de gris concerneacute et des
niveaux de gris infeacuterieurs les niveaux 0 1 2 sont donc repreacutesenteacutes
respectivement par 24 36 et 64 pixels
Histogramme cumuleacute drsquoune image L‟histogramme ne donne pas L‟histogramme ne donne pas
d‟informations sur la reacutepartitiond‟informations sur la reacutepartition
Trois images diffeacuterentes ayant un mecircme histogramme
15122010
19
Modification de lrsquohistogrammeModification de lrsquohistogramme
On appelle dynamique des niveaux de gris lintervalle [nminnmax] de
niveaux de gris dans lequel sont compris tous les pixels de limage
Le but de la modification dhistogramme modifier chaque niveau de
gris pour accroicirctre le contraste On modeacutelise cette transformation par
leacutequation Irsquo(ij) = g(I(ij)) ougrave g est la fonction de contraste
Chaque transformation sera deacutecrite par une courbe repreacutesentant la
relation entre un niveau de gris de limage de deacutepart (abscisse) et le
niveau qui lui correspond dans limage ameacutelioreacutee (ordonneacutee)
Sami Gazzah 2009 109
Masquage de zones Masquage de zones Extraction d‟une Extraction d‟une
fenecirctre d‟intensiteacutefenecirctre d‟intensiteacute ((slicingslicing intensiteacute)intensiteacute)
Cette transformation consiste agrave remplacer un intervalle de niveaux
de gris par du blanc (nmax) par du noir (nmin) ou par une valeur
intermeacutediaire du niveau de gris
Sami Gazzah 2009 110
Courbes repreacutesentant de gauche agrave droite lextraction dune fenecirctre dintensiteacute et le masquage blanc et noir de lintervalle [ab]
n-1
n-1
0 n-1
n-1
0a ab b n-1
n-1
0 a b
Sami Gazzah 2009 111
Exemples de Masquage de zonesInversion de la dynamiqueInversion de la dynamique
But produire le neacutegatif d‟une image
donneacutee
Sami Gazzah 2009 112
Sami Gazzah 2009 113
Etirement drsquohistogramme
Sami Gazzah 2009 114
Etirement drsquohistogramme
Augmentation du contraste par eacutetirement d‟histogramme
15122010
20
Sami Gazzah 2009 115
Eacutegalisation dhistogramme
But ameacutelioration du contraste
Distribution uniforme des niveaux de gris
Elle se deacutefinit agrave laide de lhistogramme cumuleacute de limage hc(n)
qui repreacutesente le nombre de pixels de limage dont le niveau de
gris est infeacuterieur ou eacutegal agrave n
Deacutefinition de la transformation deacutegalisation dhistogramme soit
I le niveau de gris dun pixel de deacutepart le niveau de gris de limage
darriveacutee I‟ sera
Sami Gazzah 2009 116
Sami Gazzah 2009 117
Effet de lrsquoeacutegalisation drsquohistogramme
Sami Gazzah 2009 118
Augmentation du contraste exemples et comparaison
Original Eacutetirement d‟histogramme Eacutegalisation
Le rehaussement du contraste est plus marqueacute avec l‟eacutegalisation
d‟histogramme autorisant la deacutetection de structures situeacutees dans
l‟ombre
Sami Gazzah 2009 119
Chapitre 5
SEGMENTATION DrsquoIMAGES
Sami Gazzah 2009 120
Une image est geacuteneacuteralement composeacutee d‟objets L‟analyse de cette
image neacutecessite l‟identification de ces objets
La segmentation dimages est lun des problegravemes phares du traitement
dimages Elle consiste agrave partitionner limages en un ensemble de
reacutegions connexes Linteacuterecirct de ces reacutegions est de pouvoir ecirctre
manipuleacutees ensuite via des traitements de haut niveau pour extraire
des caracteacuteristiques de forme de position de taille etc
Introduction
15122010
21
Sami Gazzah 2009 121 Sami Gazzah 2009 122
Meacutethodes statistiquesSegmentation par Histogrammes
Sami Gazzah 2009 123
Meacutethodes statistiquesSeacutelection Reacutecursive sur Histogrammes
Ohlander Price et Reddy (1978)
Sami Gazzah 2009 124
Segmentation par approche contourIntroduction
Le contour est deacutefini comme le lieu des points connexes qui
possegravedent une forte transition d‟intensiteacute lumineuse ou de texture Le
traitement qui vise agrave l‟obtenir est appeleacute extraction de contour on
parle aussi de deacutetection de contour
Le processus d‟extraction de contour peut ecirctre deacutecomposeacute en
plusieurs eacutetapes distinctes que nous allons les deacutetailler comme suit
- La mise en eacutevidence des contours
- L‟extraction des contours
- La fermeture des contours
Sami Gazzah 2009 125
Segmentation par approche contourLa mise en eacutevidence des contours
Elle s‟obtient par une diffeacuterentiation de l‟image et elle peut
s‟appliquer agrave des images binaires ou non le but de la deacutetection de
contours est d‟obtenir dans un premier temps une image binaire ougrave
chaque contour est d‟eacutepaisseur 1 et sans discontinuiteacute
rehausser le contour
suivre le contour
les points du contour correspondent au maximum en valeur absolue
de la deacuteriveacutee primaire de l‟image on obtient alors un gradient ou au
passage par zeacutero de la deacuteriveacutee seconde de l‟image on obtient alors
un laplacien
Sami Gazzah 2009 126
Segmentation par approche contourLa mise en eacutevidence des contours
La deacutetection de contours peut ecirctre reacutealiseacutee gracircce agrave des filtres
dont les coefficients ont eacuteteacute soigneusement choisis Nous
aborderons dans cette preacutesentation 3 filtres les filtres de
Prewitt Roberts et Sobel
Ce jeu de filtres (Prewitt Roberts et Sobel) est constitueacute d‟une
paire de filtres lineacuteaires qui deacutetectent le contours dans deux
directions orthogonales (vertical et horizontal)
15122010
22
Sami Gazzah 2009 127
Segmentation par approche contourFiltre de Perwitt
Les filtres de Perwitt sont les suivants
Filtre horizontal
Filtre vertical
111
000
111
h
101
101
101
v
Sami Gazzah 2009 128
Segmentation par approche contourFiltre de Perwitt
A partir d‟une image I on calcule Gh et Gv images
correspondant au filtrage de I par h et v Ces images
contiennent les contours horizontaux et verticaux
Si l‟on souhaite obtenir une image de contour unique ne tenant
pas compte de l‟orientation on calcule
Orientation du contour
Image binairehellipchoisir un seuil de deacutetection
22
vh GGG
)(vh
GGarctg
Sami Gazzah 2009 129
Segmentation par approche contourFiltre de Sobel
Les filtres de Sobel sont les suivants
Filtre horizontal
Filtre vertical
121
000
121
h
101
202
101
v
Sami Gazzah 2009 130
Segmentation par approche contourFiltre de Sobel
Sami Gazzah 2009 131
Segmentation par approche contourFiltre de Sobel
Sami Gazzah 2009 132
Segmentation par approche contourFiltre de Roberts
Les filtres de Roberts sont les suivants
Filtre diagonal
Filtre anti-diagonal
10
01h
01
10v
15122010
23
Sami Gazzah 2009 133
Segmentation par approche contourFiltre de Kirsch
Ce deacutetecteur utilise huit noyaux de convolution lui permettant de deacutetecter
des contours en fonction de huit directions agrave
15
335
305
335
1
d 15
333
305
355
2
d 15
333
303
555
3
d
15
333
503
553
4
d 15
533
503
533
5
d 15
555
503
333
6
d
15
555
303
333
7
d 15
355
305
333
8
d
Sami Gazzah 2009 134
Contours et Laplacien
Il s‟agit de calculer la deacuteriveacutee seconde de l‟image
Le Laplacien est tregraves sensible au bruit pour limiter l‟effet du bruit le
Laplacien est approximeacute par un masque qui effectue en mecircme temps
une opeacuteration de filtrage par une Gaussienne qui repreacutesente l‟eacutetape
de lissage de l‟image puis vient l‟application du laplacien Les masques
du Laplacien Gaussien sont preacutesenteacutes ci-apregraves
Segmentation par approche contour
Sami Gazzah 2009 135
Contours et Laplacien
Le contour est ensuite deacutetermineacute par la deacutetection des
passages par zeacutero du laplacien de l‟image
88888888888888
010
141
010
1h
111
101
111
2h
121
242
121
3h
Sami Gazzah 2009 136
Contours et Laplacien
Sami Gazzah 2009 137
Seuillage
Les filtres preacuteceacutedents nous fournissent des images des sauts ou
diffeacuterences d‟intensiteacute
Le seuillage permet d‟eacuteliminer des points en lesquels la diffeacuterence
d‟intensiteacute est tregraves faible
Le seuillage peut ecirctre pousser afin d‟obtenir une image binaire (TOR)
Le seuillage dans sa forme le plus simple ne tient pas compte de la
topologie et peut conserver un point bruiteacute isoleacute ou eacuteliminer une portion
de contour d‟intensiteacute faible
Sami Gazzah 2009 138
Seuillage par hysteacutereacutesis
c‟est une fonction agrave deux seuils un seuil bas et un seuil haut
Tout point dont le module de contour est au-dessus du seuil-haut est un
point de contour
Tout point dont le module de contour est au-dessous du seuil-bas n‟est
pas un point de contour
Les points de module entre le seuil-bas et le seuil-haut sont des points
de contour s‟il possegravede un point de contour dans leur voisinage
15122010
24
Sami Gazzah 2009 139
Seuillage par hysteacutereacutesis
seuil haut
Seuil bas
point sur contour
point hors contour
Seuillage par hysteacuterisais les points de lrsquoimage de contour de valeur
supeacuterieur au seuil haut sont des points de contours A partir de ces points de
contours le voisinage de la direction du contour sont examineacutes srsquoils sont de
valeur supeacuterieure au seuil bas ils sont ajouteacutes au points de contoursSami Gazzah 2009 140
Chapitre 6
Introduction aux
opeacuterateurs
morphomatheacutematique
Sami Gazzah 2009 141
1 Introduction
Les opeacuterateurs morphomatheacutematique (=Morphologie Matheacutematique)
permettent d‟ameacuteliorer les images de contours et apporter d‟autres
fonctionnaliteacutes
Ils ont eacuteteacute initialement appliqueacute sur des images NampB (Matheron et
Sarra1965) ensuite eacutetendus agrave des images en nivaux de gris par Doupherty
(1978)
Pour les appliquer sur des images couleurs on peut les appliquer
seacutepareacutement agrave chaque composante couleur et combiner les reacutesultats
Sami Gazzah 2009 142
Diffeacuterentes opeacuterations
eacuterosion dilatation
ouverture fermeture
Squelettisation
hellip
1 Introduction
Sami Gazzah 2009 143
1 Introduction
Dilatation
Ajouter un pixel sur les pourtours de la forme
boucher les trous
Erosion
Enlever un pixel sur les pourtours de la forme
les objets de taille infeacuterieure agrave celle de leacuteleacutement
structurant vont disparaicirctre
agrandit les trous
Sami Gazzah 2009144
1I Rappels sur les ensembles
L‟eacutegaliteacute
L‟inclusion
Lbdquointersection
L‟union
La diffeacuterence
La diffeacuterence symeacutetrique
La compleacutementariteacute E eacutetant un ensemble
servant de reacutefeacuterentielle
Dans ce qui suit les lettres majuscules deacutesignent des ensembles et les lettres
minuscules deacutesignent des eacuteleacutements appartenant aux ensembles
Sur les ensembles on deacutefinit les opeacuterations suivantes
15122010
25
Sami Gazzah 2009145
1I Rappels sur les ensembles
Sami Gazzah 2009146
1I Rappels sur les ensembles
Lois de De Morgan
Reacuteflexion La reacuteflexion d‟un ensemble A est deacutefinie par
Un ensemble symeacutetrique veacuterifiant ndashA=A C‟est le cas des cercles et des carreacute par
exemple
ccc YXYX )(
ccc YXYX )(
AaaA
A -A B -B
Sami Gazzah 2009147
1I Rappels sur les ensembles
Addition de Minkowski l‟addition d‟un eacuteleacutement x agrave un ensemble A par x est
deacutefinie par
Cette notion n‟est pas uniquement ensembliste elle nous oblige agrave deacutefinir un point
de reacutefeacuterence
On en deacuteduit l‟addition d‟un ensemble B agrave un ensemble A c‟est le reacutesultat de
l‟addition de chaque eacuteleacutement de B agrave A
L‟addition de Minkowski est commutative Elle est eacutegalement appeleacute dilatation
AaxaxAB
A
A
x
AxBxAaBaBbbABAC )()()(
le translateacute de X par b
Sami Gazzah 2009148
1I Rappels sur les ensembles
Eleacutement structurant les opeacuterations morphomatheacutematiques sont deacutefinis agrave
partir des ensemble B discrets appeleacute eacuteleacutement structurant Ces eacuteleacutement
permettent de deacutefinir le type de voisinage souhaiteacute
Addition de Minkowski d‟un ensemble A et d‟un ensemble B
BA
Sami Gazzah 2009149
1II Dilatation
Le reacutesultat de dilatation de lrsquoensemble A par lrsquoensemble B
est lrsquoaddition de Minkowski crsquoest lrsquoensemble des points tel
que lorsque B est centreacute sur un de ces points il y a une
intersection non vide entre A et B
Pour des images en niveaux de gris on obtient lrsquoimage
dilateacutee de la forme A en remplaccedilant tout pixel par le
maximum des intensiteacutes des voisins selon la forme B
Sami Gazzah 2009 150
1II Dilatation1 Image NampB
Soit k l‟eacuteleacutement structurant de taille (2k+1) x (2k+1) L‟algorithme de
dilatation est le suivant on parcourt tous les pixels de l‟image sauf les
bord de l‟image d‟eacutepaisseur k pour chaque pixel du fond rencontreacute s‟il
possegravede un voisin au sens de l‟eacuteleacutement structurant qui appartient agrave un
objet il prend le couleur de l‟objet si non il n‟est pas modifieacute
15122010
26
la dilatation (noteacutee ) drsquoune image monochrome laquo f raquo par un
eacuteleacutement structurant laquo B raquo est deacutefinie en terme de sous-graphe
bull f B = T [ Y ] = Supl l tel que (m n l) Y
bullY = U ( f ) U ( B )
En consideacuterant un eacuteleacutement structurant plan de valeur nulle sur son
support
( f B ) (P) = Max valeurs des pixels du voisinage du pixel P
1II Dilatation1 Image niveaux de gris
max
55 68 77 90 91 95 115 151 210
( f B ) (P) = 210
n
115 91 77
95 68 90
55 151 210
exemple
m
Image de reacutefeacuterence
Eacuteleacutement structurant
(8-connexiteacute)
liste ordonneacutee des valeurs du voisinage
- - -
-
-
-
-
-
1II Dilatation1 Image niveaux de gris
Exemples de filtrages morphologiques(eacuteleacutement structurant 33 complet)
Image de reacutefeacuterenceImage dilateacutee
morphologiquement
La dilatation en niveaux de gris accroicirct la luminance des
pixels entoureacutes de voisins plus lumineux
Observation
Sami Gazzah 2009154
VI Erosion
L‟eacuterosion est deacutefinie par
On deacutefinit la soustraction de Minkowski par
On a eacutequivalence entre eacuterosion et soustraction de Minkowski si B est
symeacutetrique (si B=-B)
D‟un point de vue binaire l‟eacuterode de A par B correspond agrave l‟ensemble
des points tels que si B est centre sur ce points B est entiegraverement inclus
dans A
AxBxBbbABAC )()(
)()( BbbABAC
Sami Gazzah 2009 155
VI Erosion1 Image NampB
on parcourt tous les pixels de l‟image sauf les bord de l‟image
d‟eacutepaisseur k pour chaque pixel du fond rencontreacute s‟il possegravede un
voisin au sens de l‟eacuteleacutement structurant qui appartient agrave un objet il
prend le couleur du fond si non il n‟est pas modifieacute
VI Eacuterosion drsquoune image en niveaux de gris
Lrsquoeacuterosion (noteacutee Ө ) drsquoune image monochrome laquo f raquo par un eacuteleacutement
structurant laquo B raquo est deacutefinie en terme de sous-graphe
bull f Ө B = T [ Y ] = Supl l tel que (m n l) Y
bullY = U ( f ) Ө U ( B )
Classiquement on considegravere un eacuteleacutement structurant plan de
valeur nulle sur son support
( f Ө B ) (P) = Min valeurs des pixels du voisinage du pixel P
15122010
27
VI Eacuterosion drsquoune image en niveaux de gris
min
68 90 91 95 151
( f Ө B ) (P) = 68
n
115 91 77
95 68 90
55 151 210
exemple
m
Image de reacutefeacuterence
ӨӨ
Eacuteleacutement structurant
(4-connexiteacute)
liste ordonneacutee des valeurs du voisinage
-
-
-
-
Exemples de filtrages morphologiques(eacuteleacutement structurant 33 complet)
Image eacuterodeacutee
Lrsquoeacuterosion en niveaux de gris reacuteduit la luminance des pixels
qui sont entoureacutes de voisins de moindre intensiteacute
Image de reacutefeacuterence
Observation
Sami Gazzah 2009 159
Eacuteleacutement structurant (a)
(4-connexiteacute)
-
-
-
-
Eacuteleacutement structurant (b)
(8-connexiteacute)
- - -
-
-
-
-
-
Exercice 1 Sur la mecircme image de deacutepart on reacutealise deux opeacuterations
de dilatations avec deux eacuteleacutements structurant diffeacuterents
Dilatation avec (a) Dilatation avec (b)
image de deacutepart
cas a L‟eacuteleacutement structurant est agrave 4-connexiteacute Chaque pixel
du support qui est eacutegal agrave la valeur 1 ou qui a l‟un de ses 4
voisins agrave la valeur 1 est mis agrave la valeur 1 apregraves filtrage
cas b L‟eacuteleacutement structurant est agrave 8-connexiteacute Chaque pixel
du support qui est eacutegal agrave la valeur 1 ou qui a l‟un de ses 8
voisins agrave la valeur 1 est mis agrave la valeur 1 apregraves filtrage
Dans les deux cas on observe qu‟une dilatation eacutelimine les
trous isoleacutes dans les objets et dilate le contour des objets en
tenant compte de l‟eacuteleacutement structurant
Sami Gazzah 2009 160
Exercice 1
Sami Gazzah 2009 161
Eacuteleacutement structurant (a)
(4-connexiteacute)
-
-
-
-
Eacuteleacutement structurant (b)
(8-connexiteacute)
- - -
-
-
-
-
-
Exercice 2 Sur la mecircme image de deacutepart on reacutealise deux opeacuterations
d‟eacuterosions avec deux eacuteleacutements structurant diffeacuterents
Erosion avec (a) Erosion avec (b)
image de deacutepart
cas a L‟eacuteleacutement structurant est agrave 4-connexiteacute (origine agrave 4 voisins)
Chaque pixel du support qui a la valeur 0 ou qui a l‟un de ses 4
voisins agrave la valeur 0 est mis agrave la valeur 0 apregraves filtrage
cas b L‟eacuteleacutement structurant est agrave 8-connexiteacute Chaque pixel du
support qui a la valeur 0 ou qui a l‟un de ses 8 voisins agrave la valeur 0
est mis agrave la valeur 0 apregraves filtrage
Dans les deux cas on observe qu‟une eacuterosion eacutelimine les pixels
isoleacutes sur le fond et eacuterode le contour des objets
Sami Gazzah 2009 162
Exercice 2
15122010
28
ConclusionsConclusions
Erosion
les objets relieacutes entre eux vont ecirctre seacutepareacutes
Une eacuterosion de taille n peut se reacutealiser en reacutepeacutetant une
eacuterosion n fois avec un eacuteleacutement structurant de taille 1 ou en
appliquant une seule eacuterosion avec un eacuteleacutement structurant
de taille n
Dilatation
des objets sont situeacutes agrave une distance moins grande que la taille
de leacuteleacutement structurant il vont fusionner
Sami Gazzah 2009 163 Sami Gazzah 2009 164
Sami Gazzah 2009 165
Elimine pixels isoleacutes sans inteacuterecirct
L‟ouverture (opening) consiste agrave une eacuterosion suivi d‟une dilatation
Les petites structures et deacutetail fins disparaissent et ne sont pas recreacuteeacutees
lors de la dilation Une opeacuteration d‟ouverture est ainsi inteacuteressante pour
eacuteliminer les petits morceaux de contours bruiteacutes dans une image de
contours
V Ouverture et fermeture1 Ouverture
BBABAC )(
Sami Gazzah 2009 166
V Ouverture et fermetureII Fermeture
La fermeture (closing) consiste agrave une dilatation suivi d‟une eacuterosion
Les structures proches fusionnent lors de la dilation mais seules les
fusions ponctuelles disparaissent agrave nouveau lors de l‟eacuterosion Une
opeacuteration de fermeture est ainsi inteacuteressante pour boucher les petits
trous
Sami Gazzah 2009 167 Sami Gazzah 2009 168
Exercice 3 Sur l‟image de deacutepart on reacutealise une opeacuteration de
fermeture binaire par l‟eacuteleacutement structurant 4-connexiteacute Conclusions
Eacuteleacutement structurant
(4-connexiteacute)
-
-
-
-Fermeture = dilatation puis eacuterosion
Image de deacutepart Image dilateacutee Image dilateacutee puis eacuterodeacutee
Combler les trous
Reacutetablir les jonctions
tout en preacuteservant la taille
15122010
29
Sami Gazzah 2009 169
Exercice 4 Sur l‟image de deacutepart on reacutealise une opeacuteration
d‟ouverture binaire par l‟eacuteleacutement structurant 4-connexiteacute Conclusions
Eacuteleacutement structurant
(4-connexiteacute)
-
-
-
-Ouverture = eacuterosion puis dilatation
Image de deacutepart Image eacuterodeacutee Image eacuterodeacutee puis dilateacutee
Supprimer les fausses alarmes
Seacuteparer les objets accoleacutes
tout en preacuteservant la tailleSami Gazzah 2009 170
Appliquer les filtres suivants sur limage donneacutee Quelles sont les valeurs choisies
aux bords de limage et quelles sont les modifications visuelles
a) filtre moyenneur M3acute3(19)
b) eacuterosion
c) dilatation
d) meacutedian
e) fermeture
f) ouverture
Exercice 5
Sami Gazzah 2009 171
IV Amincissement et Squelettisation
La squelette (skeleton) d‟une forme est l‟axe meacutedian L‟inteacuterecirct de cette
opeacuteration est dans
La reconnaissance de caractegraveres
Deacutetection des reacuteseaux routiers
La planification de trajectoirehellip
Une meacutethode couramment employeacutee est une amincissement reacutepeacuteteacute
jusqu‟agrave le convergence (n‟apporte aucune modification)
Sami Gazzah 2009 172
IV Amincissement et Squelettisation1 Opeacuteration Tout Ou Rien laquoHit or Missraquo
Cette transformation est deacutefinie par
leacuteleacutement structurant eacutetendu est centreacute sur chaque pixel de limage
comme pour les opeacuterations ensemblistes
la question poseacutee est est ce que le contenu de limage est identique au
contenu de leacuteleacutement structurant
si la reacuteponse est oui le pixel reacutesultant vaut 1 si non il vaut 0
Une application permet de deacutetecter des configurations locales
particuliegraveres dans une image
plusieurs masques peuvent ecirctre utiliseacutes indeacutependamment les images
reacutesultat eacutetant ensuite combineacutees par une opeacuteration ou
)()( cc BABABA
Bc-
est le compleacutementaire
local de B
Sami Gazzah 2009 173
IV Amincissement et Squelettisation1 Opeacuteration laquoHit or Missraquo
Exemple dopeacuteration Hit or Miss deacutetection des coinsSami Gazzah 2009 174
IV Amincissement et Squelettisation1 Amincissement (thinning)
bull La transformation TOR nous permet eacutegalement de deacutefinir
l‟amincissement
bullL‟amincissement consiste agrave soustraire limage reacutesultat dun hit or miss de
limage initiale
bull des amincissements successifs conduisent au squelettisation
)()( BAAAthin
15122010
30
Sami Gazzah 2009 175
IV Amincissement et Squelettisation1I Squelettisation
Appliquer des amincissements successifs puis s‟arrecircter lorsque l‟amincissement
n‟apporte plus de modification C‟est une eacuterosion particuliegravere ougrave les pixels sont
supprimeacutes agrave la condition quils ne provoquent pas la seacuteparation dune reacutegion en
deux
Sami Gazzah 2009 176
IV Amincissement et Squelettisation1I Squelettisation
Sami Gazzah 2009 177
Chapitre 7
Transformations
geacuteomeacutetriques 2D
Sami Gazzah 2009 178
I Introduction
On entend par transformation 2D l‟ensemble des transformations du
plan pouvant ecirctre appliqueacutees aux pixels de l‟image sans consideacuteration
de l‟intensiteacute
Par exemples
Reacuteduction agrandissement
Deacuteformation d‟image
Recalage d‟une photo scanneacutee
Recaler des images que l‟on veut comparer
Mosaiumlque d‟images
Sami Gazzah 2009 179
I Transformations euclidiennes
Elles preacuteservent les distances et les angles
Elles sont les compositions de translations et de rotations
1) Translation
Ougrave Tx et Ty sont les deacuteplacements en x et en y de la translation
y
x
Tyy
Txx
Sami Gazzah 2009 180
2) Rotation
15122010
31
Sami Gazzah 2009 181 Sami Gazzah 2009 182
3) Remarques (1)
Sami Gazzah 2009 183
3) Remarques (2)
Sami Gazzah 2009 184
II Homotheacuteties
Changement deacutechelle par rapport agrave lorigine (scaling zoom)
Ougrave Sx et Sy sont les facteurs dagrandissement ( gt1) ou de
reacuteduction ( lt1) en x et en y
ySy
xSx
y
x
Sami Gazzah 2009 185
II Homotheacuteties
Sami Gazzah 2009 186
II Homotheacuteties
15122010
32
Sami Gazzah 2009 187
III Reacuteflexions
Reacuteflexions par rapport aux axes (flip miroir)
Sami Gazzah 2009 188
IV Cisaillement
Cisaillement (glissement shearing) on eacutetire suivant un ou plusieurs axes
Sami Gazzah 2009 189
Transformations inverses
Sami Gazzah 2009 190
Repreacutesentation Matricielle
IV Autres (reacuteflexions miroirs et flips)
Sami Gazzah 2009 191
Interpolation Directe
Sami Gazzah 2009 192
oDifficile de distribuer le niveau de gris sur les pixels voisins
oOn n‟a pas la certitude que tous les pixels de l‟image
transformeacutee recevront une valeur =gt ldquotrousrdquo
15122010
33
Interpolation Inverse
Sami Gazzah 2009 193
o Interpolation de la valeur du pixel agrave partir des voisins plus
facile
oAucun ldquotrourdquo car on parcourt tous les pixels de l‟image
transformeacutee Sami Gazzah 2009 194
V Objet vectoriel - Objet bitmap
Objet vectoriel
Essentiellement on transforme
les sommets (ou points de
controcircle) et on retracehellip
Objet ldquobitmaprdquo
On doit calculer la nouvelle
position de chaque pixel De plus on
doit geacuteneacuteralement interpoler les
niveaux de gris (couleurs)hellip
Sami Gazzah 2009 195
IV Assignation des niveaux de gris
Neacutecessaire car la position d‟un pixel transformeacute n‟est pas entiegraverehellip
Plusieurs meacutethodes
Interpolation au plus proche voisin
Interpolation bilineacuteaire
Interpolation bicubique
Autres types d‟interpolation
Sami Gazzah 2009 196
IV Assignation des niveaux de gris
Linterpolation de limage cest ce qui arrive lorsquon redimensionne
une image numeacuterique ou quon la redimensionne avec une distorsion
quon change la perspective etc
Exemple 1
Image originale (sans interpolation)
Image agrandie et donc interpoleacutee
Perte de netteteacute due agrave linterpolation
Sami Gazzah 2009
197
IV Assignation des niveaux de gris
Exemple 2 recadrage dimage
Nous allons agrandir cette image agrave 180
Il va donc nous manquer des informations lagrave ougrave lon va creacuteer des
pixels pour agrandir limage
Reacutesultat sans interpolation le logiciel agrandit simplement les pixels
Reacutesultat avec interpolation le logiciel calcule une couleur intermeacutediaire
pour chaque nouveau pixel
Sami Gazzah 2009
198
IV Assignation des niveaux de gris
Image originale
Interpolation au plus
proche voisin
Interpolation
bilineacuteaireInterpolation
bicubique
15122010
34
Sami Gazzah 2009 199
IIV Interpolation au plus proche voisin
Cest lalgorithme le plus rapide agrave calculer
Prend en compte dans le calcul que le pixel le plus proche du point
agrave interpoler
Consiste tout simplement agrave agrandir chaque pixel
Exemple Interpolation du plus proche voisin par copie des pixels
Copie de chaque colonne et de chaque rang
23 20
25 28
23 23
23 23
20 20
20 20
25 25
25 25
28 28
28 28
Sami Gazzah 2009 200
IIV Interpolation bilineacuteaire
Fonction bilineacuteaire de 4 pixels voisins ( en 2 D )
i-1 i i+1
i-1 i-12 i i+12 i+1 i+32
yi=xiYi+12=(xi+xi+1)2
Problegraveme pour le dernier point
Extrapolation lineacuteaire de
2 xn-xn-1
Principe 1D
attribuer agrave chaque point cible une
combinaison lineacuteaire des quatre
points sources les plus proches par
la transformation inverse
Sami Gazzah 2009 201
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 202
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 203 Sami Gazzah 2009 204
IIV Interpolation bilineacuteaire
15122010
35
Sami Gazzah 2009 205
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 206
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 207
IIV Interpolation bilineacuteaire exemple
Sami Gazzah 2009 208
IIV Interpolation bicubique
Sami Gazzah 2009 209
exemple
Sami Gazzah 2009 210
Chapitre 8
Geacuteneacuteration de segments de
droite et de cercles en 2D
15122010
36
Sami Gazzah 2009 211
Infographie 2D besoin de dessiner des primitives de
base (segments cercles hellip)
Espace discreacutetiseacute (pixels) il faut trouver un moyen pour
afficher des segments ou des cercles
I Segments 2D cercles1 Introduction
Comment trouver les pixels agrave allumer pour approximer au mieux une
droite ou un cercle
Algorithme rapide et preacutecisSami Gazzah 2009 212
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=ax+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ya
Sami Gazzah 2009 213
Rappelhellip
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=mx+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ym
Sami Gazzah 2009 214
Exemple
Sami Gazzah 2009 215
Agrave partir des coordonneacutees des 2 extreacutemiteacutes d‟un segmenthellip
Un algorithme simple
Boucle de x1 agrave x2 dx=1
ALLUME (x Arrondir(y))
Avec x2gtx1
Arrondir(y) = Arrondir(ax+b)
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Sami Gazzah 2009 216
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Choix de lrsquoaxehellip
Peu efficace
bullagrave chaque iteacuteration 1 multiplication (ou division) + 1 addition
+ 1 arrondi
15122010
37
Sami Gazzah 2009 217
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
DDA (Digital Differential Analyzer)
y et m doivent ecirctre des reacuteelsSami Gazzah 2009 218
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Calcul en entier (donc plus rapide)
Baseacute sur le choix entre deux points discrets deacutependant de leur
distance respective avec le point reacuteel ideacuteal
On simplifie le problegraveme en traitant drsquoabord le traceacute drsquoun segment
dans le 1er octant m infeacuterieur agrave1 et positif (0ltmlt 1)
Facilement geacuteneacuteralisable aux autres octants
Sami Gazzah 2009 219
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Traceacute d‟un segment dans le premier octant mlt1
On part d‟un point (xi yi) allumeacute
Sami Gazzah 2009 220
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
On ne calcule pas reacuteellement les distances rArr on veacuterifie si la diffeacuterence
entre les deux distances est positive ou neacutegative
Le signe de la longueur (d1-d2) deacutetermine s‟il faut allumer le pixel L ou H
L
H
Sami Gazzah 2009 221
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Comme m=ΔyΔx on multiplie cette diffeacuterence par Δx pour eacuteviter la
division
Mais que vaut p1
Sami Gazzah 2009 222
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
15122010
38
Sami Gazzah 2009 223
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Pour eacuteviter de calculer cette diffeacuterence pour chaque point on cherche
une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
Sami Gazzah 2009 224
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009 225
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009
Exercice
Tracer le segment de droite
pi xi yi
2 0 0
-6 1 1
6 2 1
-2 3 2
10 4 2
2 5 3
-6 6 4
6 7 4
-2 8 5
10 9 5
2 10 6
6
10
y
x
Sami Gazzah 2009 227
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
Sami Gazzah 2009 228
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
hellip interchanger les points hellip
Si |Δx| lt | Δy| on interchange le rocircle de x et y
15122010
39
Sami Gazzah 2009 229
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (1)
Sami Gazzah 2009 230
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (2)
Sami Gazzah 2009 231
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (3)
Sami Gazzah 2009 232
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Toujours baseacute sur le choix entre deux
points discrets deacutependant de leur
distance respective avec le point reacuteel
On travaille dans le 2e octant agrave partir
de (0r) ainsi pour un point (xi yi) le
prochain point sera
(xi+1 yi) ou (xi+1 yi-1)
Sami Gazzah 2009 233
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On calcule le prochain y et les diffeacuterences respectives avec les points
discrets de la faccedilon suivante
Le signe de pi nous dira si nous devons choisir le point lateacuteral ou le diagonal
Sami Gazzah 2009 234
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Encore une fois pour eacuteviter de calculer cette diffeacuterence pour chaque point on
cherche une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
15122010
40
Sami Gazzah 2009 235
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On considegravere 2 cas
Valeur initiale
Sami Gazzah 2009 236
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Sami Gazzah 2009 237
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Exemple centre = (00) et r = 3
Sami Gazzah 2009 238
Livres
Diane Lingrand Introduction au Traitement d‟Images Paris Editions Vuibert 2e
eacutedition 2008
Steven k Feiner James D Foley John F Hughes Richard l Phillips Andries
Vanam Introduction agrave l‟infographie Paris Editions Vuibert 2000
William K Pratt Digital Image Processing Willy-Inter-sciences 4th edition 2007
Eacuteric Incerti Compression dimage ndash Algorithmes et standards Vuibert 2003
Gilles Burel Introduction au traitement dimages ndash Simulation sous Matlab
Hermegraves 2001
Sites web
Cours de C Rougier (U Montreacuteal)
httpwww-etudiroumontrealca~rougiercift2730courshtml (cf chapitre 3)
Page wikipeacutedia sur JPEG (en anglais plus complegravete que celle en franccedilais)
httpenwikipediaorgwikiJPEG
Cours de P Courtellemont (Campus numeacuterique Espdon)
httppersouniv-lrfrpcourtelespadonsite_web
Applet de deacutemo par C G Jennings
httpcgjenningscatoyboxhjpegindexhtml
Cours de D Marshall (U Cardiff)
httpwwwcscfacukDaveMultimediaPDF
Reacutefeacuterences
Sami Gazzah 2009 239
Chapitre 9
introduction au
traitement
dimages avec OpenGL
Sami Gazzah 2009 240
OpenGL est une librairie graphique Elle a eacuteteacute creacutee par Silicon
Graphics et beacuteneacuteficie sur ces machines de lacceacuteleacuteration mateacuterielle
Elle est constitueacute d‟environ 200 fonctions graphiques
OpenGL est une bibliothegraveque de fonctions
Les fonctions sont de bas niveaux
La version actuelle est l‟ laquo OpenGL 41 raquo (deacutecembre 2010)
Principale caracteacuteristique indeacutependant du mateacuteriel et du systegraveme
d‟exploitation
Une impleacutementation libre de droits dOpenGL tregraves performante a eacuteteacute
eacutecrite par Brian Paul httpwwwmesa3dorg Et tout son code source
est accessible
Preacutesentation geacuteneacuterale
15122010
41
Sami Gazzah 2009 241
OpenGL propose des fonctions de bas niveaux
Primitives geacuteomeacutetriques points segments polygones
Les fonctions de haut niveaux sont deacuteveloppeacutees par l‟utilisateur ou
importeacutees par la librairie en amont d‟OpenGL
Primitives geacuteomeacutetriques complexes Sphegravere splines etc
Toutes les commandes et fonctions utilisent le preacutefixe gl
Exemple glColor2f()
Sami Gazzah 2009 242
Les Bibliothegraveques co-existant avec OpenGL
GLU OpenGL Utility Library contient les routines de bas niveau pour
geacuterer les matrices de transformation et de projection la facettisation des
polygones et le rendu de surface Les bibliothegraveques dextension du
systegraveme de fenecirctres permettent lutilisation du rendu OpenGL Il sagit de
GLX pour X Windows (fonctions ayant pour preacutefixe glX) et de WGL
pour Microsoft Windows (fonctions ayant pour preacutefixe wgl)
GLUT OpenGL Utility Toolkit est une boite agrave outils indeacutependante du
systegraveme de fenecirctrage eacutecrite par Mark
Kilgard pour simplifier la tacircche dutiliser des systegravemes diffeacuterents (fonctions
ayant pour preacutefixe glut)
Sami Gazzah 2009 243
Les primitives geacuteomeacutetriques d rsquoOpenGL
Les primitives sont deacutecrites par un bloc d‟instructions deacutelimiteacute par glBegin et glEnd
Ce bloc contient geacuteneacuteralement une liste de vertex Exemple
glBegin(GL_LINE_LOOP)
glVertex2f(-05 -05)
glVertex2f(05 -05)
glVertex2f(05 05)
glVertex2f(-05 05)
glEnd()
D‟autres attributs peuvent ecirctre speacutecifieacutes en chaque sommet
couleur normale coordonneacutee de texture etcSami Gazzah 2009 244
OpenGL est une machine agrave eacutetats
En modifiant les variables d‟eacutetats on peut changer le style de rendu
Sami Gazzah 2009 245
Exemple Honda Hippo (3dRendercom)
Placage de textures
bullL‟apparence et le toucher ( feel ) d‟une surface
bullUne image utiliseacutee pour deacutefinir les caracteacuteristiques d‟une surface
bullUne image multi-dimensionnelle qui est plaqueacutee sur un espace multi-
dimensionnel
Sami Gazzah 2009 246
15122010
42
Sami Gazzah 2009 247
Reacutefeacuterences openGL
Sami Gazzah 2009 248
Chapitre 10
introduction au
traitement
dimages avec OpenCV
Sami Gazzah 2009 249
Preacutesentation geacuteneacuterale
Quest-ce
Open Source Computer Vision Library
Bibliothegraveque open source de traitement des images numeacuteriques
Projet initieacute par Intel (en 1999)
Teacuteleacutechargeable sur httpsourceforgenetprojectsopencvlibrary
Fortement orienteacutee temps reacuteel
eacutecrite en C et C++
optimiseacutee pour les processeurs multi-cœurs
Multi-plateformes disponible pour Linux Windows et Mac OS X
Que contient-elle
Des fonctionnaliteacutes (structures et routines gt350 algos) de base et
avanceacutees pour bacirctir rapidement des applications autour de la vision par
ordinateur
Exemples dutilisation traitements de bas niveau (filtrage ) deacutetection
de visages reconnaissance et suivi dobjets en mouvement Sami Gazzah 2009 250
Fonctionnaliteacutes
Lectureeacutecriture dimages statiques et de seacutequences videacuteo
APIs de bas et moyen niveaux
Traitement des images binaires
Manipulations dimage (eacutechantillonnage (sampling) reacutegion dinteacuterecirct (ROI)
redimensionnement (resizing) rotation deacuteformation (warping) )
Deacutetection de contours de lignes de coins (edge detection)
Traitements multi-eacutechelles (multiscale processing)
Transformeacutees (Fourier cosinus discregravete )
Modules de haut niveau
Deacutetection reconnaissance et suivi (tracking) de visages
Flot optique (estimation du mouvement) (optical flow)
Calibrage (calibration) de la cameacutera
Mise en correspondance steacutereacuteoscopique (stereo matching)
IA et apprentissage par ordinateur (machine learning)
3D mise en correspondance (registration)
Sami Gazzah 2009 251
Modules principaux
CxCore
Types de base pour manip dimages (ex struct image point isin cxtypesh)
Structures dynamiques (listes files graphes arbres) et persistantes (LE)
Manipulations de matrices meacutethodes de lalgegravebre lineacuteaire et statistiques
Dessin en surimpression (overlay) (ex eacutetiquetage)
Cv
Traitement dimage calibrage cameacutera
Geacuteomeacutetrie algorithmique (triangulation )
Cvaux
Reconnaissance de visage
Code expeacuterimental et obsolegravete
Autres (dans otherlibs)
HighGUI ES videacuteos curseurs fenecirctrage
ML classification regroupement (clustering)Sami Gazzah 2009 252
OpenCV premiers programmesBibliothegraveque OpenCV
15122010
43
Sami Gazzah 2009 253
Livre
G Bradski amp A Kaehler laquo Learning OpenCV raquo OReilly Press (2008)
codes sources httpexamplesoreillycom9780596516130
Ressources en ligne
Reacutefeacuterence complegravete httpopencvwillowgaragecomdocumentation
Wiki httpopencvwillowgaragecomwikiFullOpenCVWiki
bullPreacutesentation teacuteleacutechargement installation
bullavec CodeBlocks httpopencvwillowgaragecomwikiCodeBlocks
bullDeacutebuter avec OpenCV FAQ
Tutoriels
httpnchcdlsourceforgenetsourceforgeopencvlibraryippocvpdf
httpdaslmemdrexeledu~noahKuntzopenCVTut1html agrave Tut11html
httpwwwcognoticscomopencvservo_2007_series
Tutoriel sur la vision utilisant OpenCV (en franccedilais)
httpwwwsiteduzerocomtutoriel-3-8631-vision-par-ordinateurhtml
Reacutefeacuterences openCV
15122010
6
Sami Gazzah 2009 31
255
255
255
255
255
80
80
80
50
40
255
255
70
255
20
255
255
60
40
0
255
255
255
255
255
Image en niveaux de gris et sa repreacutesentation matricielle
Discreacutetisation de l‟espace des couleurs ou niveaux de gris
Une quantification trop faible peut causer des problegravemes de faux contours
3 Repreacutesentation drsquoune image numeacuterique
Sami Gazzah 2009 32
Pavage en quinconce Pavage carreacute Pavage hexagonale
Pavage triangulaire
3 Repreacutesentation drsquoune image numeacuterique3 1 Pavage ou tesselation
A chaque eacutechantillonneur (sommet du maillage) on associe une
surface eacuteleacutementaire dite paveacute ou tesselle
Les pixels sont geacuteneacuteralement arrangeacutes sous forme rectangulaire dans
un tableau 2D hellip il peut exister d‟autres pavages ou tesselations
Le pavage hexagonale
Le pavage triangulaire ou carreacute
Le pavage rectangulaire en quinconce
Sami Gazzah 2009 33
Certains pavage sont motiveacutes par
leurs adeacutequation avec le systegraveme d‟acquisition exemple le pavage
quinconce correspond agrave certains systegravemes d‟acquisitions embarqueacutes dans
les satellites (satellite spot 5)
des relations geacuteomeacutetriques telles que le voisinage nombre des pixels
voisins connexes (4 6 8 32hellip)
3 1 Pavage ou tesselationhellip choixhellipmotivation
3 Repreacutesentation drsquoune image numeacuterique
8 voisins4 voisins 6 voisins
Sami Gaz 29 oct 2010 34Source httpwwweoportalorgdirectorypres_SPOT5html
systegravemes drsquoacquisitions du
satellite spot 5
Introduction du Super-Mode permet la
creacuteation d‟une image agrave 25 megravetres de
reacutesolution agrave partir de deux images agrave 5 megravetres
(acquises simultaneacutement avec un demi-pixel
de deacutecalage)
Sami Gazzah 2009 35
Pour un ordinateur une image rArr ensemble de pixels
Un pixel possegravede une valeur scalaire vecteur hellip
Ordre de grandeur
o si un pixel est codeacute sur 8 bits rArr 28=256 couleurs ou niveau de gris
o si helliphelliphelliphelliphellipsur 16 bits rArr 216=65 536 couleurshellipplus d‟espace
o helliphelliphelliphelliphelliphelliphelliphellip24 bits rArr 224=16 777 216 couleurshellipencore ++
3 Repreacutesentation drsquoune image numeacuterique3 2 Codage des pixels
Sami Gazzah 2009 36
3 Repreacutesentation drsquoune image numeacuterique3 3 Distance entre pixels
Diffeacuterents distances entre 2 points P(ij) et P(kl) peuvent ecirctre utiliseacutees
i
j
l
k
1 Distance euclidienne
+ Cette distance ne privilegravege
aucun axe
22 )()()()(( jliklkPjiP
15122010
7
Sami Gazzah 2009 37
3 Repreacutesentation drsquoune image numeacuterique3 3 Distance entre pixels
Diffeacuterents distances entre 2 points P(ij) et P(kl) peuvent ecirctre utiliseacutees
i
j
l
k2 Distance blocks
Cette distance est appeleacute eacutegalement
laquo Manhatten distance raquo
il faut contourner les blocs
d‟habitations pour relier deux points
Manhatten city NY Sami Gazzah 2009 38
3 Repreacutesentation drsquoune image numeacuterique3 3 Distance entre pixels
Diffeacuterents distances entre 2 points P(ij) et P(kl) peuvent ecirctre utiliseacutees
i
j
l
k
3 Distance tour d‟eacutechiquier
Sami Gazzah 2009 39 Sami Gazzah 2009 40
4 Formats drsquoimages
Une image vectorielle est repreacutesenteacutee par des formes geacuteomeacutetriques simples
Ligne point de deacutepart point d‟arriveacutee hellip
Triangle 3 sommets la couleur du contour la couleur inteacuterieure
(remplissage) hellip
Ex PAO (publication assisteacutee par ordinateur) DAO (dessin assisteacute par
ordinateur) etc
Une image matricielle est repreacutesenteacutee par des matrices de pixels Bitmap
(image en mode point)
Ex image en niveaux de gris ou couleurs de type photo GIF PCX BMP
JPEG PPM PGMhellip
4 1 Image vectorielle Vs Image matricielle
Sami Gazzah 2009 41
4 Formats drsquoimages4 1 Images vectorielles Vs Images matricielles
Images vectorielles Images matricielles
Avantages Inconveacutenients Avantages Inconveacutenients
Peu de place en
meacutemoire
Peut devenir gros
pour une image
complexe
Aucun calcul pour
l‟affichage
Peuvent occuper
beaucoup d‟espace
meacutemoire
Redimensionnement
sans perte
d‟informations
Beaucoup de calculs
pour l‟affichage
La complexiteacute de
l‟image n‟influe pas
sur sa taille
Aucun aliasing si on
manipule l‟objet
graphique
Sami Gazzah 2009 42
4 Formats drsquoimages4 2 Stockage des images
o Pour la meacutemorisation des images sur disque meacutemoire on stocke les informations
concernant les image dans un en-tecircte puis les donneacutees (valeurs de pixels)
o L‟en-tecircte contient la largeur et la hauteur de l‟image aussi on peut ajouter d‟autres
informations telles que le type de donneacutees l‟auteur la datehellip
o Pour certains formats l‟en-tecircte et les donneacutees sont stockeacutes dans 2 fichiers
diffeacuterents
o Les donneacutees sont souvent stockeacutees dans l‟ordre des pixels de gauche agrave droite et
de haut en bas
o Les anciens formats sont simples et tregraves facile agrave lire et agrave eacutecrire
bull PBM pour des images binaires
bull PGM pour des images en niveaux de gris
bull PPM pour des images couleurs
o Les formats les plus courants sont GIF PCX BMPTIFF et JPEG
15122010
8
Sami Gazzah 2009 43
4 Formats drsquoimages4 2 Stockage des images
421 format PBM (Portable Bit Map)
Nombre de colonnes=10
Nom
bre
de c
olon
nes
=10
P1 signifie qursquoil srsquoagit drsquoun format PBM et que les donneacutees sont stockeacutees en ASCII signifie qursquoil srsquoagit drsquoune ligne de commentaire
Sami Gazzah 200944
4 Formats drsquoimages4 2 Stockage des images
421 format PGM(Portable Gray Map)
P2 signifie qursquoil srsquoagit drsquoun format PGM et que les donneacutees sont stockeacutees en ASCII
Sami Gazzah 200945
4 Formats drsquoimages4 2 Stockage des images
421 format PPM(Portable Pixel Map)
P3 signifie qursquoil srsquoagit drsquoun format PPM et que les donneacutees sont stockeacutees en ASCII Les valeurs des pixels sont donneacutees pixel par pixel
Sami Gazzah 2009 46
Sami Gazzah 2009 47
5 Eleacutements de Colorimeacutetrie
Un prisme seacutepare la lumiegravere blanche en ses couleurs
Sami Gazzah 2009 48
6 Les systegravemes de repreacutesentation des couleurs
Kunt a deacutemontreacute qu‟en combinant trois longueurs drsquoondes particuliegraveres il est
possible de syntheacutetiser presque toutes les couleurs existantes Les trois
couleurs de base sont dites laquo couleurs primaires raquo Une couleur peut donc ecirctre
repreacutesenteacutee dans un espace agrave trois dimensions Il en existe plusieurs
- Systegraveme RGB (Red Green Blue)
- Systegraveme CMY (Cyan Magenta Yellow)
- Systegraveme XYZ
- Systegraveme HLS (Hue Magenta Saturation)
Image couleur et sa repreacutesentation matricielle
15122010
9
Sami Gazzah 2009 49
Images couleurs (24 bits)
Lrsquoespace couleur Rouge Vert Bleu (RGB)
Sami Gazzah 2009 50
Valeur R Valeur V Valeur BCouleur
correspondanteCommentaires
0 0 0 noir
0 0 255 bleu
0 255 0 vert
255 0 0 rouge
128 128 128
couleur
intermeacutediaire
correspondant agrave
un gris
255 255 255 blanc
Sami Gazzah ISITCom 200951
Exemple de deacutecomposition drsquoune image couleur en 3 plans de couleur
(a) image originale (b)canal rouge (c)canal vert (d)canal bleu
(b)(a)
(c) (d)
Sami Gazzah 2009 52
Lrsquoespace couleur Cyan Magenta et Jaune (GMJ)
bull les couleurs primaires CMJ sont ici les compleacutementaires des RVB
bull utiliseacute par certaines imprimantes couleurs agrave jet dencre
bull les diffeacuterentes couleurs sont obtenues par soustraction du blanc
Sami Gazzah 2009 53
Le principe de lespace HSV est de caracteacuteriser les couleurs de faccedilon plus
intuitive conformeacutement agrave la perception naturelle des couleurs en termes de
1 teinte (Hue) intuitivement cest le nom quon utilisera pour deacutesigner la couleur
vert mauve etc Ideacutealement associeacute agrave une longueur donde
2 saturation (Saturation)cest le taux de pureteacute de la couleur qui doit varier
entre la pureteacute maximale (couleur eacuteclatante) et lachromatisme (niveau de gris)
3 valeur (Value) cest la mesure de lintensiteacute lumineuse de la couleur qui doit
varier entre le noir absolu et le blanc
Images HSV
Composante valeur
Composante saturation
Composante teinte
Sami Gazzah 2009 54
Pour passer de la repreacutesentation initiale (RGB) agrave cette repreacutesentation on opegravere
de la maniegravere suivante
15122010
10
Sami Gazzah 2009 55
Quelques caracteacuteristiques drsquoimages numeacuteriques
La reacutesolution dune image = nombre de pixels par uniteacute de longueur de la
structure agrave numeacuteriser (dpi (dots per inches) ou ppp (pixel par pouce)
La reacutesolution du format de limage =nombre de pixels qui compose limage en
hauteur et en largeur (512 pixels par 512 pixels par exemple)
La taille des donneacutees pour une image (en bits) = Nlignes x Ncolonnes x B
La profondeur de bits = nombre de bits neacutecessaire pour repreacutesenter un pixel dans
l‟image numeacuterique
La dynamique dune image= leacutetendu de la gamme de couleurs 2nbre de bitspixels ndash 1
Le poids d‟une image numeacuterique est l‟espace meacutemoire qu‟elle occupe sur un
support de stockage numeacuterique = nombre de bits par pixel x nombre total de pixels
Sami Gazzah 2009 56
bullune image 200200 pixels en niveaux du gris fait un poids de
200200=40000 octets
bullimage de 200200 pixels en vraies couleurs (16 millions) (24 bits)
2002003= 120000 octets (117 Ko)
bull image de 200200 pixels en fausses couleurs (256 couleurs) (8 bits)
2002001= 40000 octets (39 Ko)
Taille des limages en pixels
Sami Gazzah 2009 57
Exercice drsquoapplication
Soit une image carreacutee au format PPM(ASCII) de 160 Ko
Quelles sont approximativement les dimensions de cette image si
on neacuteglige la taille de lrsquoen-tecircte
Quelle serait la taille du fichier si cette image eacutetait stockeacutee en
binaire
Remarques Le format PPM (Portable Pixel Map) concerne les
images couleurs Chaque pixel a pour valeur un triplet (RGB) et
chaque couleur est exprimeacutee par un caractegravere et un espace
Sami Gazzah 2009 58
Formats de fichiers dimages
Une image est un tableau de pixels
Une image est stockeacutee soit dans un fichier sous la forme de texte soit dans la
meacutemoire de lordinateur sous la forme dun vecteur
Sami Gazzah 2009 59
Les opeacuterations de bases concernant une image sont la lecture (fichier vers
meacutemoire) et leacutecriture (meacutemoire vers fichier) Les informations
neacutecessaires agrave la manipulation dune image sont
nombre de lignes
nombre de colonnes
format des pixels (bit niveaux de gris niveaux de couleurs)
compression eacuteventuelle
Il existe une multitude de formats de fichiers permettant de stocker ces
informations ainsi que le tableau des valeurs En particulier
Les formats simples fichiers textes comportant un entecircte contenant
les dimensions de limage et le format des pixels Exemples les formats
PNM (portable anymap) PBM (portable bitmap) PGM (prtrable
grayscalemap) PPM (portable pixmap) Les fichiers correspondants sont
constitueacutes des eacuteleacutements suivants Sami Gazzah 2009 60
1 Un nombre magique pour identifier les type du fichier P1 ou P4
pour PBM P2 ou P5 pour PGM et P3 ou P6 pour PPM
2 Un caractegravere despacement (blanc TABs Cs LFs)
3 La largeur de limage (valeur deacutecimale codeacutee en ASCII) suivie dun
caractegravere despacement la longueur de limage (valeur deacutecimale
ASCII) suivie dun caractegravere despacement
4 Uniquement pour PGM et PPM lintensiteacute maximum (valeur deacutecimale
comprise entre 0 et 255 codeacutee en ASCII) suivie dun caractegravere
despacement
5 Largeur x hauteur nombres Ces nombres sont soit des valeurs
deacutecimales codeacutees en ASCII et seacutepareacutees par des espacements dans le
cas des formats P1 P2 P3 soit directement les valeurs binaires sur 1
ou 2 octets dans le cas des formats P4 P5 P6 Dans ce dernier cas il
ny pas de caractegraveres despacement entre les valeurs
15122010
11
Sami Gazzah 2009 61
Chapitre 2
Transformations sur les images
Sami Gazzah 2009 62
Les transformations peuvent ecirctre classeacutees de la maniegravere suivante
bullTransformations ponctuelles
bullTransformations de voisinage
bullTransformations spectrales
bullTransformations morphologiques
Au cours du processus de traitement et drsquoanalyse lrsquoimage subit une seacuterie
de transformations
Introduction
Image sourceTransformationTransformation
TTImage transformeacutee
Sami Gazzah 2009 63
1 Transformations ponctuelles
A partir dune image source la nouvelle valeur du pixel deacutepend uniquement de
son ancienne valeur
Exemple seuillage ajustement luminositeacutecontraste opeacuterations algeacutebriques
opeacuterations logiques et arithmeacutetiques manip dhistogramme
1 Opeacuterations logiques et arithmeacutetiques
Les images opeacuterandes
doivent ecirctre de mecircme taille
peuvent ecirctre des images constantes
Exemples
addition soustraction
ET logique OU logique
Problegravemes
deacutebordements de [0 255]
normalisation Sami Gazzah 2009 64
Images en niveaux de gris ETOU logique bit agrave bit entre les 8 bits
codant les valeurs des pixels
Images binaires ETOU logique entre les pixels
Sami Gazzah 2009 65
Les opeacuterations logiques
bullET I(xy)=I1(xy) ET I2(xy) intersection logique
bullOU I(xy) = I1(xy) OU I2(xy) union logique
bullNOT I(xy) = NOT(I1(xy)
opeacuterations arithmeacutetiques
bullAddition I(xy)=I1(xy)+I2(xy)
bullSoustraction I(xy)=I1(xy)-I2(xy)
bullMultiplication
bullDivision par une constantehellip
Sami Gazzah 2009 66
Les opeacuterations logiques
15122010
12
Sami Gazzah 2009 67
Application
Masquage
Sami Gazzah 2009 68
Les Opeacuterations arithmeacutetiques
Addition dimages
Principe I(xy)=I1(xy)+I2(xy) pour tout pixel de coordonneacutees (xy)
Strateacutegies si deacutepassement de capaciteacute
bullDeacutecalage des valeurs dans [0 127] avant addition (perte du bit de poids faible)
bullSaturation I(xy) = min ( I1(xy)+I2(xy) 255)
bullPreacute-calcul des valeurs finales (theacuteoriques) minimale et maximale
puis recadrage de la dynamique
Utilisations principales
Augmentation de la luminance dune image (par addition dune constante ou
dune image avec elle-mecircme) et diminution du bruit dans une seacuterie dimages
))()((max
))()((min
21)(
max
21)(
min
yxIyxIi
yxIyxIi
Iyx
Iyx
))()((255
)( 21
minmax
yxIyxIii
yxI
Sami Gazzah 2009 69
Les Opeacuterations arithmeacutetiques
Soustraction dimages
Principe I(xy)=I1(xy)-I2(xy) pour tout pixel de coordonneacutees (xy)
Strateacutegies si deacutepassement de capaciteacute
bullSaturation I(xy) = max ( I1(xy) - I2(xy) 0)
bullDiffeacuterence absolue I(xy) = | I1(xy) - I2(xy) |
Utilisations principales
bullDiminution de la luminance dune image
bullDeacutetection de changements entre images
bulldeacutefauts (par comparaison avec une image de reacutefeacuterence)
bullmouvements (par comparaison avec une autre image de la seacutequence)
Sami Gazzah 2009 70
Rim Romdhaneet al AVSS10 rd the 7th IEEE International Conference on
Advanced Video and Signal-Based Surveillance Boston USA 2010
Sami Gazzah 2009 71
Addition et soustraction de deux images
Sami Gazzah 2009 72
Si on dispose de limage en niveau de gris et de limage binaire suivante
15122010
13
Sami Gazzah 2009 73
2 Identiteacute neacutegatif et Seuillage
Sami Gazzah 200974
2 Les opeacuterations geacuteomeacutetriques
Opeacuterations geacuteomeacutetriques sur une image en niveaux de gris
Sami Gazzah 2009 75
Une transformation de voisinage est telle que la nouvelle valeur
drsquoun pixel tient compte des pixels appartenant au voisinage du
pixel consideacutereacute
Le voisinage peut avoir une taille plus ou moins grande (3x3 5x5
7x7hellip) et il peut avoir une forme reacuteguliegravere (carreacute rectangle
hexagonehellip) ou bien une forme quelconque
3 Transformations de voisinage
Sami Gazzah 2009 76
Exemple de transformation de voisinage le
produit de convolution
dans le cas continu le produit de convolution de f par g est
deacutefini par
Dans le cas discret il est geacuteneacuteralement deacutefini sur un voisinage il
est donneacute par
Sami Gazzah 2009 77
Si on applique ceci agrave une image I1 de dimensions
finies et agrave moyenne de convolution K (K
Kernel=noyau) de dimension 3 x 3 les pixels de
lrsquoimage I1 obtenue par convolution de I2 par K ont
pour valeur
Sami Gazzah 2009 78
Nouvelle
image
Nouvelle valeur
de pixel21
1 11
1 111 11
Noyau
Nouvelle valeur de pixel =
9
22 2719
9 19
51 21 14Image
originale
111
111
111
9
1h
15122010
14
Sami Gazzah 2009 79
4-Transformations spectrales (1)
Transformeacutee de Fourier 2D (TF 2D)
- La TF est
Dans la cas 1D (Rappel)
Dans la cas 2D
- La TF inverse
- La TF est
- La TF inverse
Sami Gazzah 2009 80
4-Transformations spectrales (2)
Exemple des transformations spectrales transformeacutee de Fourier
Soit f(xy) deacutefinie par une matrice d‟eacutechantillons reacuteguliegraverement espaceacutes
N le nombre de lignes M nombre de colonnes
- La TF est deacutefinie par
- La TF inverse est deacutefinie par
Sami Gazzah 2009 81 Sami Gazzah 2009 82
Compression RLE (Run Length Encoding)
2 2 2 2 128 128 128 120 120 80 96 96 94 94 94 95 97 97 97 97
4 2 3 128 2 120 1 80 2 96 3 94 1 95 4 97
Utile quand il y a des reacutepeacutetitions dans la chaicircne agrave encoder
Exemple Formats BMP TIFF PCX (Paintbrush)
Sami Gazzah 2009 83
Chapitre 3
RESTAURATION DrsquoIMAGES
Sami Gazzah 2009 84
L‟acquisition s‟accompagne toujours d‟une distorsiondeacutegradation
Il existe diffeacuterentes sources de deacutegradation (bruit) d‟une image
bruit lieacute au contexte de lacquisition Bougeacute mauvaises conditions
d‟eacuteclairagehellip
bruit lieacute au capteur Capteur de mauvaises qualiteacutes mauvaise mise
au point etchellip
bruit lieacute agrave leacutechantillonnage Une mauvaise freacutequence
d‟eacutechantillonnage peut introduire dans l‟image des points blancs ou
noirs connus souvent sous l‟appellation laquo sel et poivre raquo
bruit lieacute agrave la nature de la scegravene Preacutesence de fumeacutee de nuage
etchellip
Il faut corriger l‟image par un proceacutedeacute algorithmique
15122010
15
Sami Gazzah 2009 85
Restauration des Images monochromatiques et des images
couleurs
Au deacutebut de l‟imagerie numeacuterique les algorithmes deacuteveloppeacutes eacutetaient
destineacutes aux images en niveaux de gris Avec les progregraves techniques et le
deacuteveloppement des outils informatiques le traitement des images
couleurs est devenu possible
bull Approche marginale
Sami Gazzah 2009 86
Approche vectorielle
Dans lapproche vectorielle le vecteur couleur est consideacutereacute globalement
et le traitement doit ecirctre alors reacuteellement vectoriel Il ny a pas dans ce cas
une eacutetape de fusion ou de seacuteparation explicite entre les diffeacuterentes
composantes couleur de lrsquoimage Dans ce cas la correacutelation entre les
diffeacuterentes composantes peut ecirctre prise en compte ce qui aboutit
geacuteneacuteralement agrave des reacutesultats meilleurs que ceux du traitement marginal
Sami Gazzah 2009 87
Rappel
Sami Gazzah 2009 88
Sami Gazzah 2009 89
Nouvelle
image
Nouvelle valeur
de pixel21
1 11
1 111 11
Noyau
Nouvelle valeur de pixel =
9
22 2719
9 19
51 21 14Image
originale
Sami Gazzah 2009 90
15122010
16
Sami Gazzah 2009 91
Lissage spatial tout en remplacent la valeur du pixel courant par la moyenne de
tous les pixels inclus dans un voisinage centreacute en ce point
Sami Gazzah 2009 92
Sami Gazzah 2009 93 Sami Gazzah 2009 94
En traitement d‟image les tailles des fenecirctres utiliseacutees pour le
filtrage meacutedian sont geacuteneacuteralement impaires 3 3 5 5 7 7
exemple
fenecirctre de 5 pixels en croix
Pour les fenecirctres de taille paire ( 2 K valeurs ) apregraves
ordonnancement croissant des valeurs prendre la moyenne des 2
valeurs centrales
valeur de sortie( Kiegraveme valeur ordonneacutee + (K+1)iegraveme valeur ordonneacutee )
2=
Sami Gazzah 2009 95 Sami Gazzah 2009 96
15122010
17
Sami Gazzah 2009 97
Image laquo Piegraveces raquo de reacutefeacuterence bruiteacutee ( bruit de type impulsionnel ) puis filtreacutee
avec un filtre moyenneur (33) et un filtre meacutedian (33)
Image de reacutefeacuterence Image bruiteacutee
Bruit
Le filtrage meacutedian est plus adapteacute que le filtrage
lineacuteaire pour reacuteduire le bruit impulsionnel
Observation
Comparaison filtre meacutedian et filtre moyenneur
Sami Gazzah 2009 99 Sami Gazzah 2009 100
Sami Gazzah 2009 101 Sami Gazzah 2009 102
Chapitre 4
REHAUSSEMENT DrsquoIMAGES
15122010
18
Sami Gazzah 2009 103
Introduction
Le preacutetraitement d‟image est l‟ensemble des opeacuterations effectueacutees sur
une image soit pour l‟ameacuteliorer soit pour la restaurer
Le preacutetraitement d‟une image vise soit agrave renforcer la ressemblance des
pixels soit au contraire agrave accentuer les diffeacuterences de pixels d‟une mecircme
reacutegion
Accroitre la seacuteparabiliteacute des reacutegions composant une scegravene revient agrave
augmenter les contrastes vu
On applique le rehaussement des images afin de faciliter l‟interpreacutetation
visuelle et la compreacutehension des images
Pour comprendre ce type de rehaussement il faut comprendre le concept
d‟histogrammeSami Gazzah 2009 104
Deacutefinition de lrsquohistogramme drsquoune image
L‟histogramme est un outil qui permet de comptabiliser le nombre
d‟occurrences de chacune des valeurs dans une image en niveaux de gris
Dans une image couleur il est neacutecessaire d‟utiliser plusieurs
histogramme sur chacune des composantes du systegraveme de repreacutesentation
de la couleur
Soit h l‟histogramme de l‟image I de dimension (w x h) h[i] repreacutesente
le nombre d‟occurrence de chaque niveau de quantification i La probabiliteacute
estimeacutee du niveau i dans une image I est
hw
ihip
][)(
Image de 256 256 pixels
codeacutes chacun sur 8 bitsPopulation de pixels pour chaque
niveaux de gris [0 255]
Pour chaque niveau de gris on compte le nombre de pixels s‟y reacutefeacuterant
Pour chaque niveau on trace le graphe en bacircton du nombre de pixels
(possibiliteacute de regrouper les niveaux proches en une seule classe)
Exemple drsquohistogramme pour une image en niveaux
de gris
0 50 100 150 200 250
0
200
400
600
800
1000
cameraman
Image laquo A raquo en
niveaux de gris
Matrice des valeurs de luminance
des pixels de lrsquoimage laquo A raquo
Histogramme
de lrsquoimage
laquo A raquo
2 2 2 2 2 2 2 2
2 0 0 0 0 0 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 0 0 0 0 0 2
2 2 2 2 2 2 2 2
Les niveaux 0 1 et 2 sont respectivement repreacutesenteacutes par 24 12 et 28 pixels
repreacutesentation de cette population de pixels sur lhistogramme
Limage laquo A raquo comporte 3 niveaux de gris diffeacuterents 0 1 et 2
Compter le nombre de pixels pour chaque niveau de gris agrave lrsquoaide de la
matrice des valeurs de luminance
Exemple simple de calcul drsquohistogramme pour une image
Image laquo A raquoValeurs de luminance de
laquo A raquo
Histogramme cumuleacute de
laquo A raquo
2 2 2 2 2 2 2 2
2 0 0 0 0 0 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 0 0 0 0 0 2
2 2 2 2 2 2 2 2
Calcul dun histogramme particulier faisant appel aux cumuls des niveaux de gris
Histogramme cumuleacute
Utile pour certains traitements dimage tels que lrsquoeacutegalisation
dhistogramme ( ameacutelioration de contraste)
Chaque bacircton cumule le nombre de pixels du niveaux de gris concerneacute et des
niveaux de gris infeacuterieurs les niveaux 0 1 2 sont donc repreacutesenteacutes
respectivement par 24 36 et 64 pixels
Histogramme cumuleacute drsquoune image L‟histogramme ne donne pas L‟histogramme ne donne pas
d‟informations sur la reacutepartitiond‟informations sur la reacutepartition
Trois images diffeacuterentes ayant un mecircme histogramme
15122010
19
Modification de lrsquohistogrammeModification de lrsquohistogramme
On appelle dynamique des niveaux de gris lintervalle [nminnmax] de
niveaux de gris dans lequel sont compris tous les pixels de limage
Le but de la modification dhistogramme modifier chaque niveau de
gris pour accroicirctre le contraste On modeacutelise cette transformation par
leacutequation Irsquo(ij) = g(I(ij)) ougrave g est la fonction de contraste
Chaque transformation sera deacutecrite par une courbe repreacutesentant la
relation entre un niveau de gris de limage de deacutepart (abscisse) et le
niveau qui lui correspond dans limage ameacutelioreacutee (ordonneacutee)
Sami Gazzah 2009 109
Masquage de zones Masquage de zones Extraction d‟une Extraction d‟une
fenecirctre d‟intensiteacutefenecirctre d‟intensiteacute ((slicingslicing intensiteacute)intensiteacute)
Cette transformation consiste agrave remplacer un intervalle de niveaux
de gris par du blanc (nmax) par du noir (nmin) ou par une valeur
intermeacutediaire du niveau de gris
Sami Gazzah 2009 110
Courbes repreacutesentant de gauche agrave droite lextraction dune fenecirctre dintensiteacute et le masquage blanc et noir de lintervalle [ab]
n-1
n-1
0 n-1
n-1
0a ab b n-1
n-1
0 a b
Sami Gazzah 2009 111
Exemples de Masquage de zonesInversion de la dynamiqueInversion de la dynamique
But produire le neacutegatif d‟une image
donneacutee
Sami Gazzah 2009 112
Sami Gazzah 2009 113
Etirement drsquohistogramme
Sami Gazzah 2009 114
Etirement drsquohistogramme
Augmentation du contraste par eacutetirement d‟histogramme
15122010
20
Sami Gazzah 2009 115
Eacutegalisation dhistogramme
But ameacutelioration du contraste
Distribution uniforme des niveaux de gris
Elle se deacutefinit agrave laide de lhistogramme cumuleacute de limage hc(n)
qui repreacutesente le nombre de pixels de limage dont le niveau de
gris est infeacuterieur ou eacutegal agrave n
Deacutefinition de la transformation deacutegalisation dhistogramme soit
I le niveau de gris dun pixel de deacutepart le niveau de gris de limage
darriveacutee I‟ sera
Sami Gazzah 2009 116
Sami Gazzah 2009 117
Effet de lrsquoeacutegalisation drsquohistogramme
Sami Gazzah 2009 118
Augmentation du contraste exemples et comparaison
Original Eacutetirement d‟histogramme Eacutegalisation
Le rehaussement du contraste est plus marqueacute avec l‟eacutegalisation
d‟histogramme autorisant la deacutetection de structures situeacutees dans
l‟ombre
Sami Gazzah 2009 119
Chapitre 5
SEGMENTATION DrsquoIMAGES
Sami Gazzah 2009 120
Une image est geacuteneacuteralement composeacutee d‟objets L‟analyse de cette
image neacutecessite l‟identification de ces objets
La segmentation dimages est lun des problegravemes phares du traitement
dimages Elle consiste agrave partitionner limages en un ensemble de
reacutegions connexes Linteacuterecirct de ces reacutegions est de pouvoir ecirctre
manipuleacutees ensuite via des traitements de haut niveau pour extraire
des caracteacuteristiques de forme de position de taille etc
Introduction
15122010
21
Sami Gazzah 2009 121 Sami Gazzah 2009 122
Meacutethodes statistiquesSegmentation par Histogrammes
Sami Gazzah 2009 123
Meacutethodes statistiquesSeacutelection Reacutecursive sur Histogrammes
Ohlander Price et Reddy (1978)
Sami Gazzah 2009 124
Segmentation par approche contourIntroduction
Le contour est deacutefini comme le lieu des points connexes qui
possegravedent une forte transition d‟intensiteacute lumineuse ou de texture Le
traitement qui vise agrave l‟obtenir est appeleacute extraction de contour on
parle aussi de deacutetection de contour
Le processus d‟extraction de contour peut ecirctre deacutecomposeacute en
plusieurs eacutetapes distinctes que nous allons les deacutetailler comme suit
- La mise en eacutevidence des contours
- L‟extraction des contours
- La fermeture des contours
Sami Gazzah 2009 125
Segmentation par approche contourLa mise en eacutevidence des contours
Elle s‟obtient par une diffeacuterentiation de l‟image et elle peut
s‟appliquer agrave des images binaires ou non le but de la deacutetection de
contours est d‟obtenir dans un premier temps une image binaire ougrave
chaque contour est d‟eacutepaisseur 1 et sans discontinuiteacute
rehausser le contour
suivre le contour
les points du contour correspondent au maximum en valeur absolue
de la deacuteriveacutee primaire de l‟image on obtient alors un gradient ou au
passage par zeacutero de la deacuteriveacutee seconde de l‟image on obtient alors
un laplacien
Sami Gazzah 2009 126
Segmentation par approche contourLa mise en eacutevidence des contours
La deacutetection de contours peut ecirctre reacutealiseacutee gracircce agrave des filtres
dont les coefficients ont eacuteteacute soigneusement choisis Nous
aborderons dans cette preacutesentation 3 filtres les filtres de
Prewitt Roberts et Sobel
Ce jeu de filtres (Prewitt Roberts et Sobel) est constitueacute d‟une
paire de filtres lineacuteaires qui deacutetectent le contours dans deux
directions orthogonales (vertical et horizontal)
15122010
22
Sami Gazzah 2009 127
Segmentation par approche contourFiltre de Perwitt
Les filtres de Perwitt sont les suivants
Filtre horizontal
Filtre vertical
111
000
111
h
101
101
101
v
Sami Gazzah 2009 128
Segmentation par approche contourFiltre de Perwitt
A partir d‟une image I on calcule Gh et Gv images
correspondant au filtrage de I par h et v Ces images
contiennent les contours horizontaux et verticaux
Si l‟on souhaite obtenir une image de contour unique ne tenant
pas compte de l‟orientation on calcule
Orientation du contour
Image binairehellipchoisir un seuil de deacutetection
22
vh GGG
)(vh
GGarctg
Sami Gazzah 2009 129
Segmentation par approche contourFiltre de Sobel
Les filtres de Sobel sont les suivants
Filtre horizontal
Filtre vertical
121
000
121
h
101
202
101
v
Sami Gazzah 2009 130
Segmentation par approche contourFiltre de Sobel
Sami Gazzah 2009 131
Segmentation par approche contourFiltre de Sobel
Sami Gazzah 2009 132
Segmentation par approche contourFiltre de Roberts
Les filtres de Roberts sont les suivants
Filtre diagonal
Filtre anti-diagonal
10
01h
01
10v
15122010
23
Sami Gazzah 2009 133
Segmentation par approche contourFiltre de Kirsch
Ce deacutetecteur utilise huit noyaux de convolution lui permettant de deacutetecter
des contours en fonction de huit directions agrave
15
335
305
335
1
d 15
333
305
355
2
d 15
333
303
555
3
d
15
333
503
553
4
d 15
533
503
533
5
d 15
555
503
333
6
d
15
555
303
333
7
d 15
355
305
333
8
d
Sami Gazzah 2009 134
Contours et Laplacien
Il s‟agit de calculer la deacuteriveacutee seconde de l‟image
Le Laplacien est tregraves sensible au bruit pour limiter l‟effet du bruit le
Laplacien est approximeacute par un masque qui effectue en mecircme temps
une opeacuteration de filtrage par une Gaussienne qui repreacutesente l‟eacutetape
de lissage de l‟image puis vient l‟application du laplacien Les masques
du Laplacien Gaussien sont preacutesenteacutes ci-apregraves
Segmentation par approche contour
Sami Gazzah 2009 135
Contours et Laplacien
Le contour est ensuite deacutetermineacute par la deacutetection des
passages par zeacutero du laplacien de l‟image
88888888888888
010
141
010
1h
111
101
111
2h
121
242
121
3h
Sami Gazzah 2009 136
Contours et Laplacien
Sami Gazzah 2009 137
Seuillage
Les filtres preacuteceacutedents nous fournissent des images des sauts ou
diffeacuterences d‟intensiteacute
Le seuillage permet d‟eacuteliminer des points en lesquels la diffeacuterence
d‟intensiteacute est tregraves faible
Le seuillage peut ecirctre pousser afin d‟obtenir une image binaire (TOR)
Le seuillage dans sa forme le plus simple ne tient pas compte de la
topologie et peut conserver un point bruiteacute isoleacute ou eacuteliminer une portion
de contour d‟intensiteacute faible
Sami Gazzah 2009 138
Seuillage par hysteacutereacutesis
c‟est une fonction agrave deux seuils un seuil bas et un seuil haut
Tout point dont le module de contour est au-dessus du seuil-haut est un
point de contour
Tout point dont le module de contour est au-dessous du seuil-bas n‟est
pas un point de contour
Les points de module entre le seuil-bas et le seuil-haut sont des points
de contour s‟il possegravede un point de contour dans leur voisinage
15122010
24
Sami Gazzah 2009 139
Seuillage par hysteacutereacutesis
seuil haut
Seuil bas
point sur contour
point hors contour
Seuillage par hysteacuterisais les points de lrsquoimage de contour de valeur
supeacuterieur au seuil haut sont des points de contours A partir de ces points de
contours le voisinage de la direction du contour sont examineacutes srsquoils sont de
valeur supeacuterieure au seuil bas ils sont ajouteacutes au points de contoursSami Gazzah 2009 140
Chapitre 6
Introduction aux
opeacuterateurs
morphomatheacutematique
Sami Gazzah 2009 141
1 Introduction
Les opeacuterateurs morphomatheacutematique (=Morphologie Matheacutematique)
permettent d‟ameacuteliorer les images de contours et apporter d‟autres
fonctionnaliteacutes
Ils ont eacuteteacute initialement appliqueacute sur des images NampB (Matheron et
Sarra1965) ensuite eacutetendus agrave des images en nivaux de gris par Doupherty
(1978)
Pour les appliquer sur des images couleurs on peut les appliquer
seacutepareacutement agrave chaque composante couleur et combiner les reacutesultats
Sami Gazzah 2009 142
Diffeacuterentes opeacuterations
eacuterosion dilatation
ouverture fermeture
Squelettisation
hellip
1 Introduction
Sami Gazzah 2009 143
1 Introduction
Dilatation
Ajouter un pixel sur les pourtours de la forme
boucher les trous
Erosion
Enlever un pixel sur les pourtours de la forme
les objets de taille infeacuterieure agrave celle de leacuteleacutement
structurant vont disparaicirctre
agrandit les trous
Sami Gazzah 2009144
1I Rappels sur les ensembles
L‟eacutegaliteacute
L‟inclusion
Lbdquointersection
L‟union
La diffeacuterence
La diffeacuterence symeacutetrique
La compleacutementariteacute E eacutetant un ensemble
servant de reacutefeacuterentielle
Dans ce qui suit les lettres majuscules deacutesignent des ensembles et les lettres
minuscules deacutesignent des eacuteleacutements appartenant aux ensembles
Sur les ensembles on deacutefinit les opeacuterations suivantes
15122010
25
Sami Gazzah 2009145
1I Rappels sur les ensembles
Sami Gazzah 2009146
1I Rappels sur les ensembles
Lois de De Morgan
Reacuteflexion La reacuteflexion d‟un ensemble A est deacutefinie par
Un ensemble symeacutetrique veacuterifiant ndashA=A C‟est le cas des cercles et des carreacute par
exemple
ccc YXYX )(
ccc YXYX )(
AaaA
A -A B -B
Sami Gazzah 2009147
1I Rappels sur les ensembles
Addition de Minkowski l‟addition d‟un eacuteleacutement x agrave un ensemble A par x est
deacutefinie par
Cette notion n‟est pas uniquement ensembliste elle nous oblige agrave deacutefinir un point
de reacutefeacuterence
On en deacuteduit l‟addition d‟un ensemble B agrave un ensemble A c‟est le reacutesultat de
l‟addition de chaque eacuteleacutement de B agrave A
L‟addition de Minkowski est commutative Elle est eacutegalement appeleacute dilatation
AaxaxAB
A
A
x
AxBxAaBaBbbABAC )()()(
le translateacute de X par b
Sami Gazzah 2009148
1I Rappels sur les ensembles
Eleacutement structurant les opeacuterations morphomatheacutematiques sont deacutefinis agrave
partir des ensemble B discrets appeleacute eacuteleacutement structurant Ces eacuteleacutement
permettent de deacutefinir le type de voisinage souhaiteacute
Addition de Minkowski d‟un ensemble A et d‟un ensemble B
BA
Sami Gazzah 2009149
1II Dilatation
Le reacutesultat de dilatation de lrsquoensemble A par lrsquoensemble B
est lrsquoaddition de Minkowski crsquoest lrsquoensemble des points tel
que lorsque B est centreacute sur un de ces points il y a une
intersection non vide entre A et B
Pour des images en niveaux de gris on obtient lrsquoimage
dilateacutee de la forme A en remplaccedilant tout pixel par le
maximum des intensiteacutes des voisins selon la forme B
Sami Gazzah 2009 150
1II Dilatation1 Image NampB
Soit k l‟eacuteleacutement structurant de taille (2k+1) x (2k+1) L‟algorithme de
dilatation est le suivant on parcourt tous les pixels de l‟image sauf les
bord de l‟image d‟eacutepaisseur k pour chaque pixel du fond rencontreacute s‟il
possegravede un voisin au sens de l‟eacuteleacutement structurant qui appartient agrave un
objet il prend le couleur de l‟objet si non il n‟est pas modifieacute
15122010
26
la dilatation (noteacutee ) drsquoune image monochrome laquo f raquo par un
eacuteleacutement structurant laquo B raquo est deacutefinie en terme de sous-graphe
bull f B = T [ Y ] = Supl l tel que (m n l) Y
bullY = U ( f ) U ( B )
En consideacuterant un eacuteleacutement structurant plan de valeur nulle sur son
support
( f B ) (P) = Max valeurs des pixels du voisinage du pixel P
1II Dilatation1 Image niveaux de gris
max
55 68 77 90 91 95 115 151 210
( f B ) (P) = 210
n
115 91 77
95 68 90
55 151 210
exemple
m
Image de reacutefeacuterence
Eacuteleacutement structurant
(8-connexiteacute)
liste ordonneacutee des valeurs du voisinage
- - -
-
-
-
-
-
1II Dilatation1 Image niveaux de gris
Exemples de filtrages morphologiques(eacuteleacutement structurant 33 complet)
Image de reacutefeacuterenceImage dilateacutee
morphologiquement
La dilatation en niveaux de gris accroicirct la luminance des
pixels entoureacutes de voisins plus lumineux
Observation
Sami Gazzah 2009154
VI Erosion
L‟eacuterosion est deacutefinie par
On deacutefinit la soustraction de Minkowski par
On a eacutequivalence entre eacuterosion et soustraction de Minkowski si B est
symeacutetrique (si B=-B)
D‟un point de vue binaire l‟eacuterode de A par B correspond agrave l‟ensemble
des points tels que si B est centre sur ce points B est entiegraverement inclus
dans A
AxBxBbbABAC )()(
)()( BbbABAC
Sami Gazzah 2009 155
VI Erosion1 Image NampB
on parcourt tous les pixels de l‟image sauf les bord de l‟image
d‟eacutepaisseur k pour chaque pixel du fond rencontreacute s‟il possegravede un
voisin au sens de l‟eacuteleacutement structurant qui appartient agrave un objet il
prend le couleur du fond si non il n‟est pas modifieacute
VI Eacuterosion drsquoune image en niveaux de gris
Lrsquoeacuterosion (noteacutee Ө ) drsquoune image monochrome laquo f raquo par un eacuteleacutement
structurant laquo B raquo est deacutefinie en terme de sous-graphe
bull f Ө B = T [ Y ] = Supl l tel que (m n l) Y
bullY = U ( f ) Ө U ( B )
Classiquement on considegravere un eacuteleacutement structurant plan de
valeur nulle sur son support
( f Ө B ) (P) = Min valeurs des pixels du voisinage du pixel P
15122010
27
VI Eacuterosion drsquoune image en niveaux de gris
min
68 90 91 95 151
( f Ө B ) (P) = 68
n
115 91 77
95 68 90
55 151 210
exemple
m
Image de reacutefeacuterence
ӨӨ
Eacuteleacutement structurant
(4-connexiteacute)
liste ordonneacutee des valeurs du voisinage
-
-
-
-
Exemples de filtrages morphologiques(eacuteleacutement structurant 33 complet)
Image eacuterodeacutee
Lrsquoeacuterosion en niveaux de gris reacuteduit la luminance des pixels
qui sont entoureacutes de voisins de moindre intensiteacute
Image de reacutefeacuterence
Observation
Sami Gazzah 2009 159
Eacuteleacutement structurant (a)
(4-connexiteacute)
-
-
-
-
Eacuteleacutement structurant (b)
(8-connexiteacute)
- - -
-
-
-
-
-
Exercice 1 Sur la mecircme image de deacutepart on reacutealise deux opeacuterations
de dilatations avec deux eacuteleacutements structurant diffeacuterents
Dilatation avec (a) Dilatation avec (b)
image de deacutepart
cas a L‟eacuteleacutement structurant est agrave 4-connexiteacute Chaque pixel
du support qui est eacutegal agrave la valeur 1 ou qui a l‟un de ses 4
voisins agrave la valeur 1 est mis agrave la valeur 1 apregraves filtrage
cas b L‟eacuteleacutement structurant est agrave 8-connexiteacute Chaque pixel
du support qui est eacutegal agrave la valeur 1 ou qui a l‟un de ses 8
voisins agrave la valeur 1 est mis agrave la valeur 1 apregraves filtrage
Dans les deux cas on observe qu‟une dilatation eacutelimine les
trous isoleacutes dans les objets et dilate le contour des objets en
tenant compte de l‟eacuteleacutement structurant
Sami Gazzah 2009 160
Exercice 1
Sami Gazzah 2009 161
Eacuteleacutement structurant (a)
(4-connexiteacute)
-
-
-
-
Eacuteleacutement structurant (b)
(8-connexiteacute)
- - -
-
-
-
-
-
Exercice 2 Sur la mecircme image de deacutepart on reacutealise deux opeacuterations
d‟eacuterosions avec deux eacuteleacutements structurant diffeacuterents
Erosion avec (a) Erosion avec (b)
image de deacutepart
cas a L‟eacuteleacutement structurant est agrave 4-connexiteacute (origine agrave 4 voisins)
Chaque pixel du support qui a la valeur 0 ou qui a l‟un de ses 4
voisins agrave la valeur 0 est mis agrave la valeur 0 apregraves filtrage
cas b L‟eacuteleacutement structurant est agrave 8-connexiteacute Chaque pixel du
support qui a la valeur 0 ou qui a l‟un de ses 8 voisins agrave la valeur 0
est mis agrave la valeur 0 apregraves filtrage
Dans les deux cas on observe qu‟une eacuterosion eacutelimine les pixels
isoleacutes sur le fond et eacuterode le contour des objets
Sami Gazzah 2009 162
Exercice 2
15122010
28
ConclusionsConclusions
Erosion
les objets relieacutes entre eux vont ecirctre seacutepareacutes
Une eacuterosion de taille n peut se reacutealiser en reacutepeacutetant une
eacuterosion n fois avec un eacuteleacutement structurant de taille 1 ou en
appliquant une seule eacuterosion avec un eacuteleacutement structurant
de taille n
Dilatation
des objets sont situeacutes agrave une distance moins grande que la taille
de leacuteleacutement structurant il vont fusionner
Sami Gazzah 2009 163 Sami Gazzah 2009 164
Sami Gazzah 2009 165
Elimine pixels isoleacutes sans inteacuterecirct
L‟ouverture (opening) consiste agrave une eacuterosion suivi d‟une dilatation
Les petites structures et deacutetail fins disparaissent et ne sont pas recreacuteeacutees
lors de la dilation Une opeacuteration d‟ouverture est ainsi inteacuteressante pour
eacuteliminer les petits morceaux de contours bruiteacutes dans une image de
contours
V Ouverture et fermeture1 Ouverture
BBABAC )(
Sami Gazzah 2009 166
V Ouverture et fermetureII Fermeture
La fermeture (closing) consiste agrave une dilatation suivi d‟une eacuterosion
Les structures proches fusionnent lors de la dilation mais seules les
fusions ponctuelles disparaissent agrave nouveau lors de l‟eacuterosion Une
opeacuteration de fermeture est ainsi inteacuteressante pour boucher les petits
trous
Sami Gazzah 2009 167 Sami Gazzah 2009 168
Exercice 3 Sur l‟image de deacutepart on reacutealise une opeacuteration de
fermeture binaire par l‟eacuteleacutement structurant 4-connexiteacute Conclusions
Eacuteleacutement structurant
(4-connexiteacute)
-
-
-
-Fermeture = dilatation puis eacuterosion
Image de deacutepart Image dilateacutee Image dilateacutee puis eacuterodeacutee
Combler les trous
Reacutetablir les jonctions
tout en preacuteservant la taille
15122010
29
Sami Gazzah 2009 169
Exercice 4 Sur l‟image de deacutepart on reacutealise une opeacuteration
d‟ouverture binaire par l‟eacuteleacutement structurant 4-connexiteacute Conclusions
Eacuteleacutement structurant
(4-connexiteacute)
-
-
-
-Ouverture = eacuterosion puis dilatation
Image de deacutepart Image eacuterodeacutee Image eacuterodeacutee puis dilateacutee
Supprimer les fausses alarmes
Seacuteparer les objets accoleacutes
tout en preacuteservant la tailleSami Gazzah 2009 170
Appliquer les filtres suivants sur limage donneacutee Quelles sont les valeurs choisies
aux bords de limage et quelles sont les modifications visuelles
a) filtre moyenneur M3acute3(19)
b) eacuterosion
c) dilatation
d) meacutedian
e) fermeture
f) ouverture
Exercice 5
Sami Gazzah 2009 171
IV Amincissement et Squelettisation
La squelette (skeleton) d‟une forme est l‟axe meacutedian L‟inteacuterecirct de cette
opeacuteration est dans
La reconnaissance de caractegraveres
Deacutetection des reacuteseaux routiers
La planification de trajectoirehellip
Une meacutethode couramment employeacutee est une amincissement reacutepeacuteteacute
jusqu‟agrave le convergence (n‟apporte aucune modification)
Sami Gazzah 2009 172
IV Amincissement et Squelettisation1 Opeacuteration Tout Ou Rien laquoHit or Missraquo
Cette transformation est deacutefinie par
leacuteleacutement structurant eacutetendu est centreacute sur chaque pixel de limage
comme pour les opeacuterations ensemblistes
la question poseacutee est est ce que le contenu de limage est identique au
contenu de leacuteleacutement structurant
si la reacuteponse est oui le pixel reacutesultant vaut 1 si non il vaut 0
Une application permet de deacutetecter des configurations locales
particuliegraveres dans une image
plusieurs masques peuvent ecirctre utiliseacutes indeacutependamment les images
reacutesultat eacutetant ensuite combineacutees par une opeacuteration ou
)()( cc BABABA
Bc-
est le compleacutementaire
local de B
Sami Gazzah 2009 173
IV Amincissement et Squelettisation1 Opeacuteration laquoHit or Missraquo
Exemple dopeacuteration Hit or Miss deacutetection des coinsSami Gazzah 2009 174
IV Amincissement et Squelettisation1 Amincissement (thinning)
bull La transformation TOR nous permet eacutegalement de deacutefinir
l‟amincissement
bullL‟amincissement consiste agrave soustraire limage reacutesultat dun hit or miss de
limage initiale
bull des amincissements successifs conduisent au squelettisation
)()( BAAAthin
15122010
30
Sami Gazzah 2009 175
IV Amincissement et Squelettisation1I Squelettisation
Appliquer des amincissements successifs puis s‟arrecircter lorsque l‟amincissement
n‟apporte plus de modification C‟est une eacuterosion particuliegravere ougrave les pixels sont
supprimeacutes agrave la condition quils ne provoquent pas la seacuteparation dune reacutegion en
deux
Sami Gazzah 2009 176
IV Amincissement et Squelettisation1I Squelettisation
Sami Gazzah 2009 177
Chapitre 7
Transformations
geacuteomeacutetriques 2D
Sami Gazzah 2009 178
I Introduction
On entend par transformation 2D l‟ensemble des transformations du
plan pouvant ecirctre appliqueacutees aux pixels de l‟image sans consideacuteration
de l‟intensiteacute
Par exemples
Reacuteduction agrandissement
Deacuteformation d‟image
Recalage d‟une photo scanneacutee
Recaler des images que l‟on veut comparer
Mosaiumlque d‟images
Sami Gazzah 2009 179
I Transformations euclidiennes
Elles preacuteservent les distances et les angles
Elles sont les compositions de translations et de rotations
1) Translation
Ougrave Tx et Ty sont les deacuteplacements en x et en y de la translation
y
x
Tyy
Txx
Sami Gazzah 2009 180
2) Rotation
15122010
31
Sami Gazzah 2009 181 Sami Gazzah 2009 182
3) Remarques (1)
Sami Gazzah 2009 183
3) Remarques (2)
Sami Gazzah 2009 184
II Homotheacuteties
Changement deacutechelle par rapport agrave lorigine (scaling zoom)
Ougrave Sx et Sy sont les facteurs dagrandissement ( gt1) ou de
reacuteduction ( lt1) en x et en y
ySy
xSx
y
x
Sami Gazzah 2009 185
II Homotheacuteties
Sami Gazzah 2009 186
II Homotheacuteties
15122010
32
Sami Gazzah 2009 187
III Reacuteflexions
Reacuteflexions par rapport aux axes (flip miroir)
Sami Gazzah 2009 188
IV Cisaillement
Cisaillement (glissement shearing) on eacutetire suivant un ou plusieurs axes
Sami Gazzah 2009 189
Transformations inverses
Sami Gazzah 2009 190
Repreacutesentation Matricielle
IV Autres (reacuteflexions miroirs et flips)
Sami Gazzah 2009 191
Interpolation Directe
Sami Gazzah 2009 192
oDifficile de distribuer le niveau de gris sur les pixels voisins
oOn n‟a pas la certitude que tous les pixels de l‟image
transformeacutee recevront une valeur =gt ldquotrousrdquo
15122010
33
Interpolation Inverse
Sami Gazzah 2009 193
o Interpolation de la valeur du pixel agrave partir des voisins plus
facile
oAucun ldquotrourdquo car on parcourt tous les pixels de l‟image
transformeacutee Sami Gazzah 2009 194
V Objet vectoriel - Objet bitmap
Objet vectoriel
Essentiellement on transforme
les sommets (ou points de
controcircle) et on retracehellip
Objet ldquobitmaprdquo
On doit calculer la nouvelle
position de chaque pixel De plus on
doit geacuteneacuteralement interpoler les
niveaux de gris (couleurs)hellip
Sami Gazzah 2009 195
IV Assignation des niveaux de gris
Neacutecessaire car la position d‟un pixel transformeacute n‟est pas entiegraverehellip
Plusieurs meacutethodes
Interpolation au plus proche voisin
Interpolation bilineacuteaire
Interpolation bicubique
Autres types d‟interpolation
Sami Gazzah 2009 196
IV Assignation des niveaux de gris
Linterpolation de limage cest ce qui arrive lorsquon redimensionne
une image numeacuterique ou quon la redimensionne avec une distorsion
quon change la perspective etc
Exemple 1
Image originale (sans interpolation)
Image agrandie et donc interpoleacutee
Perte de netteteacute due agrave linterpolation
Sami Gazzah 2009
197
IV Assignation des niveaux de gris
Exemple 2 recadrage dimage
Nous allons agrandir cette image agrave 180
Il va donc nous manquer des informations lagrave ougrave lon va creacuteer des
pixels pour agrandir limage
Reacutesultat sans interpolation le logiciel agrandit simplement les pixels
Reacutesultat avec interpolation le logiciel calcule une couleur intermeacutediaire
pour chaque nouveau pixel
Sami Gazzah 2009
198
IV Assignation des niveaux de gris
Image originale
Interpolation au plus
proche voisin
Interpolation
bilineacuteaireInterpolation
bicubique
15122010
34
Sami Gazzah 2009 199
IIV Interpolation au plus proche voisin
Cest lalgorithme le plus rapide agrave calculer
Prend en compte dans le calcul que le pixel le plus proche du point
agrave interpoler
Consiste tout simplement agrave agrandir chaque pixel
Exemple Interpolation du plus proche voisin par copie des pixels
Copie de chaque colonne et de chaque rang
23 20
25 28
23 23
23 23
20 20
20 20
25 25
25 25
28 28
28 28
Sami Gazzah 2009 200
IIV Interpolation bilineacuteaire
Fonction bilineacuteaire de 4 pixels voisins ( en 2 D )
i-1 i i+1
i-1 i-12 i i+12 i+1 i+32
yi=xiYi+12=(xi+xi+1)2
Problegraveme pour le dernier point
Extrapolation lineacuteaire de
2 xn-xn-1
Principe 1D
attribuer agrave chaque point cible une
combinaison lineacuteaire des quatre
points sources les plus proches par
la transformation inverse
Sami Gazzah 2009 201
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 202
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 203 Sami Gazzah 2009 204
IIV Interpolation bilineacuteaire
15122010
35
Sami Gazzah 2009 205
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 206
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 207
IIV Interpolation bilineacuteaire exemple
Sami Gazzah 2009 208
IIV Interpolation bicubique
Sami Gazzah 2009 209
exemple
Sami Gazzah 2009 210
Chapitre 8
Geacuteneacuteration de segments de
droite et de cercles en 2D
15122010
36
Sami Gazzah 2009 211
Infographie 2D besoin de dessiner des primitives de
base (segments cercles hellip)
Espace discreacutetiseacute (pixels) il faut trouver un moyen pour
afficher des segments ou des cercles
I Segments 2D cercles1 Introduction
Comment trouver les pixels agrave allumer pour approximer au mieux une
droite ou un cercle
Algorithme rapide et preacutecisSami Gazzah 2009 212
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=ax+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ya
Sami Gazzah 2009 213
Rappelhellip
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=mx+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ym
Sami Gazzah 2009 214
Exemple
Sami Gazzah 2009 215
Agrave partir des coordonneacutees des 2 extreacutemiteacutes d‟un segmenthellip
Un algorithme simple
Boucle de x1 agrave x2 dx=1
ALLUME (x Arrondir(y))
Avec x2gtx1
Arrondir(y) = Arrondir(ax+b)
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Sami Gazzah 2009 216
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Choix de lrsquoaxehellip
Peu efficace
bullagrave chaque iteacuteration 1 multiplication (ou division) + 1 addition
+ 1 arrondi
15122010
37
Sami Gazzah 2009 217
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
DDA (Digital Differential Analyzer)
y et m doivent ecirctre des reacuteelsSami Gazzah 2009 218
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Calcul en entier (donc plus rapide)
Baseacute sur le choix entre deux points discrets deacutependant de leur
distance respective avec le point reacuteel ideacuteal
On simplifie le problegraveme en traitant drsquoabord le traceacute drsquoun segment
dans le 1er octant m infeacuterieur agrave1 et positif (0ltmlt 1)
Facilement geacuteneacuteralisable aux autres octants
Sami Gazzah 2009 219
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Traceacute d‟un segment dans le premier octant mlt1
On part d‟un point (xi yi) allumeacute
Sami Gazzah 2009 220
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
On ne calcule pas reacuteellement les distances rArr on veacuterifie si la diffeacuterence
entre les deux distances est positive ou neacutegative
Le signe de la longueur (d1-d2) deacutetermine s‟il faut allumer le pixel L ou H
L
H
Sami Gazzah 2009 221
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Comme m=ΔyΔx on multiplie cette diffeacuterence par Δx pour eacuteviter la
division
Mais que vaut p1
Sami Gazzah 2009 222
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
15122010
38
Sami Gazzah 2009 223
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Pour eacuteviter de calculer cette diffeacuterence pour chaque point on cherche
une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
Sami Gazzah 2009 224
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009 225
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009
Exercice
Tracer le segment de droite
pi xi yi
2 0 0
-6 1 1
6 2 1
-2 3 2
10 4 2
2 5 3
-6 6 4
6 7 4
-2 8 5
10 9 5
2 10 6
6
10
y
x
Sami Gazzah 2009 227
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
Sami Gazzah 2009 228
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
hellip interchanger les points hellip
Si |Δx| lt | Δy| on interchange le rocircle de x et y
15122010
39
Sami Gazzah 2009 229
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (1)
Sami Gazzah 2009 230
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (2)
Sami Gazzah 2009 231
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (3)
Sami Gazzah 2009 232
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Toujours baseacute sur le choix entre deux
points discrets deacutependant de leur
distance respective avec le point reacuteel
On travaille dans le 2e octant agrave partir
de (0r) ainsi pour un point (xi yi) le
prochain point sera
(xi+1 yi) ou (xi+1 yi-1)
Sami Gazzah 2009 233
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On calcule le prochain y et les diffeacuterences respectives avec les points
discrets de la faccedilon suivante
Le signe de pi nous dira si nous devons choisir le point lateacuteral ou le diagonal
Sami Gazzah 2009 234
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Encore une fois pour eacuteviter de calculer cette diffeacuterence pour chaque point on
cherche une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
15122010
40
Sami Gazzah 2009 235
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On considegravere 2 cas
Valeur initiale
Sami Gazzah 2009 236
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Sami Gazzah 2009 237
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Exemple centre = (00) et r = 3
Sami Gazzah 2009 238
Livres
Diane Lingrand Introduction au Traitement d‟Images Paris Editions Vuibert 2e
eacutedition 2008
Steven k Feiner James D Foley John F Hughes Richard l Phillips Andries
Vanam Introduction agrave l‟infographie Paris Editions Vuibert 2000
William K Pratt Digital Image Processing Willy-Inter-sciences 4th edition 2007
Eacuteric Incerti Compression dimage ndash Algorithmes et standards Vuibert 2003
Gilles Burel Introduction au traitement dimages ndash Simulation sous Matlab
Hermegraves 2001
Sites web
Cours de C Rougier (U Montreacuteal)
httpwww-etudiroumontrealca~rougiercift2730courshtml (cf chapitre 3)
Page wikipeacutedia sur JPEG (en anglais plus complegravete que celle en franccedilais)
httpenwikipediaorgwikiJPEG
Cours de P Courtellemont (Campus numeacuterique Espdon)
httppersouniv-lrfrpcourtelespadonsite_web
Applet de deacutemo par C G Jennings
httpcgjenningscatoyboxhjpegindexhtml
Cours de D Marshall (U Cardiff)
httpwwwcscfacukDaveMultimediaPDF
Reacutefeacuterences
Sami Gazzah 2009 239
Chapitre 9
introduction au
traitement
dimages avec OpenGL
Sami Gazzah 2009 240
OpenGL est une librairie graphique Elle a eacuteteacute creacutee par Silicon
Graphics et beacuteneacuteficie sur ces machines de lacceacuteleacuteration mateacuterielle
Elle est constitueacute d‟environ 200 fonctions graphiques
OpenGL est une bibliothegraveque de fonctions
Les fonctions sont de bas niveaux
La version actuelle est l‟ laquo OpenGL 41 raquo (deacutecembre 2010)
Principale caracteacuteristique indeacutependant du mateacuteriel et du systegraveme
d‟exploitation
Une impleacutementation libre de droits dOpenGL tregraves performante a eacuteteacute
eacutecrite par Brian Paul httpwwwmesa3dorg Et tout son code source
est accessible
Preacutesentation geacuteneacuterale
15122010
41
Sami Gazzah 2009 241
OpenGL propose des fonctions de bas niveaux
Primitives geacuteomeacutetriques points segments polygones
Les fonctions de haut niveaux sont deacuteveloppeacutees par l‟utilisateur ou
importeacutees par la librairie en amont d‟OpenGL
Primitives geacuteomeacutetriques complexes Sphegravere splines etc
Toutes les commandes et fonctions utilisent le preacutefixe gl
Exemple glColor2f()
Sami Gazzah 2009 242
Les Bibliothegraveques co-existant avec OpenGL
GLU OpenGL Utility Library contient les routines de bas niveau pour
geacuterer les matrices de transformation et de projection la facettisation des
polygones et le rendu de surface Les bibliothegraveques dextension du
systegraveme de fenecirctres permettent lutilisation du rendu OpenGL Il sagit de
GLX pour X Windows (fonctions ayant pour preacutefixe glX) et de WGL
pour Microsoft Windows (fonctions ayant pour preacutefixe wgl)
GLUT OpenGL Utility Toolkit est une boite agrave outils indeacutependante du
systegraveme de fenecirctrage eacutecrite par Mark
Kilgard pour simplifier la tacircche dutiliser des systegravemes diffeacuterents (fonctions
ayant pour preacutefixe glut)
Sami Gazzah 2009 243
Les primitives geacuteomeacutetriques d rsquoOpenGL
Les primitives sont deacutecrites par un bloc d‟instructions deacutelimiteacute par glBegin et glEnd
Ce bloc contient geacuteneacuteralement une liste de vertex Exemple
glBegin(GL_LINE_LOOP)
glVertex2f(-05 -05)
glVertex2f(05 -05)
glVertex2f(05 05)
glVertex2f(-05 05)
glEnd()
D‟autres attributs peuvent ecirctre speacutecifieacutes en chaque sommet
couleur normale coordonneacutee de texture etcSami Gazzah 2009 244
OpenGL est une machine agrave eacutetats
En modifiant les variables d‟eacutetats on peut changer le style de rendu
Sami Gazzah 2009 245
Exemple Honda Hippo (3dRendercom)
Placage de textures
bullL‟apparence et le toucher ( feel ) d‟une surface
bullUne image utiliseacutee pour deacutefinir les caracteacuteristiques d‟une surface
bullUne image multi-dimensionnelle qui est plaqueacutee sur un espace multi-
dimensionnel
Sami Gazzah 2009 246
15122010
42
Sami Gazzah 2009 247
Reacutefeacuterences openGL
Sami Gazzah 2009 248
Chapitre 10
introduction au
traitement
dimages avec OpenCV
Sami Gazzah 2009 249
Preacutesentation geacuteneacuterale
Quest-ce
Open Source Computer Vision Library
Bibliothegraveque open source de traitement des images numeacuteriques
Projet initieacute par Intel (en 1999)
Teacuteleacutechargeable sur httpsourceforgenetprojectsopencvlibrary
Fortement orienteacutee temps reacuteel
eacutecrite en C et C++
optimiseacutee pour les processeurs multi-cœurs
Multi-plateformes disponible pour Linux Windows et Mac OS X
Que contient-elle
Des fonctionnaliteacutes (structures et routines gt350 algos) de base et
avanceacutees pour bacirctir rapidement des applications autour de la vision par
ordinateur
Exemples dutilisation traitements de bas niveau (filtrage ) deacutetection
de visages reconnaissance et suivi dobjets en mouvement Sami Gazzah 2009 250
Fonctionnaliteacutes
Lectureeacutecriture dimages statiques et de seacutequences videacuteo
APIs de bas et moyen niveaux
Traitement des images binaires
Manipulations dimage (eacutechantillonnage (sampling) reacutegion dinteacuterecirct (ROI)
redimensionnement (resizing) rotation deacuteformation (warping) )
Deacutetection de contours de lignes de coins (edge detection)
Traitements multi-eacutechelles (multiscale processing)
Transformeacutees (Fourier cosinus discregravete )
Modules de haut niveau
Deacutetection reconnaissance et suivi (tracking) de visages
Flot optique (estimation du mouvement) (optical flow)
Calibrage (calibration) de la cameacutera
Mise en correspondance steacutereacuteoscopique (stereo matching)
IA et apprentissage par ordinateur (machine learning)
3D mise en correspondance (registration)
Sami Gazzah 2009 251
Modules principaux
CxCore
Types de base pour manip dimages (ex struct image point isin cxtypesh)
Structures dynamiques (listes files graphes arbres) et persistantes (LE)
Manipulations de matrices meacutethodes de lalgegravebre lineacuteaire et statistiques
Dessin en surimpression (overlay) (ex eacutetiquetage)
Cv
Traitement dimage calibrage cameacutera
Geacuteomeacutetrie algorithmique (triangulation )
Cvaux
Reconnaissance de visage
Code expeacuterimental et obsolegravete
Autres (dans otherlibs)
HighGUI ES videacuteos curseurs fenecirctrage
ML classification regroupement (clustering)Sami Gazzah 2009 252
OpenCV premiers programmesBibliothegraveque OpenCV
15122010
43
Sami Gazzah 2009 253
Livre
G Bradski amp A Kaehler laquo Learning OpenCV raquo OReilly Press (2008)
codes sources httpexamplesoreillycom9780596516130
Ressources en ligne
Reacutefeacuterence complegravete httpopencvwillowgaragecomdocumentation
Wiki httpopencvwillowgaragecomwikiFullOpenCVWiki
bullPreacutesentation teacuteleacutechargement installation
bullavec CodeBlocks httpopencvwillowgaragecomwikiCodeBlocks
bullDeacutebuter avec OpenCV FAQ
Tutoriels
httpnchcdlsourceforgenetsourceforgeopencvlibraryippocvpdf
httpdaslmemdrexeledu~noahKuntzopenCVTut1html agrave Tut11html
httpwwwcognoticscomopencvservo_2007_series
Tutoriel sur la vision utilisant OpenCV (en franccedilais)
httpwwwsiteduzerocomtutoriel-3-8631-vision-par-ordinateurhtml
Reacutefeacuterences openCV
15122010
7
Sami Gazzah 2009 37
3 Repreacutesentation drsquoune image numeacuterique3 3 Distance entre pixels
Diffeacuterents distances entre 2 points P(ij) et P(kl) peuvent ecirctre utiliseacutees
i
j
l
k2 Distance blocks
Cette distance est appeleacute eacutegalement
laquo Manhatten distance raquo
il faut contourner les blocs
d‟habitations pour relier deux points
Manhatten city NY Sami Gazzah 2009 38
3 Repreacutesentation drsquoune image numeacuterique3 3 Distance entre pixels
Diffeacuterents distances entre 2 points P(ij) et P(kl) peuvent ecirctre utiliseacutees
i
j
l
k
3 Distance tour d‟eacutechiquier
Sami Gazzah 2009 39 Sami Gazzah 2009 40
4 Formats drsquoimages
Une image vectorielle est repreacutesenteacutee par des formes geacuteomeacutetriques simples
Ligne point de deacutepart point d‟arriveacutee hellip
Triangle 3 sommets la couleur du contour la couleur inteacuterieure
(remplissage) hellip
Ex PAO (publication assisteacutee par ordinateur) DAO (dessin assisteacute par
ordinateur) etc
Une image matricielle est repreacutesenteacutee par des matrices de pixels Bitmap
(image en mode point)
Ex image en niveaux de gris ou couleurs de type photo GIF PCX BMP
JPEG PPM PGMhellip
4 1 Image vectorielle Vs Image matricielle
Sami Gazzah 2009 41
4 Formats drsquoimages4 1 Images vectorielles Vs Images matricielles
Images vectorielles Images matricielles
Avantages Inconveacutenients Avantages Inconveacutenients
Peu de place en
meacutemoire
Peut devenir gros
pour une image
complexe
Aucun calcul pour
l‟affichage
Peuvent occuper
beaucoup d‟espace
meacutemoire
Redimensionnement
sans perte
d‟informations
Beaucoup de calculs
pour l‟affichage
La complexiteacute de
l‟image n‟influe pas
sur sa taille
Aucun aliasing si on
manipule l‟objet
graphique
Sami Gazzah 2009 42
4 Formats drsquoimages4 2 Stockage des images
o Pour la meacutemorisation des images sur disque meacutemoire on stocke les informations
concernant les image dans un en-tecircte puis les donneacutees (valeurs de pixels)
o L‟en-tecircte contient la largeur et la hauteur de l‟image aussi on peut ajouter d‟autres
informations telles que le type de donneacutees l‟auteur la datehellip
o Pour certains formats l‟en-tecircte et les donneacutees sont stockeacutes dans 2 fichiers
diffeacuterents
o Les donneacutees sont souvent stockeacutees dans l‟ordre des pixels de gauche agrave droite et
de haut en bas
o Les anciens formats sont simples et tregraves facile agrave lire et agrave eacutecrire
bull PBM pour des images binaires
bull PGM pour des images en niveaux de gris
bull PPM pour des images couleurs
o Les formats les plus courants sont GIF PCX BMPTIFF et JPEG
15122010
8
Sami Gazzah 2009 43
4 Formats drsquoimages4 2 Stockage des images
421 format PBM (Portable Bit Map)
Nombre de colonnes=10
Nom
bre
de c
olon
nes
=10
P1 signifie qursquoil srsquoagit drsquoun format PBM et que les donneacutees sont stockeacutees en ASCII signifie qursquoil srsquoagit drsquoune ligne de commentaire
Sami Gazzah 200944
4 Formats drsquoimages4 2 Stockage des images
421 format PGM(Portable Gray Map)
P2 signifie qursquoil srsquoagit drsquoun format PGM et que les donneacutees sont stockeacutees en ASCII
Sami Gazzah 200945
4 Formats drsquoimages4 2 Stockage des images
421 format PPM(Portable Pixel Map)
P3 signifie qursquoil srsquoagit drsquoun format PPM et que les donneacutees sont stockeacutees en ASCII Les valeurs des pixels sont donneacutees pixel par pixel
Sami Gazzah 2009 46
Sami Gazzah 2009 47
5 Eleacutements de Colorimeacutetrie
Un prisme seacutepare la lumiegravere blanche en ses couleurs
Sami Gazzah 2009 48
6 Les systegravemes de repreacutesentation des couleurs
Kunt a deacutemontreacute qu‟en combinant trois longueurs drsquoondes particuliegraveres il est
possible de syntheacutetiser presque toutes les couleurs existantes Les trois
couleurs de base sont dites laquo couleurs primaires raquo Une couleur peut donc ecirctre
repreacutesenteacutee dans un espace agrave trois dimensions Il en existe plusieurs
- Systegraveme RGB (Red Green Blue)
- Systegraveme CMY (Cyan Magenta Yellow)
- Systegraveme XYZ
- Systegraveme HLS (Hue Magenta Saturation)
Image couleur et sa repreacutesentation matricielle
15122010
9
Sami Gazzah 2009 49
Images couleurs (24 bits)
Lrsquoespace couleur Rouge Vert Bleu (RGB)
Sami Gazzah 2009 50
Valeur R Valeur V Valeur BCouleur
correspondanteCommentaires
0 0 0 noir
0 0 255 bleu
0 255 0 vert
255 0 0 rouge
128 128 128
couleur
intermeacutediaire
correspondant agrave
un gris
255 255 255 blanc
Sami Gazzah ISITCom 200951
Exemple de deacutecomposition drsquoune image couleur en 3 plans de couleur
(a) image originale (b)canal rouge (c)canal vert (d)canal bleu
(b)(a)
(c) (d)
Sami Gazzah 2009 52
Lrsquoespace couleur Cyan Magenta et Jaune (GMJ)
bull les couleurs primaires CMJ sont ici les compleacutementaires des RVB
bull utiliseacute par certaines imprimantes couleurs agrave jet dencre
bull les diffeacuterentes couleurs sont obtenues par soustraction du blanc
Sami Gazzah 2009 53
Le principe de lespace HSV est de caracteacuteriser les couleurs de faccedilon plus
intuitive conformeacutement agrave la perception naturelle des couleurs en termes de
1 teinte (Hue) intuitivement cest le nom quon utilisera pour deacutesigner la couleur
vert mauve etc Ideacutealement associeacute agrave une longueur donde
2 saturation (Saturation)cest le taux de pureteacute de la couleur qui doit varier
entre la pureteacute maximale (couleur eacuteclatante) et lachromatisme (niveau de gris)
3 valeur (Value) cest la mesure de lintensiteacute lumineuse de la couleur qui doit
varier entre le noir absolu et le blanc
Images HSV
Composante valeur
Composante saturation
Composante teinte
Sami Gazzah 2009 54
Pour passer de la repreacutesentation initiale (RGB) agrave cette repreacutesentation on opegravere
de la maniegravere suivante
15122010
10
Sami Gazzah 2009 55
Quelques caracteacuteristiques drsquoimages numeacuteriques
La reacutesolution dune image = nombre de pixels par uniteacute de longueur de la
structure agrave numeacuteriser (dpi (dots per inches) ou ppp (pixel par pouce)
La reacutesolution du format de limage =nombre de pixels qui compose limage en
hauteur et en largeur (512 pixels par 512 pixels par exemple)
La taille des donneacutees pour une image (en bits) = Nlignes x Ncolonnes x B
La profondeur de bits = nombre de bits neacutecessaire pour repreacutesenter un pixel dans
l‟image numeacuterique
La dynamique dune image= leacutetendu de la gamme de couleurs 2nbre de bitspixels ndash 1
Le poids d‟une image numeacuterique est l‟espace meacutemoire qu‟elle occupe sur un
support de stockage numeacuterique = nombre de bits par pixel x nombre total de pixels
Sami Gazzah 2009 56
bullune image 200200 pixels en niveaux du gris fait un poids de
200200=40000 octets
bullimage de 200200 pixels en vraies couleurs (16 millions) (24 bits)
2002003= 120000 octets (117 Ko)
bull image de 200200 pixels en fausses couleurs (256 couleurs) (8 bits)
2002001= 40000 octets (39 Ko)
Taille des limages en pixels
Sami Gazzah 2009 57
Exercice drsquoapplication
Soit une image carreacutee au format PPM(ASCII) de 160 Ko
Quelles sont approximativement les dimensions de cette image si
on neacuteglige la taille de lrsquoen-tecircte
Quelle serait la taille du fichier si cette image eacutetait stockeacutee en
binaire
Remarques Le format PPM (Portable Pixel Map) concerne les
images couleurs Chaque pixel a pour valeur un triplet (RGB) et
chaque couleur est exprimeacutee par un caractegravere et un espace
Sami Gazzah 2009 58
Formats de fichiers dimages
Une image est un tableau de pixels
Une image est stockeacutee soit dans un fichier sous la forme de texte soit dans la
meacutemoire de lordinateur sous la forme dun vecteur
Sami Gazzah 2009 59
Les opeacuterations de bases concernant une image sont la lecture (fichier vers
meacutemoire) et leacutecriture (meacutemoire vers fichier) Les informations
neacutecessaires agrave la manipulation dune image sont
nombre de lignes
nombre de colonnes
format des pixels (bit niveaux de gris niveaux de couleurs)
compression eacuteventuelle
Il existe une multitude de formats de fichiers permettant de stocker ces
informations ainsi que le tableau des valeurs En particulier
Les formats simples fichiers textes comportant un entecircte contenant
les dimensions de limage et le format des pixels Exemples les formats
PNM (portable anymap) PBM (portable bitmap) PGM (prtrable
grayscalemap) PPM (portable pixmap) Les fichiers correspondants sont
constitueacutes des eacuteleacutements suivants Sami Gazzah 2009 60
1 Un nombre magique pour identifier les type du fichier P1 ou P4
pour PBM P2 ou P5 pour PGM et P3 ou P6 pour PPM
2 Un caractegravere despacement (blanc TABs Cs LFs)
3 La largeur de limage (valeur deacutecimale codeacutee en ASCII) suivie dun
caractegravere despacement la longueur de limage (valeur deacutecimale
ASCII) suivie dun caractegravere despacement
4 Uniquement pour PGM et PPM lintensiteacute maximum (valeur deacutecimale
comprise entre 0 et 255 codeacutee en ASCII) suivie dun caractegravere
despacement
5 Largeur x hauteur nombres Ces nombres sont soit des valeurs
deacutecimales codeacutees en ASCII et seacutepareacutees par des espacements dans le
cas des formats P1 P2 P3 soit directement les valeurs binaires sur 1
ou 2 octets dans le cas des formats P4 P5 P6 Dans ce dernier cas il
ny pas de caractegraveres despacement entre les valeurs
15122010
11
Sami Gazzah 2009 61
Chapitre 2
Transformations sur les images
Sami Gazzah 2009 62
Les transformations peuvent ecirctre classeacutees de la maniegravere suivante
bullTransformations ponctuelles
bullTransformations de voisinage
bullTransformations spectrales
bullTransformations morphologiques
Au cours du processus de traitement et drsquoanalyse lrsquoimage subit une seacuterie
de transformations
Introduction
Image sourceTransformationTransformation
TTImage transformeacutee
Sami Gazzah 2009 63
1 Transformations ponctuelles
A partir dune image source la nouvelle valeur du pixel deacutepend uniquement de
son ancienne valeur
Exemple seuillage ajustement luminositeacutecontraste opeacuterations algeacutebriques
opeacuterations logiques et arithmeacutetiques manip dhistogramme
1 Opeacuterations logiques et arithmeacutetiques
Les images opeacuterandes
doivent ecirctre de mecircme taille
peuvent ecirctre des images constantes
Exemples
addition soustraction
ET logique OU logique
Problegravemes
deacutebordements de [0 255]
normalisation Sami Gazzah 2009 64
Images en niveaux de gris ETOU logique bit agrave bit entre les 8 bits
codant les valeurs des pixels
Images binaires ETOU logique entre les pixels
Sami Gazzah 2009 65
Les opeacuterations logiques
bullET I(xy)=I1(xy) ET I2(xy) intersection logique
bullOU I(xy) = I1(xy) OU I2(xy) union logique
bullNOT I(xy) = NOT(I1(xy)
opeacuterations arithmeacutetiques
bullAddition I(xy)=I1(xy)+I2(xy)
bullSoustraction I(xy)=I1(xy)-I2(xy)
bullMultiplication
bullDivision par une constantehellip
Sami Gazzah 2009 66
Les opeacuterations logiques
15122010
12
Sami Gazzah 2009 67
Application
Masquage
Sami Gazzah 2009 68
Les Opeacuterations arithmeacutetiques
Addition dimages
Principe I(xy)=I1(xy)+I2(xy) pour tout pixel de coordonneacutees (xy)
Strateacutegies si deacutepassement de capaciteacute
bullDeacutecalage des valeurs dans [0 127] avant addition (perte du bit de poids faible)
bullSaturation I(xy) = min ( I1(xy)+I2(xy) 255)
bullPreacute-calcul des valeurs finales (theacuteoriques) minimale et maximale
puis recadrage de la dynamique
Utilisations principales
Augmentation de la luminance dune image (par addition dune constante ou
dune image avec elle-mecircme) et diminution du bruit dans une seacuterie dimages
))()((max
))()((min
21)(
max
21)(
min
yxIyxIi
yxIyxIi
Iyx
Iyx
))()((255
)( 21
minmax
yxIyxIii
yxI
Sami Gazzah 2009 69
Les Opeacuterations arithmeacutetiques
Soustraction dimages
Principe I(xy)=I1(xy)-I2(xy) pour tout pixel de coordonneacutees (xy)
Strateacutegies si deacutepassement de capaciteacute
bullSaturation I(xy) = max ( I1(xy) - I2(xy) 0)
bullDiffeacuterence absolue I(xy) = | I1(xy) - I2(xy) |
Utilisations principales
bullDiminution de la luminance dune image
bullDeacutetection de changements entre images
bulldeacutefauts (par comparaison avec une image de reacutefeacuterence)
bullmouvements (par comparaison avec une autre image de la seacutequence)
Sami Gazzah 2009 70
Rim Romdhaneet al AVSS10 rd the 7th IEEE International Conference on
Advanced Video and Signal-Based Surveillance Boston USA 2010
Sami Gazzah 2009 71
Addition et soustraction de deux images
Sami Gazzah 2009 72
Si on dispose de limage en niveau de gris et de limage binaire suivante
15122010
13
Sami Gazzah 2009 73
2 Identiteacute neacutegatif et Seuillage
Sami Gazzah 200974
2 Les opeacuterations geacuteomeacutetriques
Opeacuterations geacuteomeacutetriques sur une image en niveaux de gris
Sami Gazzah 2009 75
Une transformation de voisinage est telle que la nouvelle valeur
drsquoun pixel tient compte des pixels appartenant au voisinage du
pixel consideacutereacute
Le voisinage peut avoir une taille plus ou moins grande (3x3 5x5
7x7hellip) et il peut avoir une forme reacuteguliegravere (carreacute rectangle
hexagonehellip) ou bien une forme quelconque
3 Transformations de voisinage
Sami Gazzah 2009 76
Exemple de transformation de voisinage le
produit de convolution
dans le cas continu le produit de convolution de f par g est
deacutefini par
Dans le cas discret il est geacuteneacuteralement deacutefini sur un voisinage il
est donneacute par
Sami Gazzah 2009 77
Si on applique ceci agrave une image I1 de dimensions
finies et agrave moyenne de convolution K (K
Kernel=noyau) de dimension 3 x 3 les pixels de
lrsquoimage I1 obtenue par convolution de I2 par K ont
pour valeur
Sami Gazzah 2009 78
Nouvelle
image
Nouvelle valeur
de pixel21
1 11
1 111 11
Noyau
Nouvelle valeur de pixel =
9
22 2719
9 19
51 21 14Image
originale
111
111
111
9
1h
15122010
14
Sami Gazzah 2009 79
4-Transformations spectrales (1)
Transformeacutee de Fourier 2D (TF 2D)
- La TF est
Dans la cas 1D (Rappel)
Dans la cas 2D
- La TF inverse
- La TF est
- La TF inverse
Sami Gazzah 2009 80
4-Transformations spectrales (2)
Exemple des transformations spectrales transformeacutee de Fourier
Soit f(xy) deacutefinie par une matrice d‟eacutechantillons reacuteguliegraverement espaceacutes
N le nombre de lignes M nombre de colonnes
- La TF est deacutefinie par
- La TF inverse est deacutefinie par
Sami Gazzah 2009 81 Sami Gazzah 2009 82
Compression RLE (Run Length Encoding)
2 2 2 2 128 128 128 120 120 80 96 96 94 94 94 95 97 97 97 97
4 2 3 128 2 120 1 80 2 96 3 94 1 95 4 97
Utile quand il y a des reacutepeacutetitions dans la chaicircne agrave encoder
Exemple Formats BMP TIFF PCX (Paintbrush)
Sami Gazzah 2009 83
Chapitre 3
RESTAURATION DrsquoIMAGES
Sami Gazzah 2009 84
L‟acquisition s‟accompagne toujours d‟une distorsiondeacutegradation
Il existe diffeacuterentes sources de deacutegradation (bruit) d‟une image
bruit lieacute au contexte de lacquisition Bougeacute mauvaises conditions
d‟eacuteclairagehellip
bruit lieacute au capteur Capteur de mauvaises qualiteacutes mauvaise mise
au point etchellip
bruit lieacute agrave leacutechantillonnage Une mauvaise freacutequence
d‟eacutechantillonnage peut introduire dans l‟image des points blancs ou
noirs connus souvent sous l‟appellation laquo sel et poivre raquo
bruit lieacute agrave la nature de la scegravene Preacutesence de fumeacutee de nuage
etchellip
Il faut corriger l‟image par un proceacutedeacute algorithmique
15122010
15
Sami Gazzah 2009 85
Restauration des Images monochromatiques et des images
couleurs
Au deacutebut de l‟imagerie numeacuterique les algorithmes deacuteveloppeacutes eacutetaient
destineacutes aux images en niveaux de gris Avec les progregraves techniques et le
deacuteveloppement des outils informatiques le traitement des images
couleurs est devenu possible
bull Approche marginale
Sami Gazzah 2009 86
Approche vectorielle
Dans lapproche vectorielle le vecteur couleur est consideacutereacute globalement
et le traitement doit ecirctre alors reacuteellement vectoriel Il ny a pas dans ce cas
une eacutetape de fusion ou de seacuteparation explicite entre les diffeacuterentes
composantes couleur de lrsquoimage Dans ce cas la correacutelation entre les
diffeacuterentes composantes peut ecirctre prise en compte ce qui aboutit
geacuteneacuteralement agrave des reacutesultats meilleurs que ceux du traitement marginal
Sami Gazzah 2009 87
Rappel
Sami Gazzah 2009 88
Sami Gazzah 2009 89
Nouvelle
image
Nouvelle valeur
de pixel21
1 11
1 111 11
Noyau
Nouvelle valeur de pixel =
9
22 2719
9 19
51 21 14Image
originale
Sami Gazzah 2009 90
15122010
16
Sami Gazzah 2009 91
Lissage spatial tout en remplacent la valeur du pixel courant par la moyenne de
tous les pixels inclus dans un voisinage centreacute en ce point
Sami Gazzah 2009 92
Sami Gazzah 2009 93 Sami Gazzah 2009 94
En traitement d‟image les tailles des fenecirctres utiliseacutees pour le
filtrage meacutedian sont geacuteneacuteralement impaires 3 3 5 5 7 7
exemple
fenecirctre de 5 pixels en croix
Pour les fenecirctres de taille paire ( 2 K valeurs ) apregraves
ordonnancement croissant des valeurs prendre la moyenne des 2
valeurs centrales
valeur de sortie( Kiegraveme valeur ordonneacutee + (K+1)iegraveme valeur ordonneacutee )
2=
Sami Gazzah 2009 95 Sami Gazzah 2009 96
15122010
17
Sami Gazzah 2009 97
Image laquo Piegraveces raquo de reacutefeacuterence bruiteacutee ( bruit de type impulsionnel ) puis filtreacutee
avec un filtre moyenneur (33) et un filtre meacutedian (33)
Image de reacutefeacuterence Image bruiteacutee
Bruit
Le filtrage meacutedian est plus adapteacute que le filtrage
lineacuteaire pour reacuteduire le bruit impulsionnel
Observation
Comparaison filtre meacutedian et filtre moyenneur
Sami Gazzah 2009 99 Sami Gazzah 2009 100
Sami Gazzah 2009 101 Sami Gazzah 2009 102
Chapitre 4
REHAUSSEMENT DrsquoIMAGES
15122010
18
Sami Gazzah 2009 103
Introduction
Le preacutetraitement d‟image est l‟ensemble des opeacuterations effectueacutees sur
une image soit pour l‟ameacuteliorer soit pour la restaurer
Le preacutetraitement d‟une image vise soit agrave renforcer la ressemblance des
pixels soit au contraire agrave accentuer les diffeacuterences de pixels d‟une mecircme
reacutegion
Accroitre la seacuteparabiliteacute des reacutegions composant une scegravene revient agrave
augmenter les contrastes vu
On applique le rehaussement des images afin de faciliter l‟interpreacutetation
visuelle et la compreacutehension des images
Pour comprendre ce type de rehaussement il faut comprendre le concept
d‟histogrammeSami Gazzah 2009 104
Deacutefinition de lrsquohistogramme drsquoune image
L‟histogramme est un outil qui permet de comptabiliser le nombre
d‟occurrences de chacune des valeurs dans une image en niveaux de gris
Dans une image couleur il est neacutecessaire d‟utiliser plusieurs
histogramme sur chacune des composantes du systegraveme de repreacutesentation
de la couleur
Soit h l‟histogramme de l‟image I de dimension (w x h) h[i] repreacutesente
le nombre d‟occurrence de chaque niveau de quantification i La probabiliteacute
estimeacutee du niveau i dans une image I est
hw
ihip
][)(
Image de 256 256 pixels
codeacutes chacun sur 8 bitsPopulation de pixels pour chaque
niveaux de gris [0 255]
Pour chaque niveau de gris on compte le nombre de pixels s‟y reacutefeacuterant
Pour chaque niveau on trace le graphe en bacircton du nombre de pixels
(possibiliteacute de regrouper les niveaux proches en une seule classe)
Exemple drsquohistogramme pour une image en niveaux
de gris
0 50 100 150 200 250
0
200
400
600
800
1000
cameraman
Image laquo A raquo en
niveaux de gris
Matrice des valeurs de luminance
des pixels de lrsquoimage laquo A raquo
Histogramme
de lrsquoimage
laquo A raquo
2 2 2 2 2 2 2 2
2 0 0 0 0 0 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 0 0 0 0 0 2
2 2 2 2 2 2 2 2
Les niveaux 0 1 et 2 sont respectivement repreacutesenteacutes par 24 12 et 28 pixels
repreacutesentation de cette population de pixels sur lhistogramme
Limage laquo A raquo comporte 3 niveaux de gris diffeacuterents 0 1 et 2
Compter le nombre de pixels pour chaque niveau de gris agrave lrsquoaide de la
matrice des valeurs de luminance
Exemple simple de calcul drsquohistogramme pour une image
Image laquo A raquoValeurs de luminance de
laquo A raquo
Histogramme cumuleacute de
laquo A raquo
2 2 2 2 2 2 2 2
2 0 0 0 0 0 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 0 0 0 0 0 2
2 2 2 2 2 2 2 2
Calcul dun histogramme particulier faisant appel aux cumuls des niveaux de gris
Histogramme cumuleacute
Utile pour certains traitements dimage tels que lrsquoeacutegalisation
dhistogramme ( ameacutelioration de contraste)
Chaque bacircton cumule le nombre de pixels du niveaux de gris concerneacute et des
niveaux de gris infeacuterieurs les niveaux 0 1 2 sont donc repreacutesenteacutes
respectivement par 24 36 et 64 pixels
Histogramme cumuleacute drsquoune image L‟histogramme ne donne pas L‟histogramme ne donne pas
d‟informations sur la reacutepartitiond‟informations sur la reacutepartition
Trois images diffeacuterentes ayant un mecircme histogramme
15122010
19
Modification de lrsquohistogrammeModification de lrsquohistogramme
On appelle dynamique des niveaux de gris lintervalle [nminnmax] de
niveaux de gris dans lequel sont compris tous les pixels de limage
Le but de la modification dhistogramme modifier chaque niveau de
gris pour accroicirctre le contraste On modeacutelise cette transformation par
leacutequation Irsquo(ij) = g(I(ij)) ougrave g est la fonction de contraste
Chaque transformation sera deacutecrite par une courbe repreacutesentant la
relation entre un niveau de gris de limage de deacutepart (abscisse) et le
niveau qui lui correspond dans limage ameacutelioreacutee (ordonneacutee)
Sami Gazzah 2009 109
Masquage de zones Masquage de zones Extraction d‟une Extraction d‟une
fenecirctre d‟intensiteacutefenecirctre d‟intensiteacute ((slicingslicing intensiteacute)intensiteacute)
Cette transformation consiste agrave remplacer un intervalle de niveaux
de gris par du blanc (nmax) par du noir (nmin) ou par une valeur
intermeacutediaire du niveau de gris
Sami Gazzah 2009 110
Courbes repreacutesentant de gauche agrave droite lextraction dune fenecirctre dintensiteacute et le masquage blanc et noir de lintervalle [ab]
n-1
n-1
0 n-1
n-1
0a ab b n-1
n-1
0 a b
Sami Gazzah 2009 111
Exemples de Masquage de zonesInversion de la dynamiqueInversion de la dynamique
But produire le neacutegatif d‟une image
donneacutee
Sami Gazzah 2009 112
Sami Gazzah 2009 113
Etirement drsquohistogramme
Sami Gazzah 2009 114
Etirement drsquohistogramme
Augmentation du contraste par eacutetirement d‟histogramme
15122010
20
Sami Gazzah 2009 115
Eacutegalisation dhistogramme
But ameacutelioration du contraste
Distribution uniforme des niveaux de gris
Elle se deacutefinit agrave laide de lhistogramme cumuleacute de limage hc(n)
qui repreacutesente le nombre de pixels de limage dont le niveau de
gris est infeacuterieur ou eacutegal agrave n
Deacutefinition de la transformation deacutegalisation dhistogramme soit
I le niveau de gris dun pixel de deacutepart le niveau de gris de limage
darriveacutee I‟ sera
Sami Gazzah 2009 116
Sami Gazzah 2009 117
Effet de lrsquoeacutegalisation drsquohistogramme
Sami Gazzah 2009 118
Augmentation du contraste exemples et comparaison
Original Eacutetirement d‟histogramme Eacutegalisation
Le rehaussement du contraste est plus marqueacute avec l‟eacutegalisation
d‟histogramme autorisant la deacutetection de structures situeacutees dans
l‟ombre
Sami Gazzah 2009 119
Chapitre 5
SEGMENTATION DrsquoIMAGES
Sami Gazzah 2009 120
Une image est geacuteneacuteralement composeacutee d‟objets L‟analyse de cette
image neacutecessite l‟identification de ces objets
La segmentation dimages est lun des problegravemes phares du traitement
dimages Elle consiste agrave partitionner limages en un ensemble de
reacutegions connexes Linteacuterecirct de ces reacutegions est de pouvoir ecirctre
manipuleacutees ensuite via des traitements de haut niveau pour extraire
des caracteacuteristiques de forme de position de taille etc
Introduction
15122010
21
Sami Gazzah 2009 121 Sami Gazzah 2009 122
Meacutethodes statistiquesSegmentation par Histogrammes
Sami Gazzah 2009 123
Meacutethodes statistiquesSeacutelection Reacutecursive sur Histogrammes
Ohlander Price et Reddy (1978)
Sami Gazzah 2009 124
Segmentation par approche contourIntroduction
Le contour est deacutefini comme le lieu des points connexes qui
possegravedent une forte transition d‟intensiteacute lumineuse ou de texture Le
traitement qui vise agrave l‟obtenir est appeleacute extraction de contour on
parle aussi de deacutetection de contour
Le processus d‟extraction de contour peut ecirctre deacutecomposeacute en
plusieurs eacutetapes distinctes que nous allons les deacutetailler comme suit
- La mise en eacutevidence des contours
- L‟extraction des contours
- La fermeture des contours
Sami Gazzah 2009 125
Segmentation par approche contourLa mise en eacutevidence des contours
Elle s‟obtient par une diffeacuterentiation de l‟image et elle peut
s‟appliquer agrave des images binaires ou non le but de la deacutetection de
contours est d‟obtenir dans un premier temps une image binaire ougrave
chaque contour est d‟eacutepaisseur 1 et sans discontinuiteacute
rehausser le contour
suivre le contour
les points du contour correspondent au maximum en valeur absolue
de la deacuteriveacutee primaire de l‟image on obtient alors un gradient ou au
passage par zeacutero de la deacuteriveacutee seconde de l‟image on obtient alors
un laplacien
Sami Gazzah 2009 126
Segmentation par approche contourLa mise en eacutevidence des contours
La deacutetection de contours peut ecirctre reacutealiseacutee gracircce agrave des filtres
dont les coefficients ont eacuteteacute soigneusement choisis Nous
aborderons dans cette preacutesentation 3 filtres les filtres de
Prewitt Roberts et Sobel
Ce jeu de filtres (Prewitt Roberts et Sobel) est constitueacute d‟une
paire de filtres lineacuteaires qui deacutetectent le contours dans deux
directions orthogonales (vertical et horizontal)
15122010
22
Sami Gazzah 2009 127
Segmentation par approche contourFiltre de Perwitt
Les filtres de Perwitt sont les suivants
Filtre horizontal
Filtre vertical
111
000
111
h
101
101
101
v
Sami Gazzah 2009 128
Segmentation par approche contourFiltre de Perwitt
A partir d‟une image I on calcule Gh et Gv images
correspondant au filtrage de I par h et v Ces images
contiennent les contours horizontaux et verticaux
Si l‟on souhaite obtenir une image de contour unique ne tenant
pas compte de l‟orientation on calcule
Orientation du contour
Image binairehellipchoisir un seuil de deacutetection
22
vh GGG
)(vh
GGarctg
Sami Gazzah 2009 129
Segmentation par approche contourFiltre de Sobel
Les filtres de Sobel sont les suivants
Filtre horizontal
Filtre vertical
121
000
121
h
101
202
101
v
Sami Gazzah 2009 130
Segmentation par approche contourFiltre de Sobel
Sami Gazzah 2009 131
Segmentation par approche contourFiltre de Sobel
Sami Gazzah 2009 132
Segmentation par approche contourFiltre de Roberts
Les filtres de Roberts sont les suivants
Filtre diagonal
Filtre anti-diagonal
10
01h
01
10v
15122010
23
Sami Gazzah 2009 133
Segmentation par approche contourFiltre de Kirsch
Ce deacutetecteur utilise huit noyaux de convolution lui permettant de deacutetecter
des contours en fonction de huit directions agrave
15
335
305
335
1
d 15
333
305
355
2
d 15
333
303
555
3
d
15
333
503
553
4
d 15
533
503
533
5
d 15
555
503
333
6
d
15
555
303
333
7
d 15
355
305
333
8
d
Sami Gazzah 2009 134
Contours et Laplacien
Il s‟agit de calculer la deacuteriveacutee seconde de l‟image
Le Laplacien est tregraves sensible au bruit pour limiter l‟effet du bruit le
Laplacien est approximeacute par un masque qui effectue en mecircme temps
une opeacuteration de filtrage par une Gaussienne qui repreacutesente l‟eacutetape
de lissage de l‟image puis vient l‟application du laplacien Les masques
du Laplacien Gaussien sont preacutesenteacutes ci-apregraves
Segmentation par approche contour
Sami Gazzah 2009 135
Contours et Laplacien
Le contour est ensuite deacutetermineacute par la deacutetection des
passages par zeacutero du laplacien de l‟image
88888888888888
010
141
010
1h
111
101
111
2h
121
242
121
3h
Sami Gazzah 2009 136
Contours et Laplacien
Sami Gazzah 2009 137
Seuillage
Les filtres preacuteceacutedents nous fournissent des images des sauts ou
diffeacuterences d‟intensiteacute
Le seuillage permet d‟eacuteliminer des points en lesquels la diffeacuterence
d‟intensiteacute est tregraves faible
Le seuillage peut ecirctre pousser afin d‟obtenir une image binaire (TOR)
Le seuillage dans sa forme le plus simple ne tient pas compte de la
topologie et peut conserver un point bruiteacute isoleacute ou eacuteliminer une portion
de contour d‟intensiteacute faible
Sami Gazzah 2009 138
Seuillage par hysteacutereacutesis
c‟est une fonction agrave deux seuils un seuil bas et un seuil haut
Tout point dont le module de contour est au-dessus du seuil-haut est un
point de contour
Tout point dont le module de contour est au-dessous du seuil-bas n‟est
pas un point de contour
Les points de module entre le seuil-bas et le seuil-haut sont des points
de contour s‟il possegravede un point de contour dans leur voisinage
15122010
24
Sami Gazzah 2009 139
Seuillage par hysteacutereacutesis
seuil haut
Seuil bas
point sur contour
point hors contour
Seuillage par hysteacuterisais les points de lrsquoimage de contour de valeur
supeacuterieur au seuil haut sont des points de contours A partir de ces points de
contours le voisinage de la direction du contour sont examineacutes srsquoils sont de
valeur supeacuterieure au seuil bas ils sont ajouteacutes au points de contoursSami Gazzah 2009 140
Chapitre 6
Introduction aux
opeacuterateurs
morphomatheacutematique
Sami Gazzah 2009 141
1 Introduction
Les opeacuterateurs morphomatheacutematique (=Morphologie Matheacutematique)
permettent d‟ameacuteliorer les images de contours et apporter d‟autres
fonctionnaliteacutes
Ils ont eacuteteacute initialement appliqueacute sur des images NampB (Matheron et
Sarra1965) ensuite eacutetendus agrave des images en nivaux de gris par Doupherty
(1978)
Pour les appliquer sur des images couleurs on peut les appliquer
seacutepareacutement agrave chaque composante couleur et combiner les reacutesultats
Sami Gazzah 2009 142
Diffeacuterentes opeacuterations
eacuterosion dilatation
ouverture fermeture
Squelettisation
hellip
1 Introduction
Sami Gazzah 2009 143
1 Introduction
Dilatation
Ajouter un pixel sur les pourtours de la forme
boucher les trous
Erosion
Enlever un pixel sur les pourtours de la forme
les objets de taille infeacuterieure agrave celle de leacuteleacutement
structurant vont disparaicirctre
agrandit les trous
Sami Gazzah 2009144
1I Rappels sur les ensembles
L‟eacutegaliteacute
L‟inclusion
Lbdquointersection
L‟union
La diffeacuterence
La diffeacuterence symeacutetrique
La compleacutementariteacute E eacutetant un ensemble
servant de reacutefeacuterentielle
Dans ce qui suit les lettres majuscules deacutesignent des ensembles et les lettres
minuscules deacutesignent des eacuteleacutements appartenant aux ensembles
Sur les ensembles on deacutefinit les opeacuterations suivantes
15122010
25
Sami Gazzah 2009145
1I Rappels sur les ensembles
Sami Gazzah 2009146
1I Rappels sur les ensembles
Lois de De Morgan
Reacuteflexion La reacuteflexion d‟un ensemble A est deacutefinie par
Un ensemble symeacutetrique veacuterifiant ndashA=A C‟est le cas des cercles et des carreacute par
exemple
ccc YXYX )(
ccc YXYX )(
AaaA
A -A B -B
Sami Gazzah 2009147
1I Rappels sur les ensembles
Addition de Minkowski l‟addition d‟un eacuteleacutement x agrave un ensemble A par x est
deacutefinie par
Cette notion n‟est pas uniquement ensembliste elle nous oblige agrave deacutefinir un point
de reacutefeacuterence
On en deacuteduit l‟addition d‟un ensemble B agrave un ensemble A c‟est le reacutesultat de
l‟addition de chaque eacuteleacutement de B agrave A
L‟addition de Minkowski est commutative Elle est eacutegalement appeleacute dilatation
AaxaxAB
A
A
x
AxBxAaBaBbbABAC )()()(
le translateacute de X par b
Sami Gazzah 2009148
1I Rappels sur les ensembles
Eleacutement structurant les opeacuterations morphomatheacutematiques sont deacutefinis agrave
partir des ensemble B discrets appeleacute eacuteleacutement structurant Ces eacuteleacutement
permettent de deacutefinir le type de voisinage souhaiteacute
Addition de Minkowski d‟un ensemble A et d‟un ensemble B
BA
Sami Gazzah 2009149
1II Dilatation
Le reacutesultat de dilatation de lrsquoensemble A par lrsquoensemble B
est lrsquoaddition de Minkowski crsquoest lrsquoensemble des points tel
que lorsque B est centreacute sur un de ces points il y a une
intersection non vide entre A et B
Pour des images en niveaux de gris on obtient lrsquoimage
dilateacutee de la forme A en remplaccedilant tout pixel par le
maximum des intensiteacutes des voisins selon la forme B
Sami Gazzah 2009 150
1II Dilatation1 Image NampB
Soit k l‟eacuteleacutement structurant de taille (2k+1) x (2k+1) L‟algorithme de
dilatation est le suivant on parcourt tous les pixels de l‟image sauf les
bord de l‟image d‟eacutepaisseur k pour chaque pixel du fond rencontreacute s‟il
possegravede un voisin au sens de l‟eacuteleacutement structurant qui appartient agrave un
objet il prend le couleur de l‟objet si non il n‟est pas modifieacute
15122010
26
la dilatation (noteacutee ) drsquoune image monochrome laquo f raquo par un
eacuteleacutement structurant laquo B raquo est deacutefinie en terme de sous-graphe
bull f B = T [ Y ] = Supl l tel que (m n l) Y
bullY = U ( f ) U ( B )
En consideacuterant un eacuteleacutement structurant plan de valeur nulle sur son
support
( f B ) (P) = Max valeurs des pixels du voisinage du pixel P
1II Dilatation1 Image niveaux de gris
max
55 68 77 90 91 95 115 151 210
( f B ) (P) = 210
n
115 91 77
95 68 90
55 151 210
exemple
m
Image de reacutefeacuterence
Eacuteleacutement structurant
(8-connexiteacute)
liste ordonneacutee des valeurs du voisinage
- - -
-
-
-
-
-
1II Dilatation1 Image niveaux de gris
Exemples de filtrages morphologiques(eacuteleacutement structurant 33 complet)
Image de reacutefeacuterenceImage dilateacutee
morphologiquement
La dilatation en niveaux de gris accroicirct la luminance des
pixels entoureacutes de voisins plus lumineux
Observation
Sami Gazzah 2009154
VI Erosion
L‟eacuterosion est deacutefinie par
On deacutefinit la soustraction de Minkowski par
On a eacutequivalence entre eacuterosion et soustraction de Minkowski si B est
symeacutetrique (si B=-B)
D‟un point de vue binaire l‟eacuterode de A par B correspond agrave l‟ensemble
des points tels que si B est centre sur ce points B est entiegraverement inclus
dans A
AxBxBbbABAC )()(
)()( BbbABAC
Sami Gazzah 2009 155
VI Erosion1 Image NampB
on parcourt tous les pixels de l‟image sauf les bord de l‟image
d‟eacutepaisseur k pour chaque pixel du fond rencontreacute s‟il possegravede un
voisin au sens de l‟eacuteleacutement structurant qui appartient agrave un objet il
prend le couleur du fond si non il n‟est pas modifieacute
VI Eacuterosion drsquoune image en niveaux de gris
Lrsquoeacuterosion (noteacutee Ө ) drsquoune image monochrome laquo f raquo par un eacuteleacutement
structurant laquo B raquo est deacutefinie en terme de sous-graphe
bull f Ө B = T [ Y ] = Supl l tel que (m n l) Y
bullY = U ( f ) Ө U ( B )
Classiquement on considegravere un eacuteleacutement structurant plan de
valeur nulle sur son support
( f Ө B ) (P) = Min valeurs des pixels du voisinage du pixel P
15122010
27
VI Eacuterosion drsquoune image en niveaux de gris
min
68 90 91 95 151
( f Ө B ) (P) = 68
n
115 91 77
95 68 90
55 151 210
exemple
m
Image de reacutefeacuterence
ӨӨ
Eacuteleacutement structurant
(4-connexiteacute)
liste ordonneacutee des valeurs du voisinage
-
-
-
-
Exemples de filtrages morphologiques(eacuteleacutement structurant 33 complet)
Image eacuterodeacutee
Lrsquoeacuterosion en niveaux de gris reacuteduit la luminance des pixels
qui sont entoureacutes de voisins de moindre intensiteacute
Image de reacutefeacuterence
Observation
Sami Gazzah 2009 159
Eacuteleacutement structurant (a)
(4-connexiteacute)
-
-
-
-
Eacuteleacutement structurant (b)
(8-connexiteacute)
- - -
-
-
-
-
-
Exercice 1 Sur la mecircme image de deacutepart on reacutealise deux opeacuterations
de dilatations avec deux eacuteleacutements structurant diffeacuterents
Dilatation avec (a) Dilatation avec (b)
image de deacutepart
cas a L‟eacuteleacutement structurant est agrave 4-connexiteacute Chaque pixel
du support qui est eacutegal agrave la valeur 1 ou qui a l‟un de ses 4
voisins agrave la valeur 1 est mis agrave la valeur 1 apregraves filtrage
cas b L‟eacuteleacutement structurant est agrave 8-connexiteacute Chaque pixel
du support qui est eacutegal agrave la valeur 1 ou qui a l‟un de ses 8
voisins agrave la valeur 1 est mis agrave la valeur 1 apregraves filtrage
Dans les deux cas on observe qu‟une dilatation eacutelimine les
trous isoleacutes dans les objets et dilate le contour des objets en
tenant compte de l‟eacuteleacutement structurant
Sami Gazzah 2009 160
Exercice 1
Sami Gazzah 2009 161
Eacuteleacutement structurant (a)
(4-connexiteacute)
-
-
-
-
Eacuteleacutement structurant (b)
(8-connexiteacute)
- - -
-
-
-
-
-
Exercice 2 Sur la mecircme image de deacutepart on reacutealise deux opeacuterations
d‟eacuterosions avec deux eacuteleacutements structurant diffeacuterents
Erosion avec (a) Erosion avec (b)
image de deacutepart
cas a L‟eacuteleacutement structurant est agrave 4-connexiteacute (origine agrave 4 voisins)
Chaque pixel du support qui a la valeur 0 ou qui a l‟un de ses 4
voisins agrave la valeur 0 est mis agrave la valeur 0 apregraves filtrage
cas b L‟eacuteleacutement structurant est agrave 8-connexiteacute Chaque pixel du
support qui a la valeur 0 ou qui a l‟un de ses 8 voisins agrave la valeur 0
est mis agrave la valeur 0 apregraves filtrage
Dans les deux cas on observe qu‟une eacuterosion eacutelimine les pixels
isoleacutes sur le fond et eacuterode le contour des objets
Sami Gazzah 2009 162
Exercice 2
15122010
28
ConclusionsConclusions
Erosion
les objets relieacutes entre eux vont ecirctre seacutepareacutes
Une eacuterosion de taille n peut se reacutealiser en reacutepeacutetant une
eacuterosion n fois avec un eacuteleacutement structurant de taille 1 ou en
appliquant une seule eacuterosion avec un eacuteleacutement structurant
de taille n
Dilatation
des objets sont situeacutes agrave une distance moins grande que la taille
de leacuteleacutement structurant il vont fusionner
Sami Gazzah 2009 163 Sami Gazzah 2009 164
Sami Gazzah 2009 165
Elimine pixels isoleacutes sans inteacuterecirct
L‟ouverture (opening) consiste agrave une eacuterosion suivi d‟une dilatation
Les petites structures et deacutetail fins disparaissent et ne sont pas recreacuteeacutees
lors de la dilation Une opeacuteration d‟ouverture est ainsi inteacuteressante pour
eacuteliminer les petits morceaux de contours bruiteacutes dans une image de
contours
V Ouverture et fermeture1 Ouverture
BBABAC )(
Sami Gazzah 2009 166
V Ouverture et fermetureII Fermeture
La fermeture (closing) consiste agrave une dilatation suivi d‟une eacuterosion
Les structures proches fusionnent lors de la dilation mais seules les
fusions ponctuelles disparaissent agrave nouveau lors de l‟eacuterosion Une
opeacuteration de fermeture est ainsi inteacuteressante pour boucher les petits
trous
Sami Gazzah 2009 167 Sami Gazzah 2009 168
Exercice 3 Sur l‟image de deacutepart on reacutealise une opeacuteration de
fermeture binaire par l‟eacuteleacutement structurant 4-connexiteacute Conclusions
Eacuteleacutement structurant
(4-connexiteacute)
-
-
-
-Fermeture = dilatation puis eacuterosion
Image de deacutepart Image dilateacutee Image dilateacutee puis eacuterodeacutee
Combler les trous
Reacutetablir les jonctions
tout en preacuteservant la taille
15122010
29
Sami Gazzah 2009 169
Exercice 4 Sur l‟image de deacutepart on reacutealise une opeacuteration
d‟ouverture binaire par l‟eacuteleacutement structurant 4-connexiteacute Conclusions
Eacuteleacutement structurant
(4-connexiteacute)
-
-
-
-Ouverture = eacuterosion puis dilatation
Image de deacutepart Image eacuterodeacutee Image eacuterodeacutee puis dilateacutee
Supprimer les fausses alarmes
Seacuteparer les objets accoleacutes
tout en preacuteservant la tailleSami Gazzah 2009 170
Appliquer les filtres suivants sur limage donneacutee Quelles sont les valeurs choisies
aux bords de limage et quelles sont les modifications visuelles
a) filtre moyenneur M3acute3(19)
b) eacuterosion
c) dilatation
d) meacutedian
e) fermeture
f) ouverture
Exercice 5
Sami Gazzah 2009 171
IV Amincissement et Squelettisation
La squelette (skeleton) d‟une forme est l‟axe meacutedian L‟inteacuterecirct de cette
opeacuteration est dans
La reconnaissance de caractegraveres
Deacutetection des reacuteseaux routiers
La planification de trajectoirehellip
Une meacutethode couramment employeacutee est une amincissement reacutepeacuteteacute
jusqu‟agrave le convergence (n‟apporte aucune modification)
Sami Gazzah 2009 172
IV Amincissement et Squelettisation1 Opeacuteration Tout Ou Rien laquoHit or Missraquo
Cette transformation est deacutefinie par
leacuteleacutement structurant eacutetendu est centreacute sur chaque pixel de limage
comme pour les opeacuterations ensemblistes
la question poseacutee est est ce que le contenu de limage est identique au
contenu de leacuteleacutement structurant
si la reacuteponse est oui le pixel reacutesultant vaut 1 si non il vaut 0
Une application permet de deacutetecter des configurations locales
particuliegraveres dans une image
plusieurs masques peuvent ecirctre utiliseacutes indeacutependamment les images
reacutesultat eacutetant ensuite combineacutees par une opeacuteration ou
)()( cc BABABA
Bc-
est le compleacutementaire
local de B
Sami Gazzah 2009 173
IV Amincissement et Squelettisation1 Opeacuteration laquoHit or Missraquo
Exemple dopeacuteration Hit or Miss deacutetection des coinsSami Gazzah 2009 174
IV Amincissement et Squelettisation1 Amincissement (thinning)
bull La transformation TOR nous permet eacutegalement de deacutefinir
l‟amincissement
bullL‟amincissement consiste agrave soustraire limage reacutesultat dun hit or miss de
limage initiale
bull des amincissements successifs conduisent au squelettisation
)()( BAAAthin
15122010
30
Sami Gazzah 2009 175
IV Amincissement et Squelettisation1I Squelettisation
Appliquer des amincissements successifs puis s‟arrecircter lorsque l‟amincissement
n‟apporte plus de modification C‟est une eacuterosion particuliegravere ougrave les pixels sont
supprimeacutes agrave la condition quils ne provoquent pas la seacuteparation dune reacutegion en
deux
Sami Gazzah 2009 176
IV Amincissement et Squelettisation1I Squelettisation
Sami Gazzah 2009 177
Chapitre 7
Transformations
geacuteomeacutetriques 2D
Sami Gazzah 2009 178
I Introduction
On entend par transformation 2D l‟ensemble des transformations du
plan pouvant ecirctre appliqueacutees aux pixels de l‟image sans consideacuteration
de l‟intensiteacute
Par exemples
Reacuteduction agrandissement
Deacuteformation d‟image
Recalage d‟une photo scanneacutee
Recaler des images que l‟on veut comparer
Mosaiumlque d‟images
Sami Gazzah 2009 179
I Transformations euclidiennes
Elles preacuteservent les distances et les angles
Elles sont les compositions de translations et de rotations
1) Translation
Ougrave Tx et Ty sont les deacuteplacements en x et en y de la translation
y
x
Tyy
Txx
Sami Gazzah 2009 180
2) Rotation
15122010
31
Sami Gazzah 2009 181 Sami Gazzah 2009 182
3) Remarques (1)
Sami Gazzah 2009 183
3) Remarques (2)
Sami Gazzah 2009 184
II Homotheacuteties
Changement deacutechelle par rapport agrave lorigine (scaling zoom)
Ougrave Sx et Sy sont les facteurs dagrandissement ( gt1) ou de
reacuteduction ( lt1) en x et en y
ySy
xSx
y
x
Sami Gazzah 2009 185
II Homotheacuteties
Sami Gazzah 2009 186
II Homotheacuteties
15122010
32
Sami Gazzah 2009 187
III Reacuteflexions
Reacuteflexions par rapport aux axes (flip miroir)
Sami Gazzah 2009 188
IV Cisaillement
Cisaillement (glissement shearing) on eacutetire suivant un ou plusieurs axes
Sami Gazzah 2009 189
Transformations inverses
Sami Gazzah 2009 190
Repreacutesentation Matricielle
IV Autres (reacuteflexions miroirs et flips)
Sami Gazzah 2009 191
Interpolation Directe
Sami Gazzah 2009 192
oDifficile de distribuer le niveau de gris sur les pixels voisins
oOn n‟a pas la certitude que tous les pixels de l‟image
transformeacutee recevront une valeur =gt ldquotrousrdquo
15122010
33
Interpolation Inverse
Sami Gazzah 2009 193
o Interpolation de la valeur du pixel agrave partir des voisins plus
facile
oAucun ldquotrourdquo car on parcourt tous les pixels de l‟image
transformeacutee Sami Gazzah 2009 194
V Objet vectoriel - Objet bitmap
Objet vectoriel
Essentiellement on transforme
les sommets (ou points de
controcircle) et on retracehellip
Objet ldquobitmaprdquo
On doit calculer la nouvelle
position de chaque pixel De plus on
doit geacuteneacuteralement interpoler les
niveaux de gris (couleurs)hellip
Sami Gazzah 2009 195
IV Assignation des niveaux de gris
Neacutecessaire car la position d‟un pixel transformeacute n‟est pas entiegraverehellip
Plusieurs meacutethodes
Interpolation au plus proche voisin
Interpolation bilineacuteaire
Interpolation bicubique
Autres types d‟interpolation
Sami Gazzah 2009 196
IV Assignation des niveaux de gris
Linterpolation de limage cest ce qui arrive lorsquon redimensionne
une image numeacuterique ou quon la redimensionne avec une distorsion
quon change la perspective etc
Exemple 1
Image originale (sans interpolation)
Image agrandie et donc interpoleacutee
Perte de netteteacute due agrave linterpolation
Sami Gazzah 2009
197
IV Assignation des niveaux de gris
Exemple 2 recadrage dimage
Nous allons agrandir cette image agrave 180
Il va donc nous manquer des informations lagrave ougrave lon va creacuteer des
pixels pour agrandir limage
Reacutesultat sans interpolation le logiciel agrandit simplement les pixels
Reacutesultat avec interpolation le logiciel calcule une couleur intermeacutediaire
pour chaque nouveau pixel
Sami Gazzah 2009
198
IV Assignation des niveaux de gris
Image originale
Interpolation au plus
proche voisin
Interpolation
bilineacuteaireInterpolation
bicubique
15122010
34
Sami Gazzah 2009 199
IIV Interpolation au plus proche voisin
Cest lalgorithme le plus rapide agrave calculer
Prend en compte dans le calcul que le pixel le plus proche du point
agrave interpoler
Consiste tout simplement agrave agrandir chaque pixel
Exemple Interpolation du plus proche voisin par copie des pixels
Copie de chaque colonne et de chaque rang
23 20
25 28
23 23
23 23
20 20
20 20
25 25
25 25
28 28
28 28
Sami Gazzah 2009 200
IIV Interpolation bilineacuteaire
Fonction bilineacuteaire de 4 pixels voisins ( en 2 D )
i-1 i i+1
i-1 i-12 i i+12 i+1 i+32
yi=xiYi+12=(xi+xi+1)2
Problegraveme pour le dernier point
Extrapolation lineacuteaire de
2 xn-xn-1
Principe 1D
attribuer agrave chaque point cible une
combinaison lineacuteaire des quatre
points sources les plus proches par
la transformation inverse
Sami Gazzah 2009 201
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 202
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 203 Sami Gazzah 2009 204
IIV Interpolation bilineacuteaire
15122010
35
Sami Gazzah 2009 205
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 206
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 207
IIV Interpolation bilineacuteaire exemple
Sami Gazzah 2009 208
IIV Interpolation bicubique
Sami Gazzah 2009 209
exemple
Sami Gazzah 2009 210
Chapitre 8
Geacuteneacuteration de segments de
droite et de cercles en 2D
15122010
36
Sami Gazzah 2009 211
Infographie 2D besoin de dessiner des primitives de
base (segments cercles hellip)
Espace discreacutetiseacute (pixels) il faut trouver un moyen pour
afficher des segments ou des cercles
I Segments 2D cercles1 Introduction
Comment trouver les pixels agrave allumer pour approximer au mieux une
droite ou un cercle
Algorithme rapide et preacutecisSami Gazzah 2009 212
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=ax+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ya
Sami Gazzah 2009 213
Rappelhellip
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=mx+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ym
Sami Gazzah 2009 214
Exemple
Sami Gazzah 2009 215
Agrave partir des coordonneacutees des 2 extreacutemiteacutes d‟un segmenthellip
Un algorithme simple
Boucle de x1 agrave x2 dx=1
ALLUME (x Arrondir(y))
Avec x2gtx1
Arrondir(y) = Arrondir(ax+b)
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Sami Gazzah 2009 216
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Choix de lrsquoaxehellip
Peu efficace
bullagrave chaque iteacuteration 1 multiplication (ou division) + 1 addition
+ 1 arrondi
15122010
37
Sami Gazzah 2009 217
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
DDA (Digital Differential Analyzer)
y et m doivent ecirctre des reacuteelsSami Gazzah 2009 218
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Calcul en entier (donc plus rapide)
Baseacute sur le choix entre deux points discrets deacutependant de leur
distance respective avec le point reacuteel ideacuteal
On simplifie le problegraveme en traitant drsquoabord le traceacute drsquoun segment
dans le 1er octant m infeacuterieur agrave1 et positif (0ltmlt 1)
Facilement geacuteneacuteralisable aux autres octants
Sami Gazzah 2009 219
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Traceacute d‟un segment dans le premier octant mlt1
On part d‟un point (xi yi) allumeacute
Sami Gazzah 2009 220
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
On ne calcule pas reacuteellement les distances rArr on veacuterifie si la diffeacuterence
entre les deux distances est positive ou neacutegative
Le signe de la longueur (d1-d2) deacutetermine s‟il faut allumer le pixel L ou H
L
H
Sami Gazzah 2009 221
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Comme m=ΔyΔx on multiplie cette diffeacuterence par Δx pour eacuteviter la
division
Mais que vaut p1
Sami Gazzah 2009 222
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
15122010
38
Sami Gazzah 2009 223
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Pour eacuteviter de calculer cette diffeacuterence pour chaque point on cherche
une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
Sami Gazzah 2009 224
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009 225
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009
Exercice
Tracer le segment de droite
pi xi yi
2 0 0
-6 1 1
6 2 1
-2 3 2
10 4 2
2 5 3
-6 6 4
6 7 4
-2 8 5
10 9 5
2 10 6
6
10
y
x
Sami Gazzah 2009 227
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
Sami Gazzah 2009 228
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
hellip interchanger les points hellip
Si |Δx| lt | Δy| on interchange le rocircle de x et y
15122010
39
Sami Gazzah 2009 229
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (1)
Sami Gazzah 2009 230
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (2)
Sami Gazzah 2009 231
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (3)
Sami Gazzah 2009 232
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Toujours baseacute sur le choix entre deux
points discrets deacutependant de leur
distance respective avec le point reacuteel
On travaille dans le 2e octant agrave partir
de (0r) ainsi pour un point (xi yi) le
prochain point sera
(xi+1 yi) ou (xi+1 yi-1)
Sami Gazzah 2009 233
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On calcule le prochain y et les diffeacuterences respectives avec les points
discrets de la faccedilon suivante
Le signe de pi nous dira si nous devons choisir le point lateacuteral ou le diagonal
Sami Gazzah 2009 234
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Encore une fois pour eacuteviter de calculer cette diffeacuterence pour chaque point on
cherche une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
15122010
40
Sami Gazzah 2009 235
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On considegravere 2 cas
Valeur initiale
Sami Gazzah 2009 236
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Sami Gazzah 2009 237
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Exemple centre = (00) et r = 3
Sami Gazzah 2009 238
Livres
Diane Lingrand Introduction au Traitement d‟Images Paris Editions Vuibert 2e
eacutedition 2008
Steven k Feiner James D Foley John F Hughes Richard l Phillips Andries
Vanam Introduction agrave l‟infographie Paris Editions Vuibert 2000
William K Pratt Digital Image Processing Willy-Inter-sciences 4th edition 2007
Eacuteric Incerti Compression dimage ndash Algorithmes et standards Vuibert 2003
Gilles Burel Introduction au traitement dimages ndash Simulation sous Matlab
Hermegraves 2001
Sites web
Cours de C Rougier (U Montreacuteal)
httpwww-etudiroumontrealca~rougiercift2730courshtml (cf chapitre 3)
Page wikipeacutedia sur JPEG (en anglais plus complegravete que celle en franccedilais)
httpenwikipediaorgwikiJPEG
Cours de P Courtellemont (Campus numeacuterique Espdon)
httppersouniv-lrfrpcourtelespadonsite_web
Applet de deacutemo par C G Jennings
httpcgjenningscatoyboxhjpegindexhtml
Cours de D Marshall (U Cardiff)
httpwwwcscfacukDaveMultimediaPDF
Reacutefeacuterences
Sami Gazzah 2009 239
Chapitre 9
introduction au
traitement
dimages avec OpenGL
Sami Gazzah 2009 240
OpenGL est une librairie graphique Elle a eacuteteacute creacutee par Silicon
Graphics et beacuteneacuteficie sur ces machines de lacceacuteleacuteration mateacuterielle
Elle est constitueacute d‟environ 200 fonctions graphiques
OpenGL est une bibliothegraveque de fonctions
Les fonctions sont de bas niveaux
La version actuelle est l‟ laquo OpenGL 41 raquo (deacutecembre 2010)
Principale caracteacuteristique indeacutependant du mateacuteriel et du systegraveme
d‟exploitation
Une impleacutementation libre de droits dOpenGL tregraves performante a eacuteteacute
eacutecrite par Brian Paul httpwwwmesa3dorg Et tout son code source
est accessible
Preacutesentation geacuteneacuterale
15122010
41
Sami Gazzah 2009 241
OpenGL propose des fonctions de bas niveaux
Primitives geacuteomeacutetriques points segments polygones
Les fonctions de haut niveaux sont deacuteveloppeacutees par l‟utilisateur ou
importeacutees par la librairie en amont d‟OpenGL
Primitives geacuteomeacutetriques complexes Sphegravere splines etc
Toutes les commandes et fonctions utilisent le preacutefixe gl
Exemple glColor2f()
Sami Gazzah 2009 242
Les Bibliothegraveques co-existant avec OpenGL
GLU OpenGL Utility Library contient les routines de bas niveau pour
geacuterer les matrices de transformation et de projection la facettisation des
polygones et le rendu de surface Les bibliothegraveques dextension du
systegraveme de fenecirctres permettent lutilisation du rendu OpenGL Il sagit de
GLX pour X Windows (fonctions ayant pour preacutefixe glX) et de WGL
pour Microsoft Windows (fonctions ayant pour preacutefixe wgl)
GLUT OpenGL Utility Toolkit est une boite agrave outils indeacutependante du
systegraveme de fenecirctrage eacutecrite par Mark
Kilgard pour simplifier la tacircche dutiliser des systegravemes diffeacuterents (fonctions
ayant pour preacutefixe glut)
Sami Gazzah 2009 243
Les primitives geacuteomeacutetriques d rsquoOpenGL
Les primitives sont deacutecrites par un bloc d‟instructions deacutelimiteacute par glBegin et glEnd
Ce bloc contient geacuteneacuteralement une liste de vertex Exemple
glBegin(GL_LINE_LOOP)
glVertex2f(-05 -05)
glVertex2f(05 -05)
glVertex2f(05 05)
glVertex2f(-05 05)
glEnd()
D‟autres attributs peuvent ecirctre speacutecifieacutes en chaque sommet
couleur normale coordonneacutee de texture etcSami Gazzah 2009 244
OpenGL est une machine agrave eacutetats
En modifiant les variables d‟eacutetats on peut changer le style de rendu
Sami Gazzah 2009 245
Exemple Honda Hippo (3dRendercom)
Placage de textures
bullL‟apparence et le toucher ( feel ) d‟une surface
bullUne image utiliseacutee pour deacutefinir les caracteacuteristiques d‟une surface
bullUne image multi-dimensionnelle qui est plaqueacutee sur un espace multi-
dimensionnel
Sami Gazzah 2009 246
15122010
42
Sami Gazzah 2009 247
Reacutefeacuterences openGL
Sami Gazzah 2009 248
Chapitre 10
introduction au
traitement
dimages avec OpenCV
Sami Gazzah 2009 249
Preacutesentation geacuteneacuterale
Quest-ce
Open Source Computer Vision Library
Bibliothegraveque open source de traitement des images numeacuteriques
Projet initieacute par Intel (en 1999)
Teacuteleacutechargeable sur httpsourceforgenetprojectsopencvlibrary
Fortement orienteacutee temps reacuteel
eacutecrite en C et C++
optimiseacutee pour les processeurs multi-cœurs
Multi-plateformes disponible pour Linux Windows et Mac OS X
Que contient-elle
Des fonctionnaliteacutes (structures et routines gt350 algos) de base et
avanceacutees pour bacirctir rapidement des applications autour de la vision par
ordinateur
Exemples dutilisation traitements de bas niveau (filtrage ) deacutetection
de visages reconnaissance et suivi dobjets en mouvement Sami Gazzah 2009 250
Fonctionnaliteacutes
Lectureeacutecriture dimages statiques et de seacutequences videacuteo
APIs de bas et moyen niveaux
Traitement des images binaires
Manipulations dimage (eacutechantillonnage (sampling) reacutegion dinteacuterecirct (ROI)
redimensionnement (resizing) rotation deacuteformation (warping) )
Deacutetection de contours de lignes de coins (edge detection)
Traitements multi-eacutechelles (multiscale processing)
Transformeacutees (Fourier cosinus discregravete )
Modules de haut niveau
Deacutetection reconnaissance et suivi (tracking) de visages
Flot optique (estimation du mouvement) (optical flow)
Calibrage (calibration) de la cameacutera
Mise en correspondance steacutereacuteoscopique (stereo matching)
IA et apprentissage par ordinateur (machine learning)
3D mise en correspondance (registration)
Sami Gazzah 2009 251
Modules principaux
CxCore
Types de base pour manip dimages (ex struct image point isin cxtypesh)
Structures dynamiques (listes files graphes arbres) et persistantes (LE)
Manipulations de matrices meacutethodes de lalgegravebre lineacuteaire et statistiques
Dessin en surimpression (overlay) (ex eacutetiquetage)
Cv
Traitement dimage calibrage cameacutera
Geacuteomeacutetrie algorithmique (triangulation )
Cvaux
Reconnaissance de visage
Code expeacuterimental et obsolegravete
Autres (dans otherlibs)
HighGUI ES videacuteos curseurs fenecirctrage
ML classification regroupement (clustering)Sami Gazzah 2009 252
OpenCV premiers programmesBibliothegraveque OpenCV
15122010
43
Sami Gazzah 2009 253
Livre
G Bradski amp A Kaehler laquo Learning OpenCV raquo OReilly Press (2008)
codes sources httpexamplesoreillycom9780596516130
Ressources en ligne
Reacutefeacuterence complegravete httpopencvwillowgaragecomdocumentation
Wiki httpopencvwillowgaragecomwikiFullOpenCVWiki
bullPreacutesentation teacuteleacutechargement installation
bullavec CodeBlocks httpopencvwillowgaragecomwikiCodeBlocks
bullDeacutebuter avec OpenCV FAQ
Tutoriels
httpnchcdlsourceforgenetsourceforgeopencvlibraryippocvpdf
httpdaslmemdrexeledu~noahKuntzopenCVTut1html agrave Tut11html
httpwwwcognoticscomopencvservo_2007_series
Tutoriel sur la vision utilisant OpenCV (en franccedilais)
httpwwwsiteduzerocomtutoriel-3-8631-vision-par-ordinateurhtml
Reacutefeacuterences openCV
15122010
8
Sami Gazzah 2009 43
4 Formats drsquoimages4 2 Stockage des images
421 format PBM (Portable Bit Map)
Nombre de colonnes=10
Nom
bre
de c
olon
nes
=10
P1 signifie qursquoil srsquoagit drsquoun format PBM et que les donneacutees sont stockeacutees en ASCII signifie qursquoil srsquoagit drsquoune ligne de commentaire
Sami Gazzah 200944
4 Formats drsquoimages4 2 Stockage des images
421 format PGM(Portable Gray Map)
P2 signifie qursquoil srsquoagit drsquoun format PGM et que les donneacutees sont stockeacutees en ASCII
Sami Gazzah 200945
4 Formats drsquoimages4 2 Stockage des images
421 format PPM(Portable Pixel Map)
P3 signifie qursquoil srsquoagit drsquoun format PPM et que les donneacutees sont stockeacutees en ASCII Les valeurs des pixels sont donneacutees pixel par pixel
Sami Gazzah 2009 46
Sami Gazzah 2009 47
5 Eleacutements de Colorimeacutetrie
Un prisme seacutepare la lumiegravere blanche en ses couleurs
Sami Gazzah 2009 48
6 Les systegravemes de repreacutesentation des couleurs
Kunt a deacutemontreacute qu‟en combinant trois longueurs drsquoondes particuliegraveres il est
possible de syntheacutetiser presque toutes les couleurs existantes Les trois
couleurs de base sont dites laquo couleurs primaires raquo Une couleur peut donc ecirctre
repreacutesenteacutee dans un espace agrave trois dimensions Il en existe plusieurs
- Systegraveme RGB (Red Green Blue)
- Systegraveme CMY (Cyan Magenta Yellow)
- Systegraveme XYZ
- Systegraveme HLS (Hue Magenta Saturation)
Image couleur et sa repreacutesentation matricielle
15122010
9
Sami Gazzah 2009 49
Images couleurs (24 bits)
Lrsquoespace couleur Rouge Vert Bleu (RGB)
Sami Gazzah 2009 50
Valeur R Valeur V Valeur BCouleur
correspondanteCommentaires
0 0 0 noir
0 0 255 bleu
0 255 0 vert
255 0 0 rouge
128 128 128
couleur
intermeacutediaire
correspondant agrave
un gris
255 255 255 blanc
Sami Gazzah ISITCom 200951
Exemple de deacutecomposition drsquoune image couleur en 3 plans de couleur
(a) image originale (b)canal rouge (c)canal vert (d)canal bleu
(b)(a)
(c) (d)
Sami Gazzah 2009 52
Lrsquoespace couleur Cyan Magenta et Jaune (GMJ)
bull les couleurs primaires CMJ sont ici les compleacutementaires des RVB
bull utiliseacute par certaines imprimantes couleurs agrave jet dencre
bull les diffeacuterentes couleurs sont obtenues par soustraction du blanc
Sami Gazzah 2009 53
Le principe de lespace HSV est de caracteacuteriser les couleurs de faccedilon plus
intuitive conformeacutement agrave la perception naturelle des couleurs en termes de
1 teinte (Hue) intuitivement cest le nom quon utilisera pour deacutesigner la couleur
vert mauve etc Ideacutealement associeacute agrave une longueur donde
2 saturation (Saturation)cest le taux de pureteacute de la couleur qui doit varier
entre la pureteacute maximale (couleur eacuteclatante) et lachromatisme (niveau de gris)
3 valeur (Value) cest la mesure de lintensiteacute lumineuse de la couleur qui doit
varier entre le noir absolu et le blanc
Images HSV
Composante valeur
Composante saturation
Composante teinte
Sami Gazzah 2009 54
Pour passer de la repreacutesentation initiale (RGB) agrave cette repreacutesentation on opegravere
de la maniegravere suivante
15122010
10
Sami Gazzah 2009 55
Quelques caracteacuteristiques drsquoimages numeacuteriques
La reacutesolution dune image = nombre de pixels par uniteacute de longueur de la
structure agrave numeacuteriser (dpi (dots per inches) ou ppp (pixel par pouce)
La reacutesolution du format de limage =nombre de pixels qui compose limage en
hauteur et en largeur (512 pixels par 512 pixels par exemple)
La taille des donneacutees pour une image (en bits) = Nlignes x Ncolonnes x B
La profondeur de bits = nombre de bits neacutecessaire pour repreacutesenter un pixel dans
l‟image numeacuterique
La dynamique dune image= leacutetendu de la gamme de couleurs 2nbre de bitspixels ndash 1
Le poids d‟une image numeacuterique est l‟espace meacutemoire qu‟elle occupe sur un
support de stockage numeacuterique = nombre de bits par pixel x nombre total de pixels
Sami Gazzah 2009 56
bullune image 200200 pixels en niveaux du gris fait un poids de
200200=40000 octets
bullimage de 200200 pixels en vraies couleurs (16 millions) (24 bits)
2002003= 120000 octets (117 Ko)
bull image de 200200 pixels en fausses couleurs (256 couleurs) (8 bits)
2002001= 40000 octets (39 Ko)
Taille des limages en pixels
Sami Gazzah 2009 57
Exercice drsquoapplication
Soit une image carreacutee au format PPM(ASCII) de 160 Ko
Quelles sont approximativement les dimensions de cette image si
on neacuteglige la taille de lrsquoen-tecircte
Quelle serait la taille du fichier si cette image eacutetait stockeacutee en
binaire
Remarques Le format PPM (Portable Pixel Map) concerne les
images couleurs Chaque pixel a pour valeur un triplet (RGB) et
chaque couleur est exprimeacutee par un caractegravere et un espace
Sami Gazzah 2009 58
Formats de fichiers dimages
Une image est un tableau de pixels
Une image est stockeacutee soit dans un fichier sous la forme de texte soit dans la
meacutemoire de lordinateur sous la forme dun vecteur
Sami Gazzah 2009 59
Les opeacuterations de bases concernant une image sont la lecture (fichier vers
meacutemoire) et leacutecriture (meacutemoire vers fichier) Les informations
neacutecessaires agrave la manipulation dune image sont
nombre de lignes
nombre de colonnes
format des pixels (bit niveaux de gris niveaux de couleurs)
compression eacuteventuelle
Il existe une multitude de formats de fichiers permettant de stocker ces
informations ainsi que le tableau des valeurs En particulier
Les formats simples fichiers textes comportant un entecircte contenant
les dimensions de limage et le format des pixels Exemples les formats
PNM (portable anymap) PBM (portable bitmap) PGM (prtrable
grayscalemap) PPM (portable pixmap) Les fichiers correspondants sont
constitueacutes des eacuteleacutements suivants Sami Gazzah 2009 60
1 Un nombre magique pour identifier les type du fichier P1 ou P4
pour PBM P2 ou P5 pour PGM et P3 ou P6 pour PPM
2 Un caractegravere despacement (blanc TABs Cs LFs)
3 La largeur de limage (valeur deacutecimale codeacutee en ASCII) suivie dun
caractegravere despacement la longueur de limage (valeur deacutecimale
ASCII) suivie dun caractegravere despacement
4 Uniquement pour PGM et PPM lintensiteacute maximum (valeur deacutecimale
comprise entre 0 et 255 codeacutee en ASCII) suivie dun caractegravere
despacement
5 Largeur x hauteur nombres Ces nombres sont soit des valeurs
deacutecimales codeacutees en ASCII et seacutepareacutees par des espacements dans le
cas des formats P1 P2 P3 soit directement les valeurs binaires sur 1
ou 2 octets dans le cas des formats P4 P5 P6 Dans ce dernier cas il
ny pas de caractegraveres despacement entre les valeurs
15122010
11
Sami Gazzah 2009 61
Chapitre 2
Transformations sur les images
Sami Gazzah 2009 62
Les transformations peuvent ecirctre classeacutees de la maniegravere suivante
bullTransformations ponctuelles
bullTransformations de voisinage
bullTransformations spectrales
bullTransformations morphologiques
Au cours du processus de traitement et drsquoanalyse lrsquoimage subit une seacuterie
de transformations
Introduction
Image sourceTransformationTransformation
TTImage transformeacutee
Sami Gazzah 2009 63
1 Transformations ponctuelles
A partir dune image source la nouvelle valeur du pixel deacutepend uniquement de
son ancienne valeur
Exemple seuillage ajustement luminositeacutecontraste opeacuterations algeacutebriques
opeacuterations logiques et arithmeacutetiques manip dhistogramme
1 Opeacuterations logiques et arithmeacutetiques
Les images opeacuterandes
doivent ecirctre de mecircme taille
peuvent ecirctre des images constantes
Exemples
addition soustraction
ET logique OU logique
Problegravemes
deacutebordements de [0 255]
normalisation Sami Gazzah 2009 64
Images en niveaux de gris ETOU logique bit agrave bit entre les 8 bits
codant les valeurs des pixels
Images binaires ETOU logique entre les pixels
Sami Gazzah 2009 65
Les opeacuterations logiques
bullET I(xy)=I1(xy) ET I2(xy) intersection logique
bullOU I(xy) = I1(xy) OU I2(xy) union logique
bullNOT I(xy) = NOT(I1(xy)
opeacuterations arithmeacutetiques
bullAddition I(xy)=I1(xy)+I2(xy)
bullSoustraction I(xy)=I1(xy)-I2(xy)
bullMultiplication
bullDivision par une constantehellip
Sami Gazzah 2009 66
Les opeacuterations logiques
15122010
12
Sami Gazzah 2009 67
Application
Masquage
Sami Gazzah 2009 68
Les Opeacuterations arithmeacutetiques
Addition dimages
Principe I(xy)=I1(xy)+I2(xy) pour tout pixel de coordonneacutees (xy)
Strateacutegies si deacutepassement de capaciteacute
bullDeacutecalage des valeurs dans [0 127] avant addition (perte du bit de poids faible)
bullSaturation I(xy) = min ( I1(xy)+I2(xy) 255)
bullPreacute-calcul des valeurs finales (theacuteoriques) minimale et maximale
puis recadrage de la dynamique
Utilisations principales
Augmentation de la luminance dune image (par addition dune constante ou
dune image avec elle-mecircme) et diminution du bruit dans une seacuterie dimages
))()((max
))()((min
21)(
max
21)(
min
yxIyxIi
yxIyxIi
Iyx
Iyx
))()((255
)( 21
minmax
yxIyxIii
yxI
Sami Gazzah 2009 69
Les Opeacuterations arithmeacutetiques
Soustraction dimages
Principe I(xy)=I1(xy)-I2(xy) pour tout pixel de coordonneacutees (xy)
Strateacutegies si deacutepassement de capaciteacute
bullSaturation I(xy) = max ( I1(xy) - I2(xy) 0)
bullDiffeacuterence absolue I(xy) = | I1(xy) - I2(xy) |
Utilisations principales
bullDiminution de la luminance dune image
bullDeacutetection de changements entre images
bulldeacutefauts (par comparaison avec une image de reacutefeacuterence)
bullmouvements (par comparaison avec une autre image de la seacutequence)
Sami Gazzah 2009 70
Rim Romdhaneet al AVSS10 rd the 7th IEEE International Conference on
Advanced Video and Signal-Based Surveillance Boston USA 2010
Sami Gazzah 2009 71
Addition et soustraction de deux images
Sami Gazzah 2009 72
Si on dispose de limage en niveau de gris et de limage binaire suivante
15122010
13
Sami Gazzah 2009 73
2 Identiteacute neacutegatif et Seuillage
Sami Gazzah 200974
2 Les opeacuterations geacuteomeacutetriques
Opeacuterations geacuteomeacutetriques sur une image en niveaux de gris
Sami Gazzah 2009 75
Une transformation de voisinage est telle que la nouvelle valeur
drsquoun pixel tient compte des pixels appartenant au voisinage du
pixel consideacutereacute
Le voisinage peut avoir une taille plus ou moins grande (3x3 5x5
7x7hellip) et il peut avoir une forme reacuteguliegravere (carreacute rectangle
hexagonehellip) ou bien une forme quelconque
3 Transformations de voisinage
Sami Gazzah 2009 76
Exemple de transformation de voisinage le
produit de convolution
dans le cas continu le produit de convolution de f par g est
deacutefini par
Dans le cas discret il est geacuteneacuteralement deacutefini sur un voisinage il
est donneacute par
Sami Gazzah 2009 77
Si on applique ceci agrave une image I1 de dimensions
finies et agrave moyenne de convolution K (K
Kernel=noyau) de dimension 3 x 3 les pixels de
lrsquoimage I1 obtenue par convolution de I2 par K ont
pour valeur
Sami Gazzah 2009 78
Nouvelle
image
Nouvelle valeur
de pixel21
1 11
1 111 11
Noyau
Nouvelle valeur de pixel =
9
22 2719
9 19
51 21 14Image
originale
111
111
111
9
1h
15122010
14
Sami Gazzah 2009 79
4-Transformations spectrales (1)
Transformeacutee de Fourier 2D (TF 2D)
- La TF est
Dans la cas 1D (Rappel)
Dans la cas 2D
- La TF inverse
- La TF est
- La TF inverse
Sami Gazzah 2009 80
4-Transformations spectrales (2)
Exemple des transformations spectrales transformeacutee de Fourier
Soit f(xy) deacutefinie par une matrice d‟eacutechantillons reacuteguliegraverement espaceacutes
N le nombre de lignes M nombre de colonnes
- La TF est deacutefinie par
- La TF inverse est deacutefinie par
Sami Gazzah 2009 81 Sami Gazzah 2009 82
Compression RLE (Run Length Encoding)
2 2 2 2 128 128 128 120 120 80 96 96 94 94 94 95 97 97 97 97
4 2 3 128 2 120 1 80 2 96 3 94 1 95 4 97
Utile quand il y a des reacutepeacutetitions dans la chaicircne agrave encoder
Exemple Formats BMP TIFF PCX (Paintbrush)
Sami Gazzah 2009 83
Chapitre 3
RESTAURATION DrsquoIMAGES
Sami Gazzah 2009 84
L‟acquisition s‟accompagne toujours d‟une distorsiondeacutegradation
Il existe diffeacuterentes sources de deacutegradation (bruit) d‟une image
bruit lieacute au contexte de lacquisition Bougeacute mauvaises conditions
d‟eacuteclairagehellip
bruit lieacute au capteur Capteur de mauvaises qualiteacutes mauvaise mise
au point etchellip
bruit lieacute agrave leacutechantillonnage Une mauvaise freacutequence
d‟eacutechantillonnage peut introduire dans l‟image des points blancs ou
noirs connus souvent sous l‟appellation laquo sel et poivre raquo
bruit lieacute agrave la nature de la scegravene Preacutesence de fumeacutee de nuage
etchellip
Il faut corriger l‟image par un proceacutedeacute algorithmique
15122010
15
Sami Gazzah 2009 85
Restauration des Images monochromatiques et des images
couleurs
Au deacutebut de l‟imagerie numeacuterique les algorithmes deacuteveloppeacutes eacutetaient
destineacutes aux images en niveaux de gris Avec les progregraves techniques et le
deacuteveloppement des outils informatiques le traitement des images
couleurs est devenu possible
bull Approche marginale
Sami Gazzah 2009 86
Approche vectorielle
Dans lapproche vectorielle le vecteur couleur est consideacutereacute globalement
et le traitement doit ecirctre alors reacuteellement vectoriel Il ny a pas dans ce cas
une eacutetape de fusion ou de seacuteparation explicite entre les diffeacuterentes
composantes couleur de lrsquoimage Dans ce cas la correacutelation entre les
diffeacuterentes composantes peut ecirctre prise en compte ce qui aboutit
geacuteneacuteralement agrave des reacutesultats meilleurs que ceux du traitement marginal
Sami Gazzah 2009 87
Rappel
Sami Gazzah 2009 88
Sami Gazzah 2009 89
Nouvelle
image
Nouvelle valeur
de pixel21
1 11
1 111 11
Noyau
Nouvelle valeur de pixel =
9
22 2719
9 19
51 21 14Image
originale
Sami Gazzah 2009 90
15122010
16
Sami Gazzah 2009 91
Lissage spatial tout en remplacent la valeur du pixel courant par la moyenne de
tous les pixels inclus dans un voisinage centreacute en ce point
Sami Gazzah 2009 92
Sami Gazzah 2009 93 Sami Gazzah 2009 94
En traitement d‟image les tailles des fenecirctres utiliseacutees pour le
filtrage meacutedian sont geacuteneacuteralement impaires 3 3 5 5 7 7
exemple
fenecirctre de 5 pixels en croix
Pour les fenecirctres de taille paire ( 2 K valeurs ) apregraves
ordonnancement croissant des valeurs prendre la moyenne des 2
valeurs centrales
valeur de sortie( Kiegraveme valeur ordonneacutee + (K+1)iegraveme valeur ordonneacutee )
2=
Sami Gazzah 2009 95 Sami Gazzah 2009 96
15122010
17
Sami Gazzah 2009 97
Image laquo Piegraveces raquo de reacutefeacuterence bruiteacutee ( bruit de type impulsionnel ) puis filtreacutee
avec un filtre moyenneur (33) et un filtre meacutedian (33)
Image de reacutefeacuterence Image bruiteacutee
Bruit
Le filtrage meacutedian est plus adapteacute que le filtrage
lineacuteaire pour reacuteduire le bruit impulsionnel
Observation
Comparaison filtre meacutedian et filtre moyenneur
Sami Gazzah 2009 99 Sami Gazzah 2009 100
Sami Gazzah 2009 101 Sami Gazzah 2009 102
Chapitre 4
REHAUSSEMENT DrsquoIMAGES
15122010
18
Sami Gazzah 2009 103
Introduction
Le preacutetraitement d‟image est l‟ensemble des opeacuterations effectueacutees sur
une image soit pour l‟ameacuteliorer soit pour la restaurer
Le preacutetraitement d‟une image vise soit agrave renforcer la ressemblance des
pixels soit au contraire agrave accentuer les diffeacuterences de pixels d‟une mecircme
reacutegion
Accroitre la seacuteparabiliteacute des reacutegions composant une scegravene revient agrave
augmenter les contrastes vu
On applique le rehaussement des images afin de faciliter l‟interpreacutetation
visuelle et la compreacutehension des images
Pour comprendre ce type de rehaussement il faut comprendre le concept
d‟histogrammeSami Gazzah 2009 104
Deacutefinition de lrsquohistogramme drsquoune image
L‟histogramme est un outil qui permet de comptabiliser le nombre
d‟occurrences de chacune des valeurs dans une image en niveaux de gris
Dans une image couleur il est neacutecessaire d‟utiliser plusieurs
histogramme sur chacune des composantes du systegraveme de repreacutesentation
de la couleur
Soit h l‟histogramme de l‟image I de dimension (w x h) h[i] repreacutesente
le nombre d‟occurrence de chaque niveau de quantification i La probabiliteacute
estimeacutee du niveau i dans une image I est
hw
ihip
][)(
Image de 256 256 pixels
codeacutes chacun sur 8 bitsPopulation de pixels pour chaque
niveaux de gris [0 255]
Pour chaque niveau de gris on compte le nombre de pixels s‟y reacutefeacuterant
Pour chaque niveau on trace le graphe en bacircton du nombre de pixels
(possibiliteacute de regrouper les niveaux proches en une seule classe)
Exemple drsquohistogramme pour une image en niveaux
de gris
0 50 100 150 200 250
0
200
400
600
800
1000
cameraman
Image laquo A raquo en
niveaux de gris
Matrice des valeurs de luminance
des pixels de lrsquoimage laquo A raquo
Histogramme
de lrsquoimage
laquo A raquo
2 2 2 2 2 2 2 2
2 0 0 0 0 0 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 0 0 0 0 0 2
2 2 2 2 2 2 2 2
Les niveaux 0 1 et 2 sont respectivement repreacutesenteacutes par 24 12 et 28 pixels
repreacutesentation de cette population de pixels sur lhistogramme
Limage laquo A raquo comporte 3 niveaux de gris diffeacuterents 0 1 et 2
Compter le nombre de pixels pour chaque niveau de gris agrave lrsquoaide de la
matrice des valeurs de luminance
Exemple simple de calcul drsquohistogramme pour une image
Image laquo A raquoValeurs de luminance de
laquo A raquo
Histogramme cumuleacute de
laquo A raquo
2 2 2 2 2 2 2 2
2 0 0 0 0 0 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 0 0 0 0 0 2
2 2 2 2 2 2 2 2
Calcul dun histogramme particulier faisant appel aux cumuls des niveaux de gris
Histogramme cumuleacute
Utile pour certains traitements dimage tels que lrsquoeacutegalisation
dhistogramme ( ameacutelioration de contraste)
Chaque bacircton cumule le nombre de pixels du niveaux de gris concerneacute et des
niveaux de gris infeacuterieurs les niveaux 0 1 2 sont donc repreacutesenteacutes
respectivement par 24 36 et 64 pixels
Histogramme cumuleacute drsquoune image L‟histogramme ne donne pas L‟histogramme ne donne pas
d‟informations sur la reacutepartitiond‟informations sur la reacutepartition
Trois images diffeacuterentes ayant un mecircme histogramme
15122010
19
Modification de lrsquohistogrammeModification de lrsquohistogramme
On appelle dynamique des niveaux de gris lintervalle [nminnmax] de
niveaux de gris dans lequel sont compris tous les pixels de limage
Le but de la modification dhistogramme modifier chaque niveau de
gris pour accroicirctre le contraste On modeacutelise cette transformation par
leacutequation Irsquo(ij) = g(I(ij)) ougrave g est la fonction de contraste
Chaque transformation sera deacutecrite par une courbe repreacutesentant la
relation entre un niveau de gris de limage de deacutepart (abscisse) et le
niveau qui lui correspond dans limage ameacutelioreacutee (ordonneacutee)
Sami Gazzah 2009 109
Masquage de zones Masquage de zones Extraction d‟une Extraction d‟une
fenecirctre d‟intensiteacutefenecirctre d‟intensiteacute ((slicingslicing intensiteacute)intensiteacute)
Cette transformation consiste agrave remplacer un intervalle de niveaux
de gris par du blanc (nmax) par du noir (nmin) ou par une valeur
intermeacutediaire du niveau de gris
Sami Gazzah 2009 110
Courbes repreacutesentant de gauche agrave droite lextraction dune fenecirctre dintensiteacute et le masquage blanc et noir de lintervalle [ab]
n-1
n-1
0 n-1
n-1
0a ab b n-1
n-1
0 a b
Sami Gazzah 2009 111
Exemples de Masquage de zonesInversion de la dynamiqueInversion de la dynamique
But produire le neacutegatif d‟une image
donneacutee
Sami Gazzah 2009 112
Sami Gazzah 2009 113
Etirement drsquohistogramme
Sami Gazzah 2009 114
Etirement drsquohistogramme
Augmentation du contraste par eacutetirement d‟histogramme
15122010
20
Sami Gazzah 2009 115
Eacutegalisation dhistogramme
But ameacutelioration du contraste
Distribution uniforme des niveaux de gris
Elle se deacutefinit agrave laide de lhistogramme cumuleacute de limage hc(n)
qui repreacutesente le nombre de pixels de limage dont le niveau de
gris est infeacuterieur ou eacutegal agrave n
Deacutefinition de la transformation deacutegalisation dhistogramme soit
I le niveau de gris dun pixel de deacutepart le niveau de gris de limage
darriveacutee I‟ sera
Sami Gazzah 2009 116
Sami Gazzah 2009 117
Effet de lrsquoeacutegalisation drsquohistogramme
Sami Gazzah 2009 118
Augmentation du contraste exemples et comparaison
Original Eacutetirement d‟histogramme Eacutegalisation
Le rehaussement du contraste est plus marqueacute avec l‟eacutegalisation
d‟histogramme autorisant la deacutetection de structures situeacutees dans
l‟ombre
Sami Gazzah 2009 119
Chapitre 5
SEGMENTATION DrsquoIMAGES
Sami Gazzah 2009 120
Une image est geacuteneacuteralement composeacutee d‟objets L‟analyse de cette
image neacutecessite l‟identification de ces objets
La segmentation dimages est lun des problegravemes phares du traitement
dimages Elle consiste agrave partitionner limages en un ensemble de
reacutegions connexes Linteacuterecirct de ces reacutegions est de pouvoir ecirctre
manipuleacutees ensuite via des traitements de haut niveau pour extraire
des caracteacuteristiques de forme de position de taille etc
Introduction
15122010
21
Sami Gazzah 2009 121 Sami Gazzah 2009 122
Meacutethodes statistiquesSegmentation par Histogrammes
Sami Gazzah 2009 123
Meacutethodes statistiquesSeacutelection Reacutecursive sur Histogrammes
Ohlander Price et Reddy (1978)
Sami Gazzah 2009 124
Segmentation par approche contourIntroduction
Le contour est deacutefini comme le lieu des points connexes qui
possegravedent une forte transition d‟intensiteacute lumineuse ou de texture Le
traitement qui vise agrave l‟obtenir est appeleacute extraction de contour on
parle aussi de deacutetection de contour
Le processus d‟extraction de contour peut ecirctre deacutecomposeacute en
plusieurs eacutetapes distinctes que nous allons les deacutetailler comme suit
- La mise en eacutevidence des contours
- L‟extraction des contours
- La fermeture des contours
Sami Gazzah 2009 125
Segmentation par approche contourLa mise en eacutevidence des contours
Elle s‟obtient par une diffeacuterentiation de l‟image et elle peut
s‟appliquer agrave des images binaires ou non le but de la deacutetection de
contours est d‟obtenir dans un premier temps une image binaire ougrave
chaque contour est d‟eacutepaisseur 1 et sans discontinuiteacute
rehausser le contour
suivre le contour
les points du contour correspondent au maximum en valeur absolue
de la deacuteriveacutee primaire de l‟image on obtient alors un gradient ou au
passage par zeacutero de la deacuteriveacutee seconde de l‟image on obtient alors
un laplacien
Sami Gazzah 2009 126
Segmentation par approche contourLa mise en eacutevidence des contours
La deacutetection de contours peut ecirctre reacutealiseacutee gracircce agrave des filtres
dont les coefficients ont eacuteteacute soigneusement choisis Nous
aborderons dans cette preacutesentation 3 filtres les filtres de
Prewitt Roberts et Sobel
Ce jeu de filtres (Prewitt Roberts et Sobel) est constitueacute d‟une
paire de filtres lineacuteaires qui deacutetectent le contours dans deux
directions orthogonales (vertical et horizontal)
15122010
22
Sami Gazzah 2009 127
Segmentation par approche contourFiltre de Perwitt
Les filtres de Perwitt sont les suivants
Filtre horizontal
Filtre vertical
111
000
111
h
101
101
101
v
Sami Gazzah 2009 128
Segmentation par approche contourFiltre de Perwitt
A partir d‟une image I on calcule Gh et Gv images
correspondant au filtrage de I par h et v Ces images
contiennent les contours horizontaux et verticaux
Si l‟on souhaite obtenir une image de contour unique ne tenant
pas compte de l‟orientation on calcule
Orientation du contour
Image binairehellipchoisir un seuil de deacutetection
22
vh GGG
)(vh
GGarctg
Sami Gazzah 2009 129
Segmentation par approche contourFiltre de Sobel
Les filtres de Sobel sont les suivants
Filtre horizontal
Filtre vertical
121
000
121
h
101
202
101
v
Sami Gazzah 2009 130
Segmentation par approche contourFiltre de Sobel
Sami Gazzah 2009 131
Segmentation par approche contourFiltre de Sobel
Sami Gazzah 2009 132
Segmentation par approche contourFiltre de Roberts
Les filtres de Roberts sont les suivants
Filtre diagonal
Filtre anti-diagonal
10
01h
01
10v
15122010
23
Sami Gazzah 2009 133
Segmentation par approche contourFiltre de Kirsch
Ce deacutetecteur utilise huit noyaux de convolution lui permettant de deacutetecter
des contours en fonction de huit directions agrave
15
335
305
335
1
d 15
333
305
355
2
d 15
333
303
555
3
d
15
333
503
553
4
d 15
533
503
533
5
d 15
555
503
333
6
d
15
555
303
333
7
d 15
355
305
333
8
d
Sami Gazzah 2009 134
Contours et Laplacien
Il s‟agit de calculer la deacuteriveacutee seconde de l‟image
Le Laplacien est tregraves sensible au bruit pour limiter l‟effet du bruit le
Laplacien est approximeacute par un masque qui effectue en mecircme temps
une opeacuteration de filtrage par une Gaussienne qui repreacutesente l‟eacutetape
de lissage de l‟image puis vient l‟application du laplacien Les masques
du Laplacien Gaussien sont preacutesenteacutes ci-apregraves
Segmentation par approche contour
Sami Gazzah 2009 135
Contours et Laplacien
Le contour est ensuite deacutetermineacute par la deacutetection des
passages par zeacutero du laplacien de l‟image
88888888888888
010
141
010
1h
111
101
111
2h
121
242
121
3h
Sami Gazzah 2009 136
Contours et Laplacien
Sami Gazzah 2009 137
Seuillage
Les filtres preacuteceacutedents nous fournissent des images des sauts ou
diffeacuterences d‟intensiteacute
Le seuillage permet d‟eacuteliminer des points en lesquels la diffeacuterence
d‟intensiteacute est tregraves faible
Le seuillage peut ecirctre pousser afin d‟obtenir une image binaire (TOR)
Le seuillage dans sa forme le plus simple ne tient pas compte de la
topologie et peut conserver un point bruiteacute isoleacute ou eacuteliminer une portion
de contour d‟intensiteacute faible
Sami Gazzah 2009 138
Seuillage par hysteacutereacutesis
c‟est une fonction agrave deux seuils un seuil bas et un seuil haut
Tout point dont le module de contour est au-dessus du seuil-haut est un
point de contour
Tout point dont le module de contour est au-dessous du seuil-bas n‟est
pas un point de contour
Les points de module entre le seuil-bas et le seuil-haut sont des points
de contour s‟il possegravede un point de contour dans leur voisinage
15122010
24
Sami Gazzah 2009 139
Seuillage par hysteacutereacutesis
seuil haut
Seuil bas
point sur contour
point hors contour
Seuillage par hysteacuterisais les points de lrsquoimage de contour de valeur
supeacuterieur au seuil haut sont des points de contours A partir de ces points de
contours le voisinage de la direction du contour sont examineacutes srsquoils sont de
valeur supeacuterieure au seuil bas ils sont ajouteacutes au points de contoursSami Gazzah 2009 140
Chapitre 6
Introduction aux
opeacuterateurs
morphomatheacutematique
Sami Gazzah 2009 141
1 Introduction
Les opeacuterateurs morphomatheacutematique (=Morphologie Matheacutematique)
permettent d‟ameacuteliorer les images de contours et apporter d‟autres
fonctionnaliteacutes
Ils ont eacuteteacute initialement appliqueacute sur des images NampB (Matheron et
Sarra1965) ensuite eacutetendus agrave des images en nivaux de gris par Doupherty
(1978)
Pour les appliquer sur des images couleurs on peut les appliquer
seacutepareacutement agrave chaque composante couleur et combiner les reacutesultats
Sami Gazzah 2009 142
Diffeacuterentes opeacuterations
eacuterosion dilatation
ouverture fermeture
Squelettisation
hellip
1 Introduction
Sami Gazzah 2009 143
1 Introduction
Dilatation
Ajouter un pixel sur les pourtours de la forme
boucher les trous
Erosion
Enlever un pixel sur les pourtours de la forme
les objets de taille infeacuterieure agrave celle de leacuteleacutement
structurant vont disparaicirctre
agrandit les trous
Sami Gazzah 2009144
1I Rappels sur les ensembles
L‟eacutegaliteacute
L‟inclusion
Lbdquointersection
L‟union
La diffeacuterence
La diffeacuterence symeacutetrique
La compleacutementariteacute E eacutetant un ensemble
servant de reacutefeacuterentielle
Dans ce qui suit les lettres majuscules deacutesignent des ensembles et les lettres
minuscules deacutesignent des eacuteleacutements appartenant aux ensembles
Sur les ensembles on deacutefinit les opeacuterations suivantes
15122010
25
Sami Gazzah 2009145
1I Rappels sur les ensembles
Sami Gazzah 2009146
1I Rappels sur les ensembles
Lois de De Morgan
Reacuteflexion La reacuteflexion d‟un ensemble A est deacutefinie par
Un ensemble symeacutetrique veacuterifiant ndashA=A C‟est le cas des cercles et des carreacute par
exemple
ccc YXYX )(
ccc YXYX )(
AaaA
A -A B -B
Sami Gazzah 2009147
1I Rappels sur les ensembles
Addition de Minkowski l‟addition d‟un eacuteleacutement x agrave un ensemble A par x est
deacutefinie par
Cette notion n‟est pas uniquement ensembliste elle nous oblige agrave deacutefinir un point
de reacutefeacuterence
On en deacuteduit l‟addition d‟un ensemble B agrave un ensemble A c‟est le reacutesultat de
l‟addition de chaque eacuteleacutement de B agrave A
L‟addition de Minkowski est commutative Elle est eacutegalement appeleacute dilatation
AaxaxAB
A
A
x
AxBxAaBaBbbABAC )()()(
le translateacute de X par b
Sami Gazzah 2009148
1I Rappels sur les ensembles
Eleacutement structurant les opeacuterations morphomatheacutematiques sont deacutefinis agrave
partir des ensemble B discrets appeleacute eacuteleacutement structurant Ces eacuteleacutement
permettent de deacutefinir le type de voisinage souhaiteacute
Addition de Minkowski d‟un ensemble A et d‟un ensemble B
BA
Sami Gazzah 2009149
1II Dilatation
Le reacutesultat de dilatation de lrsquoensemble A par lrsquoensemble B
est lrsquoaddition de Minkowski crsquoest lrsquoensemble des points tel
que lorsque B est centreacute sur un de ces points il y a une
intersection non vide entre A et B
Pour des images en niveaux de gris on obtient lrsquoimage
dilateacutee de la forme A en remplaccedilant tout pixel par le
maximum des intensiteacutes des voisins selon la forme B
Sami Gazzah 2009 150
1II Dilatation1 Image NampB
Soit k l‟eacuteleacutement structurant de taille (2k+1) x (2k+1) L‟algorithme de
dilatation est le suivant on parcourt tous les pixels de l‟image sauf les
bord de l‟image d‟eacutepaisseur k pour chaque pixel du fond rencontreacute s‟il
possegravede un voisin au sens de l‟eacuteleacutement structurant qui appartient agrave un
objet il prend le couleur de l‟objet si non il n‟est pas modifieacute
15122010
26
la dilatation (noteacutee ) drsquoune image monochrome laquo f raquo par un
eacuteleacutement structurant laquo B raquo est deacutefinie en terme de sous-graphe
bull f B = T [ Y ] = Supl l tel que (m n l) Y
bullY = U ( f ) U ( B )
En consideacuterant un eacuteleacutement structurant plan de valeur nulle sur son
support
( f B ) (P) = Max valeurs des pixels du voisinage du pixel P
1II Dilatation1 Image niveaux de gris
max
55 68 77 90 91 95 115 151 210
( f B ) (P) = 210
n
115 91 77
95 68 90
55 151 210
exemple
m
Image de reacutefeacuterence
Eacuteleacutement structurant
(8-connexiteacute)
liste ordonneacutee des valeurs du voisinage
- - -
-
-
-
-
-
1II Dilatation1 Image niveaux de gris
Exemples de filtrages morphologiques(eacuteleacutement structurant 33 complet)
Image de reacutefeacuterenceImage dilateacutee
morphologiquement
La dilatation en niveaux de gris accroicirct la luminance des
pixels entoureacutes de voisins plus lumineux
Observation
Sami Gazzah 2009154
VI Erosion
L‟eacuterosion est deacutefinie par
On deacutefinit la soustraction de Minkowski par
On a eacutequivalence entre eacuterosion et soustraction de Minkowski si B est
symeacutetrique (si B=-B)
D‟un point de vue binaire l‟eacuterode de A par B correspond agrave l‟ensemble
des points tels que si B est centre sur ce points B est entiegraverement inclus
dans A
AxBxBbbABAC )()(
)()( BbbABAC
Sami Gazzah 2009 155
VI Erosion1 Image NampB
on parcourt tous les pixels de l‟image sauf les bord de l‟image
d‟eacutepaisseur k pour chaque pixel du fond rencontreacute s‟il possegravede un
voisin au sens de l‟eacuteleacutement structurant qui appartient agrave un objet il
prend le couleur du fond si non il n‟est pas modifieacute
VI Eacuterosion drsquoune image en niveaux de gris
Lrsquoeacuterosion (noteacutee Ө ) drsquoune image monochrome laquo f raquo par un eacuteleacutement
structurant laquo B raquo est deacutefinie en terme de sous-graphe
bull f Ө B = T [ Y ] = Supl l tel que (m n l) Y
bullY = U ( f ) Ө U ( B )
Classiquement on considegravere un eacuteleacutement structurant plan de
valeur nulle sur son support
( f Ө B ) (P) = Min valeurs des pixels du voisinage du pixel P
15122010
27
VI Eacuterosion drsquoune image en niveaux de gris
min
68 90 91 95 151
( f Ө B ) (P) = 68
n
115 91 77
95 68 90
55 151 210
exemple
m
Image de reacutefeacuterence
ӨӨ
Eacuteleacutement structurant
(4-connexiteacute)
liste ordonneacutee des valeurs du voisinage
-
-
-
-
Exemples de filtrages morphologiques(eacuteleacutement structurant 33 complet)
Image eacuterodeacutee
Lrsquoeacuterosion en niveaux de gris reacuteduit la luminance des pixels
qui sont entoureacutes de voisins de moindre intensiteacute
Image de reacutefeacuterence
Observation
Sami Gazzah 2009 159
Eacuteleacutement structurant (a)
(4-connexiteacute)
-
-
-
-
Eacuteleacutement structurant (b)
(8-connexiteacute)
- - -
-
-
-
-
-
Exercice 1 Sur la mecircme image de deacutepart on reacutealise deux opeacuterations
de dilatations avec deux eacuteleacutements structurant diffeacuterents
Dilatation avec (a) Dilatation avec (b)
image de deacutepart
cas a L‟eacuteleacutement structurant est agrave 4-connexiteacute Chaque pixel
du support qui est eacutegal agrave la valeur 1 ou qui a l‟un de ses 4
voisins agrave la valeur 1 est mis agrave la valeur 1 apregraves filtrage
cas b L‟eacuteleacutement structurant est agrave 8-connexiteacute Chaque pixel
du support qui est eacutegal agrave la valeur 1 ou qui a l‟un de ses 8
voisins agrave la valeur 1 est mis agrave la valeur 1 apregraves filtrage
Dans les deux cas on observe qu‟une dilatation eacutelimine les
trous isoleacutes dans les objets et dilate le contour des objets en
tenant compte de l‟eacuteleacutement structurant
Sami Gazzah 2009 160
Exercice 1
Sami Gazzah 2009 161
Eacuteleacutement structurant (a)
(4-connexiteacute)
-
-
-
-
Eacuteleacutement structurant (b)
(8-connexiteacute)
- - -
-
-
-
-
-
Exercice 2 Sur la mecircme image de deacutepart on reacutealise deux opeacuterations
d‟eacuterosions avec deux eacuteleacutements structurant diffeacuterents
Erosion avec (a) Erosion avec (b)
image de deacutepart
cas a L‟eacuteleacutement structurant est agrave 4-connexiteacute (origine agrave 4 voisins)
Chaque pixel du support qui a la valeur 0 ou qui a l‟un de ses 4
voisins agrave la valeur 0 est mis agrave la valeur 0 apregraves filtrage
cas b L‟eacuteleacutement structurant est agrave 8-connexiteacute Chaque pixel du
support qui a la valeur 0 ou qui a l‟un de ses 8 voisins agrave la valeur 0
est mis agrave la valeur 0 apregraves filtrage
Dans les deux cas on observe qu‟une eacuterosion eacutelimine les pixels
isoleacutes sur le fond et eacuterode le contour des objets
Sami Gazzah 2009 162
Exercice 2
15122010
28
ConclusionsConclusions
Erosion
les objets relieacutes entre eux vont ecirctre seacutepareacutes
Une eacuterosion de taille n peut se reacutealiser en reacutepeacutetant une
eacuterosion n fois avec un eacuteleacutement structurant de taille 1 ou en
appliquant une seule eacuterosion avec un eacuteleacutement structurant
de taille n
Dilatation
des objets sont situeacutes agrave une distance moins grande que la taille
de leacuteleacutement structurant il vont fusionner
Sami Gazzah 2009 163 Sami Gazzah 2009 164
Sami Gazzah 2009 165
Elimine pixels isoleacutes sans inteacuterecirct
L‟ouverture (opening) consiste agrave une eacuterosion suivi d‟une dilatation
Les petites structures et deacutetail fins disparaissent et ne sont pas recreacuteeacutees
lors de la dilation Une opeacuteration d‟ouverture est ainsi inteacuteressante pour
eacuteliminer les petits morceaux de contours bruiteacutes dans une image de
contours
V Ouverture et fermeture1 Ouverture
BBABAC )(
Sami Gazzah 2009 166
V Ouverture et fermetureII Fermeture
La fermeture (closing) consiste agrave une dilatation suivi d‟une eacuterosion
Les structures proches fusionnent lors de la dilation mais seules les
fusions ponctuelles disparaissent agrave nouveau lors de l‟eacuterosion Une
opeacuteration de fermeture est ainsi inteacuteressante pour boucher les petits
trous
Sami Gazzah 2009 167 Sami Gazzah 2009 168
Exercice 3 Sur l‟image de deacutepart on reacutealise une opeacuteration de
fermeture binaire par l‟eacuteleacutement structurant 4-connexiteacute Conclusions
Eacuteleacutement structurant
(4-connexiteacute)
-
-
-
-Fermeture = dilatation puis eacuterosion
Image de deacutepart Image dilateacutee Image dilateacutee puis eacuterodeacutee
Combler les trous
Reacutetablir les jonctions
tout en preacuteservant la taille
15122010
29
Sami Gazzah 2009 169
Exercice 4 Sur l‟image de deacutepart on reacutealise une opeacuteration
d‟ouverture binaire par l‟eacuteleacutement structurant 4-connexiteacute Conclusions
Eacuteleacutement structurant
(4-connexiteacute)
-
-
-
-Ouverture = eacuterosion puis dilatation
Image de deacutepart Image eacuterodeacutee Image eacuterodeacutee puis dilateacutee
Supprimer les fausses alarmes
Seacuteparer les objets accoleacutes
tout en preacuteservant la tailleSami Gazzah 2009 170
Appliquer les filtres suivants sur limage donneacutee Quelles sont les valeurs choisies
aux bords de limage et quelles sont les modifications visuelles
a) filtre moyenneur M3acute3(19)
b) eacuterosion
c) dilatation
d) meacutedian
e) fermeture
f) ouverture
Exercice 5
Sami Gazzah 2009 171
IV Amincissement et Squelettisation
La squelette (skeleton) d‟une forme est l‟axe meacutedian L‟inteacuterecirct de cette
opeacuteration est dans
La reconnaissance de caractegraveres
Deacutetection des reacuteseaux routiers
La planification de trajectoirehellip
Une meacutethode couramment employeacutee est une amincissement reacutepeacuteteacute
jusqu‟agrave le convergence (n‟apporte aucune modification)
Sami Gazzah 2009 172
IV Amincissement et Squelettisation1 Opeacuteration Tout Ou Rien laquoHit or Missraquo
Cette transformation est deacutefinie par
leacuteleacutement structurant eacutetendu est centreacute sur chaque pixel de limage
comme pour les opeacuterations ensemblistes
la question poseacutee est est ce que le contenu de limage est identique au
contenu de leacuteleacutement structurant
si la reacuteponse est oui le pixel reacutesultant vaut 1 si non il vaut 0
Une application permet de deacutetecter des configurations locales
particuliegraveres dans une image
plusieurs masques peuvent ecirctre utiliseacutes indeacutependamment les images
reacutesultat eacutetant ensuite combineacutees par une opeacuteration ou
)()( cc BABABA
Bc-
est le compleacutementaire
local de B
Sami Gazzah 2009 173
IV Amincissement et Squelettisation1 Opeacuteration laquoHit or Missraquo
Exemple dopeacuteration Hit or Miss deacutetection des coinsSami Gazzah 2009 174
IV Amincissement et Squelettisation1 Amincissement (thinning)
bull La transformation TOR nous permet eacutegalement de deacutefinir
l‟amincissement
bullL‟amincissement consiste agrave soustraire limage reacutesultat dun hit or miss de
limage initiale
bull des amincissements successifs conduisent au squelettisation
)()( BAAAthin
15122010
30
Sami Gazzah 2009 175
IV Amincissement et Squelettisation1I Squelettisation
Appliquer des amincissements successifs puis s‟arrecircter lorsque l‟amincissement
n‟apporte plus de modification C‟est une eacuterosion particuliegravere ougrave les pixels sont
supprimeacutes agrave la condition quils ne provoquent pas la seacuteparation dune reacutegion en
deux
Sami Gazzah 2009 176
IV Amincissement et Squelettisation1I Squelettisation
Sami Gazzah 2009 177
Chapitre 7
Transformations
geacuteomeacutetriques 2D
Sami Gazzah 2009 178
I Introduction
On entend par transformation 2D l‟ensemble des transformations du
plan pouvant ecirctre appliqueacutees aux pixels de l‟image sans consideacuteration
de l‟intensiteacute
Par exemples
Reacuteduction agrandissement
Deacuteformation d‟image
Recalage d‟une photo scanneacutee
Recaler des images que l‟on veut comparer
Mosaiumlque d‟images
Sami Gazzah 2009 179
I Transformations euclidiennes
Elles preacuteservent les distances et les angles
Elles sont les compositions de translations et de rotations
1) Translation
Ougrave Tx et Ty sont les deacuteplacements en x et en y de la translation
y
x
Tyy
Txx
Sami Gazzah 2009 180
2) Rotation
15122010
31
Sami Gazzah 2009 181 Sami Gazzah 2009 182
3) Remarques (1)
Sami Gazzah 2009 183
3) Remarques (2)
Sami Gazzah 2009 184
II Homotheacuteties
Changement deacutechelle par rapport agrave lorigine (scaling zoom)
Ougrave Sx et Sy sont les facteurs dagrandissement ( gt1) ou de
reacuteduction ( lt1) en x et en y
ySy
xSx
y
x
Sami Gazzah 2009 185
II Homotheacuteties
Sami Gazzah 2009 186
II Homotheacuteties
15122010
32
Sami Gazzah 2009 187
III Reacuteflexions
Reacuteflexions par rapport aux axes (flip miroir)
Sami Gazzah 2009 188
IV Cisaillement
Cisaillement (glissement shearing) on eacutetire suivant un ou plusieurs axes
Sami Gazzah 2009 189
Transformations inverses
Sami Gazzah 2009 190
Repreacutesentation Matricielle
IV Autres (reacuteflexions miroirs et flips)
Sami Gazzah 2009 191
Interpolation Directe
Sami Gazzah 2009 192
oDifficile de distribuer le niveau de gris sur les pixels voisins
oOn n‟a pas la certitude que tous les pixels de l‟image
transformeacutee recevront une valeur =gt ldquotrousrdquo
15122010
33
Interpolation Inverse
Sami Gazzah 2009 193
o Interpolation de la valeur du pixel agrave partir des voisins plus
facile
oAucun ldquotrourdquo car on parcourt tous les pixels de l‟image
transformeacutee Sami Gazzah 2009 194
V Objet vectoriel - Objet bitmap
Objet vectoriel
Essentiellement on transforme
les sommets (ou points de
controcircle) et on retracehellip
Objet ldquobitmaprdquo
On doit calculer la nouvelle
position de chaque pixel De plus on
doit geacuteneacuteralement interpoler les
niveaux de gris (couleurs)hellip
Sami Gazzah 2009 195
IV Assignation des niveaux de gris
Neacutecessaire car la position d‟un pixel transformeacute n‟est pas entiegraverehellip
Plusieurs meacutethodes
Interpolation au plus proche voisin
Interpolation bilineacuteaire
Interpolation bicubique
Autres types d‟interpolation
Sami Gazzah 2009 196
IV Assignation des niveaux de gris
Linterpolation de limage cest ce qui arrive lorsquon redimensionne
une image numeacuterique ou quon la redimensionne avec une distorsion
quon change la perspective etc
Exemple 1
Image originale (sans interpolation)
Image agrandie et donc interpoleacutee
Perte de netteteacute due agrave linterpolation
Sami Gazzah 2009
197
IV Assignation des niveaux de gris
Exemple 2 recadrage dimage
Nous allons agrandir cette image agrave 180
Il va donc nous manquer des informations lagrave ougrave lon va creacuteer des
pixels pour agrandir limage
Reacutesultat sans interpolation le logiciel agrandit simplement les pixels
Reacutesultat avec interpolation le logiciel calcule une couleur intermeacutediaire
pour chaque nouveau pixel
Sami Gazzah 2009
198
IV Assignation des niveaux de gris
Image originale
Interpolation au plus
proche voisin
Interpolation
bilineacuteaireInterpolation
bicubique
15122010
34
Sami Gazzah 2009 199
IIV Interpolation au plus proche voisin
Cest lalgorithme le plus rapide agrave calculer
Prend en compte dans le calcul que le pixel le plus proche du point
agrave interpoler
Consiste tout simplement agrave agrandir chaque pixel
Exemple Interpolation du plus proche voisin par copie des pixels
Copie de chaque colonne et de chaque rang
23 20
25 28
23 23
23 23
20 20
20 20
25 25
25 25
28 28
28 28
Sami Gazzah 2009 200
IIV Interpolation bilineacuteaire
Fonction bilineacuteaire de 4 pixels voisins ( en 2 D )
i-1 i i+1
i-1 i-12 i i+12 i+1 i+32
yi=xiYi+12=(xi+xi+1)2
Problegraveme pour le dernier point
Extrapolation lineacuteaire de
2 xn-xn-1
Principe 1D
attribuer agrave chaque point cible une
combinaison lineacuteaire des quatre
points sources les plus proches par
la transformation inverse
Sami Gazzah 2009 201
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 202
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 203 Sami Gazzah 2009 204
IIV Interpolation bilineacuteaire
15122010
35
Sami Gazzah 2009 205
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 206
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 207
IIV Interpolation bilineacuteaire exemple
Sami Gazzah 2009 208
IIV Interpolation bicubique
Sami Gazzah 2009 209
exemple
Sami Gazzah 2009 210
Chapitre 8
Geacuteneacuteration de segments de
droite et de cercles en 2D
15122010
36
Sami Gazzah 2009 211
Infographie 2D besoin de dessiner des primitives de
base (segments cercles hellip)
Espace discreacutetiseacute (pixels) il faut trouver un moyen pour
afficher des segments ou des cercles
I Segments 2D cercles1 Introduction
Comment trouver les pixels agrave allumer pour approximer au mieux une
droite ou un cercle
Algorithme rapide et preacutecisSami Gazzah 2009 212
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=ax+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ya
Sami Gazzah 2009 213
Rappelhellip
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=mx+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ym
Sami Gazzah 2009 214
Exemple
Sami Gazzah 2009 215
Agrave partir des coordonneacutees des 2 extreacutemiteacutes d‟un segmenthellip
Un algorithme simple
Boucle de x1 agrave x2 dx=1
ALLUME (x Arrondir(y))
Avec x2gtx1
Arrondir(y) = Arrondir(ax+b)
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Sami Gazzah 2009 216
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Choix de lrsquoaxehellip
Peu efficace
bullagrave chaque iteacuteration 1 multiplication (ou division) + 1 addition
+ 1 arrondi
15122010
37
Sami Gazzah 2009 217
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
DDA (Digital Differential Analyzer)
y et m doivent ecirctre des reacuteelsSami Gazzah 2009 218
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Calcul en entier (donc plus rapide)
Baseacute sur le choix entre deux points discrets deacutependant de leur
distance respective avec le point reacuteel ideacuteal
On simplifie le problegraveme en traitant drsquoabord le traceacute drsquoun segment
dans le 1er octant m infeacuterieur agrave1 et positif (0ltmlt 1)
Facilement geacuteneacuteralisable aux autres octants
Sami Gazzah 2009 219
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Traceacute d‟un segment dans le premier octant mlt1
On part d‟un point (xi yi) allumeacute
Sami Gazzah 2009 220
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
On ne calcule pas reacuteellement les distances rArr on veacuterifie si la diffeacuterence
entre les deux distances est positive ou neacutegative
Le signe de la longueur (d1-d2) deacutetermine s‟il faut allumer le pixel L ou H
L
H
Sami Gazzah 2009 221
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Comme m=ΔyΔx on multiplie cette diffeacuterence par Δx pour eacuteviter la
division
Mais que vaut p1
Sami Gazzah 2009 222
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
15122010
38
Sami Gazzah 2009 223
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Pour eacuteviter de calculer cette diffeacuterence pour chaque point on cherche
une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
Sami Gazzah 2009 224
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009 225
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009
Exercice
Tracer le segment de droite
pi xi yi
2 0 0
-6 1 1
6 2 1
-2 3 2
10 4 2
2 5 3
-6 6 4
6 7 4
-2 8 5
10 9 5
2 10 6
6
10
y
x
Sami Gazzah 2009 227
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
Sami Gazzah 2009 228
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
hellip interchanger les points hellip
Si |Δx| lt | Δy| on interchange le rocircle de x et y
15122010
39
Sami Gazzah 2009 229
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (1)
Sami Gazzah 2009 230
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (2)
Sami Gazzah 2009 231
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (3)
Sami Gazzah 2009 232
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Toujours baseacute sur le choix entre deux
points discrets deacutependant de leur
distance respective avec le point reacuteel
On travaille dans le 2e octant agrave partir
de (0r) ainsi pour un point (xi yi) le
prochain point sera
(xi+1 yi) ou (xi+1 yi-1)
Sami Gazzah 2009 233
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On calcule le prochain y et les diffeacuterences respectives avec les points
discrets de la faccedilon suivante
Le signe de pi nous dira si nous devons choisir le point lateacuteral ou le diagonal
Sami Gazzah 2009 234
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Encore une fois pour eacuteviter de calculer cette diffeacuterence pour chaque point on
cherche une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
15122010
40
Sami Gazzah 2009 235
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On considegravere 2 cas
Valeur initiale
Sami Gazzah 2009 236
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Sami Gazzah 2009 237
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Exemple centre = (00) et r = 3
Sami Gazzah 2009 238
Livres
Diane Lingrand Introduction au Traitement d‟Images Paris Editions Vuibert 2e
eacutedition 2008
Steven k Feiner James D Foley John F Hughes Richard l Phillips Andries
Vanam Introduction agrave l‟infographie Paris Editions Vuibert 2000
William K Pratt Digital Image Processing Willy-Inter-sciences 4th edition 2007
Eacuteric Incerti Compression dimage ndash Algorithmes et standards Vuibert 2003
Gilles Burel Introduction au traitement dimages ndash Simulation sous Matlab
Hermegraves 2001
Sites web
Cours de C Rougier (U Montreacuteal)
httpwww-etudiroumontrealca~rougiercift2730courshtml (cf chapitre 3)
Page wikipeacutedia sur JPEG (en anglais plus complegravete que celle en franccedilais)
httpenwikipediaorgwikiJPEG
Cours de P Courtellemont (Campus numeacuterique Espdon)
httppersouniv-lrfrpcourtelespadonsite_web
Applet de deacutemo par C G Jennings
httpcgjenningscatoyboxhjpegindexhtml
Cours de D Marshall (U Cardiff)
httpwwwcscfacukDaveMultimediaPDF
Reacutefeacuterences
Sami Gazzah 2009 239
Chapitre 9
introduction au
traitement
dimages avec OpenGL
Sami Gazzah 2009 240
OpenGL est une librairie graphique Elle a eacuteteacute creacutee par Silicon
Graphics et beacuteneacuteficie sur ces machines de lacceacuteleacuteration mateacuterielle
Elle est constitueacute d‟environ 200 fonctions graphiques
OpenGL est une bibliothegraveque de fonctions
Les fonctions sont de bas niveaux
La version actuelle est l‟ laquo OpenGL 41 raquo (deacutecembre 2010)
Principale caracteacuteristique indeacutependant du mateacuteriel et du systegraveme
d‟exploitation
Une impleacutementation libre de droits dOpenGL tregraves performante a eacuteteacute
eacutecrite par Brian Paul httpwwwmesa3dorg Et tout son code source
est accessible
Preacutesentation geacuteneacuterale
15122010
41
Sami Gazzah 2009 241
OpenGL propose des fonctions de bas niveaux
Primitives geacuteomeacutetriques points segments polygones
Les fonctions de haut niveaux sont deacuteveloppeacutees par l‟utilisateur ou
importeacutees par la librairie en amont d‟OpenGL
Primitives geacuteomeacutetriques complexes Sphegravere splines etc
Toutes les commandes et fonctions utilisent le preacutefixe gl
Exemple glColor2f()
Sami Gazzah 2009 242
Les Bibliothegraveques co-existant avec OpenGL
GLU OpenGL Utility Library contient les routines de bas niveau pour
geacuterer les matrices de transformation et de projection la facettisation des
polygones et le rendu de surface Les bibliothegraveques dextension du
systegraveme de fenecirctres permettent lutilisation du rendu OpenGL Il sagit de
GLX pour X Windows (fonctions ayant pour preacutefixe glX) et de WGL
pour Microsoft Windows (fonctions ayant pour preacutefixe wgl)
GLUT OpenGL Utility Toolkit est une boite agrave outils indeacutependante du
systegraveme de fenecirctrage eacutecrite par Mark
Kilgard pour simplifier la tacircche dutiliser des systegravemes diffeacuterents (fonctions
ayant pour preacutefixe glut)
Sami Gazzah 2009 243
Les primitives geacuteomeacutetriques d rsquoOpenGL
Les primitives sont deacutecrites par un bloc d‟instructions deacutelimiteacute par glBegin et glEnd
Ce bloc contient geacuteneacuteralement une liste de vertex Exemple
glBegin(GL_LINE_LOOP)
glVertex2f(-05 -05)
glVertex2f(05 -05)
glVertex2f(05 05)
glVertex2f(-05 05)
glEnd()
D‟autres attributs peuvent ecirctre speacutecifieacutes en chaque sommet
couleur normale coordonneacutee de texture etcSami Gazzah 2009 244
OpenGL est une machine agrave eacutetats
En modifiant les variables d‟eacutetats on peut changer le style de rendu
Sami Gazzah 2009 245
Exemple Honda Hippo (3dRendercom)
Placage de textures
bullL‟apparence et le toucher ( feel ) d‟une surface
bullUne image utiliseacutee pour deacutefinir les caracteacuteristiques d‟une surface
bullUne image multi-dimensionnelle qui est plaqueacutee sur un espace multi-
dimensionnel
Sami Gazzah 2009 246
15122010
42
Sami Gazzah 2009 247
Reacutefeacuterences openGL
Sami Gazzah 2009 248
Chapitre 10
introduction au
traitement
dimages avec OpenCV
Sami Gazzah 2009 249
Preacutesentation geacuteneacuterale
Quest-ce
Open Source Computer Vision Library
Bibliothegraveque open source de traitement des images numeacuteriques
Projet initieacute par Intel (en 1999)
Teacuteleacutechargeable sur httpsourceforgenetprojectsopencvlibrary
Fortement orienteacutee temps reacuteel
eacutecrite en C et C++
optimiseacutee pour les processeurs multi-cœurs
Multi-plateformes disponible pour Linux Windows et Mac OS X
Que contient-elle
Des fonctionnaliteacutes (structures et routines gt350 algos) de base et
avanceacutees pour bacirctir rapidement des applications autour de la vision par
ordinateur
Exemples dutilisation traitements de bas niveau (filtrage ) deacutetection
de visages reconnaissance et suivi dobjets en mouvement Sami Gazzah 2009 250
Fonctionnaliteacutes
Lectureeacutecriture dimages statiques et de seacutequences videacuteo
APIs de bas et moyen niveaux
Traitement des images binaires
Manipulations dimage (eacutechantillonnage (sampling) reacutegion dinteacuterecirct (ROI)
redimensionnement (resizing) rotation deacuteformation (warping) )
Deacutetection de contours de lignes de coins (edge detection)
Traitements multi-eacutechelles (multiscale processing)
Transformeacutees (Fourier cosinus discregravete )
Modules de haut niveau
Deacutetection reconnaissance et suivi (tracking) de visages
Flot optique (estimation du mouvement) (optical flow)
Calibrage (calibration) de la cameacutera
Mise en correspondance steacutereacuteoscopique (stereo matching)
IA et apprentissage par ordinateur (machine learning)
3D mise en correspondance (registration)
Sami Gazzah 2009 251
Modules principaux
CxCore
Types de base pour manip dimages (ex struct image point isin cxtypesh)
Structures dynamiques (listes files graphes arbres) et persistantes (LE)
Manipulations de matrices meacutethodes de lalgegravebre lineacuteaire et statistiques
Dessin en surimpression (overlay) (ex eacutetiquetage)
Cv
Traitement dimage calibrage cameacutera
Geacuteomeacutetrie algorithmique (triangulation )
Cvaux
Reconnaissance de visage
Code expeacuterimental et obsolegravete
Autres (dans otherlibs)
HighGUI ES videacuteos curseurs fenecirctrage
ML classification regroupement (clustering)Sami Gazzah 2009 252
OpenCV premiers programmesBibliothegraveque OpenCV
15122010
43
Sami Gazzah 2009 253
Livre
G Bradski amp A Kaehler laquo Learning OpenCV raquo OReilly Press (2008)
codes sources httpexamplesoreillycom9780596516130
Ressources en ligne
Reacutefeacuterence complegravete httpopencvwillowgaragecomdocumentation
Wiki httpopencvwillowgaragecomwikiFullOpenCVWiki
bullPreacutesentation teacuteleacutechargement installation
bullavec CodeBlocks httpopencvwillowgaragecomwikiCodeBlocks
bullDeacutebuter avec OpenCV FAQ
Tutoriels
httpnchcdlsourceforgenetsourceforgeopencvlibraryippocvpdf
httpdaslmemdrexeledu~noahKuntzopenCVTut1html agrave Tut11html
httpwwwcognoticscomopencvservo_2007_series
Tutoriel sur la vision utilisant OpenCV (en franccedilais)
httpwwwsiteduzerocomtutoriel-3-8631-vision-par-ordinateurhtml
Reacutefeacuterences openCV
15122010
9
Sami Gazzah 2009 49
Images couleurs (24 bits)
Lrsquoespace couleur Rouge Vert Bleu (RGB)
Sami Gazzah 2009 50
Valeur R Valeur V Valeur BCouleur
correspondanteCommentaires
0 0 0 noir
0 0 255 bleu
0 255 0 vert
255 0 0 rouge
128 128 128
couleur
intermeacutediaire
correspondant agrave
un gris
255 255 255 blanc
Sami Gazzah ISITCom 200951
Exemple de deacutecomposition drsquoune image couleur en 3 plans de couleur
(a) image originale (b)canal rouge (c)canal vert (d)canal bleu
(b)(a)
(c) (d)
Sami Gazzah 2009 52
Lrsquoespace couleur Cyan Magenta et Jaune (GMJ)
bull les couleurs primaires CMJ sont ici les compleacutementaires des RVB
bull utiliseacute par certaines imprimantes couleurs agrave jet dencre
bull les diffeacuterentes couleurs sont obtenues par soustraction du blanc
Sami Gazzah 2009 53
Le principe de lespace HSV est de caracteacuteriser les couleurs de faccedilon plus
intuitive conformeacutement agrave la perception naturelle des couleurs en termes de
1 teinte (Hue) intuitivement cest le nom quon utilisera pour deacutesigner la couleur
vert mauve etc Ideacutealement associeacute agrave une longueur donde
2 saturation (Saturation)cest le taux de pureteacute de la couleur qui doit varier
entre la pureteacute maximale (couleur eacuteclatante) et lachromatisme (niveau de gris)
3 valeur (Value) cest la mesure de lintensiteacute lumineuse de la couleur qui doit
varier entre le noir absolu et le blanc
Images HSV
Composante valeur
Composante saturation
Composante teinte
Sami Gazzah 2009 54
Pour passer de la repreacutesentation initiale (RGB) agrave cette repreacutesentation on opegravere
de la maniegravere suivante
15122010
10
Sami Gazzah 2009 55
Quelques caracteacuteristiques drsquoimages numeacuteriques
La reacutesolution dune image = nombre de pixels par uniteacute de longueur de la
structure agrave numeacuteriser (dpi (dots per inches) ou ppp (pixel par pouce)
La reacutesolution du format de limage =nombre de pixels qui compose limage en
hauteur et en largeur (512 pixels par 512 pixels par exemple)
La taille des donneacutees pour une image (en bits) = Nlignes x Ncolonnes x B
La profondeur de bits = nombre de bits neacutecessaire pour repreacutesenter un pixel dans
l‟image numeacuterique
La dynamique dune image= leacutetendu de la gamme de couleurs 2nbre de bitspixels ndash 1
Le poids d‟une image numeacuterique est l‟espace meacutemoire qu‟elle occupe sur un
support de stockage numeacuterique = nombre de bits par pixel x nombre total de pixels
Sami Gazzah 2009 56
bullune image 200200 pixels en niveaux du gris fait un poids de
200200=40000 octets
bullimage de 200200 pixels en vraies couleurs (16 millions) (24 bits)
2002003= 120000 octets (117 Ko)
bull image de 200200 pixels en fausses couleurs (256 couleurs) (8 bits)
2002001= 40000 octets (39 Ko)
Taille des limages en pixels
Sami Gazzah 2009 57
Exercice drsquoapplication
Soit une image carreacutee au format PPM(ASCII) de 160 Ko
Quelles sont approximativement les dimensions de cette image si
on neacuteglige la taille de lrsquoen-tecircte
Quelle serait la taille du fichier si cette image eacutetait stockeacutee en
binaire
Remarques Le format PPM (Portable Pixel Map) concerne les
images couleurs Chaque pixel a pour valeur un triplet (RGB) et
chaque couleur est exprimeacutee par un caractegravere et un espace
Sami Gazzah 2009 58
Formats de fichiers dimages
Une image est un tableau de pixels
Une image est stockeacutee soit dans un fichier sous la forme de texte soit dans la
meacutemoire de lordinateur sous la forme dun vecteur
Sami Gazzah 2009 59
Les opeacuterations de bases concernant une image sont la lecture (fichier vers
meacutemoire) et leacutecriture (meacutemoire vers fichier) Les informations
neacutecessaires agrave la manipulation dune image sont
nombre de lignes
nombre de colonnes
format des pixels (bit niveaux de gris niveaux de couleurs)
compression eacuteventuelle
Il existe une multitude de formats de fichiers permettant de stocker ces
informations ainsi que le tableau des valeurs En particulier
Les formats simples fichiers textes comportant un entecircte contenant
les dimensions de limage et le format des pixels Exemples les formats
PNM (portable anymap) PBM (portable bitmap) PGM (prtrable
grayscalemap) PPM (portable pixmap) Les fichiers correspondants sont
constitueacutes des eacuteleacutements suivants Sami Gazzah 2009 60
1 Un nombre magique pour identifier les type du fichier P1 ou P4
pour PBM P2 ou P5 pour PGM et P3 ou P6 pour PPM
2 Un caractegravere despacement (blanc TABs Cs LFs)
3 La largeur de limage (valeur deacutecimale codeacutee en ASCII) suivie dun
caractegravere despacement la longueur de limage (valeur deacutecimale
ASCII) suivie dun caractegravere despacement
4 Uniquement pour PGM et PPM lintensiteacute maximum (valeur deacutecimale
comprise entre 0 et 255 codeacutee en ASCII) suivie dun caractegravere
despacement
5 Largeur x hauteur nombres Ces nombres sont soit des valeurs
deacutecimales codeacutees en ASCII et seacutepareacutees par des espacements dans le
cas des formats P1 P2 P3 soit directement les valeurs binaires sur 1
ou 2 octets dans le cas des formats P4 P5 P6 Dans ce dernier cas il
ny pas de caractegraveres despacement entre les valeurs
15122010
11
Sami Gazzah 2009 61
Chapitre 2
Transformations sur les images
Sami Gazzah 2009 62
Les transformations peuvent ecirctre classeacutees de la maniegravere suivante
bullTransformations ponctuelles
bullTransformations de voisinage
bullTransformations spectrales
bullTransformations morphologiques
Au cours du processus de traitement et drsquoanalyse lrsquoimage subit une seacuterie
de transformations
Introduction
Image sourceTransformationTransformation
TTImage transformeacutee
Sami Gazzah 2009 63
1 Transformations ponctuelles
A partir dune image source la nouvelle valeur du pixel deacutepend uniquement de
son ancienne valeur
Exemple seuillage ajustement luminositeacutecontraste opeacuterations algeacutebriques
opeacuterations logiques et arithmeacutetiques manip dhistogramme
1 Opeacuterations logiques et arithmeacutetiques
Les images opeacuterandes
doivent ecirctre de mecircme taille
peuvent ecirctre des images constantes
Exemples
addition soustraction
ET logique OU logique
Problegravemes
deacutebordements de [0 255]
normalisation Sami Gazzah 2009 64
Images en niveaux de gris ETOU logique bit agrave bit entre les 8 bits
codant les valeurs des pixels
Images binaires ETOU logique entre les pixels
Sami Gazzah 2009 65
Les opeacuterations logiques
bullET I(xy)=I1(xy) ET I2(xy) intersection logique
bullOU I(xy) = I1(xy) OU I2(xy) union logique
bullNOT I(xy) = NOT(I1(xy)
opeacuterations arithmeacutetiques
bullAddition I(xy)=I1(xy)+I2(xy)
bullSoustraction I(xy)=I1(xy)-I2(xy)
bullMultiplication
bullDivision par une constantehellip
Sami Gazzah 2009 66
Les opeacuterations logiques
15122010
12
Sami Gazzah 2009 67
Application
Masquage
Sami Gazzah 2009 68
Les Opeacuterations arithmeacutetiques
Addition dimages
Principe I(xy)=I1(xy)+I2(xy) pour tout pixel de coordonneacutees (xy)
Strateacutegies si deacutepassement de capaciteacute
bullDeacutecalage des valeurs dans [0 127] avant addition (perte du bit de poids faible)
bullSaturation I(xy) = min ( I1(xy)+I2(xy) 255)
bullPreacute-calcul des valeurs finales (theacuteoriques) minimale et maximale
puis recadrage de la dynamique
Utilisations principales
Augmentation de la luminance dune image (par addition dune constante ou
dune image avec elle-mecircme) et diminution du bruit dans une seacuterie dimages
))()((max
))()((min
21)(
max
21)(
min
yxIyxIi
yxIyxIi
Iyx
Iyx
))()((255
)( 21
minmax
yxIyxIii
yxI
Sami Gazzah 2009 69
Les Opeacuterations arithmeacutetiques
Soustraction dimages
Principe I(xy)=I1(xy)-I2(xy) pour tout pixel de coordonneacutees (xy)
Strateacutegies si deacutepassement de capaciteacute
bullSaturation I(xy) = max ( I1(xy) - I2(xy) 0)
bullDiffeacuterence absolue I(xy) = | I1(xy) - I2(xy) |
Utilisations principales
bullDiminution de la luminance dune image
bullDeacutetection de changements entre images
bulldeacutefauts (par comparaison avec une image de reacutefeacuterence)
bullmouvements (par comparaison avec une autre image de la seacutequence)
Sami Gazzah 2009 70
Rim Romdhaneet al AVSS10 rd the 7th IEEE International Conference on
Advanced Video and Signal-Based Surveillance Boston USA 2010
Sami Gazzah 2009 71
Addition et soustraction de deux images
Sami Gazzah 2009 72
Si on dispose de limage en niveau de gris et de limage binaire suivante
15122010
13
Sami Gazzah 2009 73
2 Identiteacute neacutegatif et Seuillage
Sami Gazzah 200974
2 Les opeacuterations geacuteomeacutetriques
Opeacuterations geacuteomeacutetriques sur une image en niveaux de gris
Sami Gazzah 2009 75
Une transformation de voisinage est telle que la nouvelle valeur
drsquoun pixel tient compte des pixels appartenant au voisinage du
pixel consideacutereacute
Le voisinage peut avoir une taille plus ou moins grande (3x3 5x5
7x7hellip) et il peut avoir une forme reacuteguliegravere (carreacute rectangle
hexagonehellip) ou bien une forme quelconque
3 Transformations de voisinage
Sami Gazzah 2009 76
Exemple de transformation de voisinage le
produit de convolution
dans le cas continu le produit de convolution de f par g est
deacutefini par
Dans le cas discret il est geacuteneacuteralement deacutefini sur un voisinage il
est donneacute par
Sami Gazzah 2009 77
Si on applique ceci agrave une image I1 de dimensions
finies et agrave moyenne de convolution K (K
Kernel=noyau) de dimension 3 x 3 les pixels de
lrsquoimage I1 obtenue par convolution de I2 par K ont
pour valeur
Sami Gazzah 2009 78
Nouvelle
image
Nouvelle valeur
de pixel21
1 11
1 111 11
Noyau
Nouvelle valeur de pixel =
9
22 2719
9 19
51 21 14Image
originale
111
111
111
9
1h
15122010
14
Sami Gazzah 2009 79
4-Transformations spectrales (1)
Transformeacutee de Fourier 2D (TF 2D)
- La TF est
Dans la cas 1D (Rappel)
Dans la cas 2D
- La TF inverse
- La TF est
- La TF inverse
Sami Gazzah 2009 80
4-Transformations spectrales (2)
Exemple des transformations spectrales transformeacutee de Fourier
Soit f(xy) deacutefinie par une matrice d‟eacutechantillons reacuteguliegraverement espaceacutes
N le nombre de lignes M nombre de colonnes
- La TF est deacutefinie par
- La TF inverse est deacutefinie par
Sami Gazzah 2009 81 Sami Gazzah 2009 82
Compression RLE (Run Length Encoding)
2 2 2 2 128 128 128 120 120 80 96 96 94 94 94 95 97 97 97 97
4 2 3 128 2 120 1 80 2 96 3 94 1 95 4 97
Utile quand il y a des reacutepeacutetitions dans la chaicircne agrave encoder
Exemple Formats BMP TIFF PCX (Paintbrush)
Sami Gazzah 2009 83
Chapitre 3
RESTAURATION DrsquoIMAGES
Sami Gazzah 2009 84
L‟acquisition s‟accompagne toujours d‟une distorsiondeacutegradation
Il existe diffeacuterentes sources de deacutegradation (bruit) d‟une image
bruit lieacute au contexte de lacquisition Bougeacute mauvaises conditions
d‟eacuteclairagehellip
bruit lieacute au capteur Capteur de mauvaises qualiteacutes mauvaise mise
au point etchellip
bruit lieacute agrave leacutechantillonnage Une mauvaise freacutequence
d‟eacutechantillonnage peut introduire dans l‟image des points blancs ou
noirs connus souvent sous l‟appellation laquo sel et poivre raquo
bruit lieacute agrave la nature de la scegravene Preacutesence de fumeacutee de nuage
etchellip
Il faut corriger l‟image par un proceacutedeacute algorithmique
15122010
15
Sami Gazzah 2009 85
Restauration des Images monochromatiques et des images
couleurs
Au deacutebut de l‟imagerie numeacuterique les algorithmes deacuteveloppeacutes eacutetaient
destineacutes aux images en niveaux de gris Avec les progregraves techniques et le
deacuteveloppement des outils informatiques le traitement des images
couleurs est devenu possible
bull Approche marginale
Sami Gazzah 2009 86
Approche vectorielle
Dans lapproche vectorielle le vecteur couleur est consideacutereacute globalement
et le traitement doit ecirctre alors reacuteellement vectoriel Il ny a pas dans ce cas
une eacutetape de fusion ou de seacuteparation explicite entre les diffeacuterentes
composantes couleur de lrsquoimage Dans ce cas la correacutelation entre les
diffeacuterentes composantes peut ecirctre prise en compte ce qui aboutit
geacuteneacuteralement agrave des reacutesultats meilleurs que ceux du traitement marginal
Sami Gazzah 2009 87
Rappel
Sami Gazzah 2009 88
Sami Gazzah 2009 89
Nouvelle
image
Nouvelle valeur
de pixel21
1 11
1 111 11
Noyau
Nouvelle valeur de pixel =
9
22 2719
9 19
51 21 14Image
originale
Sami Gazzah 2009 90
15122010
16
Sami Gazzah 2009 91
Lissage spatial tout en remplacent la valeur du pixel courant par la moyenne de
tous les pixels inclus dans un voisinage centreacute en ce point
Sami Gazzah 2009 92
Sami Gazzah 2009 93 Sami Gazzah 2009 94
En traitement d‟image les tailles des fenecirctres utiliseacutees pour le
filtrage meacutedian sont geacuteneacuteralement impaires 3 3 5 5 7 7
exemple
fenecirctre de 5 pixels en croix
Pour les fenecirctres de taille paire ( 2 K valeurs ) apregraves
ordonnancement croissant des valeurs prendre la moyenne des 2
valeurs centrales
valeur de sortie( Kiegraveme valeur ordonneacutee + (K+1)iegraveme valeur ordonneacutee )
2=
Sami Gazzah 2009 95 Sami Gazzah 2009 96
15122010
17
Sami Gazzah 2009 97
Image laquo Piegraveces raquo de reacutefeacuterence bruiteacutee ( bruit de type impulsionnel ) puis filtreacutee
avec un filtre moyenneur (33) et un filtre meacutedian (33)
Image de reacutefeacuterence Image bruiteacutee
Bruit
Le filtrage meacutedian est plus adapteacute que le filtrage
lineacuteaire pour reacuteduire le bruit impulsionnel
Observation
Comparaison filtre meacutedian et filtre moyenneur
Sami Gazzah 2009 99 Sami Gazzah 2009 100
Sami Gazzah 2009 101 Sami Gazzah 2009 102
Chapitre 4
REHAUSSEMENT DrsquoIMAGES
15122010
18
Sami Gazzah 2009 103
Introduction
Le preacutetraitement d‟image est l‟ensemble des opeacuterations effectueacutees sur
une image soit pour l‟ameacuteliorer soit pour la restaurer
Le preacutetraitement d‟une image vise soit agrave renforcer la ressemblance des
pixels soit au contraire agrave accentuer les diffeacuterences de pixels d‟une mecircme
reacutegion
Accroitre la seacuteparabiliteacute des reacutegions composant une scegravene revient agrave
augmenter les contrastes vu
On applique le rehaussement des images afin de faciliter l‟interpreacutetation
visuelle et la compreacutehension des images
Pour comprendre ce type de rehaussement il faut comprendre le concept
d‟histogrammeSami Gazzah 2009 104
Deacutefinition de lrsquohistogramme drsquoune image
L‟histogramme est un outil qui permet de comptabiliser le nombre
d‟occurrences de chacune des valeurs dans une image en niveaux de gris
Dans une image couleur il est neacutecessaire d‟utiliser plusieurs
histogramme sur chacune des composantes du systegraveme de repreacutesentation
de la couleur
Soit h l‟histogramme de l‟image I de dimension (w x h) h[i] repreacutesente
le nombre d‟occurrence de chaque niveau de quantification i La probabiliteacute
estimeacutee du niveau i dans une image I est
hw
ihip
][)(
Image de 256 256 pixels
codeacutes chacun sur 8 bitsPopulation de pixels pour chaque
niveaux de gris [0 255]
Pour chaque niveau de gris on compte le nombre de pixels s‟y reacutefeacuterant
Pour chaque niveau on trace le graphe en bacircton du nombre de pixels
(possibiliteacute de regrouper les niveaux proches en une seule classe)
Exemple drsquohistogramme pour une image en niveaux
de gris
0 50 100 150 200 250
0
200
400
600
800
1000
cameraman
Image laquo A raquo en
niveaux de gris
Matrice des valeurs de luminance
des pixels de lrsquoimage laquo A raquo
Histogramme
de lrsquoimage
laquo A raquo
2 2 2 2 2 2 2 2
2 0 0 0 0 0 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 0 0 0 0 0 2
2 2 2 2 2 2 2 2
Les niveaux 0 1 et 2 sont respectivement repreacutesenteacutes par 24 12 et 28 pixels
repreacutesentation de cette population de pixels sur lhistogramme
Limage laquo A raquo comporte 3 niveaux de gris diffeacuterents 0 1 et 2
Compter le nombre de pixels pour chaque niveau de gris agrave lrsquoaide de la
matrice des valeurs de luminance
Exemple simple de calcul drsquohistogramme pour une image
Image laquo A raquoValeurs de luminance de
laquo A raquo
Histogramme cumuleacute de
laquo A raquo
2 2 2 2 2 2 2 2
2 0 0 0 0 0 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 0 0 0 0 0 2
2 2 2 2 2 2 2 2
Calcul dun histogramme particulier faisant appel aux cumuls des niveaux de gris
Histogramme cumuleacute
Utile pour certains traitements dimage tels que lrsquoeacutegalisation
dhistogramme ( ameacutelioration de contraste)
Chaque bacircton cumule le nombre de pixels du niveaux de gris concerneacute et des
niveaux de gris infeacuterieurs les niveaux 0 1 2 sont donc repreacutesenteacutes
respectivement par 24 36 et 64 pixels
Histogramme cumuleacute drsquoune image L‟histogramme ne donne pas L‟histogramme ne donne pas
d‟informations sur la reacutepartitiond‟informations sur la reacutepartition
Trois images diffeacuterentes ayant un mecircme histogramme
15122010
19
Modification de lrsquohistogrammeModification de lrsquohistogramme
On appelle dynamique des niveaux de gris lintervalle [nminnmax] de
niveaux de gris dans lequel sont compris tous les pixels de limage
Le but de la modification dhistogramme modifier chaque niveau de
gris pour accroicirctre le contraste On modeacutelise cette transformation par
leacutequation Irsquo(ij) = g(I(ij)) ougrave g est la fonction de contraste
Chaque transformation sera deacutecrite par une courbe repreacutesentant la
relation entre un niveau de gris de limage de deacutepart (abscisse) et le
niveau qui lui correspond dans limage ameacutelioreacutee (ordonneacutee)
Sami Gazzah 2009 109
Masquage de zones Masquage de zones Extraction d‟une Extraction d‟une
fenecirctre d‟intensiteacutefenecirctre d‟intensiteacute ((slicingslicing intensiteacute)intensiteacute)
Cette transformation consiste agrave remplacer un intervalle de niveaux
de gris par du blanc (nmax) par du noir (nmin) ou par une valeur
intermeacutediaire du niveau de gris
Sami Gazzah 2009 110
Courbes repreacutesentant de gauche agrave droite lextraction dune fenecirctre dintensiteacute et le masquage blanc et noir de lintervalle [ab]
n-1
n-1
0 n-1
n-1
0a ab b n-1
n-1
0 a b
Sami Gazzah 2009 111
Exemples de Masquage de zonesInversion de la dynamiqueInversion de la dynamique
But produire le neacutegatif d‟une image
donneacutee
Sami Gazzah 2009 112
Sami Gazzah 2009 113
Etirement drsquohistogramme
Sami Gazzah 2009 114
Etirement drsquohistogramme
Augmentation du contraste par eacutetirement d‟histogramme
15122010
20
Sami Gazzah 2009 115
Eacutegalisation dhistogramme
But ameacutelioration du contraste
Distribution uniforme des niveaux de gris
Elle se deacutefinit agrave laide de lhistogramme cumuleacute de limage hc(n)
qui repreacutesente le nombre de pixels de limage dont le niveau de
gris est infeacuterieur ou eacutegal agrave n
Deacutefinition de la transformation deacutegalisation dhistogramme soit
I le niveau de gris dun pixel de deacutepart le niveau de gris de limage
darriveacutee I‟ sera
Sami Gazzah 2009 116
Sami Gazzah 2009 117
Effet de lrsquoeacutegalisation drsquohistogramme
Sami Gazzah 2009 118
Augmentation du contraste exemples et comparaison
Original Eacutetirement d‟histogramme Eacutegalisation
Le rehaussement du contraste est plus marqueacute avec l‟eacutegalisation
d‟histogramme autorisant la deacutetection de structures situeacutees dans
l‟ombre
Sami Gazzah 2009 119
Chapitre 5
SEGMENTATION DrsquoIMAGES
Sami Gazzah 2009 120
Une image est geacuteneacuteralement composeacutee d‟objets L‟analyse de cette
image neacutecessite l‟identification de ces objets
La segmentation dimages est lun des problegravemes phares du traitement
dimages Elle consiste agrave partitionner limages en un ensemble de
reacutegions connexes Linteacuterecirct de ces reacutegions est de pouvoir ecirctre
manipuleacutees ensuite via des traitements de haut niveau pour extraire
des caracteacuteristiques de forme de position de taille etc
Introduction
15122010
21
Sami Gazzah 2009 121 Sami Gazzah 2009 122
Meacutethodes statistiquesSegmentation par Histogrammes
Sami Gazzah 2009 123
Meacutethodes statistiquesSeacutelection Reacutecursive sur Histogrammes
Ohlander Price et Reddy (1978)
Sami Gazzah 2009 124
Segmentation par approche contourIntroduction
Le contour est deacutefini comme le lieu des points connexes qui
possegravedent une forte transition d‟intensiteacute lumineuse ou de texture Le
traitement qui vise agrave l‟obtenir est appeleacute extraction de contour on
parle aussi de deacutetection de contour
Le processus d‟extraction de contour peut ecirctre deacutecomposeacute en
plusieurs eacutetapes distinctes que nous allons les deacutetailler comme suit
- La mise en eacutevidence des contours
- L‟extraction des contours
- La fermeture des contours
Sami Gazzah 2009 125
Segmentation par approche contourLa mise en eacutevidence des contours
Elle s‟obtient par une diffeacuterentiation de l‟image et elle peut
s‟appliquer agrave des images binaires ou non le but de la deacutetection de
contours est d‟obtenir dans un premier temps une image binaire ougrave
chaque contour est d‟eacutepaisseur 1 et sans discontinuiteacute
rehausser le contour
suivre le contour
les points du contour correspondent au maximum en valeur absolue
de la deacuteriveacutee primaire de l‟image on obtient alors un gradient ou au
passage par zeacutero de la deacuteriveacutee seconde de l‟image on obtient alors
un laplacien
Sami Gazzah 2009 126
Segmentation par approche contourLa mise en eacutevidence des contours
La deacutetection de contours peut ecirctre reacutealiseacutee gracircce agrave des filtres
dont les coefficients ont eacuteteacute soigneusement choisis Nous
aborderons dans cette preacutesentation 3 filtres les filtres de
Prewitt Roberts et Sobel
Ce jeu de filtres (Prewitt Roberts et Sobel) est constitueacute d‟une
paire de filtres lineacuteaires qui deacutetectent le contours dans deux
directions orthogonales (vertical et horizontal)
15122010
22
Sami Gazzah 2009 127
Segmentation par approche contourFiltre de Perwitt
Les filtres de Perwitt sont les suivants
Filtre horizontal
Filtre vertical
111
000
111
h
101
101
101
v
Sami Gazzah 2009 128
Segmentation par approche contourFiltre de Perwitt
A partir d‟une image I on calcule Gh et Gv images
correspondant au filtrage de I par h et v Ces images
contiennent les contours horizontaux et verticaux
Si l‟on souhaite obtenir une image de contour unique ne tenant
pas compte de l‟orientation on calcule
Orientation du contour
Image binairehellipchoisir un seuil de deacutetection
22
vh GGG
)(vh
GGarctg
Sami Gazzah 2009 129
Segmentation par approche contourFiltre de Sobel
Les filtres de Sobel sont les suivants
Filtre horizontal
Filtre vertical
121
000
121
h
101
202
101
v
Sami Gazzah 2009 130
Segmentation par approche contourFiltre de Sobel
Sami Gazzah 2009 131
Segmentation par approche contourFiltre de Sobel
Sami Gazzah 2009 132
Segmentation par approche contourFiltre de Roberts
Les filtres de Roberts sont les suivants
Filtre diagonal
Filtre anti-diagonal
10
01h
01
10v
15122010
23
Sami Gazzah 2009 133
Segmentation par approche contourFiltre de Kirsch
Ce deacutetecteur utilise huit noyaux de convolution lui permettant de deacutetecter
des contours en fonction de huit directions agrave
15
335
305
335
1
d 15
333
305
355
2
d 15
333
303
555
3
d
15
333
503
553
4
d 15
533
503
533
5
d 15
555
503
333
6
d
15
555
303
333
7
d 15
355
305
333
8
d
Sami Gazzah 2009 134
Contours et Laplacien
Il s‟agit de calculer la deacuteriveacutee seconde de l‟image
Le Laplacien est tregraves sensible au bruit pour limiter l‟effet du bruit le
Laplacien est approximeacute par un masque qui effectue en mecircme temps
une opeacuteration de filtrage par une Gaussienne qui repreacutesente l‟eacutetape
de lissage de l‟image puis vient l‟application du laplacien Les masques
du Laplacien Gaussien sont preacutesenteacutes ci-apregraves
Segmentation par approche contour
Sami Gazzah 2009 135
Contours et Laplacien
Le contour est ensuite deacutetermineacute par la deacutetection des
passages par zeacutero du laplacien de l‟image
88888888888888
010
141
010
1h
111
101
111
2h
121
242
121
3h
Sami Gazzah 2009 136
Contours et Laplacien
Sami Gazzah 2009 137
Seuillage
Les filtres preacuteceacutedents nous fournissent des images des sauts ou
diffeacuterences d‟intensiteacute
Le seuillage permet d‟eacuteliminer des points en lesquels la diffeacuterence
d‟intensiteacute est tregraves faible
Le seuillage peut ecirctre pousser afin d‟obtenir une image binaire (TOR)
Le seuillage dans sa forme le plus simple ne tient pas compte de la
topologie et peut conserver un point bruiteacute isoleacute ou eacuteliminer une portion
de contour d‟intensiteacute faible
Sami Gazzah 2009 138
Seuillage par hysteacutereacutesis
c‟est une fonction agrave deux seuils un seuil bas et un seuil haut
Tout point dont le module de contour est au-dessus du seuil-haut est un
point de contour
Tout point dont le module de contour est au-dessous du seuil-bas n‟est
pas un point de contour
Les points de module entre le seuil-bas et le seuil-haut sont des points
de contour s‟il possegravede un point de contour dans leur voisinage
15122010
24
Sami Gazzah 2009 139
Seuillage par hysteacutereacutesis
seuil haut
Seuil bas
point sur contour
point hors contour
Seuillage par hysteacuterisais les points de lrsquoimage de contour de valeur
supeacuterieur au seuil haut sont des points de contours A partir de ces points de
contours le voisinage de la direction du contour sont examineacutes srsquoils sont de
valeur supeacuterieure au seuil bas ils sont ajouteacutes au points de contoursSami Gazzah 2009 140
Chapitre 6
Introduction aux
opeacuterateurs
morphomatheacutematique
Sami Gazzah 2009 141
1 Introduction
Les opeacuterateurs morphomatheacutematique (=Morphologie Matheacutematique)
permettent d‟ameacuteliorer les images de contours et apporter d‟autres
fonctionnaliteacutes
Ils ont eacuteteacute initialement appliqueacute sur des images NampB (Matheron et
Sarra1965) ensuite eacutetendus agrave des images en nivaux de gris par Doupherty
(1978)
Pour les appliquer sur des images couleurs on peut les appliquer
seacutepareacutement agrave chaque composante couleur et combiner les reacutesultats
Sami Gazzah 2009 142
Diffeacuterentes opeacuterations
eacuterosion dilatation
ouverture fermeture
Squelettisation
hellip
1 Introduction
Sami Gazzah 2009 143
1 Introduction
Dilatation
Ajouter un pixel sur les pourtours de la forme
boucher les trous
Erosion
Enlever un pixel sur les pourtours de la forme
les objets de taille infeacuterieure agrave celle de leacuteleacutement
structurant vont disparaicirctre
agrandit les trous
Sami Gazzah 2009144
1I Rappels sur les ensembles
L‟eacutegaliteacute
L‟inclusion
Lbdquointersection
L‟union
La diffeacuterence
La diffeacuterence symeacutetrique
La compleacutementariteacute E eacutetant un ensemble
servant de reacutefeacuterentielle
Dans ce qui suit les lettres majuscules deacutesignent des ensembles et les lettres
minuscules deacutesignent des eacuteleacutements appartenant aux ensembles
Sur les ensembles on deacutefinit les opeacuterations suivantes
15122010
25
Sami Gazzah 2009145
1I Rappels sur les ensembles
Sami Gazzah 2009146
1I Rappels sur les ensembles
Lois de De Morgan
Reacuteflexion La reacuteflexion d‟un ensemble A est deacutefinie par
Un ensemble symeacutetrique veacuterifiant ndashA=A C‟est le cas des cercles et des carreacute par
exemple
ccc YXYX )(
ccc YXYX )(
AaaA
A -A B -B
Sami Gazzah 2009147
1I Rappels sur les ensembles
Addition de Minkowski l‟addition d‟un eacuteleacutement x agrave un ensemble A par x est
deacutefinie par
Cette notion n‟est pas uniquement ensembliste elle nous oblige agrave deacutefinir un point
de reacutefeacuterence
On en deacuteduit l‟addition d‟un ensemble B agrave un ensemble A c‟est le reacutesultat de
l‟addition de chaque eacuteleacutement de B agrave A
L‟addition de Minkowski est commutative Elle est eacutegalement appeleacute dilatation
AaxaxAB
A
A
x
AxBxAaBaBbbABAC )()()(
le translateacute de X par b
Sami Gazzah 2009148
1I Rappels sur les ensembles
Eleacutement structurant les opeacuterations morphomatheacutematiques sont deacutefinis agrave
partir des ensemble B discrets appeleacute eacuteleacutement structurant Ces eacuteleacutement
permettent de deacutefinir le type de voisinage souhaiteacute
Addition de Minkowski d‟un ensemble A et d‟un ensemble B
BA
Sami Gazzah 2009149
1II Dilatation
Le reacutesultat de dilatation de lrsquoensemble A par lrsquoensemble B
est lrsquoaddition de Minkowski crsquoest lrsquoensemble des points tel
que lorsque B est centreacute sur un de ces points il y a une
intersection non vide entre A et B
Pour des images en niveaux de gris on obtient lrsquoimage
dilateacutee de la forme A en remplaccedilant tout pixel par le
maximum des intensiteacutes des voisins selon la forme B
Sami Gazzah 2009 150
1II Dilatation1 Image NampB
Soit k l‟eacuteleacutement structurant de taille (2k+1) x (2k+1) L‟algorithme de
dilatation est le suivant on parcourt tous les pixels de l‟image sauf les
bord de l‟image d‟eacutepaisseur k pour chaque pixel du fond rencontreacute s‟il
possegravede un voisin au sens de l‟eacuteleacutement structurant qui appartient agrave un
objet il prend le couleur de l‟objet si non il n‟est pas modifieacute
15122010
26
la dilatation (noteacutee ) drsquoune image monochrome laquo f raquo par un
eacuteleacutement structurant laquo B raquo est deacutefinie en terme de sous-graphe
bull f B = T [ Y ] = Supl l tel que (m n l) Y
bullY = U ( f ) U ( B )
En consideacuterant un eacuteleacutement structurant plan de valeur nulle sur son
support
( f B ) (P) = Max valeurs des pixels du voisinage du pixel P
1II Dilatation1 Image niveaux de gris
max
55 68 77 90 91 95 115 151 210
( f B ) (P) = 210
n
115 91 77
95 68 90
55 151 210
exemple
m
Image de reacutefeacuterence
Eacuteleacutement structurant
(8-connexiteacute)
liste ordonneacutee des valeurs du voisinage
- - -
-
-
-
-
-
1II Dilatation1 Image niveaux de gris
Exemples de filtrages morphologiques(eacuteleacutement structurant 33 complet)
Image de reacutefeacuterenceImage dilateacutee
morphologiquement
La dilatation en niveaux de gris accroicirct la luminance des
pixels entoureacutes de voisins plus lumineux
Observation
Sami Gazzah 2009154
VI Erosion
L‟eacuterosion est deacutefinie par
On deacutefinit la soustraction de Minkowski par
On a eacutequivalence entre eacuterosion et soustraction de Minkowski si B est
symeacutetrique (si B=-B)
D‟un point de vue binaire l‟eacuterode de A par B correspond agrave l‟ensemble
des points tels que si B est centre sur ce points B est entiegraverement inclus
dans A
AxBxBbbABAC )()(
)()( BbbABAC
Sami Gazzah 2009 155
VI Erosion1 Image NampB
on parcourt tous les pixels de l‟image sauf les bord de l‟image
d‟eacutepaisseur k pour chaque pixel du fond rencontreacute s‟il possegravede un
voisin au sens de l‟eacuteleacutement structurant qui appartient agrave un objet il
prend le couleur du fond si non il n‟est pas modifieacute
VI Eacuterosion drsquoune image en niveaux de gris
Lrsquoeacuterosion (noteacutee Ө ) drsquoune image monochrome laquo f raquo par un eacuteleacutement
structurant laquo B raquo est deacutefinie en terme de sous-graphe
bull f Ө B = T [ Y ] = Supl l tel que (m n l) Y
bullY = U ( f ) Ө U ( B )
Classiquement on considegravere un eacuteleacutement structurant plan de
valeur nulle sur son support
( f Ө B ) (P) = Min valeurs des pixels du voisinage du pixel P
15122010
27
VI Eacuterosion drsquoune image en niveaux de gris
min
68 90 91 95 151
( f Ө B ) (P) = 68
n
115 91 77
95 68 90
55 151 210
exemple
m
Image de reacutefeacuterence
ӨӨ
Eacuteleacutement structurant
(4-connexiteacute)
liste ordonneacutee des valeurs du voisinage
-
-
-
-
Exemples de filtrages morphologiques(eacuteleacutement structurant 33 complet)
Image eacuterodeacutee
Lrsquoeacuterosion en niveaux de gris reacuteduit la luminance des pixels
qui sont entoureacutes de voisins de moindre intensiteacute
Image de reacutefeacuterence
Observation
Sami Gazzah 2009 159
Eacuteleacutement structurant (a)
(4-connexiteacute)
-
-
-
-
Eacuteleacutement structurant (b)
(8-connexiteacute)
- - -
-
-
-
-
-
Exercice 1 Sur la mecircme image de deacutepart on reacutealise deux opeacuterations
de dilatations avec deux eacuteleacutements structurant diffeacuterents
Dilatation avec (a) Dilatation avec (b)
image de deacutepart
cas a L‟eacuteleacutement structurant est agrave 4-connexiteacute Chaque pixel
du support qui est eacutegal agrave la valeur 1 ou qui a l‟un de ses 4
voisins agrave la valeur 1 est mis agrave la valeur 1 apregraves filtrage
cas b L‟eacuteleacutement structurant est agrave 8-connexiteacute Chaque pixel
du support qui est eacutegal agrave la valeur 1 ou qui a l‟un de ses 8
voisins agrave la valeur 1 est mis agrave la valeur 1 apregraves filtrage
Dans les deux cas on observe qu‟une dilatation eacutelimine les
trous isoleacutes dans les objets et dilate le contour des objets en
tenant compte de l‟eacuteleacutement structurant
Sami Gazzah 2009 160
Exercice 1
Sami Gazzah 2009 161
Eacuteleacutement structurant (a)
(4-connexiteacute)
-
-
-
-
Eacuteleacutement structurant (b)
(8-connexiteacute)
- - -
-
-
-
-
-
Exercice 2 Sur la mecircme image de deacutepart on reacutealise deux opeacuterations
d‟eacuterosions avec deux eacuteleacutements structurant diffeacuterents
Erosion avec (a) Erosion avec (b)
image de deacutepart
cas a L‟eacuteleacutement structurant est agrave 4-connexiteacute (origine agrave 4 voisins)
Chaque pixel du support qui a la valeur 0 ou qui a l‟un de ses 4
voisins agrave la valeur 0 est mis agrave la valeur 0 apregraves filtrage
cas b L‟eacuteleacutement structurant est agrave 8-connexiteacute Chaque pixel du
support qui a la valeur 0 ou qui a l‟un de ses 8 voisins agrave la valeur 0
est mis agrave la valeur 0 apregraves filtrage
Dans les deux cas on observe qu‟une eacuterosion eacutelimine les pixels
isoleacutes sur le fond et eacuterode le contour des objets
Sami Gazzah 2009 162
Exercice 2
15122010
28
ConclusionsConclusions
Erosion
les objets relieacutes entre eux vont ecirctre seacutepareacutes
Une eacuterosion de taille n peut se reacutealiser en reacutepeacutetant une
eacuterosion n fois avec un eacuteleacutement structurant de taille 1 ou en
appliquant une seule eacuterosion avec un eacuteleacutement structurant
de taille n
Dilatation
des objets sont situeacutes agrave une distance moins grande que la taille
de leacuteleacutement structurant il vont fusionner
Sami Gazzah 2009 163 Sami Gazzah 2009 164
Sami Gazzah 2009 165
Elimine pixels isoleacutes sans inteacuterecirct
L‟ouverture (opening) consiste agrave une eacuterosion suivi d‟une dilatation
Les petites structures et deacutetail fins disparaissent et ne sont pas recreacuteeacutees
lors de la dilation Une opeacuteration d‟ouverture est ainsi inteacuteressante pour
eacuteliminer les petits morceaux de contours bruiteacutes dans une image de
contours
V Ouverture et fermeture1 Ouverture
BBABAC )(
Sami Gazzah 2009 166
V Ouverture et fermetureII Fermeture
La fermeture (closing) consiste agrave une dilatation suivi d‟une eacuterosion
Les structures proches fusionnent lors de la dilation mais seules les
fusions ponctuelles disparaissent agrave nouveau lors de l‟eacuterosion Une
opeacuteration de fermeture est ainsi inteacuteressante pour boucher les petits
trous
Sami Gazzah 2009 167 Sami Gazzah 2009 168
Exercice 3 Sur l‟image de deacutepart on reacutealise une opeacuteration de
fermeture binaire par l‟eacuteleacutement structurant 4-connexiteacute Conclusions
Eacuteleacutement structurant
(4-connexiteacute)
-
-
-
-Fermeture = dilatation puis eacuterosion
Image de deacutepart Image dilateacutee Image dilateacutee puis eacuterodeacutee
Combler les trous
Reacutetablir les jonctions
tout en preacuteservant la taille
15122010
29
Sami Gazzah 2009 169
Exercice 4 Sur l‟image de deacutepart on reacutealise une opeacuteration
d‟ouverture binaire par l‟eacuteleacutement structurant 4-connexiteacute Conclusions
Eacuteleacutement structurant
(4-connexiteacute)
-
-
-
-Ouverture = eacuterosion puis dilatation
Image de deacutepart Image eacuterodeacutee Image eacuterodeacutee puis dilateacutee
Supprimer les fausses alarmes
Seacuteparer les objets accoleacutes
tout en preacuteservant la tailleSami Gazzah 2009 170
Appliquer les filtres suivants sur limage donneacutee Quelles sont les valeurs choisies
aux bords de limage et quelles sont les modifications visuelles
a) filtre moyenneur M3acute3(19)
b) eacuterosion
c) dilatation
d) meacutedian
e) fermeture
f) ouverture
Exercice 5
Sami Gazzah 2009 171
IV Amincissement et Squelettisation
La squelette (skeleton) d‟une forme est l‟axe meacutedian L‟inteacuterecirct de cette
opeacuteration est dans
La reconnaissance de caractegraveres
Deacutetection des reacuteseaux routiers
La planification de trajectoirehellip
Une meacutethode couramment employeacutee est une amincissement reacutepeacuteteacute
jusqu‟agrave le convergence (n‟apporte aucune modification)
Sami Gazzah 2009 172
IV Amincissement et Squelettisation1 Opeacuteration Tout Ou Rien laquoHit or Missraquo
Cette transformation est deacutefinie par
leacuteleacutement structurant eacutetendu est centreacute sur chaque pixel de limage
comme pour les opeacuterations ensemblistes
la question poseacutee est est ce que le contenu de limage est identique au
contenu de leacuteleacutement structurant
si la reacuteponse est oui le pixel reacutesultant vaut 1 si non il vaut 0
Une application permet de deacutetecter des configurations locales
particuliegraveres dans une image
plusieurs masques peuvent ecirctre utiliseacutes indeacutependamment les images
reacutesultat eacutetant ensuite combineacutees par une opeacuteration ou
)()( cc BABABA
Bc-
est le compleacutementaire
local de B
Sami Gazzah 2009 173
IV Amincissement et Squelettisation1 Opeacuteration laquoHit or Missraquo
Exemple dopeacuteration Hit or Miss deacutetection des coinsSami Gazzah 2009 174
IV Amincissement et Squelettisation1 Amincissement (thinning)
bull La transformation TOR nous permet eacutegalement de deacutefinir
l‟amincissement
bullL‟amincissement consiste agrave soustraire limage reacutesultat dun hit or miss de
limage initiale
bull des amincissements successifs conduisent au squelettisation
)()( BAAAthin
15122010
30
Sami Gazzah 2009 175
IV Amincissement et Squelettisation1I Squelettisation
Appliquer des amincissements successifs puis s‟arrecircter lorsque l‟amincissement
n‟apporte plus de modification C‟est une eacuterosion particuliegravere ougrave les pixels sont
supprimeacutes agrave la condition quils ne provoquent pas la seacuteparation dune reacutegion en
deux
Sami Gazzah 2009 176
IV Amincissement et Squelettisation1I Squelettisation
Sami Gazzah 2009 177
Chapitre 7
Transformations
geacuteomeacutetriques 2D
Sami Gazzah 2009 178
I Introduction
On entend par transformation 2D l‟ensemble des transformations du
plan pouvant ecirctre appliqueacutees aux pixels de l‟image sans consideacuteration
de l‟intensiteacute
Par exemples
Reacuteduction agrandissement
Deacuteformation d‟image
Recalage d‟une photo scanneacutee
Recaler des images que l‟on veut comparer
Mosaiumlque d‟images
Sami Gazzah 2009 179
I Transformations euclidiennes
Elles preacuteservent les distances et les angles
Elles sont les compositions de translations et de rotations
1) Translation
Ougrave Tx et Ty sont les deacuteplacements en x et en y de la translation
y
x
Tyy
Txx
Sami Gazzah 2009 180
2) Rotation
15122010
31
Sami Gazzah 2009 181 Sami Gazzah 2009 182
3) Remarques (1)
Sami Gazzah 2009 183
3) Remarques (2)
Sami Gazzah 2009 184
II Homotheacuteties
Changement deacutechelle par rapport agrave lorigine (scaling zoom)
Ougrave Sx et Sy sont les facteurs dagrandissement ( gt1) ou de
reacuteduction ( lt1) en x et en y
ySy
xSx
y
x
Sami Gazzah 2009 185
II Homotheacuteties
Sami Gazzah 2009 186
II Homotheacuteties
15122010
32
Sami Gazzah 2009 187
III Reacuteflexions
Reacuteflexions par rapport aux axes (flip miroir)
Sami Gazzah 2009 188
IV Cisaillement
Cisaillement (glissement shearing) on eacutetire suivant un ou plusieurs axes
Sami Gazzah 2009 189
Transformations inverses
Sami Gazzah 2009 190
Repreacutesentation Matricielle
IV Autres (reacuteflexions miroirs et flips)
Sami Gazzah 2009 191
Interpolation Directe
Sami Gazzah 2009 192
oDifficile de distribuer le niveau de gris sur les pixels voisins
oOn n‟a pas la certitude que tous les pixels de l‟image
transformeacutee recevront une valeur =gt ldquotrousrdquo
15122010
33
Interpolation Inverse
Sami Gazzah 2009 193
o Interpolation de la valeur du pixel agrave partir des voisins plus
facile
oAucun ldquotrourdquo car on parcourt tous les pixels de l‟image
transformeacutee Sami Gazzah 2009 194
V Objet vectoriel - Objet bitmap
Objet vectoriel
Essentiellement on transforme
les sommets (ou points de
controcircle) et on retracehellip
Objet ldquobitmaprdquo
On doit calculer la nouvelle
position de chaque pixel De plus on
doit geacuteneacuteralement interpoler les
niveaux de gris (couleurs)hellip
Sami Gazzah 2009 195
IV Assignation des niveaux de gris
Neacutecessaire car la position d‟un pixel transformeacute n‟est pas entiegraverehellip
Plusieurs meacutethodes
Interpolation au plus proche voisin
Interpolation bilineacuteaire
Interpolation bicubique
Autres types d‟interpolation
Sami Gazzah 2009 196
IV Assignation des niveaux de gris
Linterpolation de limage cest ce qui arrive lorsquon redimensionne
une image numeacuterique ou quon la redimensionne avec une distorsion
quon change la perspective etc
Exemple 1
Image originale (sans interpolation)
Image agrandie et donc interpoleacutee
Perte de netteteacute due agrave linterpolation
Sami Gazzah 2009
197
IV Assignation des niveaux de gris
Exemple 2 recadrage dimage
Nous allons agrandir cette image agrave 180
Il va donc nous manquer des informations lagrave ougrave lon va creacuteer des
pixels pour agrandir limage
Reacutesultat sans interpolation le logiciel agrandit simplement les pixels
Reacutesultat avec interpolation le logiciel calcule une couleur intermeacutediaire
pour chaque nouveau pixel
Sami Gazzah 2009
198
IV Assignation des niveaux de gris
Image originale
Interpolation au plus
proche voisin
Interpolation
bilineacuteaireInterpolation
bicubique
15122010
34
Sami Gazzah 2009 199
IIV Interpolation au plus proche voisin
Cest lalgorithme le plus rapide agrave calculer
Prend en compte dans le calcul que le pixel le plus proche du point
agrave interpoler
Consiste tout simplement agrave agrandir chaque pixel
Exemple Interpolation du plus proche voisin par copie des pixels
Copie de chaque colonne et de chaque rang
23 20
25 28
23 23
23 23
20 20
20 20
25 25
25 25
28 28
28 28
Sami Gazzah 2009 200
IIV Interpolation bilineacuteaire
Fonction bilineacuteaire de 4 pixels voisins ( en 2 D )
i-1 i i+1
i-1 i-12 i i+12 i+1 i+32
yi=xiYi+12=(xi+xi+1)2
Problegraveme pour le dernier point
Extrapolation lineacuteaire de
2 xn-xn-1
Principe 1D
attribuer agrave chaque point cible une
combinaison lineacuteaire des quatre
points sources les plus proches par
la transformation inverse
Sami Gazzah 2009 201
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 202
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 203 Sami Gazzah 2009 204
IIV Interpolation bilineacuteaire
15122010
35
Sami Gazzah 2009 205
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 206
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 207
IIV Interpolation bilineacuteaire exemple
Sami Gazzah 2009 208
IIV Interpolation bicubique
Sami Gazzah 2009 209
exemple
Sami Gazzah 2009 210
Chapitre 8
Geacuteneacuteration de segments de
droite et de cercles en 2D
15122010
36
Sami Gazzah 2009 211
Infographie 2D besoin de dessiner des primitives de
base (segments cercles hellip)
Espace discreacutetiseacute (pixels) il faut trouver un moyen pour
afficher des segments ou des cercles
I Segments 2D cercles1 Introduction
Comment trouver les pixels agrave allumer pour approximer au mieux une
droite ou un cercle
Algorithme rapide et preacutecisSami Gazzah 2009 212
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=ax+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ya
Sami Gazzah 2009 213
Rappelhellip
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=mx+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ym
Sami Gazzah 2009 214
Exemple
Sami Gazzah 2009 215
Agrave partir des coordonneacutees des 2 extreacutemiteacutes d‟un segmenthellip
Un algorithme simple
Boucle de x1 agrave x2 dx=1
ALLUME (x Arrondir(y))
Avec x2gtx1
Arrondir(y) = Arrondir(ax+b)
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Sami Gazzah 2009 216
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Choix de lrsquoaxehellip
Peu efficace
bullagrave chaque iteacuteration 1 multiplication (ou division) + 1 addition
+ 1 arrondi
15122010
37
Sami Gazzah 2009 217
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
DDA (Digital Differential Analyzer)
y et m doivent ecirctre des reacuteelsSami Gazzah 2009 218
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Calcul en entier (donc plus rapide)
Baseacute sur le choix entre deux points discrets deacutependant de leur
distance respective avec le point reacuteel ideacuteal
On simplifie le problegraveme en traitant drsquoabord le traceacute drsquoun segment
dans le 1er octant m infeacuterieur agrave1 et positif (0ltmlt 1)
Facilement geacuteneacuteralisable aux autres octants
Sami Gazzah 2009 219
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Traceacute d‟un segment dans le premier octant mlt1
On part d‟un point (xi yi) allumeacute
Sami Gazzah 2009 220
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
On ne calcule pas reacuteellement les distances rArr on veacuterifie si la diffeacuterence
entre les deux distances est positive ou neacutegative
Le signe de la longueur (d1-d2) deacutetermine s‟il faut allumer le pixel L ou H
L
H
Sami Gazzah 2009 221
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Comme m=ΔyΔx on multiplie cette diffeacuterence par Δx pour eacuteviter la
division
Mais que vaut p1
Sami Gazzah 2009 222
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
15122010
38
Sami Gazzah 2009 223
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Pour eacuteviter de calculer cette diffeacuterence pour chaque point on cherche
une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
Sami Gazzah 2009 224
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009 225
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009
Exercice
Tracer le segment de droite
pi xi yi
2 0 0
-6 1 1
6 2 1
-2 3 2
10 4 2
2 5 3
-6 6 4
6 7 4
-2 8 5
10 9 5
2 10 6
6
10
y
x
Sami Gazzah 2009 227
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
Sami Gazzah 2009 228
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
hellip interchanger les points hellip
Si |Δx| lt | Δy| on interchange le rocircle de x et y
15122010
39
Sami Gazzah 2009 229
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (1)
Sami Gazzah 2009 230
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (2)
Sami Gazzah 2009 231
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (3)
Sami Gazzah 2009 232
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Toujours baseacute sur le choix entre deux
points discrets deacutependant de leur
distance respective avec le point reacuteel
On travaille dans le 2e octant agrave partir
de (0r) ainsi pour un point (xi yi) le
prochain point sera
(xi+1 yi) ou (xi+1 yi-1)
Sami Gazzah 2009 233
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On calcule le prochain y et les diffeacuterences respectives avec les points
discrets de la faccedilon suivante
Le signe de pi nous dira si nous devons choisir le point lateacuteral ou le diagonal
Sami Gazzah 2009 234
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Encore une fois pour eacuteviter de calculer cette diffeacuterence pour chaque point on
cherche une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
15122010
40
Sami Gazzah 2009 235
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On considegravere 2 cas
Valeur initiale
Sami Gazzah 2009 236
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Sami Gazzah 2009 237
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Exemple centre = (00) et r = 3
Sami Gazzah 2009 238
Livres
Diane Lingrand Introduction au Traitement d‟Images Paris Editions Vuibert 2e
eacutedition 2008
Steven k Feiner James D Foley John F Hughes Richard l Phillips Andries
Vanam Introduction agrave l‟infographie Paris Editions Vuibert 2000
William K Pratt Digital Image Processing Willy-Inter-sciences 4th edition 2007
Eacuteric Incerti Compression dimage ndash Algorithmes et standards Vuibert 2003
Gilles Burel Introduction au traitement dimages ndash Simulation sous Matlab
Hermegraves 2001
Sites web
Cours de C Rougier (U Montreacuteal)
httpwww-etudiroumontrealca~rougiercift2730courshtml (cf chapitre 3)
Page wikipeacutedia sur JPEG (en anglais plus complegravete que celle en franccedilais)
httpenwikipediaorgwikiJPEG
Cours de P Courtellemont (Campus numeacuterique Espdon)
httppersouniv-lrfrpcourtelespadonsite_web
Applet de deacutemo par C G Jennings
httpcgjenningscatoyboxhjpegindexhtml
Cours de D Marshall (U Cardiff)
httpwwwcscfacukDaveMultimediaPDF
Reacutefeacuterences
Sami Gazzah 2009 239
Chapitre 9
introduction au
traitement
dimages avec OpenGL
Sami Gazzah 2009 240
OpenGL est une librairie graphique Elle a eacuteteacute creacutee par Silicon
Graphics et beacuteneacuteficie sur ces machines de lacceacuteleacuteration mateacuterielle
Elle est constitueacute d‟environ 200 fonctions graphiques
OpenGL est une bibliothegraveque de fonctions
Les fonctions sont de bas niveaux
La version actuelle est l‟ laquo OpenGL 41 raquo (deacutecembre 2010)
Principale caracteacuteristique indeacutependant du mateacuteriel et du systegraveme
d‟exploitation
Une impleacutementation libre de droits dOpenGL tregraves performante a eacuteteacute
eacutecrite par Brian Paul httpwwwmesa3dorg Et tout son code source
est accessible
Preacutesentation geacuteneacuterale
15122010
41
Sami Gazzah 2009 241
OpenGL propose des fonctions de bas niveaux
Primitives geacuteomeacutetriques points segments polygones
Les fonctions de haut niveaux sont deacuteveloppeacutees par l‟utilisateur ou
importeacutees par la librairie en amont d‟OpenGL
Primitives geacuteomeacutetriques complexes Sphegravere splines etc
Toutes les commandes et fonctions utilisent le preacutefixe gl
Exemple glColor2f()
Sami Gazzah 2009 242
Les Bibliothegraveques co-existant avec OpenGL
GLU OpenGL Utility Library contient les routines de bas niveau pour
geacuterer les matrices de transformation et de projection la facettisation des
polygones et le rendu de surface Les bibliothegraveques dextension du
systegraveme de fenecirctres permettent lutilisation du rendu OpenGL Il sagit de
GLX pour X Windows (fonctions ayant pour preacutefixe glX) et de WGL
pour Microsoft Windows (fonctions ayant pour preacutefixe wgl)
GLUT OpenGL Utility Toolkit est une boite agrave outils indeacutependante du
systegraveme de fenecirctrage eacutecrite par Mark
Kilgard pour simplifier la tacircche dutiliser des systegravemes diffeacuterents (fonctions
ayant pour preacutefixe glut)
Sami Gazzah 2009 243
Les primitives geacuteomeacutetriques d rsquoOpenGL
Les primitives sont deacutecrites par un bloc d‟instructions deacutelimiteacute par glBegin et glEnd
Ce bloc contient geacuteneacuteralement une liste de vertex Exemple
glBegin(GL_LINE_LOOP)
glVertex2f(-05 -05)
glVertex2f(05 -05)
glVertex2f(05 05)
glVertex2f(-05 05)
glEnd()
D‟autres attributs peuvent ecirctre speacutecifieacutes en chaque sommet
couleur normale coordonneacutee de texture etcSami Gazzah 2009 244
OpenGL est une machine agrave eacutetats
En modifiant les variables d‟eacutetats on peut changer le style de rendu
Sami Gazzah 2009 245
Exemple Honda Hippo (3dRendercom)
Placage de textures
bullL‟apparence et le toucher ( feel ) d‟une surface
bullUne image utiliseacutee pour deacutefinir les caracteacuteristiques d‟une surface
bullUne image multi-dimensionnelle qui est plaqueacutee sur un espace multi-
dimensionnel
Sami Gazzah 2009 246
15122010
42
Sami Gazzah 2009 247
Reacutefeacuterences openGL
Sami Gazzah 2009 248
Chapitre 10
introduction au
traitement
dimages avec OpenCV
Sami Gazzah 2009 249
Preacutesentation geacuteneacuterale
Quest-ce
Open Source Computer Vision Library
Bibliothegraveque open source de traitement des images numeacuteriques
Projet initieacute par Intel (en 1999)
Teacuteleacutechargeable sur httpsourceforgenetprojectsopencvlibrary
Fortement orienteacutee temps reacuteel
eacutecrite en C et C++
optimiseacutee pour les processeurs multi-cœurs
Multi-plateformes disponible pour Linux Windows et Mac OS X
Que contient-elle
Des fonctionnaliteacutes (structures et routines gt350 algos) de base et
avanceacutees pour bacirctir rapidement des applications autour de la vision par
ordinateur
Exemples dutilisation traitements de bas niveau (filtrage ) deacutetection
de visages reconnaissance et suivi dobjets en mouvement Sami Gazzah 2009 250
Fonctionnaliteacutes
Lectureeacutecriture dimages statiques et de seacutequences videacuteo
APIs de bas et moyen niveaux
Traitement des images binaires
Manipulations dimage (eacutechantillonnage (sampling) reacutegion dinteacuterecirct (ROI)
redimensionnement (resizing) rotation deacuteformation (warping) )
Deacutetection de contours de lignes de coins (edge detection)
Traitements multi-eacutechelles (multiscale processing)
Transformeacutees (Fourier cosinus discregravete )
Modules de haut niveau
Deacutetection reconnaissance et suivi (tracking) de visages
Flot optique (estimation du mouvement) (optical flow)
Calibrage (calibration) de la cameacutera
Mise en correspondance steacutereacuteoscopique (stereo matching)
IA et apprentissage par ordinateur (machine learning)
3D mise en correspondance (registration)
Sami Gazzah 2009 251
Modules principaux
CxCore
Types de base pour manip dimages (ex struct image point isin cxtypesh)
Structures dynamiques (listes files graphes arbres) et persistantes (LE)
Manipulations de matrices meacutethodes de lalgegravebre lineacuteaire et statistiques
Dessin en surimpression (overlay) (ex eacutetiquetage)
Cv
Traitement dimage calibrage cameacutera
Geacuteomeacutetrie algorithmique (triangulation )
Cvaux
Reconnaissance de visage
Code expeacuterimental et obsolegravete
Autres (dans otherlibs)
HighGUI ES videacuteos curseurs fenecirctrage
ML classification regroupement (clustering)Sami Gazzah 2009 252
OpenCV premiers programmesBibliothegraveque OpenCV
15122010
43
Sami Gazzah 2009 253
Livre
G Bradski amp A Kaehler laquo Learning OpenCV raquo OReilly Press (2008)
codes sources httpexamplesoreillycom9780596516130
Ressources en ligne
Reacutefeacuterence complegravete httpopencvwillowgaragecomdocumentation
Wiki httpopencvwillowgaragecomwikiFullOpenCVWiki
bullPreacutesentation teacuteleacutechargement installation
bullavec CodeBlocks httpopencvwillowgaragecomwikiCodeBlocks
bullDeacutebuter avec OpenCV FAQ
Tutoriels
httpnchcdlsourceforgenetsourceforgeopencvlibraryippocvpdf
httpdaslmemdrexeledu~noahKuntzopenCVTut1html agrave Tut11html
httpwwwcognoticscomopencvservo_2007_series
Tutoriel sur la vision utilisant OpenCV (en franccedilais)
httpwwwsiteduzerocomtutoriel-3-8631-vision-par-ordinateurhtml
Reacutefeacuterences openCV
15122010
10
Sami Gazzah 2009 55
Quelques caracteacuteristiques drsquoimages numeacuteriques
La reacutesolution dune image = nombre de pixels par uniteacute de longueur de la
structure agrave numeacuteriser (dpi (dots per inches) ou ppp (pixel par pouce)
La reacutesolution du format de limage =nombre de pixels qui compose limage en
hauteur et en largeur (512 pixels par 512 pixels par exemple)
La taille des donneacutees pour une image (en bits) = Nlignes x Ncolonnes x B
La profondeur de bits = nombre de bits neacutecessaire pour repreacutesenter un pixel dans
l‟image numeacuterique
La dynamique dune image= leacutetendu de la gamme de couleurs 2nbre de bitspixels ndash 1
Le poids d‟une image numeacuterique est l‟espace meacutemoire qu‟elle occupe sur un
support de stockage numeacuterique = nombre de bits par pixel x nombre total de pixels
Sami Gazzah 2009 56
bullune image 200200 pixels en niveaux du gris fait un poids de
200200=40000 octets
bullimage de 200200 pixels en vraies couleurs (16 millions) (24 bits)
2002003= 120000 octets (117 Ko)
bull image de 200200 pixels en fausses couleurs (256 couleurs) (8 bits)
2002001= 40000 octets (39 Ko)
Taille des limages en pixels
Sami Gazzah 2009 57
Exercice drsquoapplication
Soit une image carreacutee au format PPM(ASCII) de 160 Ko
Quelles sont approximativement les dimensions de cette image si
on neacuteglige la taille de lrsquoen-tecircte
Quelle serait la taille du fichier si cette image eacutetait stockeacutee en
binaire
Remarques Le format PPM (Portable Pixel Map) concerne les
images couleurs Chaque pixel a pour valeur un triplet (RGB) et
chaque couleur est exprimeacutee par un caractegravere et un espace
Sami Gazzah 2009 58
Formats de fichiers dimages
Une image est un tableau de pixels
Une image est stockeacutee soit dans un fichier sous la forme de texte soit dans la
meacutemoire de lordinateur sous la forme dun vecteur
Sami Gazzah 2009 59
Les opeacuterations de bases concernant une image sont la lecture (fichier vers
meacutemoire) et leacutecriture (meacutemoire vers fichier) Les informations
neacutecessaires agrave la manipulation dune image sont
nombre de lignes
nombre de colonnes
format des pixels (bit niveaux de gris niveaux de couleurs)
compression eacuteventuelle
Il existe une multitude de formats de fichiers permettant de stocker ces
informations ainsi que le tableau des valeurs En particulier
Les formats simples fichiers textes comportant un entecircte contenant
les dimensions de limage et le format des pixels Exemples les formats
PNM (portable anymap) PBM (portable bitmap) PGM (prtrable
grayscalemap) PPM (portable pixmap) Les fichiers correspondants sont
constitueacutes des eacuteleacutements suivants Sami Gazzah 2009 60
1 Un nombre magique pour identifier les type du fichier P1 ou P4
pour PBM P2 ou P5 pour PGM et P3 ou P6 pour PPM
2 Un caractegravere despacement (blanc TABs Cs LFs)
3 La largeur de limage (valeur deacutecimale codeacutee en ASCII) suivie dun
caractegravere despacement la longueur de limage (valeur deacutecimale
ASCII) suivie dun caractegravere despacement
4 Uniquement pour PGM et PPM lintensiteacute maximum (valeur deacutecimale
comprise entre 0 et 255 codeacutee en ASCII) suivie dun caractegravere
despacement
5 Largeur x hauteur nombres Ces nombres sont soit des valeurs
deacutecimales codeacutees en ASCII et seacutepareacutees par des espacements dans le
cas des formats P1 P2 P3 soit directement les valeurs binaires sur 1
ou 2 octets dans le cas des formats P4 P5 P6 Dans ce dernier cas il
ny pas de caractegraveres despacement entre les valeurs
15122010
11
Sami Gazzah 2009 61
Chapitre 2
Transformations sur les images
Sami Gazzah 2009 62
Les transformations peuvent ecirctre classeacutees de la maniegravere suivante
bullTransformations ponctuelles
bullTransformations de voisinage
bullTransformations spectrales
bullTransformations morphologiques
Au cours du processus de traitement et drsquoanalyse lrsquoimage subit une seacuterie
de transformations
Introduction
Image sourceTransformationTransformation
TTImage transformeacutee
Sami Gazzah 2009 63
1 Transformations ponctuelles
A partir dune image source la nouvelle valeur du pixel deacutepend uniquement de
son ancienne valeur
Exemple seuillage ajustement luminositeacutecontraste opeacuterations algeacutebriques
opeacuterations logiques et arithmeacutetiques manip dhistogramme
1 Opeacuterations logiques et arithmeacutetiques
Les images opeacuterandes
doivent ecirctre de mecircme taille
peuvent ecirctre des images constantes
Exemples
addition soustraction
ET logique OU logique
Problegravemes
deacutebordements de [0 255]
normalisation Sami Gazzah 2009 64
Images en niveaux de gris ETOU logique bit agrave bit entre les 8 bits
codant les valeurs des pixels
Images binaires ETOU logique entre les pixels
Sami Gazzah 2009 65
Les opeacuterations logiques
bullET I(xy)=I1(xy) ET I2(xy) intersection logique
bullOU I(xy) = I1(xy) OU I2(xy) union logique
bullNOT I(xy) = NOT(I1(xy)
opeacuterations arithmeacutetiques
bullAddition I(xy)=I1(xy)+I2(xy)
bullSoustraction I(xy)=I1(xy)-I2(xy)
bullMultiplication
bullDivision par une constantehellip
Sami Gazzah 2009 66
Les opeacuterations logiques
15122010
12
Sami Gazzah 2009 67
Application
Masquage
Sami Gazzah 2009 68
Les Opeacuterations arithmeacutetiques
Addition dimages
Principe I(xy)=I1(xy)+I2(xy) pour tout pixel de coordonneacutees (xy)
Strateacutegies si deacutepassement de capaciteacute
bullDeacutecalage des valeurs dans [0 127] avant addition (perte du bit de poids faible)
bullSaturation I(xy) = min ( I1(xy)+I2(xy) 255)
bullPreacute-calcul des valeurs finales (theacuteoriques) minimale et maximale
puis recadrage de la dynamique
Utilisations principales
Augmentation de la luminance dune image (par addition dune constante ou
dune image avec elle-mecircme) et diminution du bruit dans une seacuterie dimages
))()((max
))()((min
21)(
max
21)(
min
yxIyxIi
yxIyxIi
Iyx
Iyx
))()((255
)( 21
minmax
yxIyxIii
yxI
Sami Gazzah 2009 69
Les Opeacuterations arithmeacutetiques
Soustraction dimages
Principe I(xy)=I1(xy)-I2(xy) pour tout pixel de coordonneacutees (xy)
Strateacutegies si deacutepassement de capaciteacute
bullSaturation I(xy) = max ( I1(xy) - I2(xy) 0)
bullDiffeacuterence absolue I(xy) = | I1(xy) - I2(xy) |
Utilisations principales
bullDiminution de la luminance dune image
bullDeacutetection de changements entre images
bulldeacutefauts (par comparaison avec une image de reacutefeacuterence)
bullmouvements (par comparaison avec une autre image de la seacutequence)
Sami Gazzah 2009 70
Rim Romdhaneet al AVSS10 rd the 7th IEEE International Conference on
Advanced Video and Signal-Based Surveillance Boston USA 2010
Sami Gazzah 2009 71
Addition et soustraction de deux images
Sami Gazzah 2009 72
Si on dispose de limage en niveau de gris et de limage binaire suivante
15122010
13
Sami Gazzah 2009 73
2 Identiteacute neacutegatif et Seuillage
Sami Gazzah 200974
2 Les opeacuterations geacuteomeacutetriques
Opeacuterations geacuteomeacutetriques sur une image en niveaux de gris
Sami Gazzah 2009 75
Une transformation de voisinage est telle que la nouvelle valeur
drsquoun pixel tient compte des pixels appartenant au voisinage du
pixel consideacutereacute
Le voisinage peut avoir une taille plus ou moins grande (3x3 5x5
7x7hellip) et il peut avoir une forme reacuteguliegravere (carreacute rectangle
hexagonehellip) ou bien une forme quelconque
3 Transformations de voisinage
Sami Gazzah 2009 76
Exemple de transformation de voisinage le
produit de convolution
dans le cas continu le produit de convolution de f par g est
deacutefini par
Dans le cas discret il est geacuteneacuteralement deacutefini sur un voisinage il
est donneacute par
Sami Gazzah 2009 77
Si on applique ceci agrave une image I1 de dimensions
finies et agrave moyenne de convolution K (K
Kernel=noyau) de dimension 3 x 3 les pixels de
lrsquoimage I1 obtenue par convolution de I2 par K ont
pour valeur
Sami Gazzah 2009 78
Nouvelle
image
Nouvelle valeur
de pixel21
1 11
1 111 11
Noyau
Nouvelle valeur de pixel =
9
22 2719
9 19
51 21 14Image
originale
111
111
111
9
1h
15122010
14
Sami Gazzah 2009 79
4-Transformations spectrales (1)
Transformeacutee de Fourier 2D (TF 2D)
- La TF est
Dans la cas 1D (Rappel)
Dans la cas 2D
- La TF inverse
- La TF est
- La TF inverse
Sami Gazzah 2009 80
4-Transformations spectrales (2)
Exemple des transformations spectrales transformeacutee de Fourier
Soit f(xy) deacutefinie par une matrice d‟eacutechantillons reacuteguliegraverement espaceacutes
N le nombre de lignes M nombre de colonnes
- La TF est deacutefinie par
- La TF inverse est deacutefinie par
Sami Gazzah 2009 81 Sami Gazzah 2009 82
Compression RLE (Run Length Encoding)
2 2 2 2 128 128 128 120 120 80 96 96 94 94 94 95 97 97 97 97
4 2 3 128 2 120 1 80 2 96 3 94 1 95 4 97
Utile quand il y a des reacutepeacutetitions dans la chaicircne agrave encoder
Exemple Formats BMP TIFF PCX (Paintbrush)
Sami Gazzah 2009 83
Chapitre 3
RESTAURATION DrsquoIMAGES
Sami Gazzah 2009 84
L‟acquisition s‟accompagne toujours d‟une distorsiondeacutegradation
Il existe diffeacuterentes sources de deacutegradation (bruit) d‟une image
bruit lieacute au contexte de lacquisition Bougeacute mauvaises conditions
d‟eacuteclairagehellip
bruit lieacute au capteur Capteur de mauvaises qualiteacutes mauvaise mise
au point etchellip
bruit lieacute agrave leacutechantillonnage Une mauvaise freacutequence
d‟eacutechantillonnage peut introduire dans l‟image des points blancs ou
noirs connus souvent sous l‟appellation laquo sel et poivre raquo
bruit lieacute agrave la nature de la scegravene Preacutesence de fumeacutee de nuage
etchellip
Il faut corriger l‟image par un proceacutedeacute algorithmique
15122010
15
Sami Gazzah 2009 85
Restauration des Images monochromatiques et des images
couleurs
Au deacutebut de l‟imagerie numeacuterique les algorithmes deacuteveloppeacutes eacutetaient
destineacutes aux images en niveaux de gris Avec les progregraves techniques et le
deacuteveloppement des outils informatiques le traitement des images
couleurs est devenu possible
bull Approche marginale
Sami Gazzah 2009 86
Approche vectorielle
Dans lapproche vectorielle le vecteur couleur est consideacutereacute globalement
et le traitement doit ecirctre alors reacuteellement vectoriel Il ny a pas dans ce cas
une eacutetape de fusion ou de seacuteparation explicite entre les diffeacuterentes
composantes couleur de lrsquoimage Dans ce cas la correacutelation entre les
diffeacuterentes composantes peut ecirctre prise en compte ce qui aboutit
geacuteneacuteralement agrave des reacutesultats meilleurs que ceux du traitement marginal
Sami Gazzah 2009 87
Rappel
Sami Gazzah 2009 88
Sami Gazzah 2009 89
Nouvelle
image
Nouvelle valeur
de pixel21
1 11
1 111 11
Noyau
Nouvelle valeur de pixel =
9
22 2719
9 19
51 21 14Image
originale
Sami Gazzah 2009 90
15122010
16
Sami Gazzah 2009 91
Lissage spatial tout en remplacent la valeur du pixel courant par la moyenne de
tous les pixels inclus dans un voisinage centreacute en ce point
Sami Gazzah 2009 92
Sami Gazzah 2009 93 Sami Gazzah 2009 94
En traitement d‟image les tailles des fenecirctres utiliseacutees pour le
filtrage meacutedian sont geacuteneacuteralement impaires 3 3 5 5 7 7
exemple
fenecirctre de 5 pixels en croix
Pour les fenecirctres de taille paire ( 2 K valeurs ) apregraves
ordonnancement croissant des valeurs prendre la moyenne des 2
valeurs centrales
valeur de sortie( Kiegraveme valeur ordonneacutee + (K+1)iegraveme valeur ordonneacutee )
2=
Sami Gazzah 2009 95 Sami Gazzah 2009 96
15122010
17
Sami Gazzah 2009 97
Image laquo Piegraveces raquo de reacutefeacuterence bruiteacutee ( bruit de type impulsionnel ) puis filtreacutee
avec un filtre moyenneur (33) et un filtre meacutedian (33)
Image de reacutefeacuterence Image bruiteacutee
Bruit
Le filtrage meacutedian est plus adapteacute que le filtrage
lineacuteaire pour reacuteduire le bruit impulsionnel
Observation
Comparaison filtre meacutedian et filtre moyenneur
Sami Gazzah 2009 99 Sami Gazzah 2009 100
Sami Gazzah 2009 101 Sami Gazzah 2009 102
Chapitre 4
REHAUSSEMENT DrsquoIMAGES
15122010
18
Sami Gazzah 2009 103
Introduction
Le preacutetraitement d‟image est l‟ensemble des opeacuterations effectueacutees sur
une image soit pour l‟ameacuteliorer soit pour la restaurer
Le preacutetraitement d‟une image vise soit agrave renforcer la ressemblance des
pixels soit au contraire agrave accentuer les diffeacuterences de pixels d‟une mecircme
reacutegion
Accroitre la seacuteparabiliteacute des reacutegions composant une scegravene revient agrave
augmenter les contrastes vu
On applique le rehaussement des images afin de faciliter l‟interpreacutetation
visuelle et la compreacutehension des images
Pour comprendre ce type de rehaussement il faut comprendre le concept
d‟histogrammeSami Gazzah 2009 104
Deacutefinition de lrsquohistogramme drsquoune image
L‟histogramme est un outil qui permet de comptabiliser le nombre
d‟occurrences de chacune des valeurs dans une image en niveaux de gris
Dans une image couleur il est neacutecessaire d‟utiliser plusieurs
histogramme sur chacune des composantes du systegraveme de repreacutesentation
de la couleur
Soit h l‟histogramme de l‟image I de dimension (w x h) h[i] repreacutesente
le nombre d‟occurrence de chaque niveau de quantification i La probabiliteacute
estimeacutee du niveau i dans une image I est
hw
ihip
][)(
Image de 256 256 pixels
codeacutes chacun sur 8 bitsPopulation de pixels pour chaque
niveaux de gris [0 255]
Pour chaque niveau de gris on compte le nombre de pixels s‟y reacutefeacuterant
Pour chaque niveau on trace le graphe en bacircton du nombre de pixels
(possibiliteacute de regrouper les niveaux proches en une seule classe)
Exemple drsquohistogramme pour une image en niveaux
de gris
0 50 100 150 200 250
0
200
400
600
800
1000
cameraman
Image laquo A raquo en
niveaux de gris
Matrice des valeurs de luminance
des pixels de lrsquoimage laquo A raquo
Histogramme
de lrsquoimage
laquo A raquo
2 2 2 2 2 2 2 2
2 0 0 0 0 0 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 0 0 0 0 0 2
2 2 2 2 2 2 2 2
Les niveaux 0 1 et 2 sont respectivement repreacutesenteacutes par 24 12 et 28 pixels
repreacutesentation de cette population de pixels sur lhistogramme
Limage laquo A raquo comporte 3 niveaux de gris diffeacuterents 0 1 et 2
Compter le nombre de pixels pour chaque niveau de gris agrave lrsquoaide de la
matrice des valeurs de luminance
Exemple simple de calcul drsquohistogramme pour une image
Image laquo A raquoValeurs de luminance de
laquo A raquo
Histogramme cumuleacute de
laquo A raquo
2 2 2 2 2 2 2 2
2 0 0 0 0 0 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 0 0 0 0 0 2
2 2 2 2 2 2 2 2
Calcul dun histogramme particulier faisant appel aux cumuls des niveaux de gris
Histogramme cumuleacute
Utile pour certains traitements dimage tels que lrsquoeacutegalisation
dhistogramme ( ameacutelioration de contraste)
Chaque bacircton cumule le nombre de pixels du niveaux de gris concerneacute et des
niveaux de gris infeacuterieurs les niveaux 0 1 2 sont donc repreacutesenteacutes
respectivement par 24 36 et 64 pixels
Histogramme cumuleacute drsquoune image L‟histogramme ne donne pas L‟histogramme ne donne pas
d‟informations sur la reacutepartitiond‟informations sur la reacutepartition
Trois images diffeacuterentes ayant un mecircme histogramme
15122010
19
Modification de lrsquohistogrammeModification de lrsquohistogramme
On appelle dynamique des niveaux de gris lintervalle [nminnmax] de
niveaux de gris dans lequel sont compris tous les pixels de limage
Le but de la modification dhistogramme modifier chaque niveau de
gris pour accroicirctre le contraste On modeacutelise cette transformation par
leacutequation Irsquo(ij) = g(I(ij)) ougrave g est la fonction de contraste
Chaque transformation sera deacutecrite par une courbe repreacutesentant la
relation entre un niveau de gris de limage de deacutepart (abscisse) et le
niveau qui lui correspond dans limage ameacutelioreacutee (ordonneacutee)
Sami Gazzah 2009 109
Masquage de zones Masquage de zones Extraction d‟une Extraction d‟une
fenecirctre d‟intensiteacutefenecirctre d‟intensiteacute ((slicingslicing intensiteacute)intensiteacute)
Cette transformation consiste agrave remplacer un intervalle de niveaux
de gris par du blanc (nmax) par du noir (nmin) ou par une valeur
intermeacutediaire du niveau de gris
Sami Gazzah 2009 110
Courbes repreacutesentant de gauche agrave droite lextraction dune fenecirctre dintensiteacute et le masquage blanc et noir de lintervalle [ab]
n-1
n-1
0 n-1
n-1
0a ab b n-1
n-1
0 a b
Sami Gazzah 2009 111
Exemples de Masquage de zonesInversion de la dynamiqueInversion de la dynamique
But produire le neacutegatif d‟une image
donneacutee
Sami Gazzah 2009 112
Sami Gazzah 2009 113
Etirement drsquohistogramme
Sami Gazzah 2009 114
Etirement drsquohistogramme
Augmentation du contraste par eacutetirement d‟histogramme
15122010
20
Sami Gazzah 2009 115
Eacutegalisation dhistogramme
But ameacutelioration du contraste
Distribution uniforme des niveaux de gris
Elle se deacutefinit agrave laide de lhistogramme cumuleacute de limage hc(n)
qui repreacutesente le nombre de pixels de limage dont le niveau de
gris est infeacuterieur ou eacutegal agrave n
Deacutefinition de la transformation deacutegalisation dhistogramme soit
I le niveau de gris dun pixel de deacutepart le niveau de gris de limage
darriveacutee I‟ sera
Sami Gazzah 2009 116
Sami Gazzah 2009 117
Effet de lrsquoeacutegalisation drsquohistogramme
Sami Gazzah 2009 118
Augmentation du contraste exemples et comparaison
Original Eacutetirement d‟histogramme Eacutegalisation
Le rehaussement du contraste est plus marqueacute avec l‟eacutegalisation
d‟histogramme autorisant la deacutetection de structures situeacutees dans
l‟ombre
Sami Gazzah 2009 119
Chapitre 5
SEGMENTATION DrsquoIMAGES
Sami Gazzah 2009 120
Une image est geacuteneacuteralement composeacutee d‟objets L‟analyse de cette
image neacutecessite l‟identification de ces objets
La segmentation dimages est lun des problegravemes phares du traitement
dimages Elle consiste agrave partitionner limages en un ensemble de
reacutegions connexes Linteacuterecirct de ces reacutegions est de pouvoir ecirctre
manipuleacutees ensuite via des traitements de haut niveau pour extraire
des caracteacuteristiques de forme de position de taille etc
Introduction
15122010
21
Sami Gazzah 2009 121 Sami Gazzah 2009 122
Meacutethodes statistiquesSegmentation par Histogrammes
Sami Gazzah 2009 123
Meacutethodes statistiquesSeacutelection Reacutecursive sur Histogrammes
Ohlander Price et Reddy (1978)
Sami Gazzah 2009 124
Segmentation par approche contourIntroduction
Le contour est deacutefini comme le lieu des points connexes qui
possegravedent une forte transition d‟intensiteacute lumineuse ou de texture Le
traitement qui vise agrave l‟obtenir est appeleacute extraction de contour on
parle aussi de deacutetection de contour
Le processus d‟extraction de contour peut ecirctre deacutecomposeacute en
plusieurs eacutetapes distinctes que nous allons les deacutetailler comme suit
- La mise en eacutevidence des contours
- L‟extraction des contours
- La fermeture des contours
Sami Gazzah 2009 125
Segmentation par approche contourLa mise en eacutevidence des contours
Elle s‟obtient par une diffeacuterentiation de l‟image et elle peut
s‟appliquer agrave des images binaires ou non le but de la deacutetection de
contours est d‟obtenir dans un premier temps une image binaire ougrave
chaque contour est d‟eacutepaisseur 1 et sans discontinuiteacute
rehausser le contour
suivre le contour
les points du contour correspondent au maximum en valeur absolue
de la deacuteriveacutee primaire de l‟image on obtient alors un gradient ou au
passage par zeacutero de la deacuteriveacutee seconde de l‟image on obtient alors
un laplacien
Sami Gazzah 2009 126
Segmentation par approche contourLa mise en eacutevidence des contours
La deacutetection de contours peut ecirctre reacutealiseacutee gracircce agrave des filtres
dont les coefficients ont eacuteteacute soigneusement choisis Nous
aborderons dans cette preacutesentation 3 filtres les filtres de
Prewitt Roberts et Sobel
Ce jeu de filtres (Prewitt Roberts et Sobel) est constitueacute d‟une
paire de filtres lineacuteaires qui deacutetectent le contours dans deux
directions orthogonales (vertical et horizontal)
15122010
22
Sami Gazzah 2009 127
Segmentation par approche contourFiltre de Perwitt
Les filtres de Perwitt sont les suivants
Filtre horizontal
Filtre vertical
111
000
111
h
101
101
101
v
Sami Gazzah 2009 128
Segmentation par approche contourFiltre de Perwitt
A partir d‟une image I on calcule Gh et Gv images
correspondant au filtrage de I par h et v Ces images
contiennent les contours horizontaux et verticaux
Si l‟on souhaite obtenir une image de contour unique ne tenant
pas compte de l‟orientation on calcule
Orientation du contour
Image binairehellipchoisir un seuil de deacutetection
22
vh GGG
)(vh
GGarctg
Sami Gazzah 2009 129
Segmentation par approche contourFiltre de Sobel
Les filtres de Sobel sont les suivants
Filtre horizontal
Filtre vertical
121
000
121
h
101
202
101
v
Sami Gazzah 2009 130
Segmentation par approche contourFiltre de Sobel
Sami Gazzah 2009 131
Segmentation par approche contourFiltre de Sobel
Sami Gazzah 2009 132
Segmentation par approche contourFiltre de Roberts
Les filtres de Roberts sont les suivants
Filtre diagonal
Filtre anti-diagonal
10
01h
01
10v
15122010
23
Sami Gazzah 2009 133
Segmentation par approche contourFiltre de Kirsch
Ce deacutetecteur utilise huit noyaux de convolution lui permettant de deacutetecter
des contours en fonction de huit directions agrave
15
335
305
335
1
d 15
333
305
355
2
d 15
333
303
555
3
d
15
333
503
553
4
d 15
533
503
533
5
d 15
555
503
333
6
d
15
555
303
333
7
d 15
355
305
333
8
d
Sami Gazzah 2009 134
Contours et Laplacien
Il s‟agit de calculer la deacuteriveacutee seconde de l‟image
Le Laplacien est tregraves sensible au bruit pour limiter l‟effet du bruit le
Laplacien est approximeacute par un masque qui effectue en mecircme temps
une opeacuteration de filtrage par une Gaussienne qui repreacutesente l‟eacutetape
de lissage de l‟image puis vient l‟application du laplacien Les masques
du Laplacien Gaussien sont preacutesenteacutes ci-apregraves
Segmentation par approche contour
Sami Gazzah 2009 135
Contours et Laplacien
Le contour est ensuite deacutetermineacute par la deacutetection des
passages par zeacutero du laplacien de l‟image
88888888888888
010
141
010
1h
111
101
111
2h
121
242
121
3h
Sami Gazzah 2009 136
Contours et Laplacien
Sami Gazzah 2009 137
Seuillage
Les filtres preacuteceacutedents nous fournissent des images des sauts ou
diffeacuterences d‟intensiteacute
Le seuillage permet d‟eacuteliminer des points en lesquels la diffeacuterence
d‟intensiteacute est tregraves faible
Le seuillage peut ecirctre pousser afin d‟obtenir une image binaire (TOR)
Le seuillage dans sa forme le plus simple ne tient pas compte de la
topologie et peut conserver un point bruiteacute isoleacute ou eacuteliminer une portion
de contour d‟intensiteacute faible
Sami Gazzah 2009 138
Seuillage par hysteacutereacutesis
c‟est une fonction agrave deux seuils un seuil bas et un seuil haut
Tout point dont le module de contour est au-dessus du seuil-haut est un
point de contour
Tout point dont le module de contour est au-dessous du seuil-bas n‟est
pas un point de contour
Les points de module entre le seuil-bas et le seuil-haut sont des points
de contour s‟il possegravede un point de contour dans leur voisinage
15122010
24
Sami Gazzah 2009 139
Seuillage par hysteacutereacutesis
seuil haut
Seuil bas
point sur contour
point hors contour
Seuillage par hysteacuterisais les points de lrsquoimage de contour de valeur
supeacuterieur au seuil haut sont des points de contours A partir de ces points de
contours le voisinage de la direction du contour sont examineacutes srsquoils sont de
valeur supeacuterieure au seuil bas ils sont ajouteacutes au points de contoursSami Gazzah 2009 140
Chapitre 6
Introduction aux
opeacuterateurs
morphomatheacutematique
Sami Gazzah 2009 141
1 Introduction
Les opeacuterateurs morphomatheacutematique (=Morphologie Matheacutematique)
permettent d‟ameacuteliorer les images de contours et apporter d‟autres
fonctionnaliteacutes
Ils ont eacuteteacute initialement appliqueacute sur des images NampB (Matheron et
Sarra1965) ensuite eacutetendus agrave des images en nivaux de gris par Doupherty
(1978)
Pour les appliquer sur des images couleurs on peut les appliquer
seacutepareacutement agrave chaque composante couleur et combiner les reacutesultats
Sami Gazzah 2009 142
Diffeacuterentes opeacuterations
eacuterosion dilatation
ouverture fermeture
Squelettisation
hellip
1 Introduction
Sami Gazzah 2009 143
1 Introduction
Dilatation
Ajouter un pixel sur les pourtours de la forme
boucher les trous
Erosion
Enlever un pixel sur les pourtours de la forme
les objets de taille infeacuterieure agrave celle de leacuteleacutement
structurant vont disparaicirctre
agrandit les trous
Sami Gazzah 2009144
1I Rappels sur les ensembles
L‟eacutegaliteacute
L‟inclusion
Lbdquointersection
L‟union
La diffeacuterence
La diffeacuterence symeacutetrique
La compleacutementariteacute E eacutetant un ensemble
servant de reacutefeacuterentielle
Dans ce qui suit les lettres majuscules deacutesignent des ensembles et les lettres
minuscules deacutesignent des eacuteleacutements appartenant aux ensembles
Sur les ensembles on deacutefinit les opeacuterations suivantes
15122010
25
Sami Gazzah 2009145
1I Rappels sur les ensembles
Sami Gazzah 2009146
1I Rappels sur les ensembles
Lois de De Morgan
Reacuteflexion La reacuteflexion d‟un ensemble A est deacutefinie par
Un ensemble symeacutetrique veacuterifiant ndashA=A C‟est le cas des cercles et des carreacute par
exemple
ccc YXYX )(
ccc YXYX )(
AaaA
A -A B -B
Sami Gazzah 2009147
1I Rappels sur les ensembles
Addition de Minkowski l‟addition d‟un eacuteleacutement x agrave un ensemble A par x est
deacutefinie par
Cette notion n‟est pas uniquement ensembliste elle nous oblige agrave deacutefinir un point
de reacutefeacuterence
On en deacuteduit l‟addition d‟un ensemble B agrave un ensemble A c‟est le reacutesultat de
l‟addition de chaque eacuteleacutement de B agrave A
L‟addition de Minkowski est commutative Elle est eacutegalement appeleacute dilatation
AaxaxAB
A
A
x
AxBxAaBaBbbABAC )()()(
le translateacute de X par b
Sami Gazzah 2009148
1I Rappels sur les ensembles
Eleacutement structurant les opeacuterations morphomatheacutematiques sont deacutefinis agrave
partir des ensemble B discrets appeleacute eacuteleacutement structurant Ces eacuteleacutement
permettent de deacutefinir le type de voisinage souhaiteacute
Addition de Minkowski d‟un ensemble A et d‟un ensemble B
BA
Sami Gazzah 2009149
1II Dilatation
Le reacutesultat de dilatation de lrsquoensemble A par lrsquoensemble B
est lrsquoaddition de Minkowski crsquoest lrsquoensemble des points tel
que lorsque B est centreacute sur un de ces points il y a une
intersection non vide entre A et B
Pour des images en niveaux de gris on obtient lrsquoimage
dilateacutee de la forme A en remplaccedilant tout pixel par le
maximum des intensiteacutes des voisins selon la forme B
Sami Gazzah 2009 150
1II Dilatation1 Image NampB
Soit k l‟eacuteleacutement structurant de taille (2k+1) x (2k+1) L‟algorithme de
dilatation est le suivant on parcourt tous les pixels de l‟image sauf les
bord de l‟image d‟eacutepaisseur k pour chaque pixel du fond rencontreacute s‟il
possegravede un voisin au sens de l‟eacuteleacutement structurant qui appartient agrave un
objet il prend le couleur de l‟objet si non il n‟est pas modifieacute
15122010
26
la dilatation (noteacutee ) drsquoune image monochrome laquo f raquo par un
eacuteleacutement structurant laquo B raquo est deacutefinie en terme de sous-graphe
bull f B = T [ Y ] = Supl l tel que (m n l) Y
bullY = U ( f ) U ( B )
En consideacuterant un eacuteleacutement structurant plan de valeur nulle sur son
support
( f B ) (P) = Max valeurs des pixels du voisinage du pixel P
1II Dilatation1 Image niveaux de gris
max
55 68 77 90 91 95 115 151 210
( f B ) (P) = 210
n
115 91 77
95 68 90
55 151 210
exemple
m
Image de reacutefeacuterence
Eacuteleacutement structurant
(8-connexiteacute)
liste ordonneacutee des valeurs du voisinage
- - -
-
-
-
-
-
1II Dilatation1 Image niveaux de gris
Exemples de filtrages morphologiques(eacuteleacutement structurant 33 complet)
Image de reacutefeacuterenceImage dilateacutee
morphologiquement
La dilatation en niveaux de gris accroicirct la luminance des
pixels entoureacutes de voisins plus lumineux
Observation
Sami Gazzah 2009154
VI Erosion
L‟eacuterosion est deacutefinie par
On deacutefinit la soustraction de Minkowski par
On a eacutequivalence entre eacuterosion et soustraction de Minkowski si B est
symeacutetrique (si B=-B)
D‟un point de vue binaire l‟eacuterode de A par B correspond agrave l‟ensemble
des points tels que si B est centre sur ce points B est entiegraverement inclus
dans A
AxBxBbbABAC )()(
)()( BbbABAC
Sami Gazzah 2009 155
VI Erosion1 Image NampB
on parcourt tous les pixels de l‟image sauf les bord de l‟image
d‟eacutepaisseur k pour chaque pixel du fond rencontreacute s‟il possegravede un
voisin au sens de l‟eacuteleacutement structurant qui appartient agrave un objet il
prend le couleur du fond si non il n‟est pas modifieacute
VI Eacuterosion drsquoune image en niveaux de gris
Lrsquoeacuterosion (noteacutee Ө ) drsquoune image monochrome laquo f raquo par un eacuteleacutement
structurant laquo B raquo est deacutefinie en terme de sous-graphe
bull f Ө B = T [ Y ] = Supl l tel que (m n l) Y
bullY = U ( f ) Ө U ( B )
Classiquement on considegravere un eacuteleacutement structurant plan de
valeur nulle sur son support
( f Ө B ) (P) = Min valeurs des pixels du voisinage du pixel P
15122010
27
VI Eacuterosion drsquoune image en niveaux de gris
min
68 90 91 95 151
( f Ө B ) (P) = 68
n
115 91 77
95 68 90
55 151 210
exemple
m
Image de reacutefeacuterence
ӨӨ
Eacuteleacutement structurant
(4-connexiteacute)
liste ordonneacutee des valeurs du voisinage
-
-
-
-
Exemples de filtrages morphologiques(eacuteleacutement structurant 33 complet)
Image eacuterodeacutee
Lrsquoeacuterosion en niveaux de gris reacuteduit la luminance des pixels
qui sont entoureacutes de voisins de moindre intensiteacute
Image de reacutefeacuterence
Observation
Sami Gazzah 2009 159
Eacuteleacutement structurant (a)
(4-connexiteacute)
-
-
-
-
Eacuteleacutement structurant (b)
(8-connexiteacute)
- - -
-
-
-
-
-
Exercice 1 Sur la mecircme image de deacutepart on reacutealise deux opeacuterations
de dilatations avec deux eacuteleacutements structurant diffeacuterents
Dilatation avec (a) Dilatation avec (b)
image de deacutepart
cas a L‟eacuteleacutement structurant est agrave 4-connexiteacute Chaque pixel
du support qui est eacutegal agrave la valeur 1 ou qui a l‟un de ses 4
voisins agrave la valeur 1 est mis agrave la valeur 1 apregraves filtrage
cas b L‟eacuteleacutement structurant est agrave 8-connexiteacute Chaque pixel
du support qui est eacutegal agrave la valeur 1 ou qui a l‟un de ses 8
voisins agrave la valeur 1 est mis agrave la valeur 1 apregraves filtrage
Dans les deux cas on observe qu‟une dilatation eacutelimine les
trous isoleacutes dans les objets et dilate le contour des objets en
tenant compte de l‟eacuteleacutement structurant
Sami Gazzah 2009 160
Exercice 1
Sami Gazzah 2009 161
Eacuteleacutement structurant (a)
(4-connexiteacute)
-
-
-
-
Eacuteleacutement structurant (b)
(8-connexiteacute)
- - -
-
-
-
-
-
Exercice 2 Sur la mecircme image de deacutepart on reacutealise deux opeacuterations
d‟eacuterosions avec deux eacuteleacutements structurant diffeacuterents
Erosion avec (a) Erosion avec (b)
image de deacutepart
cas a L‟eacuteleacutement structurant est agrave 4-connexiteacute (origine agrave 4 voisins)
Chaque pixel du support qui a la valeur 0 ou qui a l‟un de ses 4
voisins agrave la valeur 0 est mis agrave la valeur 0 apregraves filtrage
cas b L‟eacuteleacutement structurant est agrave 8-connexiteacute Chaque pixel du
support qui a la valeur 0 ou qui a l‟un de ses 8 voisins agrave la valeur 0
est mis agrave la valeur 0 apregraves filtrage
Dans les deux cas on observe qu‟une eacuterosion eacutelimine les pixels
isoleacutes sur le fond et eacuterode le contour des objets
Sami Gazzah 2009 162
Exercice 2
15122010
28
ConclusionsConclusions
Erosion
les objets relieacutes entre eux vont ecirctre seacutepareacutes
Une eacuterosion de taille n peut se reacutealiser en reacutepeacutetant une
eacuterosion n fois avec un eacuteleacutement structurant de taille 1 ou en
appliquant une seule eacuterosion avec un eacuteleacutement structurant
de taille n
Dilatation
des objets sont situeacutes agrave une distance moins grande que la taille
de leacuteleacutement structurant il vont fusionner
Sami Gazzah 2009 163 Sami Gazzah 2009 164
Sami Gazzah 2009 165
Elimine pixels isoleacutes sans inteacuterecirct
L‟ouverture (opening) consiste agrave une eacuterosion suivi d‟une dilatation
Les petites structures et deacutetail fins disparaissent et ne sont pas recreacuteeacutees
lors de la dilation Une opeacuteration d‟ouverture est ainsi inteacuteressante pour
eacuteliminer les petits morceaux de contours bruiteacutes dans une image de
contours
V Ouverture et fermeture1 Ouverture
BBABAC )(
Sami Gazzah 2009 166
V Ouverture et fermetureII Fermeture
La fermeture (closing) consiste agrave une dilatation suivi d‟une eacuterosion
Les structures proches fusionnent lors de la dilation mais seules les
fusions ponctuelles disparaissent agrave nouveau lors de l‟eacuterosion Une
opeacuteration de fermeture est ainsi inteacuteressante pour boucher les petits
trous
Sami Gazzah 2009 167 Sami Gazzah 2009 168
Exercice 3 Sur l‟image de deacutepart on reacutealise une opeacuteration de
fermeture binaire par l‟eacuteleacutement structurant 4-connexiteacute Conclusions
Eacuteleacutement structurant
(4-connexiteacute)
-
-
-
-Fermeture = dilatation puis eacuterosion
Image de deacutepart Image dilateacutee Image dilateacutee puis eacuterodeacutee
Combler les trous
Reacutetablir les jonctions
tout en preacuteservant la taille
15122010
29
Sami Gazzah 2009 169
Exercice 4 Sur l‟image de deacutepart on reacutealise une opeacuteration
d‟ouverture binaire par l‟eacuteleacutement structurant 4-connexiteacute Conclusions
Eacuteleacutement structurant
(4-connexiteacute)
-
-
-
-Ouverture = eacuterosion puis dilatation
Image de deacutepart Image eacuterodeacutee Image eacuterodeacutee puis dilateacutee
Supprimer les fausses alarmes
Seacuteparer les objets accoleacutes
tout en preacuteservant la tailleSami Gazzah 2009 170
Appliquer les filtres suivants sur limage donneacutee Quelles sont les valeurs choisies
aux bords de limage et quelles sont les modifications visuelles
a) filtre moyenneur M3acute3(19)
b) eacuterosion
c) dilatation
d) meacutedian
e) fermeture
f) ouverture
Exercice 5
Sami Gazzah 2009 171
IV Amincissement et Squelettisation
La squelette (skeleton) d‟une forme est l‟axe meacutedian L‟inteacuterecirct de cette
opeacuteration est dans
La reconnaissance de caractegraveres
Deacutetection des reacuteseaux routiers
La planification de trajectoirehellip
Une meacutethode couramment employeacutee est une amincissement reacutepeacuteteacute
jusqu‟agrave le convergence (n‟apporte aucune modification)
Sami Gazzah 2009 172
IV Amincissement et Squelettisation1 Opeacuteration Tout Ou Rien laquoHit or Missraquo
Cette transformation est deacutefinie par
leacuteleacutement structurant eacutetendu est centreacute sur chaque pixel de limage
comme pour les opeacuterations ensemblistes
la question poseacutee est est ce que le contenu de limage est identique au
contenu de leacuteleacutement structurant
si la reacuteponse est oui le pixel reacutesultant vaut 1 si non il vaut 0
Une application permet de deacutetecter des configurations locales
particuliegraveres dans une image
plusieurs masques peuvent ecirctre utiliseacutes indeacutependamment les images
reacutesultat eacutetant ensuite combineacutees par une opeacuteration ou
)()( cc BABABA
Bc-
est le compleacutementaire
local de B
Sami Gazzah 2009 173
IV Amincissement et Squelettisation1 Opeacuteration laquoHit or Missraquo
Exemple dopeacuteration Hit or Miss deacutetection des coinsSami Gazzah 2009 174
IV Amincissement et Squelettisation1 Amincissement (thinning)
bull La transformation TOR nous permet eacutegalement de deacutefinir
l‟amincissement
bullL‟amincissement consiste agrave soustraire limage reacutesultat dun hit or miss de
limage initiale
bull des amincissements successifs conduisent au squelettisation
)()( BAAAthin
15122010
30
Sami Gazzah 2009 175
IV Amincissement et Squelettisation1I Squelettisation
Appliquer des amincissements successifs puis s‟arrecircter lorsque l‟amincissement
n‟apporte plus de modification C‟est une eacuterosion particuliegravere ougrave les pixels sont
supprimeacutes agrave la condition quils ne provoquent pas la seacuteparation dune reacutegion en
deux
Sami Gazzah 2009 176
IV Amincissement et Squelettisation1I Squelettisation
Sami Gazzah 2009 177
Chapitre 7
Transformations
geacuteomeacutetriques 2D
Sami Gazzah 2009 178
I Introduction
On entend par transformation 2D l‟ensemble des transformations du
plan pouvant ecirctre appliqueacutees aux pixels de l‟image sans consideacuteration
de l‟intensiteacute
Par exemples
Reacuteduction agrandissement
Deacuteformation d‟image
Recalage d‟une photo scanneacutee
Recaler des images que l‟on veut comparer
Mosaiumlque d‟images
Sami Gazzah 2009 179
I Transformations euclidiennes
Elles preacuteservent les distances et les angles
Elles sont les compositions de translations et de rotations
1) Translation
Ougrave Tx et Ty sont les deacuteplacements en x et en y de la translation
y
x
Tyy
Txx
Sami Gazzah 2009 180
2) Rotation
15122010
31
Sami Gazzah 2009 181 Sami Gazzah 2009 182
3) Remarques (1)
Sami Gazzah 2009 183
3) Remarques (2)
Sami Gazzah 2009 184
II Homotheacuteties
Changement deacutechelle par rapport agrave lorigine (scaling zoom)
Ougrave Sx et Sy sont les facteurs dagrandissement ( gt1) ou de
reacuteduction ( lt1) en x et en y
ySy
xSx
y
x
Sami Gazzah 2009 185
II Homotheacuteties
Sami Gazzah 2009 186
II Homotheacuteties
15122010
32
Sami Gazzah 2009 187
III Reacuteflexions
Reacuteflexions par rapport aux axes (flip miroir)
Sami Gazzah 2009 188
IV Cisaillement
Cisaillement (glissement shearing) on eacutetire suivant un ou plusieurs axes
Sami Gazzah 2009 189
Transformations inverses
Sami Gazzah 2009 190
Repreacutesentation Matricielle
IV Autres (reacuteflexions miroirs et flips)
Sami Gazzah 2009 191
Interpolation Directe
Sami Gazzah 2009 192
oDifficile de distribuer le niveau de gris sur les pixels voisins
oOn n‟a pas la certitude que tous les pixels de l‟image
transformeacutee recevront une valeur =gt ldquotrousrdquo
15122010
33
Interpolation Inverse
Sami Gazzah 2009 193
o Interpolation de la valeur du pixel agrave partir des voisins plus
facile
oAucun ldquotrourdquo car on parcourt tous les pixels de l‟image
transformeacutee Sami Gazzah 2009 194
V Objet vectoriel - Objet bitmap
Objet vectoriel
Essentiellement on transforme
les sommets (ou points de
controcircle) et on retracehellip
Objet ldquobitmaprdquo
On doit calculer la nouvelle
position de chaque pixel De plus on
doit geacuteneacuteralement interpoler les
niveaux de gris (couleurs)hellip
Sami Gazzah 2009 195
IV Assignation des niveaux de gris
Neacutecessaire car la position d‟un pixel transformeacute n‟est pas entiegraverehellip
Plusieurs meacutethodes
Interpolation au plus proche voisin
Interpolation bilineacuteaire
Interpolation bicubique
Autres types d‟interpolation
Sami Gazzah 2009 196
IV Assignation des niveaux de gris
Linterpolation de limage cest ce qui arrive lorsquon redimensionne
une image numeacuterique ou quon la redimensionne avec une distorsion
quon change la perspective etc
Exemple 1
Image originale (sans interpolation)
Image agrandie et donc interpoleacutee
Perte de netteteacute due agrave linterpolation
Sami Gazzah 2009
197
IV Assignation des niveaux de gris
Exemple 2 recadrage dimage
Nous allons agrandir cette image agrave 180
Il va donc nous manquer des informations lagrave ougrave lon va creacuteer des
pixels pour agrandir limage
Reacutesultat sans interpolation le logiciel agrandit simplement les pixels
Reacutesultat avec interpolation le logiciel calcule une couleur intermeacutediaire
pour chaque nouveau pixel
Sami Gazzah 2009
198
IV Assignation des niveaux de gris
Image originale
Interpolation au plus
proche voisin
Interpolation
bilineacuteaireInterpolation
bicubique
15122010
34
Sami Gazzah 2009 199
IIV Interpolation au plus proche voisin
Cest lalgorithme le plus rapide agrave calculer
Prend en compte dans le calcul que le pixel le plus proche du point
agrave interpoler
Consiste tout simplement agrave agrandir chaque pixel
Exemple Interpolation du plus proche voisin par copie des pixels
Copie de chaque colonne et de chaque rang
23 20
25 28
23 23
23 23
20 20
20 20
25 25
25 25
28 28
28 28
Sami Gazzah 2009 200
IIV Interpolation bilineacuteaire
Fonction bilineacuteaire de 4 pixels voisins ( en 2 D )
i-1 i i+1
i-1 i-12 i i+12 i+1 i+32
yi=xiYi+12=(xi+xi+1)2
Problegraveme pour le dernier point
Extrapolation lineacuteaire de
2 xn-xn-1
Principe 1D
attribuer agrave chaque point cible une
combinaison lineacuteaire des quatre
points sources les plus proches par
la transformation inverse
Sami Gazzah 2009 201
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 202
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 203 Sami Gazzah 2009 204
IIV Interpolation bilineacuteaire
15122010
35
Sami Gazzah 2009 205
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 206
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 207
IIV Interpolation bilineacuteaire exemple
Sami Gazzah 2009 208
IIV Interpolation bicubique
Sami Gazzah 2009 209
exemple
Sami Gazzah 2009 210
Chapitre 8
Geacuteneacuteration de segments de
droite et de cercles en 2D
15122010
36
Sami Gazzah 2009 211
Infographie 2D besoin de dessiner des primitives de
base (segments cercles hellip)
Espace discreacutetiseacute (pixels) il faut trouver un moyen pour
afficher des segments ou des cercles
I Segments 2D cercles1 Introduction
Comment trouver les pixels agrave allumer pour approximer au mieux une
droite ou un cercle
Algorithme rapide et preacutecisSami Gazzah 2009 212
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=ax+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ya
Sami Gazzah 2009 213
Rappelhellip
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=mx+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ym
Sami Gazzah 2009 214
Exemple
Sami Gazzah 2009 215
Agrave partir des coordonneacutees des 2 extreacutemiteacutes d‟un segmenthellip
Un algorithme simple
Boucle de x1 agrave x2 dx=1
ALLUME (x Arrondir(y))
Avec x2gtx1
Arrondir(y) = Arrondir(ax+b)
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Sami Gazzah 2009 216
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Choix de lrsquoaxehellip
Peu efficace
bullagrave chaque iteacuteration 1 multiplication (ou division) + 1 addition
+ 1 arrondi
15122010
37
Sami Gazzah 2009 217
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
DDA (Digital Differential Analyzer)
y et m doivent ecirctre des reacuteelsSami Gazzah 2009 218
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Calcul en entier (donc plus rapide)
Baseacute sur le choix entre deux points discrets deacutependant de leur
distance respective avec le point reacuteel ideacuteal
On simplifie le problegraveme en traitant drsquoabord le traceacute drsquoun segment
dans le 1er octant m infeacuterieur agrave1 et positif (0ltmlt 1)
Facilement geacuteneacuteralisable aux autres octants
Sami Gazzah 2009 219
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Traceacute d‟un segment dans le premier octant mlt1
On part d‟un point (xi yi) allumeacute
Sami Gazzah 2009 220
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
On ne calcule pas reacuteellement les distances rArr on veacuterifie si la diffeacuterence
entre les deux distances est positive ou neacutegative
Le signe de la longueur (d1-d2) deacutetermine s‟il faut allumer le pixel L ou H
L
H
Sami Gazzah 2009 221
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Comme m=ΔyΔx on multiplie cette diffeacuterence par Δx pour eacuteviter la
division
Mais que vaut p1
Sami Gazzah 2009 222
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
15122010
38
Sami Gazzah 2009 223
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Pour eacuteviter de calculer cette diffeacuterence pour chaque point on cherche
une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
Sami Gazzah 2009 224
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009 225
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009
Exercice
Tracer le segment de droite
pi xi yi
2 0 0
-6 1 1
6 2 1
-2 3 2
10 4 2
2 5 3
-6 6 4
6 7 4
-2 8 5
10 9 5
2 10 6
6
10
y
x
Sami Gazzah 2009 227
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
Sami Gazzah 2009 228
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
hellip interchanger les points hellip
Si |Δx| lt | Δy| on interchange le rocircle de x et y
15122010
39
Sami Gazzah 2009 229
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (1)
Sami Gazzah 2009 230
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (2)
Sami Gazzah 2009 231
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (3)
Sami Gazzah 2009 232
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Toujours baseacute sur le choix entre deux
points discrets deacutependant de leur
distance respective avec le point reacuteel
On travaille dans le 2e octant agrave partir
de (0r) ainsi pour un point (xi yi) le
prochain point sera
(xi+1 yi) ou (xi+1 yi-1)
Sami Gazzah 2009 233
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On calcule le prochain y et les diffeacuterences respectives avec les points
discrets de la faccedilon suivante
Le signe de pi nous dira si nous devons choisir le point lateacuteral ou le diagonal
Sami Gazzah 2009 234
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Encore une fois pour eacuteviter de calculer cette diffeacuterence pour chaque point on
cherche une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
15122010
40
Sami Gazzah 2009 235
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On considegravere 2 cas
Valeur initiale
Sami Gazzah 2009 236
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Sami Gazzah 2009 237
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Exemple centre = (00) et r = 3
Sami Gazzah 2009 238
Livres
Diane Lingrand Introduction au Traitement d‟Images Paris Editions Vuibert 2e
eacutedition 2008
Steven k Feiner James D Foley John F Hughes Richard l Phillips Andries
Vanam Introduction agrave l‟infographie Paris Editions Vuibert 2000
William K Pratt Digital Image Processing Willy-Inter-sciences 4th edition 2007
Eacuteric Incerti Compression dimage ndash Algorithmes et standards Vuibert 2003
Gilles Burel Introduction au traitement dimages ndash Simulation sous Matlab
Hermegraves 2001
Sites web
Cours de C Rougier (U Montreacuteal)
httpwww-etudiroumontrealca~rougiercift2730courshtml (cf chapitre 3)
Page wikipeacutedia sur JPEG (en anglais plus complegravete que celle en franccedilais)
httpenwikipediaorgwikiJPEG
Cours de P Courtellemont (Campus numeacuterique Espdon)
httppersouniv-lrfrpcourtelespadonsite_web
Applet de deacutemo par C G Jennings
httpcgjenningscatoyboxhjpegindexhtml
Cours de D Marshall (U Cardiff)
httpwwwcscfacukDaveMultimediaPDF
Reacutefeacuterences
Sami Gazzah 2009 239
Chapitre 9
introduction au
traitement
dimages avec OpenGL
Sami Gazzah 2009 240
OpenGL est une librairie graphique Elle a eacuteteacute creacutee par Silicon
Graphics et beacuteneacuteficie sur ces machines de lacceacuteleacuteration mateacuterielle
Elle est constitueacute d‟environ 200 fonctions graphiques
OpenGL est une bibliothegraveque de fonctions
Les fonctions sont de bas niveaux
La version actuelle est l‟ laquo OpenGL 41 raquo (deacutecembre 2010)
Principale caracteacuteristique indeacutependant du mateacuteriel et du systegraveme
d‟exploitation
Une impleacutementation libre de droits dOpenGL tregraves performante a eacuteteacute
eacutecrite par Brian Paul httpwwwmesa3dorg Et tout son code source
est accessible
Preacutesentation geacuteneacuterale
15122010
41
Sami Gazzah 2009 241
OpenGL propose des fonctions de bas niveaux
Primitives geacuteomeacutetriques points segments polygones
Les fonctions de haut niveaux sont deacuteveloppeacutees par l‟utilisateur ou
importeacutees par la librairie en amont d‟OpenGL
Primitives geacuteomeacutetriques complexes Sphegravere splines etc
Toutes les commandes et fonctions utilisent le preacutefixe gl
Exemple glColor2f()
Sami Gazzah 2009 242
Les Bibliothegraveques co-existant avec OpenGL
GLU OpenGL Utility Library contient les routines de bas niveau pour
geacuterer les matrices de transformation et de projection la facettisation des
polygones et le rendu de surface Les bibliothegraveques dextension du
systegraveme de fenecirctres permettent lutilisation du rendu OpenGL Il sagit de
GLX pour X Windows (fonctions ayant pour preacutefixe glX) et de WGL
pour Microsoft Windows (fonctions ayant pour preacutefixe wgl)
GLUT OpenGL Utility Toolkit est une boite agrave outils indeacutependante du
systegraveme de fenecirctrage eacutecrite par Mark
Kilgard pour simplifier la tacircche dutiliser des systegravemes diffeacuterents (fonctions
ayant pour preacutefixe glut)
Sami Gazzah 2009 243
Les primitives geacuteomeacutetriques d rsquoOpenGL
Les primitives sont deacutecrites par un bloc d‟instructions deacutelimiteacute par glBegin et glEnd
Ce bloc contient geacuteneacuteralement une liste de vertex Exemple
glBegin(GL_LINE_LOOP)
glVertex2f(-05 -05)
glVertex2f(05 -05)
glVertex2f(05 05)
glVertex2f(-05 05)
glEnd()
D‟autres attributs peuvent ecirctre speacutecifieacutes en chaque sommet
couleur normale coordonneacutee de texture etcSami Gazzah 2009 244
OpenGL est une machine agrave eacutetats
En modifiant les variables d‟eacutetats on peut changer le style de rendu
Sami Gazzah 2009 245
Exemple Honda Hippo (3dRendercom)
Placage de textures
bullL‟apparence et le toucher ( feel ) d‟une surface
bullUne image utiliseacutee pour deacutefinir les caracteacuteristiques d‟une surface
bullUne image multi-dimensionnelle qui est plaqueacutee sur un espace multi-
dimensionnel
Sami Gazzah 2009 246
15122010
42
Sami Gazzah 2009 247
Reacutefeacuterences openGL
Sami Gazzah 2009 248
Chapitre 10
introduction au
traitement
dimages avec OpenCV
Sami Gazzah 2009 249
Preacutesentation geacuteneacuterale
Quest-ce
Open Source Computer Vision Library
Bibliothegraveque open source de traitement des images numeacuteriques
Projet initieacute par Intel (en 1999)
Teacuteleacutechargeable sur httpsourceforgenetprojectsopencvlibrary
Fortement orienteacutee temps reacuteel
eacutecrite en C et C++
optimiseacutee pour les processeurs multi-cœurs
Multi-plateformes disponible pour Linux Windows et Mac OS X
Que contient-elle
Des fonctionnaliteacutes (structures et routines gt350 algos) de base et
avanceacutees pour bacirctir rapidement des applications autour de la vision par
ordinateur
Exemples dutilisation traitements de bas niveau (filtrage ) deacutetection
de visages reconnaissance et suivi dobjets en mouvement Sami Gazzah 2009 250
Fonctionnaliteacutes
Lectureeacutecriture dimages statiques et de seacutequences videacuteo
APIs de bas et moyen niveaux
Traitement des images binaires
Manipulations dimage (eacutechantillonnage (sampling) reacutegion dinteacuterecirct (ROI)
redimensionnement (resizing) rotation deacuteformation (warping) )
Deacutetection de contours de lignes de coins (edge detection)
Traitements multi-eacutechelles (multiscale processing)
Transformeacutees (Fourier cosinus discregravete )
Modules de haut niveau
Deacutetection reconnaissance et suivi (tracking) de visages
Flot optique (estimation du mouvement) (optical flow)
Calibrage (calibration) de la cameacutera
Mise en correspondance steacutereacuteoscopique (stereo matching)
IA et apprentissage par ordinateur (machine learning)
3D mise en correspondance (registration)
Sami Gazzah 2009 251
Modules principaux
CxCore
Types de base pour manip dimages (ex struct image point isin cxtypesh)
Structures dynamiques (listes files graphes arbres) et persistantes (LE)
Manipulations de matrices meacutethodes de lalgegravebre lineacuteaire et statistiques
Dessin en surimpression (overlay) (ex eacutetiquetage)
Cv
Traitement dimage calibrage cameacutera
Geacuteomeacutetrie algorithmique (triangulation )
Cvaux
Reconnaissance de visage
Code expeacuterimental et obsolegravete
Autres (dans otherlibs)
HighGUI ES videacuteos curseurs fenecirctrage
ML classification regroupement (clustering)Sami Gazzah 2009 252
OpenCV premiers programmesBibliothegraveque OpenCV
15122010
43
Sami Gazzah 2009 253
Livre
G Bradski amp A Kaehler laquo Learning OpenCV raquo OReilly Press (2008)
codes sources httpexamplesoreillycom9780596516130
Ressources en ligne
Reacutefeacuterence complegravete httpopencvwillowgaragecomdocumentation
Wiki httpopencvwillowgaragecomwikiFullOpenCVWiki
bullPreacutesentation teacuteleacutechargement installation
bullavec CodeBlocks httpopencvwillowgaragecomwikiCodeBlocks
bullDeacutebuter avec OpenCV FAQ
Tutoriels
httpnchcdlsourceforgenetsourceforgeopencvlibraryippocvpdf
httpdaslmemdrexeledu~noahKuntzopenCVTut1html agrave Tut11html
httpwwwcognoticscomopencvservo_2007_series
Tutoriel sur la vision utilisant OpenCV (en franccedilais)
httpwwwsiteduzerocomtutoriel-3-8631-vision-par-ordinateurhtml
Reacutefeacuterences openCV
15122010
11
Sami Gazzah 2009 61
Chapitre 2
Transformations sur les images
Sami Gazzah 2009 62
Les transformations peuvent ecirctre classeacutees de la maniegravere suivante
bullTransformations ponctuelles
bullTransformations de voisinage
bullTransformations spectrales
bullTransformations morphologiques
Au cours du processus de traitement et drsquoanalyse lrsquoimage subit une seacuterie
de transformations
Introduction
Image sourceTransformationTransformation
TTImage transformeacutee
Sami Gazzah 2009 63
1 Transformations ponctuelles
A partir dune image source la nouvelle valeur du pixel deacutepend uniquement de
son ancienne valeur
Exemple seuillage ajustement luminositeacutecontraste opeacuterations algeacutebriques
opeacuterations logiques et arithmeacutetiques manip dhistogramme
1 Opeacuterations logiques et arithmeacutetiques
Les images opeacuterandes
doivent ecirctre de mecircme taille
peuvent ecirctre des images constantes
Exemples
addition soustraction
ET logique OU logique
Problegravemes
deacutebordements de [0 255]
normalisation Sami Gazzah 2009 64
Images en niveaux de gris ETOU logique bit agrave bit entre les 8 bits
codant les valeurs des pixels
Images binaires ETOU logique entre les pixels
Sami Gazzah 2009 65
Les opeacuterations logiques
bullET I(xy)=I1(xy) ET I2(xy) intersection logique
bullOU I(xy) = I1(xy) OU I2(xy) union logique
bullNOT I(xy) = NOT(I1(xy)
opeacuterations arithmeacutetiques
bullAddition I(xy)=I1(xy)+I2(xy)
bullSoustraction I(xy)=I1(xy)-I2(xy)
bullMultiplication
bullDivision par une constantehellip
Sami Gazzah 2009 66
Les opeacuterations logiques
15122010
12
Sami Gazzah 2009 67
Application
Masquage
Sami Gazzah 2009 68
Les Opeacuterations arithmeacutetiques
Addition dimages
Principe I(xy)=I1(xy)+I2(xy) pour tout pixel de coordonneacutees (xy)
Strateacutegies si deacutepassement de capaciteacute
bullDeacutecalage des valeurs dans [0 127] avant addition (perte du bit de poids faible)
bullSaturation I(xy) = min ( I1(xy)+I2(xy) 255)
bullPreacute-calcul des valeurs finales (theacuteoriques) minimale et maximale
puis recadrage de la dynamique
Utilisations principales
Augmentation de la luminance dune image (par addition dune constante ou
dune image avec elle-mecircme) et diminution du bruit dans une seacuterie dimages
))()((max
))()((min
21)(
max
21)(
min
yxIyxIi
yxIyxIi
Iyx
Iyx
))()((255
)( 21
minmax
yxIyxIii
yxI
Sami Gazzah 2009 69
Les Opeacuterations arithmeacutetiques
Soustraction dimages
Principe I(xy)=I1(xy)-I2(xy) pour tout pixel de coordonneacutees (xy)
Strateacutegies si deacutepassement de capaciteacute
bullSaturation I(xy) = max ( I1(xy) - I2(xy) 0)
bullDiffeacuterence absolue I(xy) = | I1(xy) - I2(xy) |
Utilisations principales
bullDiminution de la luminance dune image
bullDeacutetection de changements entre images
bulldeacutefauts (par comparaison avec une image de reacutefeacuterence)
bullmouvements (par comparaison avec une autre image de la seacutequence)
Sami Gazzah 2009 70
Rim Romdhaneet al AVSS10 rd the 7th IEEE International Conference on
Advanced Video and Signal-Based Surveillance Boston USA 2010
Sami Gazzah 2009 71
Addition et soustraction de deux images
Sami Gazzah 2009 72
Si on dispose de limage en niveau de gris et de limage binaire suivante
15122010
13
Sami Gazzah 2009 73
2 Identiteacute neacutegatif et Seuillage
Sami Gazzah 200974
2 Les opeacuterations geacuteomeacutetriques
Opeacuterations geacuteomeacutetriques sur une image en niveaux de gris
Sami Gazzah 2009 75
Une transformation de voisinage est telle que la nouvelle valeur
drsquoun pixel tient compte des pixels appartenant au voisinage du
pixel consideacutereacute
Le voisinage peut avoir une taille plus ou moins grande (3x3 5x5
7x7hellip) et il peut avoir une forme reacuteguliegravere (carreacute rectangle
hexagonehellip) ou bien une forme quelconque
3 Transformations de voisinage
Sami Gazzah 2009 76
Exemple de transformation de voisinage le
produit de convolution
dans le cas continu le produit de convolution de f par g est
deacutefini par
Dans le cas discret il est geacuteneacuteralement deacutefini sur un voisinage il
est donneacute par
Sami Gazzah 2009 77
Si on applique ceci agrave une image I1 de dimensions
finies et agrave moyenne de convolution K (K
Kernel=noyau) de dimension 3 x 3 les pixels de
lrsquoimage I1 obtenue par convolution de I2 par K ont
pour valeur
Sami Gazzah 2009 78
Nouvelle
image
Nouvelle valeur
de pixel21
1 11
1 111 11
Noyau
Nouvelle valeur de pixel =
9
22 2719
9 19
51 21 14Image
originale
111
111
111
9
1h
15122010
14
Sami Gazzah 2009 79
4-Transformations spectrales (1)
Transformeacutee de Fourier 2D (TF 2D)
- La TF est
Dans la cas 1D (Rappel)
Dans la cas 2D
- La TF inverse
- La TF est
- La TF inverse
Sami Gazzah 2009 80
4-Transformations spectrales (2)
Exemple des transformations spectrales transformeacutee de Fourier
Soit f(xy) deacutefinie par une matrice d‟eacutechantillons reacuteguliegraverement espaceacutes
N le nombre de lignes M nombre de colonnes
- La TF est deacutefinie par
- La TF inverse est deacutefinie par
Sami Gazzah 2009 81 Sami Gazzah 2009 82
Compression RLE (Run Length Encoding)
2 2 2 2 128 128 128 120 120 80 96 96 94 94 94 95 97 97 97 97
4 2 3 128 2 120 1 80 2 96 3 94 1 95 4 97
Utile quand il y a des reacutepeacutetitions dans la chaicircne agrave encoder
Exemple Formats BMP TIFF PCX (Paintbrush)
Sami Gazzah 2009 83
Chapitre 3
RESTAURATION DrsquoIMAGES
Sami Gazzah 2009 84
L‟acquisition s‟accompagne toujours d‟une distorsiondeacutegradation
Il existe diffeacuterentes sources de deacutegradation (bruit) d‟une image
bruit lieacute au contexte de lacquisition Bougeacute mauvaises conditions
d‟eacuteclairagehellip
bruit lieacute au capteur Capteur de mauvaises qualiteacutes mauvaise mise
au point etchellip
bruit lieacute agrave leacutechantillonnage Une mauvaise freacutequence
d‟eacutechantillonnage peut introduire dans l‟image des points blancs ou
noirs connus souvent sous l‟appellation laquo sel et poivre raquo
bruit lieacute agrave la nature de la scegravene Preacutesence de fumeacutee de nuage
etchellip
Il faut corriger l‟image par un proceacutedeacute algorithmique
15122010
15
Sami Gazzah 2009 85
Restauration des Images monochromatiques et des images
couleurs
Au deacutebut de l‟imagerie numeacuterique les algorithmes deacuteveloppeacutes eacutetaient
destineacutes aux images en niveaux de gris Avec les progregraves techniques et le
deacuteveloppement des outils informatiques le traitement des images
couleurs est devenu possible
bull Approche marginale
Sami Gazzah 2009 86
Approche vectorielle
Dans lapproche vectorielle le vecteur couleur est consideacutereacute globalement
et le traitement doit ecirctre alors reacuteellement vectoriel Il ny a pas dans ce cas
une eacutetape de fusion ou de seacuteparation explicite entre les diffeacuterentes
composantes couleur de lrsquoimage Dans ce cas la correacutelation entre les
diffeacuterentes composantes peut ecirctre prise en compte ce qui aboutit
geacuteneacuteralement agrave des reacutesultats meilleurs que ceux du traitement marginal
Sami Gazzah 2009 87
Rappel
Sami Gazzah 2009 88
Sami Gazzah 2009 89
Nouvelle
image
Nouvelle valeur
de pixel21
1 11
1 111 11
Noyau
Nouvelle valeur de pixel =
9
22 2719
9 19
51 21 14Image
originale
Sami Gazzah 2009 90
15122010
16
Sami Gazzah 2009 91
Lissage spatial tout en remplacent la valeur du pixel courant par la moyenne de
tous les pixels inclus dans un voisinage centreacute en ce point
Sami Gazzah 2009 92
Sami Gazzah 2009 93 Sami Gazzah 2009 94
En traitement d‟image les tailles des fenecirctres utiliseacutees pour le
filtrage meacutedian sont geacuteneacuteralement impaires 3 3 5 5 7 7
exemple
fenecirctre de 5 pixels en croix
Pour les fenecirctres de taille paire ( 2 K valeurs ) apregraves
ordonnancement croissant des valeurs prendre la moyenne des 2
valeurs centrales
valeur de sortie( Kiegraveme valeur ordonneacutee + (K+1)iegraveme valeur ordonneacutee )
2=
Sami Gazzah 2009 95 Sami Gazzah 2009 96
15122010
17
Sami Gazzah 2009 97
Image laquo Piegraveces raquo de reacutefeacuterence bruiteacutee ( bruit de type impulsionnel ) puis filtreacutee
avec un filtre moyenneur (33) et un filtre meacutedian (33)
Image de reacutefeacuterence Image bruiteacutee
Bruit
Le filtrage meacutedian est plus adapteacute que le filtrage
lineacuteaire pour reacuteduire le bruit impulsionnel
Observation
Comparaison filtre meacutedian et filtre moyenneur
Sami Gazzah 2009 99 Sami Gazzah 2009 100
Sami Gazzah 2009 101 Sami Gazzah 2009 102
Chapitre 4
REHAUSSEMENT DrsquoIMAGES
15122010
18
Sami Gazzah 2009 103
Introduction
Le preacutetraitement d‟image est l‟ensemble des opeacuterations effectueacutees sur
une image soit pour l‟ameacuteliorer soit pour la restaurer
Le preacutetraitement d‟une image vise soit agrave renforcer la ressemblance des
pixels soit au contraire agrave accentuer les diffeacuterences de pixels d‟une mecircme
reacutegion
Accroitre la seacuteparabiliteacute des reacutegions composant une scegravene revient agrave
augmenter les contrastes vu
On applique le rehaussement des images afin de faciliter l‟interpreacutetation
visuelle et la compreacutehension des images
Pour comprendre ce type de rehaussement il faut comprendre le concept
d‟histogrammeSami Gazzah 2009 104
Deacutefinition de lrsquohistogramme drsquoune image
L‟histogramme est un outil qui permet de comptabiliser le nombre
d‟occurrences de chacune des valeurs dans une image en niveaux de gris
Dans une image couleur il est neacutecessaire d‟utiliser plusieurs
histogramme sur chacune des composantes du systegraveme de repreacutesentation
de la couleur
Soit h l‟histogramme de l‟image I de dimension (w x h) h[i] repreacutesente
le nombre d‟occurrence de chaque niveau de quantification i La probabiliteacute
estimeacutee du niveau i dans une image I est
hw
ihip
][)(
Image de 256 256 pixels
codeacutes chacun sur 8 bitsPopulation de pixels pour chaque
niveaux de gris [0 255]
Pour chaque niveau de gris on compte le nombre de pixels s‟y reacutefeacuterant
Pour chaque niveau on trace le graphe en bacircton du nombre de pixels
(possibiliteacute de regrouper les niveaux proches en une seule classe)
Exemple drsquohistogramme pour une image en niveaux
de gris
0 50 100 150 200 250
0
200
400
600
800
1000
cameraman
Image laquo A raquo en
niveaux de gris
Matrice des valeurs de luminance
des pixels de lrsquoimage laquo A raquo
Histogramme
de lrsquoimage
laquo A raquo
2 2 2 2 2 2 2 2
2 0 0 0 0 0 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 0 0 0 0 0 2
2 2 2 2 2 2 2 2
Les niveaux 0 1 et 2 sont respectivement repreacutesenteacutes par 24 12 et 28 pixels
repreacutesentation de cette population de pixels sur lhistogramme
Limage laquo A raquo comporte 3 niveaux de gris diffeacuterents 0 1 et 2
Compter le nombre de pixels pour chaque niveau de gris agrave lrsquoaide de la
matrice des valeurs de luminance
Exemple simple de calcul drsquohistogramme pour une image
Image laquo A raquoValeurs de luminance de
laquo A raquo
Histogramme cumuleacute de
laquo A raquo
2 2 2 2 2 2 2 2
2 0 0 0 0 0 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 0 0 0 0 0 2
2 2 2 2 2 2 2 2
Calcul dun histogramme particulier faisant appel aux cumuls des niveaux de gris
Histogramme cumuleacute
Utile pour certains traitements dimage tels que lrsquoeacutegalisation
dhistogramme ( ameacutelioration de contraste)
Chaque bacircton cumule le nombre de pixels du niveaux de gris concerneacute et des
niveaux de gris infeacuterieurs les niveaux 0 1 2 sont donc repreacutesenteacutes
respectivement par 24 36 et 64 pixels
Histogramme cumuleacute drsquoune image L‟histogramme ne donne pas L‟histogramme ne donne pas
d‟informations sur la reacutepartitiond‟informations sur la reacutepartition
Trois images diffeacuterentes ayant un mecircme histogramme
15122010
19
Modification de lrsquohistogrammeModification de lrsquohistogramme
On appelle dynamique des niveaux de gris lintervalle [nminnmax] de
niveaux de gris dans lequel sont compris tous les pixels de limage
Le but de la modification dhistogramme modifier chaque niveau de
gris pour accroicirctre le contraste On modeacutelise cette transformation par
leacutequation Irsquo(ij) = g(I(ij)) ougrave g est la fonction de contraste
Chaque transformation sera deacutecrite par une courbe repreacutesentant la
relation entre un niveau de gris de limage de deacutepart (abscisse) et le
niveau qui lui correspond dans limage ameacutelioreacutee (ordonneacutee)
Sami Gazzah 2009 109
Masquage de zones Masquage de zones Extraction d‟une Extraction d‟une
fenecirctre d‟intensiteacutefenecirctre d‟intensiteacute ((slicingslicing intensiteacute)intensiteacute)
Cette transformation consiste agrave remplacer un intervalle de niveaux
de gris par du blanc (nmax) par du noir (nmin) ou par une valeur
intermeacutediaire du niveau de gris
Sami Gazzah 2009 110
Courbes repreacutesentant de gauche agrave droite lextraction dune fenecirctre dintensiteacute et le masquage blanc et noir de lintervalle [ab]
n-1
n-1
0 n-1
n-1
0a ab b n-1
n-1
0 a b
Sami Gazzah 2009 111
Exemples de Masquage de zonesInversion de la dynamiqueInversion de la dynamique
But produire le neacutegatif d‟une image
donneacutee
Sami Gazzah 2009 112
Sami Gazzah 2009 113
Etirement drsquohistogramme
Sami Gazzah 2009 114
Etirement drsquohistogramme
Augmentation du contraste par eacutetirement d‟histogramme
15122010
20
Sami Gazzah 2009 115
Eacutegalisation dhistogramme
But ameacutelioration du contraste
Distribution uniforme des niveaux de gris
Elle se deacutefinit agrave laide de lhistogramme cumuleacute de limage hc(n)
qui repreacutesente le nombre de pixels de limage dont le niveau de
gris est infeacuterieur ou eacutegal agrave n
Deacutefinition de la transformation deacutegalisation dhistogramme soit
I le niveau de gris dun pixel de deacutepart le niveau de gris de limage
darriveacutee I‟ sera
Sami Gazzah 2009 116
Sami Gazzah 2009 117
Effet de lrsquoeacutegalisation drsquohistogramme
Sami Gazzah 2009 118
Augmentation du contraste exemples et comparaison
Original Eacutetirement d‟histogramme Eacutegalisation
Le rehaussement du contraste est plus marqueacute avec l‟eacutegalisation
d‟histogramme autorisant la deacutetection de structures situeacutees dans
l‟ombre
Sami Gazzah 2009 119
Chapitre 5
SEGMENTATION DrsquoIMAGES
Sami Gazzah 2009 120
Une image est geacuteneacuteralement composeacutee d‟objets L‟analyse de cette
image neacutecessite l‟identification de ces objets
La segmentation dimages est lun des problegravemes phares du traitement
dimages Elle consiste agrave partitionner limages en un ensemble de
reacutegions connexes Linteacuterecirct de ces reacutegions est de pouvoir ecirctre
manipuleacutees ensuite via des traitements de haut niveau pour extraire
des caracteacuteristiques de forme de position de taille etc
Introduction
15122010
21
Sami Gazzah 2009 121 Sami Gazzah 2009 122
Meacutethodes statistiquesSegmentation par Histogrammes
Sami Gazzah 2009 123
Meacutethodes statistiquesSeacutelection Reacutecursive sur Histogrammes
Ohlander Price et Reddy (1978)
Sami Gazzah 2009 124
Segmentation par approche contourIntroduction
Le contour est deacutefini comme le lieu des points connexes qui
possegravedent une forte transition d‟intensiteacute lumineuse ou de texture Le
traitement qui vise agrave l‟obtenir est appeleacute extraction de contour on
parle aussi de deacutetection de contour
Le processus d‟extraction de contour peut ecirctre deacutecomposeacute en
plusieurs eacutetapes distinctes que nous allons les deacutetailler comme suit
- La mise en eacutevidence des contours
- L‟extraction des contours
- La fermeture des contours
Sami Gazzah 2009 125
Segmentation par approche contourLa mise en eacutevidence des contours
Elle s‟obtient par une diffeacuterentiation de l‟image et elle peut
s‟appliquer agrave des images binaires ou non le but de la deacutetection de
contours est d‟obtenir dans un premier temps une image binaire ougrave
chaque contour est d‟eacutepaisseur 1 et sans discontinuiteacute
rehausser le contour
suivre le contour
les points du contour correspondent au maximum en valeur absolue
de la deacuteriveacutee primaire de l‟image on obtient alors un gradient ou au
passage par zeacutero de la deacuteriveacutee seconde de l‟image on obtient alors
un laplacien
Sami Gazzah 2009 126
Segmentation par approche contourLa mise en eacutevidence des contours
La deacutetection de contours peut ecirctre reacutealiseacutee gracircce agrave des filtres
dont les coefficients ont eacuteteacute soigneusement choisis Nous
aborderons dans cette preacutesentation 3 filtres les filtres de
Prewitt Roberts et Sobel
Ce jeu de filtres (Prewitt Roberts et Sobel) est constitueacute d‟une
paire de filtres lineacuteaires qui deacutetectent le contours dans deux
directions orthogonales (vertical et horizontal)
15122010
22
Sami Gazzah 2009 127
Segmentation par approche contourFiltre de Perwitt
Les filtres de Perwitt sont les suivants
Filtre horizontal
Filtre vertical
111
000
111
h
101
101
101
v
Sami Gazzah 2009 128
Segmentation par approche contourFiltre de Perwitt
A partir d‟une image I on calcule Gh et Gv images
correspondant au filtrage de I par h et v Ces images
contiennent les contours horizontaux et verticaux
Si l‟on souhaite obtenir une image de contour unique ne tenant
pas compte de l‟orientation on calcule
Orientation du contour
Image binairehellipchoisir un seuil de deacutetection
22
vh GGG
)(vh
GGarctg
Sami Gazzah 2009 129
Segmentation par approche contourFiltre de Sobel
Les filtres de Sobel sont les suivants
Filtre horizontal
Filtre vertical
121
000
121
h
101
202
101
v
Sami Gazzah 2009 130
Segmentation par approche contourFiltre de Sobel
Sami Gazzah 2009 131
Segmentation par approche contourFiltre de Sobel
Sami Gazzah 2009 132
Segmentation par approche contourFiltre de Roberts
Les filtres de Roberts sont les suivants
Filtre diagonal
Filtre anti-diagonal
10
01h
01
10v
15122010
23
Sami Gazzah 2009 133
Segmentation par approche contourFiltre de Kirsch
Ce deacutetecteur utilise huit noyaux de convolution lui permettant de deacutetecter
des contours en fonction de huit directions agrave
15
335
305
335
1
d 15
333
305
355
2
d 15
333
303
555
3
d
15
333
503
553
4
d 15
533
503
533
5
d 15
555
503
333
6
d
15
555
303
333
7
d 15
355
305
333
8
d
Sami Gazzah 2009 134
Contours et Laplacien
Il s‟agit de calculer la deacuteriveacutee seconde de l‟image
Le Laplacien est tregraves sensible au bruit pour limiter l‟effet du bruit le
Laplacien est approximeacute par un masque qui effectue en mecircme temps
une opeacuteration de filtrage par une Gaussienne qui repreacutesente l‟eacutetape
de lissage de l‟image puis vient l‟application du laplacien Les masques
du Laplacien Gaussien sont preacutesenteacutes ci-apregraves
Segmentation par approche contour
Sami Gazzah 2009 135
Contours et Laplacien
Le contour est ensuite deacutetermineacute par la deacutetection des
passages par zeacutero du laplacien de l‟image
88888888888888
010
141
010
1h
111
101
111
2h
121
242
121
3h
Sami Gazzah 2009 136
Contours et Laplacien
Sami Gazzah 2009 137
Seuillage
Les filtres preacuteceacutedents nous fournissent des images des sauts ou
diffeacuterences d‟intensiteacute
Le seuillage permet d‟eacuteliminer des points en lesquels la diffeacuterence
d‟intensiteacute est tregraves faible
Le seuillage peut ecirctre pousser afin d‟obtenir une image binaire (TOR)
Le seuillage dans sa forme le plus simple ne tient pas compte de la
topologie et peut conserver un point bruiteacute isoleacute ou eacuteliminer une portion
de contour d‟intensiteacute faible
Sami Gazzah 2009 138
Seuillage par hysteacutereacutesis
c‟est une fonction agrave deux seuils un seuil bas et un seuil haut
Tout point dont le module de contour est au-dessus du seuil-haut est un
point de contour
Tout point dont le module de contour est au-dessous du seuil-bas n‟est
pas un point de contour
Les points de module entre le seuil-bas et le seuil-haut sont des points
de contour s‟il possegravede un point de contour dans leur voisinage
15122010
24
Sami Gazzah 2009 139
Seuillage par hysteacutereacutesis
seuil haut
Seuil bas
point sur contour
point hors contour
Seuillage par hysteacuterisais les points de lrsquoimage de contour de valeur
supeacuterieur au seuil haut sont des points de contours A partir de ces points de
contours le voisinage de la direction du contour sont examineacutes srsquoils sont de
valeur supeacuterieure au seuil bas ils sont ajouteacutes au points de contoursSami Gazzah 2009 140
Chapitre 6
Introduction aux
opeacuterateurs
morphomatheacutematique
Sami Gazzah 2009 141
1 Introduction
Les opeacuterateurs morphomatheacutematique (=Morphologie Matheacutematique)
permettent d‟ameacuteliorer les images de contours et apporter d‟autres
fonctionnaliteacutes
Ils ont eacuteteacute initialement appliqueacute sur des images NampB (Matheron et
Sarra1965) ensuite eacutetendus agrave des images en nivaux de gris par Doupherty
(1978)
Pour les appliquer sur des images couleurs on peut les appliquer
seacutepareacutement agrave chaque composante couleur et combiner les reacutesultats
Sami Gazzah 2009 142
Diffeacuterentes opeacuterations
eacuterosion dilatation
ouverture fermeture
Squelettisation
hellip
1 Introduction
Sami Gazzah 2009 143
1 Introduction
Dilatation
Ajouter un pixel sur les pourtours de la forme
boucher les trous
Erosion
Enlever un pixel sur les pourtours de la forme
les objets de taille infeacuterieure agrave celle de leacuteleacutement
structurant vont disparaicirctre
agrandit les trous
Sami Gazzah 2009144
1I Rappels sur les ensembles
L‟eacutegaliteacute
L‟inclusion
Lbdquointersection
L‟union
La diffeacuterence
La diffeacuterence symeacutetrique
La compleacutementariteacute E eacutetant un ensemble
servant de reacutefeacuterentielle
Dans ce qui suit les lettres majuscules deacutesignent des ensembles et les lettres
minuscules deacutesignent des eacuteleacutements appartenant aux ensembles
Sur les ensembles on deacutefinit les opeacuterations suivantes
15122010
25
Sami Gazzah 2009145
1I Rappels sur les ensembles
Sami Gazzah 2009146
1I Rappels sur les ensembles
Lois de De Morgan
Reacuteflexion La reacuteflexion d‟un ensemble A est deacutefinie par
Un ensemble symeacutetrique veacuterifiant ndashA=A C‟est le cas des cercles et des carreacute par
exemple
ccc YXYX )(
ccc YXYX )(
AaaA
A -A B -B
Sami Gazzah 2009147
1I Rappels sur les ensembles
Addition de Minkowski l‟addition d‟un eacuteleacutement x agrave un ensemble A par x est
deacutefinie par
Cette notion n‟est pas uniquement ensembliste elle nous oblige agrave deacutefinir un point
de reacutefeacuterence
On en deacuteduit l‟addition d‟un ensemble B agrave un ensemble A c‟est le reacutesultat de
l‟addition de chaque eacuteleacutement de B agrave A
L‟addition de Minkowski est commutative Elle est eacutegalement appeleacute dilatation
AaxaxAB
A
A
x
AxBxAaBaBbbABAC )()()(
le translateacute de X par b
Sami Gazzah 2009148
1I Rappels sur les ensembles
Eleacutement structurant les opeacuterations morphomatheacutematiques sont deacutefinis agrave
partir des ensemble B discrets appeleacute eacuteleacutement structurant Ces eacuteleacutement
permettent de deacutefinir le type de voisinage souhaiteacute
Addition de Minkowski d‟un ensemble A et d‟un ensemble B
BA
Sami Gazzah 2009149
1II Dilatation
Le reacutesultat de dilatation de lrsquoensemble A par lrsquoensemble B
est lrsquoaddition de Minkowski crsquoest lrsquoensemble des points tel
que lorsque B est centreacute sur un de ces points il y a une
intersection non vide entre A et B
Pour des images en niveaux de gris on obtient lrsquoimage
dilateacutee de la forme A en remplaccedilant tout pixel par le
maximum des intensiteacutes des voisins selon la forme B
Sami Gazzah 2009 150
1II Dilatation1 Image NampB
Soit k l‟eacuteleacutement structurant de taille (2k+1) x (2k+1) L‟algorithme de
dilatation est le suivant on parcourt tous les pixels de l‟image sauf les
bord de l‟image d‟eacutepaisseur k pour chaque pixel du fond rencontreacute s‟il
possegravede un voisin au sens de l‟eacuteleacutement structurant qui appartient agrave un
objet il prend le couleur de l‟objet si non il n‟est pas modifieacute
15122010
26
la dilatation (noteacutee ) drsquoune image monochrome laquo f raquo par un
eacuteleacutement structurant laquo B raquo est deacutefinie en terme de sous-graphe
bull f B = T [ Y ] = Supl l tel que (m n l) Y
bullY = U ( f ) U ( B )
En consideacuterant un eacuteleacutement structurant plan de valeur nulle sur son
support
( f B ) (P) = Max valeurs des pixels du voisinage du pixel P
1II Dilatation1 Image niveaux de gris
max
55 68 77 90 91 95 115 151 210
( f B ) (P) = 210
n
115 91 77
95 68 90
55 151 210
exemple
m
Image de reacutefeacuterence
Eacuteleacutement structurant
(8-connexiteacute)
liste ordonneacutee des valeurs du voisinage
- - -
-
-
-
-
-
1II Dilatation1 Image niveaux de gris
Exemples de filtrages morphologiques(eacuteleacutement structurant 33 complet)
Image de reacutefeacuterenceImage dilateacutee
morphologiquement
La dilatation en niveaux de gris accroicirct la luminance des
pixels entoureacutes de voisins plus lumineux
Observation
Sami Gazzah 2009154
VI Erosion
L‟eacuterosion est deacutefinie par
On deacutefinit la soustraction de Minkowski par
On a eacutequivalence entre eacuterosion et soustraction de Minkowski si B est
symeacutetrique (si B=-B)
D‟un point de vue binaire l‟eacuterode de A par B correspond agrave l‟ensemble
des points tels que si B est centre sur ce points B est entiegraverement inclus
dans A
AxBxBbbABAC )()(
)()( BbbABAC
Sami Gazzah 2009 155
VI Erosion1 Image NampB
on parcourt tous les pixels de l‟image sauf les bord de l‟image
d‟eacutepaisseur k pour chaque pixel du fond rencontreacute s‟il possegravede un
voisin au sens de l‟eacuteleacutement structurant qui appartient agrave un objet il
prend le couleur du fond si non il n‟est pas modifieacute
VI Eacuterosion drsquoune image en niveaux de gris
Lrsquoeacuterosion (noteacutee Ө ) drsquoune image monochrome laquo f raquo par un eacuteleacutement
structurant laquo B raquo est deacutefinie en terme de sous-graphe
bull f Ө B = T [ Y ] = Supl l tel que (m n l) Y
bullY = U ( f ) Ө U ( B )
Classiquement on considegravere un eacuteleacutement structurant plan de
valeur nulle sur son support
( f Ө B ) (P) = Min valeurs des pixels du voisinage du pixel P
15122010
27
VI Eacuterosion drsquoune image en niveaux de gris
min
68 90 91 95 151
( f Ө B ) (P) = 68
n
115 91 77
95 68 90
55 151 210
exemple
m
Image de reacutefeacuterence
ӨӨ
Eacuteleacutement structurant
(4-connexiteacute)
liste ordonneacutee des valeurs du voisinage
-
-
-
-
Exemples de filtrages morphologiques(eacuteleacutement structurant 33 complet)
Image eacuterodeacutee
Lrsquoeacuterosion en niveaux de gris reacuteduit la luminance des pixels
qui sont entoureacutes de voisins de moindre intensiteacute
Image de reacutefeacuterence
Observation
Sami Gazzah 2009 159
Eacuteleacutement structurant (a)
(4-connexiteacute)
-
-
-
-
Eacuteleacutement structurant (b)
(8-connexiteacute)
- - -
-
-
-
-
-
Exercice 1 Sur la mecircme image de deacutepart on reacutealise deux opeacuterations
de dilatations avec deux eacuteleacutements structurant diffeacuterents
Dilatation avec (a) Dilatation avec (b)
image de deacutepart
cas a L‟eacuteleacutement structurant est agrave 4-connexiteacute Chaque pixel
du support qui est eacutegal agrave la valeur 1 ou qui a l‟un de ses 4
voisins agrave la valeur 1 est mis agrave la valeur 1 apregraves filtrage
cas b L‟eacuteleacutement structurant est agrave 8-connexiteacute Chaque pixel
du support qui est eacutegal agrave la valeur 1 ou qui a l‟un de ses 8
voisins agrave la valeur 1 est mis agrave la valeur 1 apregraves filtrage
Dans les deux cas on observe qu‟une dilatation eacutelimine les
trous isoleacutes dans les objets et dilate le contour des objets en
tenant compte de l‟eacuteleacutement structurant
Sami Gazzah 2009 160
Exercice 1
Sami Gazzah 2009 161
Eacuteleacutement structurant (a)
(4-connexiteacute)
-
-
-
-
Eacuteleacutement structurant (b)
(8-connexiteacute)
- - -
-
-
-
-
-
Exercice 2 Sur la mecircme image de deacutepart on reacutealise deux opeacuterations
d‟eacuterosions avec deux eacuteleacutements structurant diffeacuterents
Erosion avec (a) Erosion avec (b)
image de deacutepart
cas a L‟eacuteleacutement structurant est agrave 4-connexiteacute (origine agrave 4 voisins)
Chaque pixel du support qui a la valeur 0 ou qui a l‟un de ses 4
voisins agrave la valeur 0 est mis agrave la valeur 0 apregraves filtrage
cas b L‟eacuteleacutement structurant est agrave 8-connexiteacute Chaque pixel du
support qui a la valeur 0 ou qui a l‟un de ses 8 voisins agrave la valeur 0
est mis agrave la valeur 0 apregraves filtrage
Dans les deux cas on observe qu‟une eacuterosion eacutelimine les pixels
isoleacutes sur le fond et eacuterode le contour des objets
Sami Gazzah 2009 162
Exercice 2
15122010
28
ConclusionsConclusions
Erosion
les objets relieacutes entre eux vont ecirctre seacutepareacutes
Une eacuterosion de taille n peut se reacutealiser en reacutepeacutetant une
eacuterosion n fois avec un eacuteleacutement structurant de taille 1 ou en
appliquant une seule eacuterosion avec un eacuteleacutement structurant
de taille n
Dilatation
des objets sont situeacutes agrave une distance moins grande que la taille
de leacuteleacutement structurant il vont fusionner
Sami Gazzah 2009 163 Sami Gazzah 2009 164
Sami Gazzah 2009 165
Elimine pixels isoleacutes sans inteacuterecirct
L‟ouverture (opening) consiste agrave une eacuterosion suivi d‟une dilatation
Les petites structures et deacutetail fins disparaissent et ne sont pas recreacuteeacutees
lors de la dilation Une opeacuteration d‟ouverture est ainsi inteacuteressante pour
eacuteliminer les petits morceaux de contours bruiteacutes dans une image de
contours
V Ouverture et fermeture1 Ouverture
BBABAC )(
Sami Gazzah 2009 166
V Ouverture et fermetureII Fermeture
La fermeture (closing) consiste agrave une dilatation suivi d‟une eacuterosion
Les structures proches fusionnent lors de la dilation mais seules les
fusions ponctuelles disparaissent agrave nouveau lors de l‟eacuterosion Une
opeacuteration de fermeture est ainsi inteacuteressante pour boucher les petits
trous
Sami Gazzah 2009 167 Sami Gazzah 2009 168
Exercice 3 Sur l‟image de deacutepart on reacutealise une opeacuteration de
fermeture binaire par l‟eacuteleacutement structurant 4-connexiteacute Conclusions
Eacuteleacutement structurant
(4-connexiteacute)
-
-
-
-Fermeture = dilatation puis eacuterosion
Image de deacutepart Image dilateacutee Image dilateacutee puis eacuterodeacutee
Combler les trous
Reacutetablir les jonctions
tout en preacuteservant la taille
15122010
29
Sami Gazzah 2009 169
Exercice 4 Sur l‟image de deacutepart on reacutealise une opeacuteration
d‟ouverture binaire par l‟eacuteleacutement structurant 4-connexiteacute Conclusions
Eacuteleacutement structurant
(4-connexiteacute)
-
-
-
-Ouverture = eacuterosion puis dilatation
Image de deacutepart Image eacuterodeacutee Image eacuterodeacutee puis dilateacutee
Supprimer les fausses alarmes
Seacuteparer les objets accoleacutes
tout en preacuteservant la tailleSami Gazzah 2009 170
Appliquer les filtres suivants sur limage donneacutee Quelles sont les valeurs choisies
aux bords de limage et quelles sont les modifications visuelles
a) filtre moyenneur M3acute3(19)
b) eacuterosion
c) dilatation
d) meacutedian
e) fermeture
f) ouverture
Exercice 5
Sami Gazzah 2009 171
IV Amincissement et Squelettisation
La squelette (skeleton) d‟une forme est l‟axe meacutedian L‟inteacuterecirct de cette
opeacuteration est dans
La reconnaissance de caractegraveres
Deacutetection des reacuteseaux routiers
La planification de trajectoirehellip
Une meacutethode couramment employeacutee est une amincissement reacutepeacuteteacute
jusqu‟agrave le convergence (n‟apporte aucune modification)
Sami Gazzah 2009 172
IV Amincissement et Squelettisation1 Opeacuteration Tout Ou Rien laquoHit or Missraquo
Cette transformation est deacutefinie par
leacuteleacutement structurant eacutetendu est centreacute sur chaque pixel de limage
comme pour les opeacuterations ensemblistes
la question poseacutee est est ce que le contenu de limage est identique au
contenu de leacuteleacutement structurant
si la reacuteponse est oui le pixel reacutesultant vaut 1 si non il vaut 0
Une application permet de deacutetecter des configurations locales
particuliegraveres dans une image
plusieurs masques peuvent ecirctre utiliseacutes indeacutependamment les images
reacutesultat eacutetant ensuite combineacutees par une opeacuteration ou
)()( cc BABABA
Bc-
est le compleacutementaire
local de B
Sami Gazzah 2009 173
IV Amincissement et Squelettisation1 Opeacuteration laquoHit or Missraquo
Exemple dopeacuteration Hit or Miss deacutetection des coinsSami Gazzah 2009 174
IV Amincissement et Squelettisation1 Amincissement (thinning)
bull La transformation TOR nous permet eacutegalement de deacutefinir
l‟amincissement
bullL‟amincissement consiste agrave soustraire limage reacutesultat dun hit or miss de
limage initiale
bull des amincissements successifs conduisent au squelettisation
)()( BAAAthin
15122010
30
Sami Gazzah 2009 175
IV Amincissement et Squelettisation1I Squelettisation
Appliquer des amincissements successifs puis s‟arrecircter lorsque l‟amincissement
n‟apporte plus de modification C‟est une eacuterosion particuliegravere ougrave les pixels sont
supprimeacutes agrave la condition quils ne provoquent pas la seacuteparation dune reacutegion en
deux
Sami Gazzah 2009 176
IV Amincissement et Squelettisation1I Squelettisation
Sami Gazzah 2009 177
Chapitre 7
Transformations
geacuteomeacutetriques 2D
Sami Gazzah 2009 178
I Introduction
On entend par transformation 2D l‟ensemble des transformations du
plan pouvant ecirctre appliqueacutees aux pixels de l‟image sans consideacuteration
de l‟intensiteacute
Par exemples
Reacuteduction agrandissement
Deacuteformation d‟image
Recalage d‟une photo scanneacutee
Recaler des images que l‟on veut comparer
Mosaiumlque d‟images
Sami Gazzah 2009 179
I Transformations euclidiennes
Elles preacuteservent les distances et les angles
Elles sont les compositions de translations et de rotations
1) Translation
Ougrave Tx et Ty sont les deacuteplacements en x et en y de la translation
y
x
Tyy
Txx
Sami Gazzah 2009 180
2) Rotation
15122010
31
Sami Gazzah 2009 181 Sami Gazzah 2009 182
3) Remarques (1)
Sami Gazzah 2009 183
3) Remarques (2)
Sami Gazzah 2009 184
II Homotheacuteties
Changement deacutechelle par rapport agrave lorigine (scaling zoom)
Ougrave Sx et Sy sont les facteurs dagrandissement ( gt1) ou de
reacuteduction ( lt1) en x et en y
ySy
xSx
y
x
Sami Gazzah 2009 185
II Homotheacuteties
Sami Gazzah 2009 186
II Homotheacuteties
15122010
32
Sami Gazzah 2009 187
III Reacuteflexions
Reacuteflexions par rapport aux axes (flip miroir)
Sami Gazzah 2009 188
IV Cisaillement
Cisaillement (glissement shearing) on eacutetire suivant un ou plusieurs axes
Sami Gazzah 2009 189
Transformations inverses
Sami Gazzah 2009 190
Repreacutesentation Matricielle
IV Autres (reacuteflexions miroirs et flips)
Sami Gazzah 2009 191
Interpolation Directe
Sami Gazzah 2009 192
oDifficile de distribuer le niveau de gris sur les pixels voisins
oOn n‟a pas la certitude que tous les pixels de l‟image
transformeacutee recevront une valeur =gt ldquotrousrdquo
15122010
33
Interpolation Inverse
Sami Gazzah 2009 193
o Interpolation de la valeur du pixel agrave partir des voisins plus
facile
oAucun ldquotrourdquo car on parcourt tous les pixels de l‟image
transformeacutee Sami Gazzah 2009 194
V Objet vectoriel - Objet bitmap
Objet vectoriel
Essentiellement on transforme
les sommets (ou points de
controcircle) et on retracehellip
Objet ldquobitmaprdquo
On doit calculer la nouvelle
position de chaque pixel De plus on
doit geacuteneacuteralement interpoler les
niveaux de gris (couleurs)hellip
Sami Gazzah 2009 195
IV Assignation des niveaux de gris
Neacutecessaire car la position d‟un pixel transformeacute n‟est pas entiegraverehellip
Plusieurs meacutethodes
Interpolation au plus proche voisin
Interpolation bilineacuteaire
Interpolation bicubique
Autres types d‟interpolation
Sami Gazzah 2009 196
IV Assignation des niveaux de gris
Linterpolation de limage cest ce qui arrive lorsquon redimensionne
une image numeacuterique ou quon la redimensionne avec une distorsion
quon change la perspective etc
Exemple 1
Image originale (sans interpolation)
Image agrandie et donc interpoleacutee
Perte de netteteacute due agrave linterpolation
Sami Gazzah 2009
197
IV Assignation des niveaux de gris
Exemple 2 recadrage dimage
Nous allons agrandir cette image agrave 180
Il va donc nous manquer des informations lagrave ougrave lon va creacuteer des
pixels pour agrandir limage
Reacutesultat sans interpolation le logiciel agrandit simplement les pixels
Reacutesultat avec interpolation le logiciel calcule une couleur intermeacutediaire
pour chaque nouveau pixel
Sami Gazzah 2009
198
IV Assignation des niveaux de gris
Image originale
Interpolation au plus
proche voisin
Interpolation
bilineacuteaireInterpolation
bicubique
15122010
34
Sami Gazzah 2009 199
IIV Interpolation au plus proche voisin
Cest lalgorithme le plus rapide agrave calculer
Prend en compte dans le calcul que le pixel le plus proche du point
agrave interpoler
Consiste tout simplement agrave agrandir chaque pixel
Exemple Interpolation du plus proche voisin par copie des pixels
Copie de chaque colonne et de chaque rang
23 20
25 28
23 23
23 23
20 20
20 20
25 25
25 25
28 28
28 28
Sami Gazzah 2009 200
IIV Interpolation bilineacuteaire
Fonction bilineacuteaire de 4 pixels voisins ( en 2 D )
i-1 i i+1
i-1 i-12 i i+12 i+1 i+32
yi=xiYi+12=(xi+xi+1)2
Problegraveme pour le dernier point
Extrapolation lineacuteaire de
2 xn-xn-1
Principe 1D
attribuer agrave chaque point cible une
combinaison lineacuteaire des quatre
points sources les plus proches par
la transformation inverse
Sami Gazzah 2009 201
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 202
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 203 Sami Gazzah 2009 204
IIV Interpolation bilineacuteaire
15122010
35
Sami Gazzah 2009 205
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 206
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 207
IIV Interpolation bilineacuteaire exemple
Sami Gazzah 2009 208
IIV Interpolation bicubique
Sami Gazzah 2009 209
exemple
Sami Gazzah 2009 210
Chapitre 8
Geacuteneacuteration de segments de
droite et de cercles en 2D
15122010
36
Sami Gazzah 2009 211
Infographie 2D besoin de dessiner des primitives de
base (segments cercles hellip)
Espace discreacutetiseacute (pixels) il faut trouver un moyen pour
afficher des segments ou des cercles
I Segments 2D cercles1 Introduction
Comment trouver les pixels agrave allumer pour approximer au mieux une
droite ou un cercle
Algorithme rapide et preacutecisSami Gazzah 2009 212
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=ax+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ya
Sami Gazzah 2009 213
Rappelhellip
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=mx+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ym
Sami Gazzah 2009 214
Exemple
Sami Gazzah 2009 215
Agrave partir des coordonneacutees des 2 extreacutemiteacutes d‟un segmenthellip
Un algorithme simple
Boucle de x1 agrave x2 dx=1
ALLUME (x Arrondir(y))
Avec x2gtx1
Arrondir(y) = Arrondir(ax+b)
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Sami Gazzah 2009 216
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Choix de lrsquoaxehellip
Peu efficace
bullagrave chaque iteacuteration 1 multiplication (ou division) + 1 addition
+ 1 arrondi
15122010
37
Sami Gazzah 2009 217
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
DDA (Digital Differential Analyzer)
y et m doivent ecirctre des reacuteelsSami Gazzah 2009 218
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Calcul en entier (donc plus rapide)
Baseacute sur le choix entre deux points discrets deacutependant de leur
distance respective avec le point reacuteel ideacuteal
On simplifie le problegraveme en traitant drsquoabord le traceacute drsquoun segment
dans le 1er octant m infeacuterieur agrave1 et positif (0ltmlt 1)
Facilement geacuteneacuteralisable aux autres octants
Sami Gazzah 2009 219
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Traceacute d‟un segment dans le premier octant mlt1
On part d‟un point (xi yi) allumeacute
Sami Gazzah 2009 220
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
On ne calcule pas reacuteellement les distances rArr on veacuterifie si la diffeacuterence
entre les deux distances est positive ou neacutegative
Le signe de la longueur (d1-d2) deacutetermine s‟il faut allumer le pixel L ou H
L
H
Sami Gazzah 2009 221
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Comme m=ΔyΔx on multiplie cette diffeacuterence par Δx pour eacuteviter la
division
Mais que vaut p1
Sami Gazzah 2009 222
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
15122010
38
Sami Gazzah 2009 223
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Pour eacuteviter de calculer cette diffeacuterence pour chaque point on cherche
une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
Sami Gazzah 2009 224
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009 225
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009
Exercice
Tracer le segment de droite
pi xi yi
2 0 0
-6 1 1
6 2 1
-2 3 2
10 4 2
2 5 3
-6 6 4
6 7 4
-2 8 5
10 9 5
2 10 6
6
10
y
x
Sami Gazzah 2009 227
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
Sami Gazzah 2009 228
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
hellip interchanger les points hellip
Si |Δx| lt | Δy| on interchange le rocircle de x et y
15122010
39
Sami Gazzah 2009 229
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (1)
Sami Gazzah 2009 230
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (2)
Sami Gazzah 2009 231
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (3)
Sami Gazzah 2009 232
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Toujours baseacute sur le choix entre deux
points discrets deacutependant de leur
distance respective avec le point reacuteel
On travaille dans le 2e octant agrave partir
de (0r) ainsi pour un point (xi yi) le
prochain point sera
(xi+1 yi) ou (xi+1 yi-1)
Sami Gazzah 2009 233
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On calcule le prochain y et les diffeacuterences respectives avec les points
discrets de la faccedilon suivante
Le signe de pi nous dira si nous devons choisir le point lateacuteral ou le diagonal
Sami Gazzah 2009 234
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Encore une fois pour eacuteviter de calculer cette diffeacuterence pour chaque point on
cherche une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
15122010
40
Sami Gazzah 2009 235
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On considegravere 2 cas
Valeur initiale
Sami Gazzah 2009 236
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Sami Gazzah 2009 237
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Exemple centre = (00) et r = 3
Sami Gazzah 2009 238
Livres
Diane Lingrand Introduction au Traitement d‟Images Paris Editions Vuibert 2e
eacutedition 2008
Steven k Feiner James D Foley John F Hughes Richard l Phillips Andries
Vanam Introduction agrave l‟infographie Paris Editions Vuibert 2000
William K Pratt Digital Image Processing Willy-Inter-sciences 4th edition 2007
Eacuteric Incerti Compression dimage ndash Algorithmes et standards Vuibert 2003
Gilles Burel Introduction au traitement dimages ndash Simulation sous Matlab
Hermegraves 2001
Sites web
Cours de C Rougier (U Montreacuteal)
httpwww-etudiroumontrealca~rougiercift2730courshtml (cf chapitre 3)
Page wikipeacutedia sur JPEG (en anglais plus complegravete que celle en franccedilais)
httpenwikipediaorgwikiJPEG
Cours de P Courtellemont (Campus numeacuterique Espdon)
httppersouniv-lrfrpcourtelespadonsite_web
Applet de deacutemo par C G Jennings
httpcgjenningscatoyboxhjpegindexhtml
Cours de D Marshall (U Cardiff)
httpwwwcscfacukDaveMultimediaPDF
Reacutefeacuterences
Sami Gazzah 2009 239
Chapitre 9
introduction au
traitement
dimages avec OpenGL
Sami Gazzah 2009 240
OpenGL est une librairie graphique Elle a eacuteteacute creacutee par Silicon
Graphics et beacuteneacuteficie sur ces machines de lacceacuteleacuteration mateacuterielle
Elle est constitueacute d‟environ 200 fonctions graphiques
OpenGL est une bibliothegraveque de fonctions
Les fonctions sont de bas niveaux
La version actuelle est l‟ laquo OpenGL 41 raquo (deacutecembre 2010)
Principale caracteacuteristique indeacutependant du mateacuteriel et du systegraveme
d‟exploitation
Une impleacutementation libre de droits dOpenGL tregraves performante a eacuteteacute
eacutecrite par Brian Paul httpwwwmesa3dorg Et tout son code source
est accessible
Preacutesentation geacuteneacuterale
15122010
41
Sami Gazzah 2009 241
OpenGL propose des fonctions de bas niveaux
Primitives geacuteomeacutetriques points segments polygones
Les fonctions de haut niveaux sont deacuteveloppeacutees par l‟utilisateur ou
importeacutees par la librairie en amont d‟OpenGL
Primitives geacuteomeacutetriques complexes Sphegravere splines etc
Toutes les commandes et fonctions utilisent le preacutefixe gl
Exemple glColor2f()
Sami Gazzah 2009 242
Les Bibliothegraveques co-existant avec OpenGL
GLU OpenGL Utility Library contient les routines de bas niveau pour
geacuterer les matrices de transformation et de projection la facettisation des
polygones et le rendu de surface Les bibliothegraveques dextension du
systegraveme de fenecirctres permettent lutilisation du rendu OpenGL Il sagit de
GLX pour X Windows (fonctions ayant pour preacutefixe glX) et de WGL
pour Microsoft Windows (fonctions ayant pour preacutefixe wgl)
GLUT OpenGL Utility Toolkit est une boite agrave outils indeacutependante du
systegraveme de fenecirctrage eacutecrite par Mark
Kilgard pour simplifier la tacircche dutiliser des systegravemes diffeacuterents (fonctions
ayant pour preacutefixe glut)
Sami Gazzah 2009 243
Les primitives geacuteomeacutetriques d rsquoOpenGL
Les primitives sont deacutecrites par un bloc d‟instructions deacutelimiteacute par glBegin et glEnd
Ce bloc contient geacuteneacuteralement une liste de vertex Exemple
glBegin(GL_LINE_LOOP)
glVertex2f(-05 -05)
glVertex2f(05 -05)
glVertex2f(05 05)
glVertex2f(-05 05)
glEnd()
D‟autres attributs peuvent ecirctre speacutecifieacutes en chaque sommet
couleur normale coordonneacutee de texture etcSami Gazzah 2009 244
OpenGL est une machine agrave eacutetats
En modifiant les variables d‟eacutetats on peut changer le style de rendu
Sami Gazzah 2009 245
Exemple Honda Hippo (3dRendercom)
Placage de textures
bullL‟apparence et le toucher ( feel ) d‟une surface
bullUne image utiliseacutee pour deacutefinir les caracteacuteristiques d‟une surface
bullUne image multi-dimensionnelle qui est plaqueacutee sur un espace multi-
dimensionnel
Sami Gazzah 2009 246
15122010
42
Sami Gazzah 2009 247
Reacutefeacuterences openGL
Sami Gazzah 2009 248
Chapitre 10
introduction au
traitement
dimages avec OpenCV
Sami Gazzah 2009 249
Preacutesentation geacuteneacuterale
Quest-ce
Open Source Computer Vision Library
Bibliothegraveque open source de traitement des images numeacuteriques
Projet initieacute par Intel (en 1999)
Teacuteleacutechargeable sur httpsourceforgenetprojectsopencvlibrary
Fortement orienteacutee temps reacuteel
eacutecrite en C et C++
optimiseacutee pour les processeurs multi-cœurs
Multi-plateformes disponible pour Linux Windows et Mac OS X
Que contient-elle
Des fonctionnaliteacutes (structures et routines gt350 algos) de base et
avanceacutees pour bacirctir rapidement des applications autour de la vision par
ordinateur
Exemples dutilisation traitements de bas niveau (filtrage ) deacutetection
de visages reconnaissance et suivi dobjets en mouvement Sami Gazzah 2009 250
Fonctionnaliteacutes
Lectureeacutecriture dimages statiques et de seacutequences videacuteo
APIs de bas et moyen niveaux
Traitement des images binaires
Manipulations dimage (eacutechantillonnage (sampling) reacutegion dinteacuterecirct (ROI)
redimensionnement (resizing) rotation deacuteformation (warping) )
Deacutetection de contours de lignes de coins (edge detection)
Traitements multi-eacutechelles (multiscale processing)
Transformeacutees (Fourier cosinus discregravete )
Modules de haut niveau
Deacutetection reconnaissance et suivi (tracking) de visages
Flot optique (estimation du mouvement) (optical flow)
Calibrage (calibration) de la cameacutera
Mise en correspondance steacutereacuteoscopique (stereo matching)
IA et apprentissage par ordinateur (machine learning)
3D mise en correspondance (registration)
Sami Gazzah 2009 251
Modules principaux
CxCore
Types de base pour manip dimages (ex struct image point isin cxtypesh)
Structures dynamiques (listes files graphes arbres) et persistantes (LE)
Manipulations de matrices meacutethodes de lalgegravebre lineacuteaire et statistiques
Dessin en surimpression (overlay) (ex eacutetiquetage)
Cv
Traitement dimage calibrage cameacutera
Geacuteomeacutetrie algorithmique (triangulation )
Cvaux
Reconnaissance de visage
Code expeacuterimental et obsolegravete
Autres (dans otherlibs)
HighGUI ES videacuteos curseurs fenecirctrage
ML classification regroupement (clustering)Sami Gazzah 2009 252
OpenCV premiers programmesBibliothegraveque OpenCV
15122010
43
Sami Gazzah 2009 253
Livre
G Bradski amp A Kaehler laquo Learning OpenCV raquo OReilly Press (2008)
codes sources httpexamplesoreillycom9780596516130
Ressources en ligne
Reacutefeacuterence complegravete httpopencvwillowgaragecomdocumentation
Wiki httpopencvwillowgaragecomwikiFullOpenCVWiki
bullPreacutesentation teacuteleacutechargement installation
bullavec CodeBlocks httpopencvwillowgaragecomwikiCodeBlocks
bullDeacutebuter avec OpenCV FAQ
Tutoriels
httpnchcdlsourceforgenetsourceforgeopencvlibraryippocvpdf
httpdaslmemdrexeledu~noahKuntzopenCVTut1html agrave Tut11html
httpwwwcognoticscomopencvservo_2007_series
Tutoriel sur la vision utilisant OpenCV (en franccedilais)
httpwwwsiteduzerocomtutoriel-3-8631-vision-par-ordinateurhtml
Reacutefeacuterences openCV
15122010
12
Sami Gazzah 2009 67
Application
Masquage
Sami Gazzah 2009 68
Les Opeacuterations arithmeacutetiques
Addition dimages
Principe I(xy)=I1(xy)+I2(xy) pour tout pixel de coordonneacutees (xy)
Strateacutegies si deacutepassement de capaciteacute
bullDeacutecalage des valeurs dans [0 127] avant addition (perte du bit de poids faible)
bullSaturation I(xy) = min ( I1(xy)+I2(xy) 255)
bullPreacute-calcul des valeurs finales (theacuteoriques) minimale et maximale
puis recadrage de la dynamique
Utilisations principales
Augmentation de la luminance dune image (par addition dune constante ou
dune image avec elle-mecircme) et diminution du bruit dans une seacuterie dimages
))()((max
))()((min
21)(
max
21)(
min
yxIyxIi
yxIyxIi
Iyx
Iyx
))()((255
)( 21
minmax
yxIyxIii
yxI
Sami Gazzah 2009 69
Les Opeacuterations arithmeacutetiques
Soustraction dimages
Principe I(xy)=I1(xy)-I2(xy) pour tout pixel de coordonneacutees (xy)
Strateacutegies si deacutepassement de capaciteacute
bullSaturation I(xy) = max ( I1(xy) - I2(xy) 0)
bullDiffeacuterence absolue I(xy) = | I1(xy) - I2(xy) |
Utilisations principales
bullDiminution de la luminance dune image
bullDeacutetection de changements entre images
bulldeacutefauts (par comparaison avec une image de reacutefeacuterence)
bullmouvements (par comparaison avec une autre image de la seacutequence)
Sami Gazzah 2009 70
Rim Romdhaneet al AVSS10 rd the 7th IEEE International Conference on
Advanced Video and Signal-Based Surveillance Boston USA 2010
Sami Gazzah 2009 71
Addition et soustraction de deux images
Sami Gazzah 2009 72
Si on dispose de limage en niveau de gris et de limage binaire suivante
15122010
13
Sami Gazzah 2009 73
2 Identiteacute neacutegatif et Seuillage
Sami Gazzah 200974
2 Les opeacuterations geacuteomeacutetriques
Opeacuterations geacuteomeacutetriques sur une image en niveaux de gris
Sami Gazzah 2009 75
Une transformation de voisinage est telle que la nouvelle valeur
drsquoun pixel tient compte des pixels appartenant au voisinage du
pixel consideacutereacute
Le voisinage peut avoir une taille plus ou moins grande (3x3 5x5
7x7hellip) et il peut avoir une forme reacuteguliegravere (carreacute rectangle
hexagonehellip) ou bien une forme quelconque
3 Transformations de voisinage
Sami Gazzah 2009 76
Exemple de transformation de voisinage le
produit de convolution
dans le cas continu le produit de convolution de f par g est
deacutefini par
Dans le cas discret il est geacuteneacuteralement deacutefini sur un voisinage il
est donneacute par
Sami Gazzah 2009 77
Si on applique ceci agrave une image I1 de dimensions
finies et agrave moyenne de convolution K (K
Kernel=noyau) de dimension 3 x 3 les pixels de
lrsquoimage I1 obtenue par convolution de I2 par K ont
pour valeur
Sami Gazzah 2009 78
Nouvelle
image
Nouvelle valeur
de pixel21
1 11
1 111 11
Noyau
Nouvelle valeur de pixel =
9
22 2719
9 19
51 21 14Image
originale
111
111
111
9
1h
15122010
14
Sami Gazzah 2009 79
4-Transformations spectrales (1)
Transformeacutee de Fourier 2D (TF 2D)
- La TF est
Dans la cas 1D (Rappel)
Dans la cas 2D
- La TF inverse
- La TF est
- La TF inverse
Sami Gazzah 2009 80
4-Transformations spectrales (2)
Exemple des transformations spectrales transformeacutee de Fourier
Soit f(xy) deacutefinie par une matrice d‟eacutechantillons reacuteguliegraverement espaceacutes
N le nombre de lignes M nombre de colonnes
- La TF est deacutefinie par
- La TF inverse est deacutefinie par
Sami Gazzah 2009 81 Sami Gazzah 2009 82
Compression RLE (Run Length Encoding)
2 2 2 2 128 128 128 120 120 80 96 96 94 94 94 95 97 97 97 97
4 2 3 128 2 120 1 80 2 96 3 94 1 95 4 97
Utile quand il y a des reacutepeacutetitions dans la chaicircne agrave encoder
Exemple Formats BMP TIFF PCX (Paintbrush)
Sami Gazzah 2009 83
Chapitre 3
RESTAURATION DrsquoIMAGES
Sami Gazzah 2009 84
L‟acquisition s‟accompagne toujours d‟une distorsiondeacutegradation
Il existe diffeacuterentes sources de deacutegradation (bruit) d‟une image
bruit lieacute au contexte de lacquisition Bougeacute mauvaises conditions
d‟eacuteclairagehellip
bruit lieacute au capteur Capteur de mauvaises qualiteacutes mauvaise mise
au point etchellip
bruit lieacute agrave leacutechantillonnage Une mauvaise freacutequence
d‟eacutechantillonnage peut introduire dans l‟image des points blancs ou
noirs connus souvent sous l‟appellation laquo sel et poivre raquo
bruit lieacute agrave la nature de la scegravene Preacutesence de fumeacutee de nuage
etchellip
Il faut corriger l‟image par un proceacutedeacute algorithmique
15122010
15
Sami Gazzah 2009 85
Restauration des Images monochromatiques et des images
couleurs
Au deacutebut de l‟imagerie numeacuterique les algorithmes deacuteveloppeacutes eacutetaient
destineacutes aux images en niveaux de gris Avec les progregraves techniques et le
deacuteveloppement des outils informatiques le traitement des images
couleurs est devenu possible
bull Approche marginale
Sami Gazzah 2009 86
Approche vectorielle
Dans lapproche vectorielle le vecteur couleur est consideacutereacute globalement
et le traitement doit ecirctre alors reacuteellement vectoriel Il ny a pas dans ce cas
une eacutetape de fusion ou de seacuteparation explicite entre les diffeacuterentes
composantes couleur de lrsquoimage Dans ce cas la correacutelation entre les
diffeacuterentes composantes peut ecirctre prise en compte ce qui aboutit
geacuteneacuteralement agrave des reacutesultats meilleurs que ceux du traitement marginal
Sami Gazzah 2009 87
Rappel
Sami Gazzah 2009 88
Sami Gazzah 2009 89
Nouvelle
image
Nouvelle valeur
de pixel21
1 11
1 111 11
Noyau
Nouvelle valeur de pixel =
9
22 2719
9 19
51 21 14Image
originale
Sami Gazzah 2009 90
15122010
16
Sami Gazzah 2009 91
Lissage spatial tout en remplacent la valeur du pixel courant par la moyenne de
tous les pixels inclus dans un voisinage centreacute en ce point
Sami Gazzah 2009 92
Sami Gazzah 2009 93 Sami Gazzah 2009 94
En traitement d‟image les tailles des fenecirctres utiliseacutees pour le
filtrage meacutedian sont geacuteneacuteralement impaires 3 3 5 5 7 7
exemple
fenecirctre de 5 pixels en croix
Pour les fenecirctres de taille paire ( 2 K valeurs ) apregraves
ordonnancement croissant des valeurs prendre la moyenne des 2
valeurs centrales
valeur de sortie( Kiegraveme valeur ordonneacutee + (K+1)iegraveme valeur ordonneacutee )
2=
Sami Gazzah 2009 95 Sami Gazzah 2009 96
15122010
17
Sami Gazzah 2009 97
Image laquo Piegraveces raquo de reacutefeacuterence bruiteacutee ( bruit de type impulsionnel ) puis filtreacutee
avec un filtre moyenneur (33) et un filtre meacutedian (33)
Image de reacutefeacuterence Image bruiteacutee
Bruit
Le filtrage meacutedian est plus adapteacute que le filtrage
lineacuteaire pour reacuteduire le bruit impulsionnel
Observation
Comparaison filtre meacutedian et filtre moyenneur
Sami Gazzah 2009 99 Sami Gazzah 2009 100
Sami Gazzah 2009 101 Sami Gazzah 2009 102
Chapitre 4
REHAUSSEMENT DrsquoIMAGES
15122010
18
Sami Gazzah 2009 103
Introduction
Le preacutetraitement d‟image est l‟ensemble des opeacuterations effectueacutees sur
une image soit pour l‟ameacuteliorer soit pour la restaurer
Le preacutetraitement d‟une image vise soit agrave renforcer la ressemblance des
pixels soit au contraire agrave accentuer les diffeacuterences de pixels d‟une mecircme
reacutegion
Accroitre la seacuteparabiliteacute des reacutegions composant une scegravene revient agrave
augmenter les contrastes vu
On applique le rehaussement des images afin de faciliter l‟interpreacutetation
visuelle et la compreacutehension des images
Pour comprendre ce type de rehaussement il faut comprendre le concept
d‟histogrammeSami Gazzah 2009 104
Deacutefinition de lrsquohistogramme drsquoune image
L‟histogramme est un outil qui permet de comptabiliser le nombre
d‟occurrences de chacune des valeurs dans une image en niveaux de gris
Dans une image couleur il est neacutecessaire d‟utiliser plusieurs
histogramme sur chacune des composantes du systegraveme de repreacutesentation
de la couleur
Soit h l‟histogramme de l‟image I de dimension (w x h) h[i] repreacutesente
le nombre d‟occurrence de chaque niveau de quantification i La probabiliteacute
estimeacutee du niveau i dans une image I est
hw
ihip
][)(
Image de 256 256 pixels
codeacutes chacun sur 8 bitsPopulation de pixels pour chaque
niveaux de gris [0 255]
Pour chaque niveau de gris on compte le nombre de pixels s‟y reacutefeacuterant
Pour chaque niveau on trace le graphe en bacircton du nombre de pixels
(possibiliteacute de regrouper les niveaux proches en une seule classe)
Exemple drsquohistogramme pour une image en niveaux
de gris
0 50 100 150 200 250
0
200
400
600
800
1000
cameraman
Image laquo A raquo en
niveaux de gris
Matrice des valeurs de luminance
des pixels de lrsquoimage laquo A raquo
Histogramme
de lrsquoimage
laquo A raquo
2 2 2 2 2 2 2 2
2 0 0 0 0 0 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 0 0 0 0 0 2
2 2 2 2 2 2 2 2
Les niveaux 0 1 et 2 sont respectivement repreacutesenteacutes par 24 12 et 28 pixels
repreacutesentation de cette population de pixels sur lhistogramme
Limage laquo A raquo comporte 3 niveaux de gris diffeacuterents 0 1 et 2
Compter le nombre de pixels pour chaque niveau de gris agrave lrsquoaide de la
matrice des valeurs de luminance
Exemple simple de calcul drsquohistogramme pour une image
Image laquo A raquoValeurs de luminance de
laquo A raquo
Histogramme cumuleacute de
laquo A raquo
2 2 2 2 2 2 2 2
2 0 0 0 0 0 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 0 0 0 0 0 2
2 2 2 2 2 2 2 2
Calcul dun histogramme particulier faisant appel aux cumuls des niveaux de gris
Histogramme cumuleacute
Utile pour certains traitements dimage tels que lrsquoeacutegalisation
dhistogramme ( ameacutelioration de contraste)
Chaque bacircton cumule le nombre de pixels du niveaux de gris concerneacute et des
niveaux de gris infeacuterieurs les niveaux 0 1 2 sont donc repreacutesenteacutes
respectivement par 24 36 et 64 pixels
Histogramme cumuleacute drsquoune image L‟histogramme ne donne pas L‟histogramme ne donne pas
d‟informations sur la reacutepartitiond‟informations sur la reacutepartition
Trois images diffeacuterentes ayant un mecircme histogramme
15122010
19
Modification de lrsquohistogrammeModification de lrsquohistogramme
On appelle dynamique des niveaux de gris lintervalle [nminnmax] de
niveaux de gris dans lequel sont compris tous les pixels de limage
Le but de la modification dhistogramme modifier chaque niveau de
gris pour accroicirctre le contraste On modeacutelise cette transformation par
leacutequation Irsquo(ij) = g(I(ij)) ougrave g est la fonction de contraste
Chaque transformation sera deacutecrite par une courbe repreacutesentant la
relation entre un niveau de gris de limage de deacutepart (abscisse) et le
niveau qui lui correspond dans limage ameacutelioreacutee (ordonneacutee)
Sami Gazzah 2009 109
Masquage de zones Masquage de zones Extraction d‟une Extraction d‟une
fenecirctre d‟intensiteacutefenecirctre d‟intensiteacute ((slicingslicing intensiteacute)intensiteacute)
Cette transformation consiste agrave remplacer un intervalle de niveaux
de gris par du blanc (nmax) par du noir (nmin) ou par une valeur
intermeacutediaire du niveau de gris
Sami Gazzah 2009 110
Courbes repreacutesentant de gauche agrave droite lextraction dune fenecirctre dintensiteacute et le masquage blanc et noir de lintervalle [ab]
n-1
n-1
0 n-1
n-1
0a ab b n-1
n-1
0 a b
Sami Gazzah 2009 111
Exemples de Masquage de zonesInversion de la dynamiqueInversion de la dynamique
But produire le neacutegatif d‟une image
donneacutee
Sami Gazzah 2009 112
Sami Gazzah 2009 113
Etirement drsquohistogramme
Sami Gazzah 2009 114
Etirement drsquohistogramme
Augmentation du contraste par eacutetirement d‟histogramme
15122010
20
Sami Gazzah 2009 115
Eacutegalisation dhistogramme
But ameacutelioration du contraste
Distribution uniforme des niveaux de gris
Elle se deacutefinit agrave laide de lhistogramme cumuleacute de limage hc(n)
qui repreacutesente le nombre de pixels de limage dont le niveau de
gris est infeacuterieur ou eacutegal agrave n
Deacutefinition de la transformation deacutegalisation dhistogramme soit
I le niveau de gris dun pixel de deacutepart le niveau de gris de limage
darriveacutee I‟ sera
Sami Gazzah 2009 116
Sami Gazzah 2009 117
Effet de lrsquoeacutegalisation drsquohistogramme
Sami Gazzah 2009 118
Augmentation du contraste exemples et comparaison
Original Eacutetirement d‟histogramme Eacutegalisation
Le rehaussement du contraste est plus marqueacute avec l‟eacutegalisation
d‟histogramme autorisant la deacutetection de structures situeacutees dans
l‟ombre
Sami Gazzah 2009 119
Chapitre 5
SEGMENTATION DrsquoIMAGES
Sami Gazzah 2009 120
Une image est geacuteneacuteralement composeacutee d‟objets L‟analyse de cette
image neacutecessite l‟identification de ces objets
La segmentation dimages est lun des problegravemes phares du traitement
dimages Elle consiste agrave partitionner limages en un ensemble de
reacutegions connexes Linteacuterecirct de ces reacutegions est de pouvoir ecirctre
manipuleacutees ensuite via des traitements de haut niveau pour extraire
des caracteacuteristiques de forme de position de taille etc
Introduction
15122010
21
Sami Gazzah 2009 121 Sami Gazzah 2009 122
Meacutethodes statistiquesSegmentation par Histogrammes
Sami Gazzah 2009 123
Meacutethodes statistiquesSeacutelection Reacutecursive sur Histogrammes
Ohlander Price et Reddy (1978)
Sami Gazzah 2009 124
Segmentation par approche contourIntroduction
Le contour est deacutefini comme le lieu des points connexes qui
possegravedent une forte transition d‟intensiteacute lumineuse ou de texture Le
traitement qui vise agrave l‟obtenir est appeleacute extraction de contour on
parle aussi de deacutetection de contour
Le processus d‟extraction de contour peut ecirctre deacutecomposeacute en
plusieurs eacutetapes distinctes que nous allons les deacutetailler comme suit
- La mise en eacutevidence des contours
- L‟extraction des contours
- La fermeture des contours
Sami Gazzah 2009 125
Segmentation par approche contourLa mise en eacutevidence des contours
Elle s‟obtient par une diffeacuterentiation de l‟image et elle peut
s‟appliquer agrave des images binaires ou non le but de la deacutetection de
contours est d‟obtenir dans un premier temps une image binaire ougrave
chaque contour est d‟eacutepaisseur 1 et sans discontinuiteacute
rehausser le contour
suivre le contour
les points du contour correspondent au maximum en valeur absolue
de la deacuteriveacutee primaire de l‟image on obtient alors un gradient ou au
passage par zeacutero de la deacuteriveacutee seconde de l‟image on obtient alors
un laplacien
Sami Gazzah 2009 126
Segmentation par approche contourLa mise en eacutevidence des contours
La deacutetection de contours peut ecirctre reacutealiseacutee gracircce agrave des filtres
dont les coefficients ont eacuteteacute soigneusement choisis Nous
aborderons dans cette preacutesentation 3 filtres les filtres de
Prewitt Roberts et Sobel
Ce jeu de filtres (Prewitt Roberts et Sobel) est constitueacute d‟une
paire de filtres lineacuteaires qui deacutetectent le contours dans deux
directions orthogonales (vertical et horizontal)
15122010
22
Sami Gazzah 2009 127
Segmentation par approche contourFiltre de Perwitt
Les filtres de Perwitt sont les suivants
Filtre horizontal
Filtre vertical
111
000
111
h
101
101
101
v
Sami Gazzah 2009 128
Segmentation par approche contourFiltre de Perwitt
A partir d‟une image I on calcule Gh et Gv images
correspondant au filtrage de I par h et v Ces images
contiennent les contours horizontaux et verticaux
Si l‟on souhaite obtenir une image de contour unique ne tenant
pas compte de l‟orientation on calcule
Orientation du contour
Image binairehellipchoisir un seuil de deacutetection
22
vh GGG
)(vh
GGarctg
Sami Gazzah 2009 129
Segmentation par approche contourFiltre de Sobel
Les filtres de Sobel sont les suivants
Filtre horizontal
Filtre vertical
121
000
121
h
101
202
101
v
Sami Gazzah 2009 130
Segmentation par approche contourFiltre de Sobel
Sami Gazzah 2009 131
Segmentation par approche contourFiltre de Sobel
Sami Gazzah 2009 132
Segmentation par approche contourFiltre de Roberts
Les filtres de Roberts sont les suivants
Filtre diagonal
Filtre anti-diagonal
10
01h
01
10v
15122010
23
Sami Gazzah 2009 133
Segmentation par approche contourFiltre de Kirsch
Ce deacutetecteur utilise huit noyaux de convolution lui permettant de deacutetecter
des contours en fonction de huit directions agrave
15
335
305
335
1
d 15
333
305
355
2
d 15
333
303
555
3
d
15
333
503
553
4
d 15
533
503
533
5
d 15
555
503
333
6
d
15
555
303
333
7
d 15
355
305
333
8
d
Sami Gazzah 2009 134
Contours et Laplacien
Il s‟agit de calculer la deacuteriveacutee seconde de l‟image
Le Laplacien est tregraves sensible au bruit pour limiter l‟effet du bruit le
Laplacien est approximeacute par un masque qui effectue en mecircme temps
une opeacuteration de filtrage par une Gaussienne qui repreacutesente l‟eacutetape
de lissage de l‟image puis vient l‟application du laplacien Les masques
du Laplacien Gaussien sont preacutesenteacutes ci-apregraves
Segmentation par approche contour
Sami Gazzah 2009 135
Contours et Laplacien
Le contour est ensuite deacutetermineacute par la deacutetection des
passages par zeacutero du laplacien de l‟image
88888888888888
010
141
010
1h
111
101
111
2h
121
242
121
3h
Sami Gazzah 2009 136
Contours et Laplacien
Sami Gazzah 2009 137
Seuillage
Les filtres preacuteceacutedents nous fournissent des images des sauts ou
diffeacuterences d‟intensiteacute
Le seuillage permet d‟eacuteliminer des points en lesquels la diffeacuterence
d‟intensiteacute est tregraves faible
Le seuillage peut ecirctre pousser afin d‟obtenir une image binaire (TOR)
Le seuillage dans sa forme le plus simple ne tient pas compte de la
topologie et peut conserver un point bruiteacute isoleacute ou eacuteliminer une portion
de contour d‟intensiteacute faible
Sami Gazzah 2009 138
Seuillage par hysteacutereacutesis
c‟est une fonction agrave deux seuils un seuil bas et un seuil haut
Tout point dont le module de contour est au-dessus du seuil-haut est un
point de contour
Tout point dont le module de contour est au-dessous du seuil-bas n‟est
pas un point de contour
Les points de module entre le seuil-bas et le seuil-haut sont des points
de contour s‟il possegravede un point de contour dans leur voisinage
15122010
24
Sami Gazzah 2009 139
Seuillage par hysteacutereacutesis
seuil haut
Seuil bas
point sur contour
point hors contour
Seuillage par hysteacuterisais les points de lrsquoimage de contour de valeur
supeacuterieur au seuil haut sont des points de contours A partir de ces points de
contours le voisinage de la direction du contour sont examineacutes srsquoils sont de
valeur supeacuterieure au seuil bas ils sont ajouteacutes au points de contoursSami Gazzah 2009 140
Chapitre 6
Introduction aux
opeacuterateurs
morphomatheacutematique
Sami Gazzah 2009 141
1 Introduction
Les opeacuterateurs morphomatheacutematique (=Morphologie Matheacutematique)
permettent d‟ameacuteliorer les images de contours et apporter d‟autres
fonctionnaliteacutes
Ils ont eacuteteacute initialement appliqueacute sur des images NampB (Matheron et
Sarra1965) ensuite eacutetendus agrave des images en nivaux de gris par Doupherty
(1978)
Pour les appliquer sur des images couleurs on peut les appliquer
seacutepareacutement agrave chaque composante couleur et combiner les reacutesultats
Sami Gazzah 2009 142
Diffeacuterentes opeacuterations
eacuterosion dilatation
ouverture fermeture
Squelettisation
hellip
1 Introduction
Sami Gazzah 2009 143
1 Introduction
Dilatation
Ajouter un pixel sur les pourtours de la forme
boucher les trous
Erosion
Enlever un pixel sur les pourtours de la forme
les objets de taille infeacuterieure agrave celle de leacuteleacutement
structurant vont disparaicirctre
agrandit les trous
Sami Gazzah 2009144
1I Rappels sur les ensembles
L‟eacutegaliteacute
L‟inclusion
Lbdquointersection
L‟union
La diffeacuterence
La diffeacuterence symeacutetrique
La compleacutementariteacute E eacutetant un ensemble
servant de reacutefeacuterentielle
Dans ce qui suit les lettres majuscules deacutesignent des ensembles et les lettres
minuscules deacutesignent des eacuteleacutements appartenant aux ensembles
Sur les ensembles on deacutefinit les opeacuterations suivantes
15122010
25
Sami Gazzah 2009145
1I Rappels sur les ensembles
Sami Gazzah 2009146
1I Rappels sur les ensembles
Lois de De Morgan
Reacuteflexion La reacuteflexion d‟un ensemble A est deacutefinie par
Un ensemble symeacutetrique veacuterifiant ndashA=A C‟est le cas des cercles et des carreacute par
exemple
ccc YXYX )(
ccc YXYX )(
AaaA
A -A B -B
Sami Gazzah 2009147
1I Rappels sur les ensembles
Addition de Minkowski l‟addition d‟un eacuteleacutement x agrave un ensemble A par x est
deacutefinie par
Cette notion n‟est pas uniquement ensembliste elle nous oblige agrave deacutefinir un point
de reacutefeacuterence
On en deacuteduit l‟addition d‟un ensemble B agrave un ensemble A c‟est le reacutesultat de
l‟addition de chaque eacuteleacutement de B agrave A
L‟addition de Minkowski est commutative Elle est eacutegalement appeleacute dilatation
AaxaxAB
A
A
x
AxBxAaBaBbbABAC )()()(
le translateacute de X par b
Sami Gazzah 2009148
1I Rappels sur les ensembles
Eleacutement structurant les opeacuterations morphomatheacutematiques sont deacutefinis agrave
partir des ensemble B discrets appeleacute eacuteleacutement structurant Ces eacuteleacutement
permettent de deacutefinir le type de voisinage souhaiteacute
Addition de Minkowski d‟un ensemble A et d‟un ensemble B
BA
Sami Gazzah 2009149
1II Dilatation
Le reacutesultat de dilatation de lrsquoensemble A par lrsquoensemble B
est lrsquoaddition de Minkowski crsquoest lrsquoensemble des points tel
que lorsque B est centreacute sur un de ces points il y a une
intersection non vide entre A et B
Pour des images en niveaux de gris on obtient lrsquoimage
dilateacutee de la forme A en remplaccedilant tout pixel par le
maximum des intensiteacutes des voisins selon la forme B
Sami Gazzah 2009 150
1II Dilatation1 Image NampB
Soit k l‟eacuteleacutement structurant de taille (2k+1) x (2k+1) L‟algorithme de
dilatation est le suivant on parcourt tous les pixels de l‟image sauf les
bord de l‟image d‟eacutepaisseur k pour chaque pixel du fond rencontreacute s‟il
possegravede un voisin au sens de l‟eacuteleacutement structurant qui appartient agrave un
objet il prend le couleur de l‟objet si non il n‟est pas modifieacute
15122010
26
la dilatation (noteacutee ) drsquoune image monochrome laquo f raquo par un
eacuteleacutement structurant laquo B raquo est deacutefinie en terme de sous-graphe
bull f B = T [ Y ] = Supl l tel que (m n l) Y
bullY = U ( f ) U ( B )
En consideacuterant un eacuteleacutement structurant plan de valeur nulle sur son
support
( f B ) (P) = Max valeurs des pixels du voisinage du pixel P
1II Dilatation1 Image niveaux de gris
max
55 68 77 90 91 95 115 151 210
( f B ) (P) = 210
n
115 91 77
95 68 90
55 151 210
exemple
m
Image de reacutefeacuterence
Eacuteleacutement structurant
(8-connexiteacute)
liste ordonneacutee des valeurs du voisinage
- - -
-
-
-
-
-
1II Dilatation1 Image niveaux de gris
Exemples de filtrages morphologiques(eacuteleacutement structurant 33 complet)
Image de reacutefeacuterenceImage dilateacutee
morphologiquement
La dilatation en niveaux de gris accroicirct la luminance des
pixels entoureacutes de voisins plus lumineux
Observation
Sami Gazzah 2009154
VI Erosion
L‟eacuterosion est deacutefinie par
On deacutefinit la soustraction de Minkowski par
On a eacutequivalence entre eacuterosion et soustraction de Minkowski si B est
symeacutetrique (si B=-B)
D‟un point de vue binaire l‟eacuterode de A par B correspond agrave l‟ensemble
des points tels que si B est centre sur ce points B est entiegraverement inclus
dans A
AxBxBbbABAC )()(
)()( BbbABAC
Sami Gazzah 2009 155
VI Erosion1 Image NampB
on parcourt tous les pixels de l‟image sauf les bord de l‟image
d‟eacutepaisseur k pour chaque pixel du fond rencontreacute s‟il possegravede un
voisin au sens de l‟eacuteleacutement structurant qui appartient agrave un objet il
prend le couleur du fond si non il n‟est pas modifieacute
VI Eacuterosion drsquoune image en niveaux de gris
Lrsquoeacuterosion (noteacutee Ө ) drsquoune image monochrome laquo f raquo par un eacuteleacutement
structurant laquo B raquo est deacutefinie en terme de sous-graphe
bull f Ө B = T [ Y ] = Supl l tel que (m n l) Y
bullY = U ( f ) Ө U ( B )
Classiquement on considegravere un eacuteleacutement structurant plan de
valeur nulle sur son support
( f Ө B ) (P) = Min valeurs des pixels du voisinage du pixel P
15122010
27
VI Eacuterosion drsquoune image en niveaux de gris
min
68 90 91 95 151
( f Ө B ) (P) = 68
n
115 91 77
95 68 90
55 151 210
exemple
m
Image de reacutefeacuterence
ӨӨ
Eacuteleacutement structurant
(4-connexiteacute)
liste ordonneacutee des valeurs du voisinage
-
-
-
-
Exemples de filtrages morphologiques(eacuteleacutement structurant 33 complet)
Image eacuterodeacutee
Lrsquoeacuterosion en niveaux de gris reacuteduit la luminance des pixels
qui sont entoureacutes de voisins de moindre intensiteacute
Image de reacutefeacuterence
Observation
Sami Gazzah 2009 159
Eacuteleacutement structurant (a)
(4-connexiteacute)
-
-
-
-
Eacuteleacutement structurant (b)
(8-connexiteacute)
- - -
-
-
-
-
-
Exercice 1 Sur la mecircme image de deacutepart on reacutealise deux opeacuterations
de dilatations avec deux eacuteleacutements structurant diffeacuterents
Dilatation avec (a) Dilatation avec (b)
image de deacutepart
cas a L‟eacuteleacutement structurant est agrave 4-connexiteacute Chaque pixel
du support qui est eacutegal agrave la valeur 1 ou qui a l‟un de ses 4
voisins agrave la valeur 1 est mis agrave la valeur 1 apregraves filtrage
cas b L‟eacuteleacutement structurant est agrave 8-connexiteacute Chaque pixel
du support qui est eacutegal agrave la valeur 1 ou qui a l‟un de ses 8
voisins agrave la valeur 1 est mis agrave la valeur 1 apregraves filtrage
Dans les deux cas on observe qu‟une dilatation eacutelimine les
trous isoleacutes dans les objets et dilate le contour des objets en
tenant compte de l‟eacuteleacutement structurant
Sami Gazzah 2009 160
Exercice 1
Sami Gazzah 2009 161
Eacuteleacutement structurant (a)
(4-connexiteacute)
-
-
-
-
Eacuteleacutement structurant (b)
(8-connexiteacute)
- - -
-
-
-
-
-
Exercice 2 Sur la mecircme image de deacutepart on reacutealise deux opeacuterations
d‟eacuterosions avec deux eacuteleacutements structurant diffeacuterents
Erosion avec (a) Erosion avec (b)
image de deacutepart
cas a L‟eacuteleacutement structurant est agrave 4-connexiteacute (origine agrave 4 voisins)
Chaque pixel du support qui a la valeur 0 ou qui a l‟un de ses 4
voisins agrave la valeur 0 est mis agrave la valeur 0 apregraves filtrage
cas b L‟eacuteleacutement structurant est agrave 8-connexiteacute Chaque pixel du
support qui a la valeur 0 ou qui a l‟un de ses 8 voisins agrave la valeur 0
est mis agrave la valeur 0 apregraves filtrage
Dans les deux cas on observe qu‟une eacuterosion eacutelimine les pixels
isoleacutes sur le fond et eacuterode le contour des objets
Sami Gazzah 2009 162
Exercice 2
15122010
28
ConclusionsConclusions
Erosion
les objets relieacutes entre eux vont ecirctre seacutepareacutes
Une eacuterosion de taille n peut se reacutealiser en reacutepeacutetant une
eacuterosion n fois avec un eacuteleacutement structurant de taille 1 ou en
appliquant une seule eacuterosion avec un eacuteleacutement structurant
de taille n
Dilatation
des objets sont situeacutes agrave une distance moins grande que la taille
de leacuteleacutement structurant il vont fusionner
Sami Gazzah 2009 163 Sami Gazzah 2009 164
Sami Gazzah 2009 165
Elimine pixels isoleacutes sans inteacuterecirct
L‟ouverture (opening) consiste agrave une eacuterosion suivi d‟une dilatation
Les petites structures et deacutetail fins disparaissent et ne sont pas recreacuteeacutees
lors de la dilation Une opeacuteration d‟ouverture est ainsi inteacuteressante pour
eacuteliminer les petits morceaux de contours bruiteacutes dans une image de
contours
V Ouverture et fermeture1 Ouverture
BBABAC )(
Sami Gazzah 2009 166
V Ouverture et fermetureII Fermeture
La fermeture (closing) consiste agrave une dilatation suivi d‟une eacuterosion
Les structures proches fusionnent lors de la dilation mais seules les
fusions ponctuelles disparaissent agrave nouveau lors de l‟eacuterosion Une
opeacuteration de fermeture est ainsi inteacuteressante pour boucher les petits
trous
Sami Gazzah 2009 167 Sami Gazzah 2009 168
Exercice 3 Sur l‟image de deacutepart on reacutealise une opeacuteration de
fermeture binaire par l‟eacuteleacutement structurant 4-connexiteacute Conclusions
Eacuteleacutement structurant
(4-connexiteacute)
-
-
-
-Fermeture = dilatation puis eacuterosion
Image de deacutepart Image dilateacutee Image dilateacutee puis eacuterodeacutee
Combler les trous
Reacutetablir les jonctions
tout en preacuteservant la taille
15122010
29
Sami Gazzah 2009 169
Exercice 4 Sur l‟image de deacutepart on reacutealise une opeacuteration
d‟ouverture binaire par l‟eacuteleacutement structurant 4-connexiteacute Conclusions
Eacuteleacutement structurant
(4-connexiteacute)
-
-
-
-Ouverture = eacuterosion puis dilatation
Image de deacutepart Image eacuterodeacutee Image eacuterodeacutee puis dilateacutee
Supprimer les fausses alarmes
Seacuteparer les objets accoleacutes
tout en preacuteservant la tailleSami Gazzah 2009 170
Appliquer les filtres suivants sur limage donneacutee Quelles sont les valeurs choisies
aux bords de limage et quelles sont les modifications visuelles
a) filtre moyenneur M3acute3(19)
b) eacuterosion
c) dilatation
d) meacutedian
e) fermeture
f) ouverture
Exercice 5
Sami Gazzah 2009 171
IV Amincissement et Squelettisation
La squelette (skeleton) d‟une forme est l‟axe meacutedian L‟inteacuterecirct de cette
opeacuteration est dans
La reconnaissance de caractegraveres
Deacutetection des reacuteseaux routiers
La planification de trajectoirehellip
Une meacutethode couramment employeacutee est une amincissement reacutepeacuteteacute
jusqu‟agrave le convergence (n‟apporte aucune modification)
Sami Gazzah 2009 172
IV Amincissement et Squelettisation1 Opeacuteration Tout Ou Rien laquoHit or Missraquo
Cette transformation est deacutefinie par
leacuteleacutement structurant eacutetendu est centreacute sur chaque pixel de limage
comme pour les opeacuterations ensemblistes
la question poseacutee est est ce que le contenu de limage est identique au
contenu de leacuteleacutement structurant
si la reacuteponse est oui le pixel reacutesultant vaut 1 si non il vaut 0
Une application permet de deacutetecter des configurations locales
particuliegraveres dans une image
plusieurs masques peuvent ecirctre utiliseacutes indeacutependamment les images
reacutesultat eacutetant ensuite combineacutees par une opeacuteration ou
)()( cc BABABA
Bc-
est le compleacutementaire
local de B
Sami Gazzah 2009 173
IV Amincissement et Squelettisation1 Opeacuteration laquoHit or Missraquo
Exemple dopeacuteration Hit or Miss deacutetection des coinsSami Gazzah 2009 174
IV Amincissement et Squelettisation1 Amincissement (thinning)
bull La transformation TOR nous permet eacutegalement de deacutefinir
l‟amincissement
bullL‟amincissement consiste agrave soustraire limage reacutesultat dun hit or miss de
limage initiale
bull des amincissements successifs conduisent au squelettisation
)()( BAAAthin
15122010
30
Sami Gazzah 2009 175
IV Amincissement et Squelettisation1I Squelettisation
Appliquer des amincissements successifs puis s‟arrecircter lorsque l‟amincissement
n‟apporte plus de modification C‟est une eacuterosion particuliegravere ougrave les pixels sont
supprimeacutes agrave la condition quils ne provoquent pas la seacuteparation dune reacutegion en
deux
Sami Gazzah 2009 176
IV Amincissement et Squelettisation1I Squelettisation
Sami Gazzah 2009 177
Chapitre 7
Transformations
geacuteomeacutetriques 2D
Sami Gazzah 2009 178
I Introduction
On entend par transformation 2D l‟ensemble des transformations du
plan pouvant ecirctre appliqueacutees aux pixels de l‟image sans consideacuteration
de l‟intensiteacute
Par exemples
Reacuteduction agrandissement
Deacuteformation d‟image
Recalage d‟une photo scanneacutee
Recaler des images que l‟on veut comparer
Mosaiumlque d‟images
Sami Gazzah 2009 179
I Transformations euclidiennes
Elles preacuteservent les distances et les angles
Elles sont les compositions de translations et de rotations
1) Translation
Ougrave Tx et Ty sont les deacuteplacements en x et en y de la translation
y
x
Tyy
Txx
Sami Gazzah 2009 180
2) Rotation
15122010
31
Sami Gazzah 2009 181 Sami Gazzah 2009 182
3) Remarques (1)
Sami Gazzah 2009 183
3) Remarques (2)
Sami Gazzah 2009 184
II Homotheacuteties
Changement deacutechelle par rapport agrave lorigine (scaling zoom)
Ougrave Sx et Sy sont les facteurs dagrandissement ( gt1) ou de
reacuteduction ( lt1) en x et en y
ySy
xSx
y
x
Sami Gazzah 2009 185
II Homotheacuteties
Sami Gazzah 2009 186
II Homotheacuteties
15122010
32
Sami Gazzah 2009 187
III Reacuteflexions
Reacuteflexions par rapport aux axes (flip miroir)
Sami Gazzah 2009 188
IV Cisaillement
Cisaillement (glissement shearing) on eacutetire suivant un ou plusieurs axes
Sami Gazzah 2009 189
Transformations inverses
Sami Gazzah 2009 190
Repreacutesentation Matricielle
IV Autres (reacuteflexions miroirs et flips)
Sami Gazzah 2009 191
Interpolation Directe
Sami Gazzah 2009 192
oDifficile de distribuer le niveau de gris sur les pixels voisins
oOn n‟a pas la certitude que tous les pixels de l‟image
transformeacutee recevront une valeur =gt ldquotrousrdquo
15122010
33
Interpolation Inverse
Sami Gazzah 2009 193
o Interpolation de la valeur du pixel agrave partir des voisins plus
facile
oAucun ldquotrourdquo car on parcourt tous les pixels de l‟image
transformeacutee Sami Gazzah 2009 194
V Objet vectoriel - Objet bitmap
Objet vectoriel
Essentiellement on transforme
les sommets (ou points de
controcircle) et on retracehellip
Objet ldquobitmaprdquo
On doit calculer la nouvelle
position de chaque pixel De plus on
doit geacuteneacuteralement interpoler les
niveaux de gris (couleurs)hellip
Sami Gazzah 2009 195
IV Assignation des niveaux de gris
Neacutecessaire car la position d‟un pixel transformeacute n‟est pas entiegraverehellip
Plusieurs meacutethodes
Interpolation au plus proche voisin
Interpolation bilineacuteaire
Interpolation bicubique
Autres types d‟interpolation
Sami Gazzah 2009 196
IV Assignation des niveaux de gris
Linterpolation de limage cest ce qui arrive lorsquon redimensionne
une image numeacuterique ou quon la redimensionne avec une distorsion
quon change la perspective etc
Exemple 1
Image originale (sans interpolation)
Image agrandie et donc interpoleacutee
Perte de netteteacute due agrave linterpolation
Sami Gazzah 2009
197
IV Assignation des niveaux de gris
Exemple 2 recadrage dimage
Nous allons agrandir cette image agrave 180
Il va donc nous manquer des informations lagrave ougrave lon va creacuteer des
pixels pour agrandir limage
Reacutesultat sans interpolation le logiciel agrandit simplement les pixels
Reacutesultat avec interpolation le logiciel calcule une couleur intermeacutediaire
pour chaque nouveau pixel
Sami Gazzah 2009
198
IV Assignation des niveaux de gris
Image originale
Interpolation au plus
proche voisin
Interpolation
bilineacuteaireInterpolation
bicubique
15122010
34
Sami Gazzah 2009 199
IIV Interpolation au plus proche voisin
Cest lalgorithme le plus rapide agrave calculer
Prend en compte dans le calcul que le pixel le plus proche du point
agrave interpoler
Consiste tout simplement agrave agrandir chaque pixel
Exemple Interpolation du plus proche voisin par copie des pixels
Copie de chaque colonne et de chaque rang
23 20
25 28
23 23
23 23
20 20
20 20
25 25
25 25
28 28
28 28
Sami Gazzah 2009 200
IIV Interpolation bilineacuteaire
Fonction bilineacuteaire de 4 pixels voisins ( en 2 D )
i-1 i i+1
i-1 i-12 i i+12 i+1 i+32
yi=xiYi+12=(xi+xi+1)2
Problegraveme pour le dernier point
Extrapolation lineacuteaire de
2 xn-xn-1
Principe 1D
attribuer agrave chaque point cible une
combinaison lineacuteaire des quatre
points sources les plus proches par
la transformation inverse
Sami Gazzah 2009 201
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 202
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 203 Sami Gazzah 2009 204
IIV Interpolation bilineacuteaire
15122010
35
Sami Gazzah 2009 205
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 206
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 207
IIV Interpolation bilineacuteaire exemple
Sami Gazzah 2009 208
IIV Interpolation bicubique
Sami Gazzah 2009 209
exemple
Sami Gazzah 2009 210
Chapitre 8
Geacuteneacuteration de segments de
droite et de cercles en 2D
15122010
36
Sami Gazzah 2009 211
Infographie 2D besoin de dessiner des primitives de
base (segments cercles hellip)
Espace discreacutetiseacute (pixels) il faut trouver un moyen pour
afficher des segments ou des cercles
I Segments 2D cercles1 Introduction
Comment trouver les pixels agrave allumer pour approximer au mieux une
droite ou un cercle
Algorithme rapide et preacutecisSami Gazzah 2009 212
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=ax+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ya
Sami Gazzah 2009 213
Rappelhellip
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=mx+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ym
Sami Gazzah 2009 214
Exemple
Sami Gazzah 2009 215
Agrave partir des coordonneacutees des 2 extreacutemiteacutes d‟un segmenthellip
Un algorithme simple
Boucle de x1 agrave x2 dx=1
ALLUME (x Arrondir(y))
Avec x2gtx1
Arrondir(y) = Arrondir(ax+b)
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Sami Gazzah 2009 216
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Choix de lrsquoaxehellip
Peu efficace
bullagrave chaque iteacuteration 1 multiplication (ou division) + 1 addition
+ 1 arrondi
15122010
37
Sami Gazzah 2009 217
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
DDA (Digital Differential Analyzer)
y et m doivent ecirctre des reacuteelsSami Gazzah 2009 218
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Calcul en entier (donc plus rapide)
Baseacute sur le choix entre deux points discrets deacutependant de leur
distance respective avec le point reacuteel ideacuteal
On simplifie le problegraveme en traitant drsquoabord le traceacute drsquoun segment
dans le 1er octant m infeacuterieur agrave1 et positif (0ltmlt 1)
Facilement geacuteneacuteralisable aux autres octants
Sami Gazzah 2009 219
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Traceacute d‟un segment dans le premier octant mlt1
On part d‟un point (xi yi) allumeacute
Sami Gazzah 2009 220
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
On ne calcule pas reacuteellement les distances rArr on veacuterifie si la diffeacuterence
entre les deux distances est positive ou neacutegative
Le signe de la longueur (d1-d2) deacutetermine s‟il faut allumer le pixel L ou H
L
H
Sami Gazzah 2009 221
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Comme m=ΔyΔx on multiplie cette diffeacuterence par Δx pour eacuteviter la
division
Mais que vaut p1
Sami Gazzah 2009 222
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
15122010
38
Sami Gazzah 2009 223
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Pour eacuteviter de calculer cette diffeacuterence pour chaque point on cherche
une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
Sami Gazzah 2009 224
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009 225
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009
Exercice
Tracer le segment de droite
pi xi yi
2 0 0
-6 1 1
6 2 1
-2 3 2
10 4 2
2 5 3
-6 6 4
6 7 4
-2 8 5
10 9 5
2 10 6
6
10
y
x
Sami Gazzah 2009 227
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
Sami Gazzah 2009 228
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
hellip interchanger les points hellip
Si |Δx| lt | Δy| on interchange le rocircle de x et y
15122010
39
Sami Gazzah 2009 229
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (1)
Sami Gazzah 2009 230
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (2)
Sami Gazzah 2009 231
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (3)
Sami Gazzah 2009 232
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Toujours baseacute sur le choix entre deux
points discrets deacutependant de leur
distance respective avec le point reacuteel
On travaille dans le 2e octant agrave partir
de (0r) ainsi pour un point (xi yi) le
prochain point sera
(xi+1 yi) ou (xi+1 yi-1)
Sami Gazzah 2009 233
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On calcule le prochain y et les diffeacuterences respectives avec les points
discrets de la faccedilon suivante
Le signe de pi nous dira si nous devons choisir le point lateacuteral ou le diagonal
Sami Gazzah 2009 234
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Encore une fois pour eacuteviter de calculer cette diffeacuterence pour chaque point on
cherche une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
15122010
40
Sami Gazzah 2009 235
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On considegravere 2 cas
Valeur initiale
Sami Gazzah 2009 236
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Sami Gazzah 2009 237
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Exemple centre = (00) et r = 3
Sami Gazzah 2009 238
Livres
Diane Lingrand Introduction au Traitement d‟Images Paris Editions Vuibert 2e
eacutedition 2008
Steven k Feiner James D Foley John F Hughes Richard l Phillips Andries
Vanam Introduction agrave l‟infographie Paris Editions Vuibert 2000
William K Pratt Digital Image Processing Willy-Inter-sciences 4th edition 2007
Eacuteric Incerti Compression dimage ndash Algorithmes et standards Vuibert 2003
Gilles Burel Introduction au traitement dimages ndash Simulation sous Matlab
Hermegraves 2001
Sites web
Cours de C Rougier (U Montreacuteal)
httpwww-etudiroumontrealca~rougiercift2730courshtml (cf chapitre 3)
Page wikipeacutedia sur JPEG (en anglais plus complegravete que celle en franccedilais)
httpenwikipediaorgwikiJPEG
Cours de P Courtellemont (Campus numeacuterique Espdon)
httppersouniv-lrfrpcourtelespadonsite_web
Applet de deacutemo par C G Jennings
httpcgjenningscatoyboxhjpegindexhtml
Cours de D Marshall (U Cardiff)
httpwwwcscfacukDaveMultimediaPDF
Reacutefeacuterences
Sami Gazzah 2009 239
Chapitre 9
introduction au
traitement
dimages avec OpenGL
Sami Gazzah 2009 240
OpenGL est une librairie graphique Elle a eacuteteacute creacutee par Silicon
Graphics et beacuteneacuteficie sur ces machines de lacceacuteleacuteration mateacuterielle
Elle est constitueacute d‟environ 200 fonctions graphiques
OpenGL est une bibliothegraveque de fonctions
Les fonctions sont de bas niveaux
La version actuelle est l‟ laquo OpenGL 41 raquo (deacutecembre 2010)
Principale caracteacuteristique indeacutependant du mateacuteriel et du systegraveme
d‟exploitation
Une impleacutementation libre de droits dOpenGL tregraves performante a eacuteteacute
eacutecrite par Brian Paul httpwwwmesa3dorg Et tout son code source
est accessible
Preacutesentation geacuteneacuterale
15122010
41
Sami Gazzah 2009 241
OpenGL propose des fonctions de bas niveaux
Primitives geacuteomeacutetriques points segments polygones
Les fonctions de haut niveaux sont deacuteveloppeacutees par l‟utilisateur ou
importeacutees par la librairie en amont d‟OpenGL
Primitives geacuteomeacutetriques complexes Sphegravere splines etc
Toutes les commandes et fonctions utilisent le preacutefixe gl
Exemple glColor2f()
Sami Gazzah 2009 242
Les Bibliothegraveques co-existant avec OpenGL
GLU OpenGL Utility Library contient les routines de bas niveau pour
geacuterer les matrices de transformation et de projection la facettisation des
polygones et le rendu de surface Les bibliothegraveques dextension du
systegraveme de fenecirctres permettent lutilisation du rendu OpenGL Il sagit de
GLX pour X Windows (fonctions ayant pour preacutefixe glX) et de WGL
pour Microsoft Windows (fonctions ayant pour preacutefixe wgl)
GLUT OpenGL Utility Toolkit est une boite agrave outils indeacutependante du
systegraveme de fenecirctrage eacutecrite par Mark
Kilgard pour simplifier la tacircche dutiliser des systegravemes diffeacuterents (fonctions
ayant pour preacutefixe glut)
Sami Gazzah 2009 243
Les primitives geacuteomeacutetriques d rsquoOpenGL
Les primitives sont deacutecrites par un bloc d‟instructions deacutelimiteacute par glBegin et glEnd
Ce bloc contient geacuteneacuteralement une liste de vertex Exemple
glBegin(GL_LINE_LOOP)
glVertex2f(-05 -05)
glVertex2f(05 -05)
glVertex2f(05 05)
glVertex2f(-05 05)
glEnd()
D‟autres attributs peuvent ecirctre speacutecifieacutes en chaque sommet
couleur normale coordonneacutee de texture etcSami Gazzah 2009 244
OpenGL est une machine agrave eacutetats
En modifiant les variables d‟eacutetats on peut changer le style de rendu
Sami Gazzah 2009 245
Exemple Honda Hippo (3dRendercom)
Placage de textures
bullL‟apparence et le toucher ( feel ) d‟une surface
bullUne image utiliseacutee pour deacutefinir les caracteacuteristiques d‟une surface
bullUne image multi-dimensionnelle qui est plaqueacutee sur un espace multi-
dimensionnel
Sami Gazzah 2009 246
15122010
42
Sami Gazzah 2009 247
Reacutefeacuterences openGL
Sami Gazzah 2009 248
Chapitre 10
introduction au
traitement
dimages avec OpenCV
Sami Gazzah 2009 249
Preacutesentation geacuteneacuterale
Quest-ce
Open Source Computer Vision Library
Bibliothegraveque open source de traitement des images numeacuteriques
Projet initieacute par Intel (en 1999)
Teacuteleacutechargeable sur httpsourceforgenetprojectsopencvlibrary
Fortement orienteacutee temps reacuteel
eacutecrite en C et C++
optimiseacutee pour les processeurs multi-cœurs
Multi-plateformes disponible pour Linux Windows et Mac OS X
Que contient-elle
Des fonctionnaliteacutes (structures et routines gt350 algos) de base et
avanceacutees pour bacirctir rapidement des applications autour de la vision par
ordinateur
Exemples dutilisation traitements de bas niveau (filtrage ) deacutetection
de visages reconnaissance et suivi dobjets en mouvement Sami Gazzah 2009 250
Fonctionnaliteacutes
Lectureeacutecriture dimages statiques et de seacutequences videacuteo
APIs de bas et moyen niveaux
Traitement des images binaires
Manipulations dimage (eacutechantillonnage (sampling) reacutegion dinteacuterecirct (ROI)
redimensionnement (resizing) rotation deacuteformation (warping) )
Deacutetection de contours de lignes de coins (edge detection)
Traitements multi-eacutechelles (multiscale processing)
Transformeacutees (Fourier cosinus discregravete )
Modules de haut niveau
Deacutetection reconnaissance et suivi (tracking) de visages
Flot optique (estimation du mouvement) (optical flow)
Calibrage (calibration) de la cameacutera
Mise en correspondance steacutereacuteoscopique (stereo matching)
IA et apprentissage par ordinateur (machine learning)
3D mise en correspondance (registration)
Sami Gazzah 2009 251
Modules principaux
CxCore
Types de base pour manip dimages (ex struct image point isin cxtypesh)
Structures dynamiques (listes files graphes arbres) et persistantes (LE)
Manipulations de matrices meacutethodes de lalgegravebre lineacuteaire et statistiques
Dessin en surimpression (overlay) (ex eacutetiquetage)
Cv
Traitement dimage calibrage cameacutera
Geacuteomeacutetrie algorithmique (triangulation )
Cvaux
Reconnaissance de visage
Code expeacuterimental et obsolegravete
Autres (dans otherlibs)
HighGUI ES videacuteos curseurs fenecirctrage
ML classification regroupement (clustering)Sami Gazzah 2009 252
OpenCV premiers programmesBibliothegraveque OpenCV
15122010
43
Sami Gazzah 2009 253
Livre
G Bradski amp A Kaehler laquo Learning OpenCV raquo OReilly Press (2008)
codes sources httpexamplesoreillycom9780596516130
Ressources en ligne
Reacutefeacuterence complegravete httpopencvwillowgaragecomdocumentation
Wiki httpopencvwillowgaragecomwikiFullOpenCVWiki
bullPreacutesentation teacuteleacutechargement installation
bullavec CodeBlocks httpopencvwillowgaragecomwikiCodeBlocks
bullDeacutebuter avec OpenCV FAQ
Tutoriels
httpnchcdlsourceforgenetsourceforgeopencvlibraryippocvpdf
httpdaslmemdrexeledu~noahKuntzopenCVTut1html agrave Tut11html
httpwwwcognoticscomopencvservo_2007_series
Tutoriel sur la vision utilisant OpenCV (en franccedilais)
httpwwwsiteduzerocomtutoriel-3-8631-vision-par-ordinateurhtml
Reacutefeacuterences openCV
15122010
13
Sami Gazzah 2009 73
2 Identiteacute neacutegatif et Seuillage
Sami Gazzah 200974
2 Les opeacuterations geacuteomeacutetriques
Opeacuterations geacuteomeacutetriques sur une image en niveaux de gris
Sami Gazzah 2009 75
Une transformation de voisinage est telle que la nouvelle valeur
drsquoun pixel tient compte des pixels appartenant au voisinage du
pixel consideacutereacute
Le voisinage peut avoir une taille plus ou moins grande (3x3 5x5
7x7hellip) et il peut avoir une forme reacuteguliegravere (carreacute rectangle
hexagonehellip) ou bien une forme quelconque
3 Transformations de voisinage
Sami Gazzah 2009 76
Exemple de transformation de voisinage le
produit de convolution
dans le cas continu le produit de convolution de f par g est
deacutefini par
Dans le cas discret il est geacuteneacuteralement deacutefini sur un voisinage il
est donneacute par
Sami Gazzah 2009 77
Si on applique ceci agrave une image I1 de dimensions
finies et agrave moyenne de convolution K (K
Kernel=noyau) de dimension 3 x 3 les pixels de
lrsquoimage I1 obtenue par convolution de I2 par K ont
pour valeur
Sami Gazzah 2009 78
Nouvelle
image
Nouvelle valeur
de pixel21
1 11
1 111 11
Noyau
Nouvelle valeur de pixel =
9
22 2719
9 19
51 21 14Image
originale
111
111
111
9
1h
15122010
14
Sami Gazzah 2009 79
4-Transformations spectrales (1)
Transformeacutee de Fourier 2D (TF 2D)
- La TF est
Dans la cas 1D (Rappel)
Dans la cas 2D
- La TF inverse
- La TF est
- La TF inverse
Sami Gazzah 2009 80
4-Transformations spectrales (2)
Exemple des transformations spectrales transformeacutee de Fourier
Soit f(xy) deacutefinie par une matrice d‟eacutechantillons reacuteguliegraverement espaceacutes
N le nombre de lignes M nombre de colonnes
- La TF est deacutefinie par
- La TF inverse est deacutefinie par
Sami Gazzah 2009 81 Sami Gazzah 2009 82
Compression RLE (Run Length Encoding)
2 2 2 2 128 128 128 120 120 80 96 96 94 94 94 95 97 97 97 97
4 2 3 128 2 120 1 80 2 96 3 94 1 95 4 97
Utile quand il y a des reacutepeacutetitions dans la chaicircne agrave encoder
Exemple Formats BMP TIFF PCX (Paintbrush)
Sami Gazzah 2009 83
Chapitre 3
RESTAURATION DrsquoIMAGES
Sami Gazzah 2009 84
L‟acquisition s‟accompagne toujours d‟une distorsiondeacutegradation
Il existe diffeacuterentes sources de deacutegradation (bruit) d‟une image
bruit lieacute au contexte de lacquisition Bougeacute mauvaises conditions
d‟eacuteclairagehellip
bruit lieacute au capteur Capteur de mauvaises qualiteacutes mauvaise mise
au point etchellip
bruit lieacute agrave leacutechantillonnage Une mauvaise freacutequence
d‟eacutechantillonnage peut introduire dans l‟image des points blancs ou
noirs connus souvent sous l‟appellation laquo sel et poivre raquo
bruit lieacute agrave la nature de la scegravene Preacutesence de fumeacutee de nuage
etchellip
Il faut corriger l‟image par un proceacutedeacute algorithmique
15122010
15
Sami Gazzah 2009 85
Restauration des Images monochromatiques et des images
couleurs
Au deacutebut de l‟imagerie numeacuterique les algorithmes deacuteveloppeacutes eacutetaient
destineacutes aux images en niveaux de gris Avec les progregraves techniques et le
deacuteveloppement des outils informatiques le traitement des images
couleurs est devenu possible
bull Approche marginale
Sami Gazzah 2009 86
Approche vectorielle
Dans lapproche vectorielle le vecteur couleur est consideacutereacute globalement
et le traitement doit ecirctre alors reacuteellement vectoriel Il ny a pas dans ce cas
une eacutetape de fusion ou de seacuteparation explicite entre les diffeacuterentes
composantes couleur de lrsquoimage Dans ce cas la correacutelation entre les
diffeacuterentes composantes peut ecirctre prise en compte ce qui aboutit
geacuteneacuteralement agrave des reacutesultats meilleurs que ceux du traitement marginal
Sami Gazzah 2009 87
Rappel
Sami Gazzah 2009 88
Sami Gazzah 2009 89
Nouvelle
image
Nouvelle valeur
de pixel21
1 11
1 111 11
Noyau
Nouvelle valeur de pixel =
9
22 2719
9 19
51 21 14Image
originale
Sami Gazzah 2009 90
15122010
16
Sami Gazzah 2009 91
Lissage spatial tout en remplacent la valeur du pixel courant par la moyenne de
tous les pixels inclus dans un voisinage centreacute en ce point
Sami Gazzah 2009 92
Sami Gazzah 2009 93 Sami Gazzah 2009 94
En traitement d‟image les tailles des fenecirctres utiliseacutees pour le
filtrage meacutedian sont geacuteneacuteralement impaires 3 3 5 5 7 7
exemple
fenecirctre de 5 pixels en croix
Pour les fenecirctres de taille paire ( 2 K valeurs ) apregraves
ordonnancement croissant des valeurs prendre la moyenne des 2
valeurs centrales
valeur de sortie( Kiegraveme valeur ordonneacutee + (K+1)iegraveme valeur ordonneacutee )
2=
Sami Gazzah 2009 95 Sami Gazzah 2009 96
15122010
17
Sami Gazzah 2009 97
Image laquo Piegraveces raquo de reacutefeacuterence bruiteacutee ( bruit de type impulsionnel ) puis filtreacutee
avec un filtre moyenneur (33) et un filtre meacutedian (33)
Image de reacutefeacuterence Image bruiteacutee
Bruit
Le filtrage meacutedian est plus adapteacute que le filtrage
lineacuteaire pour reacuteduire le bruit impulsionnel
Observation
Comparaison filtre meacutedian et filtre moyenneur
Sami Gazzah 2009 99 Sami Gazzah 2009 100
Sami Gazzah 2009 101 Sami Gazzah 2009 102
Chapitre 4
REHAUSSEMENT DrsquoIMAGES
15122010
18
Sami Gazzah 2009 103
Introduction
Le preacutetraitement d‟image est l‟ensemble des opeacuterations effectueacutees sur
une image soit pour l‟ameacuteliorer soit pour la restaurer
Le preacutetraitement d‟une image vise soit agrave renforcer la ressemblance des
pixels soit au contraire agrave accentuer les diffeacuterences de pixels d‟une mecircme
reacutegion
Accroitre la seacuteparabiliteacute des reacutegions composant une scegravene revient agrave
augmenter les contrastes vu
On applique le rehaussement des images afin de faciliter l‟interpreacutetation
visuelle et la compreacutehension des images
Pour comprendre ce type de rehaussement il faut comprendre le concept
d‟histogrammeSami Gazzah 2009 104
Deacutefinition de lrsquohistogramme drsquoune image
L‟histogramme est un outil qui permet de comptabiliser le nombre
d‟occurrences de chacune des valeurs dans une image en niveaux de gris
Dans une image couleur il est neacutecessaire d‟utiliser plusieurs
histogramme sur chacune des composantes du systegraveme de repreacutesentation
de la couleur
Soit h l‟histogramme de l‟image I de dimension (w x h) h[i] repreacutesente
le nombre d‟occurrence de chaque niveau de quantification i La probabiliteacute
estimeacutee du niveau i dans une image I est
hw
ihip
][)(
Image de 256 256 pixels
codeacutes chacun sur 8 bitsPopulation de pixels pour chaque
niveaux de gris [0 255]
Pour chaque niveau de gris on compte le nombre de pixels s‟y reacutefeacuterant
Pour chaque niveau on trace le graphe en bacircton du nombre de pixels
(possibiliteacute de regrouper les niveaux proches en une seule classe)
Exemple drsquohistogramme pour une image en niveaux
de gris
0 50 100 150 200 250
0
200
400
600
800
1000
cameraman
Image laquo A raquo en
niveaux de gris
Matrice des valeurs de luminance
des pixels de lrsquoimage laquo A raquo
Histogramme
de lrsquoimage
laquo A raquo
2 2 2 2 2 2 2 2
2 0 0 0 0 0 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 0 0 0 0 0 2
2 2 2 2 2 2 2 2
Les niveaux 0 1 et 2 sont respectivement repreacutesenteacutes par 24 12 et 28 pixels
repreacutesentation de cette population de pixels sur lhistogramme
Limage laquo A raquo comporte 3 niveaux de gris diffeacuterents 0 1 et 2
Compter le nombre de pixels pour chaque niveau de gris agrave lrsquoaide de la
matrice des valeurs de luminance
Exemple simple de calcul drsquohistogramme pour une image
Image laquo A raquoValeurs de luminance de
laquo A raquo
Histogramme cumuleacute de
laquo A raquo
2 2 2 2 2 2 2 2
2 0 0 0 0 0 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 0 0 0 0 0 2
2 2 2 2 2 2 2 2
Calcul dun histogramme particulier faisant appel aux cumuls des niveaux de gris
Histogramme cumuleacute
Utile pour certains traitements dimage tels que lrsquoeacutegalisation
dhistogramme ( ameacutelioration de contraste)
Chaque bacircton cumule le nombre de pixels du niveaux de gris concerneacute et des
niveaux de gris infeacuterieurs les niveaux 0 1 2 sont donc repreacutesenteacutes
respectivement par 24 36 et 64 pixels
Histogramme cumuleacute drsquoune image L‟histogramme ne donne pas L‟histogramme ne donne pas
d‟informations sur la reacutepartitiond‟informations sur la reacutepartition
Trois images diffeacuterentes ayant un mecircme histogramme
15122010
19
Modification de lrsquohistogrammeModification de lrsquohistogramme
On appelle dynamique des niveaux de gris lintervalle [nminnmax] de
niveaux de gris dans lequel sont compris tous les pixels de limage
Le but de la modification dhistogramme modifier chaque niveau de
gris pour accroicirctre le contraste On modeacutelise cette transformation par
leacutequation Irsquo(ij) = g(I(ij)) ougrave g est la fonction de contraste
Chaque transformation sera deacutecrite par une courbe repreacutesentant la
relation entre un niveau de gris de limage de deacutepart (abscisse) et le
niveau qui lui correspond dans limage ameacutelioreacutee (ordonneacutee)
Sami Gazzah 2009 109
Masquage de zones Masquage de zones Extraction d‟une Extraction d‟une
fenecirctre d‟intensiteacutefenecirctre d‟intensiteacute ((slicingslicing intensiteacute)intensiteacute)
Cette transformation consiste agrave remplacer un intervalle de niveaux
de gris par du blanc (nmax) par du noir (nmin) ou par une valeur
intermeacutediaire du niveau de gris
Sami Gazzah 2009 110
Courbes repreacutesentant de gauche agrave droite lextraction dune fenecirctre dintensiteacute et le masquage blanc et noir de lintervalle [ab]
n-1
n-1
0 n-1
n-1
0a ab b n-1
n-1
0 a b
Sami Gazzah 2009 111
Exemples de Masquage de zonesInversion de la dynamiqueInversion de la dynamique
But produire le neacutegatif d‟une image
donneacutee
Sami Gazzah 2009 112
Sami Gazzah 2009 113
Etirement drsquohistogramme
Sami Gazzah 2009 114
Etirement drsquohistogramme
Augmentation du contraste par eacutetirement d‟histogramme
15122010
20
Sami Gazzah 2009 115
Eacutegalisation dhistogramme
But ameacutelioration du contraste
Distribution uniforme des niveaux de gris
Elle se deacutefinit agrave laide de lhistogramme cumuleacute de limage hc(n)
qui repreacutesente le nombre de pixels de limage dont le niveau de
gris est infeacuterieur ou eacutegal agrave n
Deacutefinition de la transformation deacutegalisation dhistogramme soit
I le niveau de gris dun pixel de deacutepart le niveau de gris de limage
darriveacutee I‟ sera
Sami Gazzah 2009 116
Sami Gazzah 2009 117
Effet de lrsquoeacutegalisation drsquohistogramme
Sami Gazzah 2009 118
Augmentation du contraste exemples et comparaison
Original Eacutetirement d‟histogramme Eacutegalisation
Le rehaussement du contraste est plus marqueacute avec l‟eacutegalisation
d‟histogramme autorisant la deacutetection de structures situeacutees dans
l‟ombre
Sami Gazzah 2009 119
Chapitre 5
SEGMENTATION DrsquoIMAGES
Sami Gazzah 2009 120
Une image est geacuteneacuteralement composeacutee d‟objets L‟analyse de cette
image neacutecessite l‟identification de ces objets
La segmentation dimages est lun des problegravemes phares du traitement
dimages Elle consiste agrave partitionner limages en un ensemble de
reacutegions connexes Linteacuterecirct de ces reacutegions est de pouvoir ecirctre
manipuleacutees ensuite via des traitements de haut niveau pour extraire
des caracteacuteristiques de forme de position de taille etc
Introduction
15122010
21
Sami Gazzah 2009 121 Sami Gazzah 2009 122
Meacutethodes statistiquesSegmentation par Histogrammes
Sami Gazzah 2009 123
Meacutethodes statistiquesSeacutelection Reacutecursive sur Histogrammes
Ohlander Price et Reddy (1978)
Sami Gazzah 2009 124
Segmentation par approche contourIntroduction
Le contour est deacutefini comme le lieu des points connexes qui
possegravedent une forte transition d‟intensiteacute lumineuse ou de texture Le
traitement qui vise agrave l‟obtenir est appeleacute extraction de contour on
parle aussi de deacutetection de contour
Le processus d‟extraction de contour peut ecirctre deacutecomposeacute en
plusieurs eacutetapes distinctes que nous allons les deacutetailler comme suit
- La mise en eacutevidence des contours
- L‟extraction des contours
- La fermeture des contours
Sami Gazzah 2009 125
Segmentation par approche contourLa mise en eacutevidence des contours
Elle s‟obtient par une diffeacuterentiation de l‟image et elle peut
s‟appliquer agrave des images binaires ou non le but de la deacutetection de
contours est d‟obtenir dans un premier temps une image binaire ougrave
chaque contour est d‟eacutepaisseur 1 et sans discontinuiteacute
rehausser le contour
suivre le contour
les points du contour correspondent au maximum en valeur absolue
de la deacuteriveacutee primaire de l‟image on obtient alors un gradient ou au
passage par zeacutero de la deacuteriveacutee seconde de l‟image on obtient alors
un laplacien
Sami Gazzah 2009 126
Segmentation par approche contourLa mise en eacutevidence des contours
La deacutetection de contours peut ecirctre reacutealiseacutee gracircce agrave des filtres
dont les coefficients ont eacuteteacute soigneusement choisis Nous
aborderons dans cette preacutesentation 3 filtres les filtres de
Prewitt Roberts et Sobel
Ce jeu de filtres (Prewitt Roberts et Sobel) est constitueacute d‟une
paire de filtres lineacuteaires qui deacutetectent le contours dans deux
directions orthogonales (vertical et horizontal)
15122010
22
Sami Gazzah 2009 127
Segmentation par approche contourFiltre de Perwitt
Les filtres de Perwitt sont les suivants
Filtre horizontal
Filtre vertical
111
000
111
h
101
101
101
v
Sami Gazzah 2009 128
Segmentation par approche contourFiltre de Perwitt
A partir d‟une image I on calcule Gh et Gv images
correspondant au filtrage de I par h et v Ces images
contiennent les contours horizontaux et verticaux
Si l‟on souhaite obtenir une image de contour unique ne tenant
pas compte de l‟orientation on calcule
Orientation du contour
Image binairehellipchoisir un seuil de deacutetection
22
vh GGG
)(vh
GGarctg
Sami Gazzah 2009 129
Segmentation par approche contourFiltre de Sobel
Les filtres de Sobel sont les suivants
Filtre horizontal
Filtre vertical
121
000
121
h
101
202
101
v
Sami Gazzah 2009 130
Segmentation par approche contourFiltre de Sobel
Sami Gazzah 2009 131
Segmentation par approche contourFiltre de Sobel
Sami Gazzah 2009 132
Segmentation par approche contourFiltre de Roberts
Les filtres de Roberts sont les suivants
Filtre diagonal
Filtre anti-diagonal
10
01h
01
10v
15122010
23
Sami Gazzah 2009 133
Segmentation par approche contourFiltre de Kirsch
Ce deacutetecteur utilise huit noyaux de convolution lui permettant de deacutetecter
des contours en fonction de huit directions agrave
15
335
305
335
1
d 15
333
305
355
2
d 15
333
303
555
3
d
15
333
503
553
4
d 15
533
503
533
5
d 15
555
503
333
6
d
15
555
303
333
7
d 15
355
305
333
8
d
Sami Gazzah 2009 134
Contours et Laplacien
Il s‟agit de calculer la deacuteriveacutee seconde de l‟image
Le Laplacien est tregraves sensible au bruit pour limiter l‟effet du bruit le
Laplacien est approximeacute par un masque qui effectue en mecircme temps
une opeacuteration de filtrage par une Gaussienne qui repreacutesente l‟eacutetape
de lissage de l‟image puis vient l‟application du laplacien Les masques
du Laplacien Gaussien sont preacutesenteacutes ci-apregraves
Segmentation par approche contour
Sami Gazzah 2009 135
Contours et Laplacien
Le contour est ensuite deacutetermineacute par la deacutetection des
passages par zeacutero du laplacien de l‟image
88888888888888
010
141
010
1h
111
101
111
2h
121
242
121
3h
Sami Gazzah 2009 136
Contours et Laplacien
Sami Gazzah 2009 137
Seuillage
Les filtres preacuteceacutedents nous fournissent des images des sauts ou
diffeacuterences d‟intensiteacute
Le seuillage permet d‟eacuteliminer des points en lesquels la diffeacuterence
d‟intensiteacute est tregraves faible
Le seuillage peut ecirctre pousser afin d‟obtenir une image binaire (TOR)
Le seuillage dans sa forme le plus simple ne tient pas compte de la
topologie et peut conserver un point bruiteacute isoleacute ou eacuteliminer une portion
de contour d‟intensiteacute faible
Sami Gazzah 2009 138
Seuillage par hysteacutereacutesis
c‟est une fonction agrave deux seuils un seuil bas et un seuil haut
Tout point dont le module de contour est au-dessus du seuil-haut est un
point de contour
Tout point dont le module de contour est au-dessous du seuil-bas n‟est
pas un point de contour
Les points de module entre le seuil-bas et le seuil-haut sont des points
de contour s‟il possegravede un point de contour dans leur voisinage
15122010
24
Sami Gazzah 2009 139
Seuillage par hysteacutereacutesis
seuil haut
Seuil bas
point sur contour
point hors contour
Seuillage par hysteacuterisais les points de lrsquoimage de contour de valeur
supeacuterieur au seuil haut sont des points de contours A partir de ces points de
contours le voisinage de la direction du contour sont examineacutes srsquoils sont de
valeur supeacuterieure au seuil bas ils sont ajouteacutes au points de contoursSami Gazzah 2009 140
Chapitre 6
Introduction aux
opeacuterateurs
morphomatheacutematique
Sami Gazzah 2009 141
1 Introduction
Les opeacuterateurs morphomatheacutematique (=Morphologie Matheacutematique)
permettent d‟ameacuteliorer les images de contours et apporter d‟autres
fonctionnaliteacutes
Ils ont eacuteteacute initialement appliqueacute sur des images NampB (Matheron et
Sarra1965) ensuite eacutetendus agrave des images en nivaux de gris par Doupherty
(1978)
Pour les appliquer sur des images couleurs on peut les appliquer
seacutepareacutement agrave chaque composante couleur et combiner les reacutesultats
Sami Gazzah 2009 142
Diffeacuterentes opeacuterations
eacuterosion dilatation
ouverture fermeture
Squelettisation
hellip
1 Introduction
Sami Gazzah 2009 143
1 Introduction
Dilatation
Ajouter un pixel sur les pourtours de la forme
boucher les trous
Erosion
Enlever un pixel sur les pourtours de la forme
les objets de taille infeacuterieure agrave celle de leacuteleacutement
structurant vont disparaicirctre
agrandit les trous
Sami Gazzah 2009144
1I Rappels sur les ensembles
L‟eacutegaliteacute
L‟inclusion
Lbdquointersection
L‟union
La diffeacuterence
La diffeacuterence symeacutetrique
La compleacutementariteacute E eacutetant un ensemble
servant de reacutefeacuterentielle
Dans ce qui suit les lettres majuscules deacutesignent des ensembles et les lettres
minuscules deacutesignent des eacuteleacutements appartenant aux ensembles
Sur les ensembles on deacutefinit les opeacuterations suivantes
15122010
25
Sami Gazzah 2009145
1I Rappels sur les ensembles
Sami Gazzah 2009146
1I Rappels sur les ensembles
Lois de De Morgan
Reacuteflexion La reacuteflexion d‟un ensemble A est deacutefinie par
Un ensemble symeacutetrique veacuterifiant ndashA=A C‟est le cas des cercles et des carreacute par
exemple
ccc YXYX )(
ccc YXYX )(
AaaA
A -A B -B
Sami Gazzah 2009147
1I Rappels sur les ensembles
Addition de Minkowski l‟addition d‟un eacuteleacutement x agrave un ensemble A par x est
deacutefinie par
Cette notion n‟est pas uniquement ensembliste elle nous oblige agrave deacutefinir un point
de reacutefeacuterence
On en deacuteduit l‟addition d‟un ensemble B agrave un ensemble A c‟est le reacutesultat de
l‟addition de chaque eacuteleacutement de B agrave A
L‟addition de Minkowski est commutative Elle est eacutegalement appeleacute dilatation
AaxaxAB
A
A
x
AxBxAaBaBbbABAC )()()(
le translateacute de X par b
Sami Gazzah 2009148
1I Rappels sur les ensembles
Eleacutement structurant les opeacuterations morphomatheacutematiques sont deacutefinis agrave
partir des ensemble B discrets appeleacute eacuteleacutement structurant Ces eacuteleacutement
permettent de deacutefinir le type de voisinage souhaiteacute
Addition de Minkowski d‟un ensemble A et d‟un ensemble B
BA
Sami Gazzah 2009149
1II Dilatation
Le reacutesultat de dilatation de lrsquoensemble A par lrsquoensemble B
est lrsquoaddition de Minkowski crsquoest lrsquoensemble des points tel
que lorsque B est centreacute sur un de ces points il y a une
intersection non vide entre A et B
Pour des images en niveaux de gris on obtient lrsquoimage
dilateacutee de la forme A en remplaccedilant tout pixel par le
maximum des intensiteacutes des voisins selon la forme B
Sami Gazzah 2009 150
1II Dilatation1 Image NampB
Soit k l‟eacuteleacutement structurant de taille (2k+1) x (2k+1) L‟algorithme de
dilatation est le suivant on parcourt tous les pixels de l‟image sauf les
bord de l‟image d‟eacutepaisseur k pour chaque pixel du fond rencontreacute s‟il
possegravede un voisin au sens de l‟eacuteleacutement structurant qui appartient agrave un
objet il prend le couleur de l‟objet si non il n‟est pas modifieacute
15122010
26
la dilatation (noteacutee ) drsquoune image monochrome laquo f raquo par un
eacuteleacutement structurant laquo B raquo est deacutefinie en terme de sous-graphe
bull f B = T [ Y ] = Supl l tel que (m n l) Y
bullY = U ( f ) U ( B )
En consideacuterant un eacuteleacutement structurant plan de valeur nulle sur son
support
( f B ) (P) = Max valeurs des pixels du voisinage du pixel P
1II Dilatation1 Image niveaux de gris
max
55 68 77 90 91 95 115 151 210
( f B ) (P) = 210
n
115 91 77
95 68 90
55 151 210
exemple
m
Image de reacutefeacuterence
Eacuteleacutement structurant
(8-connexiteacute)
liste ordonneacutee des valeurs du voisinage
- - -
-
-
-
-
-
1II Dilatation1 Image niveaux de gris
Exemples de filtrages morphologiques(eacuteleacutement structurant 33 complet)
Image de reacutefeacuterenceImage dilateacutee
morphologiquement
La dilatation en niveaux de gris accroicirct la luminance des
pixels entoureacutes de voisins plus lumineux
Observation
Sami Gazzah 2009154
VI Erosion
L‟eacuterosion est deacutefinie par
On deacutefinit la soustraction de Minkowski par
On a eacutequivalence entre eacuterosion et soustraction de Minkowski si B est
symeacutetrique (si B=-B)
D‟un point de vue binaire l‟eacuterode de A par B correspond agrave l‟ensemble
des points tels que si B est centre sur ce points B est entiegraverement inclus
dans A
AxBxBbbABAC )()(
)()( BbbABAC
Sami Gazzah 2009 155
VI Erosion1 Image NampB
on parcourt tous les pixels de l‟image sauf les bord de l‟image
d‟eacutepaisseur k pour chaque pixel du fond rencontreacute s‟il possegravede un
voisin au sens de l‟eacuteleacutement structurant qui appartient agrave un objet il
prend le couleur du fond si non il n‟est pas modifieacute
VI Eacuterosion drsquoune image en niveaux de gris
Lrsquoeacuterosion (noteacutee Ө ) drsquoune image monochrome laquo f raquo par un eacuteleacutement
structurant laquo B raquo est deacutefinie en terme de sous-graphe
bull f Ө B = T [ Y ] = Supl l tel que (m n l) Y
bullY = U ( f ) Ө U ( B )
Classiquement on considegravere un eacuteleacutement structurant plan de
valeur nulle sur son support
( f Ө B ) (P) = Min valeurs des pixels du voisinage du pixel P
15122010
27
VI Eacuterosion drsquoune image en niveaux de gris
min
68 90 91 95 151
( f Ө B ) (P) = 68
n
115 91 77
95 68 90
55 151 210
exemple
m
Image de reacutefeacuterence
ӨӨ
Eacuteleacutement structurant
(4-connexiteacute)
liste ordonneacutee des valeurs du voisinage
-
-
-
-
Exemples de filtrages morphologiques(eacuteleacutement structurant 33 complet)
Image eacuterodeacutee
Lrsquoeacuterosion en niveaux de gris reacuteduit la luminance des pixels
qui sont entoureacutes de voisins de moindre intensiteacute
Image de reacutefeacuterence
Observation
Sami Gazzah 2009 159
Eacuteleacutement structurant (a)
(4-connexiteacute)
-
-
-
-
Eacuteleacutement structurant (b)
(8-connexiteacute)
- - -
-
-
-
-
-
Exercice 1 Sur la mecircme image de deacutepart on reacutealise deux opeacuterations
de dilatations avec deux eacuteleacutements structurant diffeacuterents
Dilatation avec (a) Dilatation avec (b)
image de deacutepart
cas a L‟eacuteleacutement structurant est agrave 4-connexiteacute Chaque pixel
du support qui est eacutegal agrave la valeur 1 ou qui a l‟un de ses 4
voisins agrave la valeur 1 est mis agrave la valeur 1 apregraves filtrage
cas b L‟eacuteleacutement structurant est agrave 8-connexiteacute Chaque pixel
du support qui est eacutegal agrave la valeur 1 ou qui a l‟un de ses 8
voisins agrave la valeur 1 est mis agrave la valeur 1 apregraves filtrage
Dans les deux cas on observe qu‟une dilatation eacutelimine les
trous isoleacutes dans les objets et dilate le contour des objets en
tenant compte de l‟eacuteleacutement structurant
Sami Gazzah 2009 160
Exercice 1
Sami Gazzah 2009 161
Eacuteleacutement structurant (a)
(4-connexiteacute)
-
-
-
-
Eacuteleacutement structurant (b)
(8-connexiteacute)
- - -
-
-
-
-
-
Exercice 2 Sur la mecircme image de deacutepart on reacutealise deux opeacuterations
d‟eacuterosions avec deux eacuteleacutements structurant diffeacuterents
Erosion avec (a) Erosion avec (b)
image de deacutepart
cas a L‟eacuteleacutement structurant est agrave 4-connexiteacute (origine agrave 4 voisins)
Chaque pixel du support qui a la valeur 0 ou qui a l‟un de ses 4
voisins agrave la valeur 0 est mis agrave la valeur 0 apregraves filtrage
cas b L‟eacuteleacutement structurant est agrave 8-connexiteacute Chaque pixel du
support qui a la valeur 0 ou qui a l‟un de ses 8 voisins agrave la valeur 0
est mis agrave la valeur 0 apregraves filtrage
Dans les deux cas on observe qu‟une eacuterosion eacutelimine les pixels
isoleacutes sur le fond et eacuterode le contour des objets
Sami Gazzah 2009 162
Exercice 2
15122010
28
ConclusionsConclusions
Erosion
les objets relieacutes entre eux vont ecirctre seacutepareacutes
Une eacuterosion de taille n peut se reacutealiser en reacutepeacutetant une
eacuterosion n fois avec un eacuteleacutement structurant de taille 1 ou en
appliquant une seule eacuterosion avec un eacuteleacutement structurant
de taille n
Dilatation
des objets sont situeacutes agrave une distance moins grande que la taille
de leacuteleacutement structurant il vont fusionner
Sami Gazzah 2009 163 Sami Gazzah 2009 164
Sami Gazzah 2009 165
Elimine pixels isoleacutes sans inteacuterecirct
L‟ouverture (opening) consiste agrave une eacuterosion suivi d‟une dilatation
Les petites structures et deacutetail fins disparaissent et ne sont pas recreacuteeacutees
lors de la dilation Une opeacuteration d‟ouverture est ainsi inteacuteressante pour
eacuteliminer les petits morceaux de contours bruiteacutes dans une image de
contours
V Ouverture et fermeture1 Ouverture
BBABAC )(
Sami Gazzah 2009 166
V Ouverture et fermetureII Fermeture
La fermeture (closing) consiste agrave une dilatation suivi d‟une eacuterosion
Les structures proches fusionnent lors de la dilation mais seules les
fusions ponctuelles disparaissent agrave nouveau lors de l‟eacuterosion Une
opeacuteration de fermeture est ainsi inteacuteressante pour boucher les petits
trous
Sami Gazzah 2009 167 Sami Gazzah 2009 168
Exercice 3 Sur l‟image de deacutepart on reacutealise une opeacuteration de
fermeture binaire par l‟eacuteleacutement structurant 4-connexiteacute Conclusions
Eacuteleacutement structurant
(4-connexiteacute)
-
-
-
-Fermeture = dilatation puis eacuterosion
Image de deacutepart Image dilateacutee Image dilateacutee puis eacuterodeacutee
Combler les trous
Reacutetablir les jonctions
tout en preacuteservant la taille
15122010
29
Sami Gazzah 2009 169
Exercice 4 Sur l‟image de deacutepart on reacutealise une opeacuteration
d‟ouverture binaire par l‟eacuteleacutement structurant 4-connexiteacute Conclusions
Eacuteleacutement structurant
(4-connexiteacute)
-
-
-
-Ouverture = eacuterosion puis dilatation
Image de deacutepart Image eacuterodeacutee Image eacuterodeacutee puis dilateacutee
Supprimer les fausses alarmes
Seacuteparer les objets accoleacutes
tout en preacuteservant la tailleSami Gazzah 2009 170
Appliquer les filtres suivants sur limage donneacutee Quelles sont les valeurs choisies
aux bords de limage et quelles sont les modifications visuelles
a) filtre moyenneur M3acute3(19)
b) eacuterosion
c) dilatation
d) meacutedian
e) fermeture
f) ouverture
Exercice 5
Sami Gazzah 2009 171
IV Amincissement et Squelettisation
La squelette (skeleton) d‟une forme est l‟axe meacutedian L‟inteacuterecirct de cette
opeacuteration est dans
La reconnaissance de caractegraveres
Deacutetection des reacuteseaux routiers
La planification de trajectoirehellip
Une meacutethode couramment employeacutee est une amincissement reacutepeacuteteacute
jusqu‟agrave le convergence (n‟apporte aucune modification)
Sami Gazzah 2009 172
IV Amincissement et Squelettisation1 Opeacuteration Tout Ou Rien laquoHit or Missraquo
Cette transformation est deacutefinie par
leacuteleacutement structurant eacutetendu est centreacute sur chaque pixel de limage
comme pour les opeacuterations ensemblistes
la question poseacutee est est ce que le contenu de limage est identique au
contenu de leacuteleacutement structurant
si la reacuteponse est oui le pixel reacutesultant vaut 1 si non il vaut 0
Une application permet de deacutetecter des configurations locales
particuliegraveres dans une image
plusieurs masques peuvent ecirctre utiliseacutes indeacutependamment les images
reacutesultat eacutetant ensuite combineacutees par une opeacuteration ou
)()( cc BABABA
Bc-
est le compleacutementaire
local de B
Sami Gazzah 2009 173
IV Amincissement et Squelettisation1 Opeacuteration laquoHit or Missraquo
Exemple dopeacuteration Hit or Miss deacutetection des coinsSami Gazzah 2009 174
IV Amincissement et Squelettisation1 Amincissement (thinning)
bull La transformation TOR nous permet eacutegalement de deacutefinir
l‟amincissement
bullL‟amincissement consiste agrave soustraire limage reacutesultat dun hit or miss de
limage initiale
bull des amincissements successifs conduisent au squelettisation
)()( BAAAthin
15122010
30
Sami Gazzah 2009 175
IV Amincissement et Squelettisation1I Squelettisation
Appliquer des amincissements successifs puis s‟arrecircter lorsque l‟amincissement
n‟apporte plus de modification C‟est une eacuterosion particuliegravere ougrave les pixels sont
supprimeacutes agrave la condition quils ne provoquent pas la seacuteparation dune reacutegion en
deux
Sami Gazzah 2009 176
IV Amincissement et Squelettisation1I Squelettisation
Sami Gazzah 2009 177
Chapitre 7
Transformations
geacuteomeacutetriques 2D
Sami Gazzah 2009 178
I Introduction
On entend par transformation 2D l‟ensemble des transformations du
plan pouvant ecirctre appliqueacutees aux pixels de l‟image sans consideacuteration
de l‟intensiteacute
Par exemples
Reacuteduction agrandissement
Deacuteformation d‟image
Recalage d‟une photo scanneacutee
Recaler des images que l‟on veut comparer
Mosaiumlque d‟images
Sami Gazzah 2009 179
I Transformations euclidiennes
Elles preacuteservent les distances et les angles
Elles sont les compositions de translations et de rotations
1) Translation
Ougrave Tx et Ty sont les deacuteplacements en x et en y de la translation
y
x
Tyy
Txx
Sami Gazzah 2009 180
2) Rotation
15122010
31
Sami Gazzah 2009 181 Sami Gazzah 2009 182
3) Remarques (1)
Sami Gazzah 2009 183
3) Remarques (2)
Sami Gazzah 2009 184
II Homotheacuteties
Changement deacutechelle par rapport agrave lorigine (scaling zoom)
Ougrave Sx et Sy sont les facteurs dagrandissement ( gt1) ou de
reacuteduction ( lt1) en x et en y
ySy
xSx
y
x
Sami Gazzah 2009 185
II Homotheacuteties
Sami Gazzah 2009 186
II Homotheacuteties
15122010
32
Sami Gazzah 2009 187
III Reacuteflexions
Reacuteflexions par rapport aux axes (flip miroir)
Sami Gazzah 2009 188
IV Cisaillement
Cisaillement (glissement shearing) on eacutetire suivant un ou plusieurs axes
Sami Gazzah 2009 189
Transformations inverses
Sami Gazzah 2009 190
Repreacutesentation Matricielle
IV Autres (reacuteflexions miroirs et flips)
Sami Gazzah 2009 191
Interpolation Directe
Sami Gazzah 2009 192
oDifficile de distribuer le niveau de gris sur les pixels voisins
oOn n‟a pas la certitude que tous les pixels de l‟image
transformeacutee recevront une valeur =gt ldquotrousrdquo
15122010
33
Interpolation Inverse
Sami Gazzah 2009 193
o Interpolation de la valeur du pixel agrave partir des voisins plus
facile
oAucun ldquotrourdquo car on parcourt tous les pixels de l‟image
transformeacutee Sami Gazzah 2009 194
V Objet vectoriel - Objet bitmap
Objet vectoriel
Essentiellement on transforme
les sommets (ou points de
controcircle) et on retracehellip
Objet ldquobitmaprdquo
On doit calculer la nouvelle
position de chaque pixel De plus on
doit geacuteneacuteralement interpoler les
niveaux de gris (couleurs)hellip
Sami Gazzah 2009 195
IV Assignation des niveaux de gris
Neacutecessaire car la position d‟un pixel transformeacute n‟est pas entiegraverehellip
Plusieurs meacutethodes
Interpolation au plus proche voisin
Interpolation bilineacuteaire
Interpolation bicubique
Autres types d‟interpolation
Sami Gazzah 2009 196
IV Assignation des niveaux de gris
Linterpolation de limage cest ce qui arrive lorsquon redimensionne
une image numeacuterique ou quon la redimensionne avec une distorsion
quon change la perspective etc
Exemple 1
Image originale (sans interpolation)
Image agrandie et donc interpoleacutee
Perte de netteteacute due agrave linterpolation
Sami Gazzah 2009
197
IV Assignation des niveaux de gris
Exemple 2 recadrage dimage
Nous allons agrandir cette image agrave 180
Il va donc nous manquer des informations lagrave ougrave lon va creacuteer des
pixels pour agrandir limage
Reacutesultat sans interpolation le logiciel agrandit simplement les pixels
Reacutesultat avec interpolation le logiciel calcule une couleur intermeacutediaire
pour chaque nouveau pixel
Sami Gazzah 2009
198
IV Assignation des niveaux de gris
Image originale
Interpolation au plus
proche voisin
Interpolation
bilineacuteaireInterpolation
bicubique
15122010
34
Sami Gazzah 2009 199
IIV Interpolation au plus proche voisin
Cest lalgorithme le plus rapide agrave calculer
Prend en compte dans le calcul que le pixel le plus proche du point
agrave interpoler
Consiste tout simplement agrave agrandir chaque pixel
Exemple Interpolation du plus proche voisin par copie des pixels
Copie de chaque colonne et de chaque rang
23 20
25 28
23 23
23 23
20 20
20 20
25 25
25 25
28 28
28 28
Sami Gazzah 2009 200
IIV Interpolation bilineacuteaire
Fonction bilineacuteaire de 4 pixels voisins ( en 2 D )
i-1 i i+1
i-1 i-12 i i+12 i+1 i+32
yi=xiYi+12=(xi+xi+1)2
Problegraveme pour le dernier point
Extrapolation lineacuteaire de
2 xn-xn-1
Principe 1D
attribuer agrave chaque point cible une
combinaison lineacuteaire des quatre
points sources les plus proches par
la transformation inverse
Sami Gazzah 2009 201
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 202
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 203 Sami Gazzah 2009 204
IIV Interpolation bilineacuteaire
15122010
35
Sami Gazzah 2009 205
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 206
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 207
IIV Interpolation bilineacuteaire exemple
Sami Gazzah 2009 208
IIV Interpolation bicubique
Sami Gazzah 2009 209
exemple
Sami Gazzah 2009 210
Chapitre 8
Geacuteneacuteration de segments de
droite et de cercles en 2D
15122010
36
Sami Gazzah 2009 211
Infographie 2D besoin de dessiner des primitives de
base (segments cercles hellip)
Espace discreacutetiseacute (pixels) il faut trouver un moyen pour
afficher des segments ou des cercles
I Segments 2D cercles1 Introduction
Comment trouver les pixels agrave allumer pour approximer au mieux une
droite ou un cercle
Algorithme rapide et preacutecisSami Gazzah 2009 212
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=ax+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ya
Sami Gazzah 2009 213
Rappelhellip
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=mx+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ym
Sami Gazzah 2009 214
Exemple
Sami Gazzah 2009 215
Agrave partir des coordonneacutees des 2 extreacutemiteacutes d‟un segmenthellip
Un algorithme simple
Boucle de x1 agrave x2 dx=1
ALLUME (x Arrondir(y))
Avec x2gtx1
Arrondir(y) = Arrondir(ax+b)
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Sami Gazzah 2009 216
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Choix de lrsquoaxehellip
Peu efficace
bullagrave chaque iteacuteration 1 multiplication (ou division) + 1 addition
+ 1 arrondi
15122010
37
Sami Gazzah 2009 217
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
DDA (Digital Differential Analyzer)
y et m doivent ecirctre des reacuteelsSami Gazzah 2009 218
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Calcul en entier (donc plus rapide)
Baseacute sur le choix entre deux points discrets deacutependant de leur
distance respective avec le point reacuteel ideacuteal
On simplifie le problegraveme en traitant drsquoabord le traceacute drsquoun segment
dans le 1er octant m infeacuterieur agrave1 et positif (0ltmlt 1)
Facilement geacuteneacuteralisable aux autres octants
Sami Gazzah 2009 219
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Traceacute d‟un segment dans le premier octant mlt1
On part d‟un point (xi yi) allumeacute
Sami Gazzah 2009 220
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
On ne calcule pas reacuteellement les distances rArr on veacuterifie si la diffeacuterence
entre les deux distances est positive ou neacutegative
Le signe de la longueur (d1-d2) deacutetermine s‟il faut allumer le pixel L ou H
L
H
Sami Gazzah 2009 221
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Comme m=ΔyΔx on multiplie cette diffeacuterence par Δx pour eacuteviter la
division
Mais que vaut p1
Sami Gazzah 2009 222
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
15122010
38
Sami Gazzah 2009 223
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Pour eacuteviter de calculer cette diffeacuterence pour chaque point on cherche
une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
Sami Gazzah 2009 224
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009 225
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009
Exercice
Tracer le segment de droite
pi xi yi
2 0 0
-6 1 1
6 2 1
-2 3 2
10 4 2
2 5 3
-6 6 4
6 7 4
-2 8 5
10 9 5
2 10 6
6
10
y
x
Sami Gazzah 2009 227
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
Sami Gazzah 2009 228
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
hellip interchanger les points hellip
Si |Δx| lt | Δy| on interchange le rocircle de x et y
15122010
39
Sami Gazzah 2009 229
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (1)
Sami Gazzah 2009 230
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (2)
Sami Gazzah 2009 231
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (3)
Sami Gazzah 2009 232
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Toujours baseacute sur le choix entre deux
points discrets deacutependant de leur
distance respective avec le point reacuteel
On travaille dans le 2e octant agrave partir
de (0r) ainsi pour un point (xi yi) le
prochain point sera
(xi+1 yi) ou (xi+1 yi-1)
Sami Gazzah 2009 233
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On calcule le prochain y et les diffeacuterences respectives avec les points
discrets de la faccedilon suivante
Le signe de pi nous dira si nous devons choisir le point lateacuteral ou le diagonal
Sami Gazzah 2009 234
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Encore une fois pour eacuteviter de calculer cette diffeacuterence pour chaque point on
cherche une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
15122010
40
Sami Gazzah 2009 235
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On considegravere 2 cas
Valeur initiale
Sami Gazzah 2009 236
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Sami Gazzah 2009 237
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Exemple centre = (00) et r = 3
Sami Gazzah 2009 238
Livres
Diane Lingrand Introduction au Traitement d‟Images Paris Editions Vuibert 2e
eacutedition 2008
Steven k Feiner James D Foley John F Hughes Richard l Phillips Andries
Vanam Introduction agrave l‟infographie Paris Editions Vuibert 2000
William K Pratt Digital Image Processing Willy-Inter-sciences 4th edition 2007
Eacuteric Incerti Compression dimage ndash Algorithmes et standards Vuibert 2003
Gilles Burel Introduction au traitement dimages ndash Simulation sous Matlab
Hermegraves 2001
Sites web
Cours de C Rougier (U Montreacuteal)
httpwww-etudiroumontrealca~rougiercift2730courshtml (cf chapitre 3)
Page wikipeacutedia sur JPEG (en anglais plus complegravete que celle en franccedilais)
httpenwikipediaorgwikiJPEG
Cours de P Courtellemont (Campus numeacuterique Espdon)
httppersouniv-lrfrpcourtelespadonsite_web
Applet de deacutemo par C G Jennings
httpcgjenningscatoyboxhjpegindexhtml
Cours de D Marshall (U Cardiff)
httpwwwcscfacukDaveMultimediaPDF
Reacutefeacuterences
Sami Gazzah 2009 239
Chapitre 9
introduction au
traitement
dimages avec OpenGL
Sami Gazzah 2009 240
OpenGL est une librairie graphique Elle a eacuteteacute creacutee par Silicon
Graphics et beacuteneacuteficie sur ces machines de lacceacuteleacuteration mateacuterielle
Elle est constitueacute d‟environ 200 fonctions graphiques
OpenGL est une bibliothegraveque de fonctions
Les fonctions sont de bas niveaux
La version actuelle est l‟ laquo OpenGL 41 raquo (deacutecembre 2010)
Principale caracteacuteristique indeacutependant du mateacuteriel et du systegraveme
d‟exploitation
Une impleacutementation libre de droits dOpenGL tregraves performante a eacuteteacute
eacutecrite par Brian Paul httpwwwmesa3dorg Et tout son code source
est accessible
Preacutesentation geacuteneacuterale
15122010
41
Sami Gazzah 2009 241
OpenGL propose des fonctions de bas niveaux
Primitives geacuteomeacutetriques points segments polygones
Les fonctions de haut niveaux sont deacuteveloppeacutees par l‟utilisateur ou
importeacutees par la librairie en amont d‟OpenGL
Primitives geacuteomeacutetriques complexes Sphegravere splines etc
Toutes les commandes et fonctions utilisent le preacutefixe gl
Exemple glColor2f()
Sami Gazzah 2009 242
Les Bibliothegraveques co-existant avec OpenGL
GLU OpenGL Utility Library contient les routines de bas niveau pour
geacuterer les matrices de transformation et de projection la facettisation des
polygones et le rendu de surface Les bibliothegraveques dextension du
systegraveme de fenecirctres permettent lutilisation du rendu OpenGL Il sagit de
GLX pour X Windows (fonctions ayant pour preacutefixe glX) et de WGL
pour Microsoft Windows (fonctions ayant pour preacutefixe wgl)
GLUT OpenGL Utility Toolkit est une boite agrave outils indeacutependante du
systegraveme de fenecirctrage eacutecrite par Mark
Kilgard pour simplifier la tacircche dutiliser des systegravemes diffeacuterents (fonctions
ayant pour preacutefixe glut)
Sami Gazzah 2009 243
Les primitives geacuteomeacutetriques d rsquoOpenGL
Les primitives sont deacutecrites par un bloc d‟instructions deacutelimiteacute par glBegin et glEnd
Ce bloc contient geacuteneacuteralement une liste de vertex Exemple
glBegin(GL_LINE_LOOP)
glVertex2f(-05 -05)
glVertex2f(05 -05)
glVertex2f(05 05)
glVertex2f(-05 05)
glEnd()
D‟autres attributs peuvent ecirctre speacutecifieacutes en chaque sommet
couleur normale coordonneacutee de texture etcSami Gazzah 2009 244
OpenGL est une machine agrave eacutetats
En modifiant les variables d‟eacutetats on peut changer le style de rendu
Sami Gazzah 2009 245
Exemple Honda Hippo (3dRendercom)
Placage de textures
bullL‟apparence et le toucher ( feel ) d‟une surface
bullUne image utiliseacutee pour deacutefinir les caracteacuteristiques d‟une surface
bullUne image multi-dimensionnelle qui est plaqueacutee sur un espace multi-
dimensionnel
Sami Gazzah 2009 246
15122010
42
Sami Gazzah 2009 247
Reacutefeacuterences openGL
Sami Gazzah 2009 248
Chapitre 10
introduction au
traitement
dimages avec OpenCV
Sami Gazzah 2009 249
Preacutesentation geacuteneacuterale
Quest-ce
Open Source Computer Vision Library
Bibliothegraveque open source de traitement des images numeacuteriques
Projet initieacute par Intel (en 1999)
Teacuteleacutechargeable sur httpsourceforgenetprojectsopencvlibrary
Fortement orienteacutee temps reacuteel
eacutecrite en C et C++
optimiseacutee pour les processeurs multi-cœurs
Multi-plateformes disponible pour Linux Windows et Mac OS X
Que contient-elle
Des fonctionnaliteacutes (structures et routines gt350 algos) de base et
avanceacutees pour bacirctir rapidement des applications autour de la vision par
ordinateur
Exemples dutilisation traitements de bas niveau (filtrage ) deacutetection
de visages reconnaissance et suivi dobjets en mouvement Sami Gazzah 2009 250
Fonctionnaliteacutes
Lectureeacutecriture dimages statiques et de seacutequences videacuteo
APIs de bas et moyen niveaux
Traitement des images binaires
Manipulations dimage (eacutechantillonnage (sampling) reacutegion dinteacuterecirct (ROI)
redimensionnement (resizing) rotation deacuteformation (warping) )
Deacutetection de contours de lignes de coins (edge detection)
Traitements multi-eacutechelles (multiscale processing)
Transformeacutees (Fourier cosinus discregravete )
Modules de haut niveau
Deacutetection reconnaissance et suivi (tracking) de visages
Flot optique (estimation du mouvement) (optical flow)
Calibrage (calibration) de la cameacutera
Mise en correspondance steacutereacuteoscopique (stereo matching)
IA et apprentissage par ordinateur (machine learning)
3D mise en correspondance (registration)
Sami Gazzah 2009 251
Modules principaux
CxCore
Types de base pour manip dimages (ex struct image point isin cxtypesh)
Structures dynamiques (listes files graphes arbres) et persistantes (LE)
Manipulations de matrices meacutethodes de lalgegravebre lineacuteaire et statistiques
Dessin en surimpression (overlay) (ex eacutetiquetage)
Cv
Traitement dimage calibrage cameacutera
Geacuteomeacutetrie algorithmique (triangulation )
Cvaux
Reconnaissance de visage
Code expeacuterimental et obsolegravete
Autres (dans otherlibs)
HighGUI ES videacuteos curseurs fenecirctrage
ML classification regroupement (clustering)Sami Gazzah 2009 252
OpenCV premiers programmesBibliothegraveque OpenCV
15122010
43
Sami Gazzah 2009 253
Livre
G Bradski amp A Kaehler laquo Learning OpenCV raquo OReilly Press (2008)
codes sources httpexamplesoreillycom9780596516130
Ressources en ligne
Reacutefeacuterence complegravete httpopencvwillowgaragecomdocumentation
Wiki httpopencvwillowgaragecomwikiFullOpenCVWiki
bullPreacutesentation teacuteleacutechargement installation
bullavec CodeBlocks httpopencvwillowgaragecomwikiCodeBlocks
bullDeacutebuter avec OpenCV FAQ
Tutoriels
httpnchcdlsourceforgenetsourceforgeopencvlibraryippocvpdf
httpdaslmemdrexeledu~noahKuntzopenCVTut1html agrave Tut11html
httpwwwcognoticscomopencvservo_2007_series
Tutoriel sur la vision utilisant OpenCV (en franccedilais)
httpwwwsiteduzerocomtutoriel-3-8631-vision-par-ordinateurhtml
Reacutefeacuterences openCV
15122010
14
Sami Gazzah 2009 79
4-Transformations spectrales (1)
Transformeacutee de Fourier 2D (TF 2D)
- La TF est
Dans la cas 1D (Rappel)
Dans la cas 2D
- La TF inverse
- La TF est
- La TF inverse
Sami Gazzah 2009 80
4-Transformations spectrales (2)
Exemple des transformations spectrales transformeacutee de Fourier
Soit f(xy) deacutefinie par une matrice d‟eacutechantillons reacuteguliegraverement espaceacutes
N le nombre de lignes M nombre de colonnes
- La TF est deacutefinie par
- La TF inverse est deacutefinie par
Sami Gazzah 2009 81 Sami Gazzah 2009 82
Compression RLE (Run Length Encoding)
2 2 2 2 128 128 128 120 120 80 96 96 94 94 94 95 97 97 97 97
4 2 3 128 2 120 1 80 2 96 3 94 1 95 4 97
Utile quand il y a des reacutepeacutetitions dans la chaicircne agrave encoder
Exemple Formats BMP TIFF PCX (Paintbrush)
Sami Gazzah 2009 83
Chapitre 3
RESTAURATION DrsquoIMAGES
Sami Gazzah 2009 84
L‟acquisition s‟accompagne toujours d‟une distorsiondeacutegradation
Il existe diffeacuterentes sources de deacutegradation (bruit) d‟une image
bruit lieacute au contexte de lacquisition Bougeacute mauvaises conditions
d‟eacuteclairagehellip
bruit lieacute au capteur Capteur de mauvaises qualiteacutes mauvaise mise
au point etchellip
bruit lieacute agrave leacutechantillonnage Une mauvaise freacutequence
d‟eacutechantillonnage peut introduire dans l‟image des points blancs ou
noirs connus souvent sous l‟appellation laquo sel et poivre raquo
bruit lieacute agrave la nature de la scegravene Preacutesence de fumeacutee de nuage
etchellip
Il faut corriger l‟image par un proceacutedeacute algorithmique
15122010
15
Sami Gazzah 2009 85
Restauration des Images monochromatiques et des images
couleurs
Au deacutebut de l‟imagerie numeacuterique les algorithmes deacuteveloppeacutes eacutetaient
destineacutes aux images en niveaux de gris Avec les progregraves techniques et le
deacuteveloppement des outils informatiques le traitement des images
couleurs est devenu possible
bull Approche marginale
Sami Gazzah 2009 86
Approche vectorielle
Dans lapproche vectorielle le vecteur couleur est consideacutereacute globalement
et le traitement doit ecirctre alors reacuteellement vectoriel Il ny a pas dans ce cas
une eacutetape de fusion ou de seacuteparation explicite entre les diffeacuterentes
composantes couleur de lrsquoimage Dans ce cas la correacutelation entre les
diffeacuterentes composantes peut ecirctre prise en compte ce qui aboutit
geacuteneacuteralement agrave des reacutesultats meilleurs que ceux du traitement marginal
Sami Gazzah 2009 87
Rappel
Sami Gazzah 2009 88
Sami Gazzah 2009 89
Nouvelle
image
Nouvelle valeur
de pixel21
1 11
1 111 11
Noyau
Nouvelle valeur de pixel =
9
22 2719
9 19
51 21 14Image
originale
Sami Gazzah 2009 90
15122010
16
Sami Gazzah 2009 91
Lissage spatial tout en remplacent la valeur du pixel courant par la moyenne de
tous les pixels inclus dans un voisinage centreacute en ce point
Sami Gazzah 2009 92
Sami Gazzah 2009 93 Sami Gazzah 2009 94
En traitement d‟image les tailles des fenecirctres utiliseacutees pour le
filtrage meacutedian sont geacuteneacuteralement impaires 3 3 5 5 7 7
exemple
fenecirctre de 5 pixels en croix
Pour les fenecirctres de taille paire ( 2 K valeurs ) apregraves
ordonnancement croissant des valeurs prendre la moyenne des 2
valeurs centrales
valeur de sortie( Kiegraveme valeur ordonneacutee + (K+1)iegraveme valeur ordonneacutee )
2=
Sami Gazzah 2009 95 Sami Gazzah 2009 96
15122010
17
Sami Gazzah 2009 97
Image laquo Piegraveces raquo de reacutefeacuterence bruiteacutee ( bruit de type impulsionnel ) puis filtreacutee
avec un filtre moyenneur (33) et un filtre meacutedian (33)
Image de reacutefeacuterence Image bruiteacutee
Bruit
Le filtrage meacutedian est plus adapteacute que le filtrage
lineacuteaire pour reacuteduire le bruit impulsionnel
Observation
Comparaison filtre meacutedian et filtre moyenneur
Sami Gazzah 2009 99 Sami Gazzah 2009 100
Sami Gazzah 2009 101 Sami Gazzah 2009 102
Chapitre 4
REHAUSSEMENT DrsquoIMAGES
15122010
18
Sami Gazzah 2009 103
Introduction
Le preacutetraitement d‟image est l‟ensemble des opeacuterations effectueacutees sur
une image soit pour l‟ameacuteliorer soit pour la restaurer
Le preacutetraitement d‟une image vise soit agrave renforcer la ressemblance des
pixels soit au contraire agrave accentuer les diffeacuterences de pixels d‟une mecircme
reacutegion
Accroitre la seacuteparabiliteacute des reacutegions composant une scegravene revient agrave
augmenter les contrastes vu
On applique le rehaussement des images afin de faciliter l‟interpreacutetation
visuelle et la compreacutehension des images
Pour comprendre ce type de rehaussement il faut comprendre le concept
d‟histogrammeSami Gazzah 2009 104
Deacutefinition de lrsquohistogramme drsquoune image
L‟histogramme est un outil qui permet de comptabiliser le nombre
d‟occurrences de chacune des valeurs dans une image en niveaux de gris
Dans une image couleur il est neacutecessaire d‟utiliser plusieurs
histogramme sur chacune des composantes du systegraveme de repreacutesentation
de la couleur
Soit h l‟histogramme de l‟image I de dimension (w x h) h[i] repreacutesente
le nombre d‟occurrence de chaque niveau de quantification i La probabiliteacute
estimeacutee du niveau i dans une image I est
hw
ihip
][)(
Image de 256 256 pixels
codeacutes chacun sur 8 bitsPopulation de pixels pour chaque
niveaux de gris [0 255]
Pour chaque niveau de gris on compte le nombre de pixels s‟y reacutefeacuterant
Pour chaque niveau on trace le graphe en bacircton du nombre de pixels
(possibiliteacute de regrouper les niveaux proches en une seule classe)
Exemple drsquohistogramme pour une image en niveaux
de gris
0 50 100 150 200 250
0
200
400
600
800
1000
cameraman
Image laquo A raquo en
niveaux de gris
Matrice des valeurs de luminance
des pixels de lrsquoimage laquo A raquo
Histogramme
de lrsquoimage
laquo A raquo
2 2 2 2 2 2 2 2
2 0 0 0 0 0 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 0 0 0 0 0 2
2 2 2 2 2 2 2 2
Les niveaux 0 1 et 2 sont respectivement repreacutesenteacutes par 24 12 et 28 pixels
repreacutesentation de cette population de pixels sur lhistogramme
Limage laquo A raquo comporte 3 niveaux de gris diffeacuterents 0 1 et 2
Compter le nombre de pixels pour chaque niveau de gris agrave lrsquoaide de la
matrice des valeurs de luminance
Exemple simple de calcul drsquohistogramme pour une image
Image laquo A raquoValeurs de luminance de
laquo A raquo
Histogramme cumuleacute de
laquo A raquo
2 2 2 2 2 2 2 2
2 0 0 0 0 0 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 0 0 0 0 0 2
2 2 2 2 2 2 2 2
Calcul dun histogramme particulier faisant appel aux cumuls des niveaux de gris
Histogramme cumuleacute
Utile pour certains traitements dimage tels que lrsquoeacutegalisation
dhistogramme ( ameacutelioration de contraste)
Chaque bacircton cumule le nombre de pixels du niveaux de gris concerneacute et des
niveaux de gris infeacuterieurs les niveaux 0 1 2 sont donc repreacutesenteacutes
respectivement par 24 36 et 64 pixels
Histogramme cumuleacute drsquoune image L‟histogramme ne donne pas L‟histogramme ne donne pas
d‟informations sur la reacutepartitiond‟informations sur la reacutepartition
Trois images diffeacuterentes ayant un mecircme histogramme
15122010
19
Modification de lrsquohistogrammeModification de lrsquohistogramme
On appelle dynamique des niveaux de gris lintervalle [nminnmax] de
niveaux de gris dans lequel sont compris tous les pixels de limage
Le but de la modification dhistogramme modifier chaque niveau de
gris pour accroicirctre le contraste On modeacutelise cette transformation par
leacutequation Irsquo(ij) = g(I(ij)) ougrave g est la fonction de contraste
Chaque transformation sera deacutecrite par une courbe repreacutesentant la
relation entre un niveau de gris de limage de deacutepart (abscisse) et le
niveau qui lui correspond dans limage ameacutelioreacutee (ordonneacutee)
Sami Gazzah 2009 109
Masquage de zones Masquage de zones Extraction d‟une Extraction d‟une
fenecirctre d‟intensiteacutefenecirctre d‟intensiteacute ((slicingslicing intensiteacute)intensiteacute)
Cette transformation consiste agrave remplacer un intervalle de niveaux
de gris par du blanc (nmax) par du noir (nmin) ou par une valeur
intermeacutediaire du niveau de gris
Sami Gazzah 2009 110
Courbes repreacutesentant de gauche agrave droite lextraction dune fenecirctre dintensiteacute et le masquage blanc et noir de lintervalle [ab]
n-1
n-1
0 n-1
n-1
0a ab b n-1
n-1
0 a b
Sami Gazzah 2009 111
Exemples de Masquage de zonesInversion de la dynamiqueInversion de la dynamique
But produire le neacutegatif d‟une image
donneacutee
Sami Gazzah 2009 112
Sami Gazzah 2009 113
Etirement drsquohistogramme
Sami Gazzah 2009 114
Etirement drsquohistogramme
Augmentation du contraste par eacutetirement d‟histogramme
15122010
20
Sami Gazzah 2009 115
Eacutegalisation dhistogramme
But ameacutelioration du contraste
Distribution uniforme des niveaux de gris
Elle se deacutefinit agrave laide de lhistogramme cumuleacute de limage hc(n)
qui repreacutesente le nombre de pixels de limage dont le niveau de
gris est infeacuterieur ou eacutegal agrave n
Deacutefinition de la transformation deacutegalisation dhistogramme soit
I le niveau de gris dun pixel de deacutepart le niveau de gris de limage
darriveacutee I‟ sera
Sami Gazzah 2009 116
Sami Gazzah 2009 117
Effet de lrsquoeacutegalisation drsquohistogramme
Sami Gazzah 2009 118
Augmentation du contraste exemples et comparaison
Original Eacutetirement d‟histogramme Eacutegalisation
Le rehaussement du contraste est plus marqueacute avec l‟eacutegalisation
d‟histogramme autorisant la deacutetection de structures situeacutees dans
l‟ombre
Sami Gazzah 2009 119
Chapitre 5
SEGMENTATION DrsquoIMAGES
Sami Gazzah 2009 120
Une image est geacuteneacuteralement composeacutee d‟objets L‟analyse de cette
image neacutecessite l‟identification de ces objets
La segmentation dimages est lun des problegravemes phares du traitement
dimages Elle consiste agrave partitionner limages en un ensemble de
reacutegions connexes Linteacuterecirct de ces reacutegions est de pouvoir ecirctre
manipuleacutees ensuite via des traitements de haut niveau pour extraire
des caracteacuteristiques de forme de position de taille etc
Introduction
15122010
21
Sami Gazzah 2009 121 Sami Gazzah 2009 122
Meacutethodes statistiquesSegmentation par Histogrammes
Sami Gazzah 2009 123
Meacutethodes statistiquesSeacutelection Reacutecursive sur Histogrammes
Ohlander Price et Reddy (1978)
Sami Gazzah 2009 124
Segmentation par approche contourIntroduction
Le contour est deacutefini comme le lieu des points connexes qui
possegravedent une forte transition d‟intensiteacute lumineuse ou de texture Le
traitement qui vise agrave l‟obtenir est appeleacute extraction de contour on
parle aussi de deacutetection de contour
Le processus d‟extraction de contour peut ecirctre deacutecomposeacute en
plusieurs eacutetapes distinctes que nous allons les deacutetailler comme suit
- La mise en eacutevidence des contours
- L‟extraction des contours
- La fermeture des contours
Sami Gazzah 2009 125
Segmentation par approche contourLa mise en eacutevidence des contours
Elle s‟obtient par une diffeacuterentiation de l‟image et elle peut
s‟appliquer agrave des images binaires ou non le but de la deacutetection de
contours est d‟obtenir dans un premier temps une image binaire ougrave
chaque contour est d‟eacutepaisseur 1 et sans discontinuiteacute
rehausser le contour
suivre le contour
les points du contour correspondent au maximum en valeur absolue
de la deacuteriveacutee primaire de l‟image on obtient alors un gradient ou au
passage par zeacutero de la deacuteriveacutee seconde de l‟image on obtient alors
un laplacien
Sami Gazzah 2009 126
Segmentation par approche contourLa mise en eacutevidence des contours
La deacutetection de contours peut ecirctre reacutealiseacutee gracircce agrave des filtres
dont les coefficients ont eacuteteacute soigneusement choisis Nous
aborderons dans cette preacutesentation 3 filtres les filtres de
Prewitt Roberts et Sobel
Ce jeu de filtres (Prewitt Roberts et Sobel) est constitueacute d‟une
paire de filtres lineacuteaires qui deacutetectent le contours dans deux
directions orthogonales (vertical et horizontal)
15122010
22
Sami Gazzah 2009 127
Segmentation par approche contourFiltre de Perwitt
Les filtres de Perwitt sont les suivants
Filtre horizontal
Filtre vertical
111
000
111
h
101
101
101
v
Sami Gazzah 2009 128
Segmentation par approche contourFiltre de Perwitt
A partir d‟une image I on calcule Gh et Gv images
correspondant au filtrage de I par h et v Ces images
contiennent les contours horizontaux et verticaux
Si l‟on souhaite obtenir une image de contour unique ne tenant
pas compte de l‟orientation on calcule
Orientation du contour
Image binairehellipchoisir un seuil de deacutetection
22
vh GGG
)(vh
GGarctg
Sami Gazzah 2009 129
Segmentation par approche contourFiltre de Sobel
Les filtres de Sobel sont les suivants
Filtre horizontal
Filtre vertical
121
000
121
h
101
202
101
v
Sami Gazzah 2009 130
Segmentation par approche contourFiltre de Sobel
Sami Gazzah 2009 131
Segmentation par approche contourFiltre de Sobel
Sami Gazzah 2009 132
Segmentation par approche contourFiltre de Roberts
Les filtres de Roberts sont les suivants
Filtre diagonal
Filtre anti-diagonal
10
01h
01
10v
15122010
23
Sami Gazzah 2009 133
Segmentation par approche contourFiltre de Kirsch
Ce deacutetecteur utilise huit noyaux de convolution lui permettant de deacutetecter
des contours en fonction de huit directions agrave
15
335
305
335
1
d 15
333
305
355
2
d 15
333
303
555
3
d
15
333
503
553
4
d 15
533
503
533
5
d 15
555
503
333
6
d
15
555
303
333
7
d 15
355
305
333
8
d
Sami Gazzah 2009 134
Contours et Laplacien
Il s‟agit de calculer la deacuteriveacutee seconde de l‟image
Le Laplacien est tregraves sensible au bruit pour limiter l‟effet du bruit le
Laplacien est approximeacute par un masque qui effectue en mecircme temps
une opeacuteration de filtrage par une Gaussienne qui repreacutesente l‟eacutetape
de lissage de l‟image puis vient l‟application du laplacien Les masques
du Laplacien Gaussien sont preacutesenteacutes ci-apregraves
Segmentation par approche contour
Sami Gazzah 2009 135
Contours et Laplacien
Le contour est ensuite deacutetermineacute par la deacutetection des
passages par zeacutero du laplacien de l‟image
88888888888888
010
141
010
1h
111
101
111
2h
121
242
121
3h
Sami Gazzah 2009 136
Contours et Laplacien
Sami Gazzah 2009 137
Seuillage
Les filtres preacuteceacutedents nous fournissent des images des sauts ou
diffeacuterences d‟intensiteacute
Le seuillage permet d‟eacuteliminer des points en lesquels la diffeacuterence
d‟intensiteacute est tregraves faible
Le seuillage peut ecirctre pousser afin d‟obtenir une image binaire (TOR)
Le seuillage dans sa forme le plus simple ne tient pas compte de la
topologie et peut conserver un point bruiteacute isoleacute ou eacuteliminer une portion
de contour d‟intensiteacute faible
Sami Gazzah 2009 138
Seuillage par hysteacutereacutesis
c‟est une fonction agrave deux seuils un seuil bas et un seuil haut
Tout point dont le module de contour est au-dessus du seuil-haut est un
point de contour
Tout point dont le module de contour est au-dessous du seuil-bas n‟est
pas un point de contour
Les points de module entre le seuil-bas et le seuil-haut sont des points
de contour s‟il possegravede un point de contour dans leur voisinage
15122010
24
Sami Gazzah 2009 139
Seuillage par hysteacutereacutesis
seuil haut
Seuil bas
point sur contour
point hors contour
Seuillage par hysteacuterisais les points de lrsquoimage de contour de valeur
supeacuterieur au seuil haut sont des points de contours A partir de ces points de
contours le voisinage de la direction du contour sont examineacutes srsquoils sont de
valeur supeacuterieure au seuil bas ils sont ajouteacutes au points de contoursSami Gazzah 2009 140
Chapitre 6
Introduction aux
opeacuterateurs
morphomatheacutematique
Sami Gazzah 2009 141
1 Introduction
Les opeacuterateurs morphomatheacutematique (=Morphologie Matheacutematique)
permettent d‟ameacuteliorer les images de contours et apporter d‟autres
fonctionnaliteacutes
Ils ont eacuteteacute initialement appliqueacute sur des images NampB (Matheron et
Sarra1965) ensuite eacutetendus agrave des images en nivaux de gris par Doupherty
(1978)
Pour les appliquer sur des images couleurs on peut les appliquer
seacutepareacutement agrave chaque composante couleur et combiner les reacutesultats
Sami Gazzah 2009 142
Diffeacuterentes opeacuterations
eacuterosion dilatation
ouverture fermeture
Squelettisation
hellip
1 Introduction
Sami Gazzah 2009 143
1 Introduction
Dilatation
Ajouter un pixel sur les pourtours de la forme
boucher les trous
Erosion
Enlever un pixel sur les pourtours de la forme
les objets de taille infeacuterieure agrave celle de leacuteleacutement
structurant vont disparaicirctre
agrandit les trous
Sami Gazzah 2009144
1I Rappels sur les ensembles
L‟eacutegaliteacute
L‟inclusion
Lbdquointersection
L‟union
La diffeacuterence
La diffeacuterence symeacutetrique
La compleacutementariteacute E eacutetant un ensemble
servant de reacutefeacuterentielle
Dans ce qui suit les lettres majuscules deacutesignent des ensembles et les lettres
minuscules deacutesignent des eacuteleacutements appartenant aux ensembles
Sur les ensembles on deacutefinit les opeacuterations suivantes
15122010
25
Sami Gazzah 2009145
1I Rappels sur les ensembles
Sami Gazzah 2009146
1I Rappels sur les ensembles
Lois de De Morgan
Reacuteflexion La reacuteflexion d‟un ensemble A est deacutefinie par
Un ensemble symeacutetrique veacuterifiant ndashA=A C‟est le cas des cercles et des carreacute par
exemple
ccc YXYX )(
ccc YXYX )(
AaaA
A -A B -B
Sami Gazzah 2009147
1I Rappels sur les ensembles
Addition de Minkowski l‟addition d‟un eacuteleacutement x agrave un ensemble A par x est
deacutefinie par
Cette notion n‟est pas uniquement ensembliste elle nous oblige agrave deacutefinir un point
de reacutefeacuterence
On en deacuteduit l‟addition d‟un ensemble B agrave un ensemble A c‟est le reacutesultat de
l‟addition de chaque eacuteleacutement de B agrave A
L‟addition de Minkowski est commutative Elle est eacutegalement appeleacute dilatation
AaxaxAB
A
A
x
AxBxAaBaBbbABAC )()()(
le translateacute de X par b
Sami Gazzah 2009148
1I Rappels sur les ensembles
Eleacutement structurant les opeacuterations morphomatheacutematiques sont deacutefinis agrave
partir des ensemble B discrets appeleacute eacuteleacutement structurant Ces eacuteleacutement
permettent de deacutefinir le type de voisinage souhaiteacute
Addition de Minkowski d‟un ensemble A et d‟un ensemble B
BA
Sami Gazzah 2009149
1II Dilatation
Le reacutesultat de dilatation de lrsquoensemble A par lrsquoensemble B
est lrsquoaddition de Minkowski crsquoest lrsquoensemble des points tel
que lorsque B est centreacute sur un de ces points il y a une
intersection non vide entre A et B
Pour des images en niveaux de gris on obtient lrsquoimage
dilateacutee de la forme A en remplaccedilant tout pixel par le
maximum des intensiteacutes des voisins selon la forme B
Sami Gazzah 2009 150
1II Dilatation1 Image NampB
Soit k l‟eacuteleacutement structurant de taille (2k+1) x (2k+1) L‟algorithme de
dilatation est le suivant on parcourt tous les pixels de l‟image sauf les
bord de l‟image d‟eacutepaisseur k pour chaque pixel du fond rencontreacute s‟il
possegravede un voisin au sens de l‟eacuteleacutement structurant qui appartient agrave un
objet il prend le couleur de l‟objet si non il n‟est pas modifieacute
15122010
26
la dilatation (noteacutee ) drsquoune image monochrome laquo f raquo par un
eacuteleacutement structurant laquo B raquo est deacutefinie en terme de sous-graphe
bull f B = T [ Y ] = Supl l tel que (m n l) Y
bullY = U ( f ) U ( B )
En consideacuterant un eacuteleacutement structurant plan de valeur nulle sur son
support
( f B ) (P) = Max valeurs des pixels du voisinage du pixel P
1II Dilatation1 Image niveaux de gris
max
55 68 77 90 91 95 115 151 210
( f B ) (P) = 210
n
115 91 77
95 68 90
55 151 210
exemple
m
Image de reacutefeacuterence
Eacuteleacutement structurant
(8-connexiteacute)
liste ordonneacutee des valeurs du voisinage
- - -
-
-
-
-
-
1II Dilatation1 Image niveaux de gris
Exemples de filtrages morphologiques(eacuteleacutement structurant 33 complet)
Image de reacutefeacuterenceImage dilateacutee
morphologiquement
La dilatation en niveaux de gris accroicirct la luminance des
pixels entoureacutes de voisins plus lumineux
Observation
Sami Gazzah 2009154
VI Erosion
L‟eacuterosion est deacutefinie par
On deacutefinit la soustraction de Minkowski par
On a eacutequivalence entre eacuterosion et soustraction de Minkowski si B est
symeacutetrique (si B=-B)
D‟un point de vue binaire l‟eacuterode de A par B correspond agrave l‟ensemble
des points tels que si B est centre sur ce points B est entiegraverement inclus
dans A
AxBxBbbABAC )()(
)()( BbbABAC
Sami Gazzah 2009 155
VI Erosion1 Image NampB
on parcourt tous les pixels de l‟image sauf les bord de l‟image
d‟eacutepaisseur k pour chaque pixel du fond rencontreacute s‟il possegravede un
voisin au sens de l‟eacuteleacutement structurant qui appartient agrave un objet il
prend le couleur du fond si non il n‟est pas modifieacute
VI Eacuterosion drsquoune image en niveaux de gris
Lrsquoeacuterosion (noteacutee Ө ) drsquoune image monochrome laquo f raquo par un eacuteleacutement
structurant laquo B raquo est deacutefinie en terme de sous-graphe
bull f Ө B = T [ Y ] = Supl l tel que (m n l) Y
bullY = U ( f ) Ө U ( B )
Classiquement on considegravere un eacuteleacutement structurant plan de
valeur nulle sur son support
( f Ө B ) (P) = Min valeurs des pixels du voisinage du pixel P
15122010
27
VI Eacuterosion drsquoune image en niveaux de gris
min
68 90 91 95 151
( f Ө B ) (P) = 68
n
115 91 77
95 68 90
55 151 210
exemple
m
Image de reacutefeacuterence
ӨӨ
Eacuteleacutement structurant
(4-connexiteacute)
liste ordonneacutee des valeurs du voisinage
-
-
-
-
Exemples de filtrages morphologiques(eacuteleacutement structurant 33 complet)
Image eacuterodeacutee
Lrsquoeacuterosion en niveaux de gris reacuteduit la luminance des pixels
qui sont entoureacutes de voisins de moindre intensiteacute
Image de reacutefeacuterence
Observation
Sami Gazzah 2009 159
Eacuteleacutement structurant (a)
(4-connexiteacute)
-
-
-
-
Eacuteleacutement structurant (b)
(8-connexiteacute)
- - -
-
-
-
-
-
Exercice 1 Sur la mecircme image de deacutepart on reacutealise deux opeacuterations
de dilatations avec deux eacuteleacutements structurant diffeacuterents
Dilatation avec (a) Dilatation avec (b)
image de deacutepart
cas a L‟eacuteleacutement structurant est agrave 4-connexiteacute Chaque pixel
du support qui est eacutegal agrave la valeur 1 ou qui a l‟un de ses 4
voisins agrave la valeur 1 est mis agrave la valeur 1 apregraves filtrage
cas b L‟eacuteleacutement structurant est agrave 8-connexiteacute Chaque pixel
du support qui est eacutegal agrave la valeur 1 ou qui a l‟un de ses 8
voisins agrave la valeur 1 est mis agrave la valeur 1 apregraves filtrage
Dans les deux cas on observe qu‟une dilatation eacutelimine les
trous isoleacutes dans les objets et dilate le contour des objets en
tenant compte de l‟eacuteleacutement structurant
Sami Gazzah 2009 160
Exercice 1
Sami Gazzah 2009 161
Eacuteleacutement structurant (a)
(4-connexiteacute)
-
-
-
-
Eacuteleacutement structurant (b)
(8-connexiteacute)
- - -
-
-
-
-
-
Exercice 2 Sur la mecircme image de deacutepart on reacutealise deux opeacuterations
d‟eacuterosions avec deux eacuteleacutements structurant diffeacuterents
Erosion avec (a) Erosion avec (b)
image de deacutepart
cas a L‟eacuteleacutement structurant est agrave 4-connexiteacute (origine agrave 4 voisins)
Chaque pixel du support qui a la valeur 0 ou qui a l‟un de ses 4
voisins agrave la valeur 0 est mis agrave la valeur 0 apregraves filtrage
cas b L‟eacuteleacutement structurant est agrave 8-connexiteacute Chaque pixel du
support qui a la valeur 0 ou qui a l‟un de ses 8 voisins agrave la valeur 0
est mis agrave la valeur 0 apregraves filtrage
Dans les deux cas on observe qu‟une eacuterosion eacutelimine les pixels
isoleacutes sur le fond et eacuterode le contour des objets
Sami Gazzah 2009 162
Exercice 2
15122010
28
ConclusionsConclusions
Erosion
les objets relieacutes entre eux vont ecirctre seacutepareacutes
Une eacuterosion de taille n peut se reacutealiser en reacutepeacutetant une
eacuterosion n fois avec un eacuteleacutement structurant de taille 1 ou en
appliquant une seule eacuterosion avec un eacuteleacutement structurant
de taille n
Dilatation
des objets sont situeacutes agrave une distance moins grande que la taille
de leacuteleacutement structurant il vont fusionner
Sami Gazzah 2009 163 Sami Gazzah 2009 164
Sami Gazzah 2009 165
Elimine pixels isoleacutes sans inteacuterecirct
L‟ouverture (opening) consiste agrave une eacuterosion suivi d‟une dilatation
Les petites structures et deacutetail fins disparaissent et ne sont pas recreacuteeacutees
lors de la dilation Une opeacuteration d‟ouverture est ainsi inteacuteressante pour
eacuteliminer les petits morceaux de contours bruiteacutes dans une image de
contours
V Ouverture et fermeture1 Ouverture
BBABAC )(
Sami Gazzah 2009 166
V Ouverture et fermetureII Fermeture
La fermeture (closing) consiste agrave une dilatation suivi d‟une eacuterosion
Les structures proches fusionnent lors de la dilation mais seules les
fusions ponctuelles disparaissent agrave nouveau lors de l‟eacuterosion Une
opeacuteration de fermeture est ainsi inteacuteressante pour boucher les petits
trous
Sami Gazzah 2009 167 Sami Gazzah 2009 168
Exercice 3 Sur l‟image de deacutepart on reacutealise une opeacuteration de
fermeture binaire par l‟eacuteleacutement structurant 4-connexiteacute Conclusions
Eacuteleacutement structurant
(4-connexiteacute)
-
-
-
-Fermeture = dilatation puis eacuterosion
Image de deacutepart Image dilateacutee Image dilateacutee puis eacuterodeacutee
Combler les trous
Reacutetablir les jonctions
tout en preacuteservant la taille
15122010
29
Sami Gazzah 2009 169
Exercice 4 Sur l‟image de deacutepart on reacutealise une opeacuteration
d‟ouverture binaire par l‟eacuteleacutement structurant 4-connexiteacute Conclusions
Eacuteleacutement structurant
(4-connexiteacute)
-
-
-
-Ouverture = eacuterosion puis dilatation
Image de deacutepart Image eacuterodeacutee Image eacuterodeacutee puis dilateacutee
Supprimer les fausses alarmes
Seacuteparer les objets accoleacutes
tout en preacuteservant la tailleSami Gazzah 2009 170
Appliquer les filtres suivants sur limage donneacutee Quelles sont les valeurs choisies
aux bords de limage et quelles sont les modifications visuelles
a) filtre moyenneur M3acute3(19)
b) eacuterosion
c) dilatation
d) meacutedian
e) fermeture
f) ouverture
Exercice 5
Sami Gazzah 2009 171
IV Amincissement et Squelettisation
La squelette (skeleton) d‟une forme est l‟axe meacutedian L‟inteacuterecirct de cette
opeacuteration est dans
La reconnaissance de caractegraveres
Deacutetection des reacuteseaux routiers
La planification de trajectoirehellip
Une meacutethode couramment employeacutee est une amincissement reacutepeacuteteacute
jusqu‟agrave le convergence (n‟apporte aucune modification)
Sami Gazzah 2009 172
IV Amincissement et Squelettisation1 Opeacuteration Tout Ou Rien laquoHit or Missraquo
Cette transformation est deacutefinie par
leacuteleacutement structurant eacutetendu est centreacute sur chaque pixel de limage
comme pour les opeacuterations ensemblistes
la question poseacutee est est ce que le contenu de limage est identique au
contenu de leacuteleacutement structurant
si la reacuteponse est oui le pixel reacutesultant vaut 1 si non il vaut 0
Une application permet de deacutetecter des configurations locales
particuliegraveres dans une image
plusieurs masques peuvent ecirctre utiliseacutes indeacutependamment les images
reacutesultat eacutetant ensuite combineacutees par une opeacuteration ou
)()( cc BABABA
Bc-
est le compleacutementaire
local de B
Sami Gazzah 2009 173
IV Amincissement et Squelettisation1 Opeacuteration laquoHit or Missraquo
Exemple dopeacuteration Hit or Miss deacutetection des coinsSami Gazzah 2009 174
IV Amincissement et Squelettisation1 Amincissement (thinning)
bull La transformation TOR nous permet eacutegalement de deacutefinir
l‟amincissement
bullL‟amincissement consiste agrave soustraire limage reacutesultat dun hit or miss de
limage initiale
bull des amincissements successifs conduisent au squelettisation
)()( BAAAthin
15122010
30
Sami Gazzah 2009 175
IV Amincissement et Squelettisation1I Squelettisation
Appliquer des amincissements successifs puis s‟arrecircter lorsque l‟amincissement
n‟apporte plus de modification C‟est une eacuterosion particuliegravere ougrave les pixels sont
supprimeacutes agrave la condition quils ne provoquent pas la seacuteparation dune reacutegion en
deux
Sami Gazzah 2009 176
IV Amincissement et Squelettisation1I Squelettisation
Sami Gazzah 2009 177
Chapitre 7
Transformations
geacuteomeacutetriques 2D
Sami Gazzah 2009 178
I Introduction
On entend par transformation 2D l‟ensemble des transformations du
plan pouvant ecirctre appliqueacutees aux pixels de l‟image sans consideacuteration
de l‟intensiteacute
Par exemples
Reacuteduction agrandissement
Deacuteformation d‟image
Recalage d‟une photo scanneacutee
Recaler des images que l‟on veut comparer
Mosaiumlque d‟images
Sami Gazzah 2009 179
I Transformations euclidiennes
Elles preacuteservent les distances et les angles
Elles sont les compositions de translations et de rotations
1) Translation
Ougrave Tx et Ty sont les deacuteplacements en x et en y de la translation
y
x
Tyy
Txx
Sami Gazzah 2009 180
2) Rotation
15122010
31
Sami Gazzah 2009 181 Sami Gazzah 2009 182
3) Remarques (1)
Sami Gazzah 2009 183
3) Remarques (2)
Sami Gazzah 2009 184
II Homotheacuteties
Changement deacutechelle par rapport agrave lorigine (scaling zoom)
Ougrave Sx et Sy sont les facteurs dagrandissement ( gt1) ou de
reacuteduction ( lt1) en x et en y
ySy
xSx
y
x
Sami Gazzah 2009 185
II Homotheacuteties
Sami Gazzah 2009 186
II Homotheacuteties
15122010
32
Sami Gazzah 2009 187
III Reacuteflexions
Reacuteflexions par rapport aux axes (flip miroir)
Sami Gazzah 2009 188
IV Cisaillement
Cisaillement (glissement shearing) on eacutetire suivant un ou plusieurs axes
Sami Gazzah 2009 189
Transformations inverses
Sami Gazzah 2009 190
Repreacutesentation Matricielle
IV Autres (reacuteflexions miroirs et flips)
Sami Gazzah 2009 191
Interpolation Directe
Sami Gazzah 2009 192
oDifficile de distribuer le niveau de gris sur les pixels voisins
oOn n‟a pas la certitude que tous les pixels de l‟image
transformeacutee recevront une valeur =gt ldquotrousrdquo
15122010
33
Interpolation Inverse
Sami Gazzah 2009 193
o Interpolation de la valeur du pixel agrave partir des voisins plus
facile
oAucun ldquotrourdquo car on parcourt tous les pixels de l‟image
transformeacutee Sami Gazzah 2009 194
V Objet vectoriel - Objet bitmap
Objet vectoriel
Essentiellement on transforme
les sommets (ou points de
controcircle) et on retracehellip
Objet ldquobitmaprdquo
On doit calculer la nouvelle
position de chaque pixel De plus on
doit geacuteneacuteralement interpoler les
niveaux de gris (couleurs)hellip
Sami Gazzah 2009 195
IV Assignation des niveaux de gris
Neacutecessaire car la position d‟un pixel transformeacute n‟est pas entiegraverehellip
Plusieurs meacutethodes
Interpolation au plus proche voisin
Interpolation bilineacuteaire
Interpolation bicubique
Autres types d‟interpolation
Sami Gazzah 2009 196
IV Assignation des niveaux de gris
Linterpolation de limage cest ce qui arrive lorsquon redimensionne
une image numeacuterique ou quon la redimensionne avec une distorsion
quon change la perspective etc
Exemple 1
Image originale (sans interpolation)
Image agrandie et donc interpoleacutee
Perte de netteteacute due agrave linterpolation
Sami Gazzah 2009
197
IV Assignation des niveaux de gris
Exemple 2 recadrage dimage
Nous allons agrandir cette image agrave 180
Il va donc nous manquer des informations lagrave ougrave lon va creacuteer des
pixels pour agrandir limage
Reacutesultat sans interpolation le logiciel agrandit simplement les pixels
Reacutesultat avec interpolation le logiciel calcule une couleur intermeacutediaire
pour chaque nouveau pixel
Sami Gazzah 2009
198
IV Assignation des niveaux de gris
Image originale
Interpolation au plus
proche voisin
Interpolation
bilineacuteaireInterpolation
bicubique
15122010
34
Sami Gazzah 2009 199
IIV Interpolation au plus proche voisin
Cest lalgorithme le plus rapide agrave calculer
Prend en compte dans le calcul que le pixel le plus proche du point
agrave interpoler
Consiste tout simplement agrave agrandir chaque pixel
Exemple Interpolation du plus proche voisin par copie des pixels
Copie de chaque colonne et de chaque rang
23 20
25 28
23 23
23 23
20 20
20 20
25 25
25 25
28 28
28 28
Sami Gazzah 2009 200
IIV Interpolation bilineacuteaire
Fonction bilineacuteaire de 4 pixels voisins ( en 2 D )
i-1 i i+1
i-1 i-12 i i+12 i+1 i+32
yi=xiYi+12=(xi+xi+1)2
Problegraveme pour le dernier point
Extrapolation lineacuteaire de
2 xn-xn-1
Principe 1D
attribuer agrave chaque point cible une
combinaison lineacuteaire des quatre
points sources les plus proches par
la transformation inverse
Sami Gazzah 2009 201
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 202
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 203 Sami Gazzah 2009 204
IIV Interpolation bilineacuteaire
15122010
35
Sami Gazzah 2009 205
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 206
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 207
IIV Interpolation bilineacuteaire exemple
Sami Gazzah 2009 208
IIV Interpolation bicubique
Sami Gazzah 2009 209
exemple
Sami Gazzah 2009 210
Chapitre 8
Geacuteneacuteration de segments de
droite et de cercles en 2D
15122010
36
Sami Gazzah 2009 211
Infographie 2D besoin de dessiner des primitives de
base (segments cercles hellip)
Espace discreacutetiseacute (pixels) il faut trouver un moyen pour
afficher des segments ou des cercles
I Segments 2D cercles1 Introduction
Comment trouver les pixels agrave allumer pour approximer au mieux une
droite ou un cercle
Algorithme rapide et preacutecisSami Gazzah 2009 212
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=ax+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ya
Sami Gazzah 2009 213
Rappelhellip
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=mx+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ym
Sami Gazzah 2009 214
Exemple
Sami Gazzah 2009 215
Agrave partir des coordonneacutees des 2 extreacutemiteacutes d‟un segmenthellip
Un algorithme simple
Boucle de x1 agrave x2 dx=1
ALLUME (x Arrondir(y))
Avec x2gtx1
Arrondir(y) = Arrondir(ax+b)
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Sami Gazzah 2009 216
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Choix de lrsquoaxehellip
Peu efficace
bullagrave chaque iteacuteration 1 multiplication (ou division) + 1 addition
+ 1 arrondi
15122010
37
Sami Gazzah 2009 217
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
DDA (Digital Differential Analyzer)
y et m doivent ecirctre des reacuteelsSami Gazzah 2009 218
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Calcul en entier (donc plus rapide)
Baseacute sur le choix entre deux points discrets deacutependant de leur
distance respective avec le point reacuteel ideacuteal
On simplifie le problegraveme en traitant drsquoabord le traceacute drsquoun segment
dans le 1er octant m infeacuterieur agrave1 et positif (0ltmlt 1)
Facilement geacuteneacuteralisable aux autres octants
Sami Gazzah 2009 219
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Traceacute d‟un segment dans le premier octant mlt1
On part d‟un point (xi yi) allumeacute
Sami Gazzah 2009 220
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
On ne calcule pas reacuteellement les distances rArr on veacuterifie si la diffeacuterence
entre les deux distances est positive ou neacutegative
Le signe de la longueur (d1-d2) deacutetermine s‟il faut allumer le pixel L ou H
L
H
Sami Gazzah 2009 221
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Comme m=ΔyΔx on multiplie cette diffeacuterence par Δx pour eacuteviter la
division
Mais que vaut p1
Sami Gazzah 2009 222
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
15122010
38
Sami Gazzah 2009 223
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Pour eacuteviter de calculer cette diffeacuterence pour chaque point on cherche
une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
Sami Gazzah 2009 224
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009 225
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009
Exercice
Tracer le segment de droite
pi xi yi
2 0 0
-6 1 1
6 2 1
-2 3 2
10 4 2
2 5 3
-6 6 4
6 7 4
-2 8 5
10 9 5
2 10 6
6
10
y
x
Sami Gazzah 2009 227
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
Sami Gazzah 2009 228
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
hellip interchanger les points hellip
Si |Δx| lt | Δy| on interchange le rocircle de x et y
15122010
39
Sami Gazzah 2009 229
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (1)
Sami Gazzah 2009 230
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (2)
Sami Gazzah 2009 231
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (3)
Sami Gazzah 2009 232
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Toujours baseacute sur le choix entre deux
points discrets deacutependant de leur
distance respective avec le point reacuteel
On travaille dans le 2e octant agrave partir
de (0r) ainsi pour un point (xi yi) le
prochain point sera
(xi+1 yi) ou (xi+1 yi-1)
Sami Gazzah 2009 233
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On calcule le prochain y et les diffeacuterences respectives avec les points
discrets de la faccedilon suivante
Le signe de pi nous dira si nous devons choisir le point lateacuteral ou le diagonal
Sami Gazzah 2009 234
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Encore une fois pour eacuteviter de calculer cette diffeacuterence pour chaque point on
cherche une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
15122010
40
Sami Gazzah 2009 235
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On considegravere 2 cas
Valeur initiale
Sami Gazzah 2009 236
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Sami Gazzah 2009 237
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Exemple centre = (00) et r = 3
Sami Gazzah 2009 238
Livres
Diane Lingrand Introduction au Traitement d‟Images Paris Editions Vuibert 2e
eacutedition 2008
Steven k Feiner James D Foley John F Hughes Richard l Phillips Andries
Vanam Introduction agrave l‟infographie Paris Editions Vuibert 2000
William K Pratt Digital Image Processing Willy-Inter-sciences 4th edition 2007
Eacuteric Incerti Compression dimage ndash Algorithmes et standards Vuibert 2003
Gilles Burel Introduction au traitement dimages ndash Simulation sous Matlab
Hermegraves 2001
Sites web
Cours de C Rougier (U Montreacuteal)
httpwww-etudiroumontrealca~rougiercift2730courshtml (cf chapitre 3)
Page wikipeacutedia sur JPEG (en anglais plus complegravete que celle en franccedilais)
httpenwikipediaorgwikiJPEG
Cours de P Courtellemont (Campus numeacuterique Espdon)
httppersouniv-lrfrpcourtelespadonsite_web
Applet de deacutemo par C G Jennings
httpcgjenningscatoyboxhjpegindexhtml
Cours de D Marshall (U Cardiff)
httpwwwcscfacukDaveMultimediaPDF
Reacutefeacuterences
Sami Gazzah 2009 239
Chapitre 9
introduction au
traitement
dimages avec OpenGL
Sami Gazzah 2009 240
OpenGL est une librairie graphique Elle a eacuteteacute creacutee par Silicon
Graphics et beacuteneacuteficie sur ces machines de lacceacuteleacuteration mateacuterielle
Elle est constitueacute d‟environ 200 fonctions graphiques
OpenGL est une bibliothegraveque de fonctions
Les fonctions sont de bas niveaux
La version actuelle est l‟ laquo OpenGL 41 raquo (deacutecembre 2010)
Principale caracteacuteristique indeacutependant du mateacuteriel et du systegraveme
d‟exploitation
Une impleacutementation libre de droits dOpenGL tregraves performante a eacuteteacute
eacutecrite par Brian Paul httpwwwmesa3dorg Et tout son code source
est accessible
Preacutesentation geacuteneacuterale
15122010
41
Sami Gazzah 2009 241
OpenGL propose des fonctions de bas niveaux
Primitives geacuteomeacutetriques points segments polygones
Les fonctions de haut niveaux sont deacuteveloppeacutees par l‟utilisateur ou
importeacutees par la librairie en amont d‟OpenGL
Primitives geacuteomeacutetriques complexes Sphegravere splines etc
Toutes les commandes et fonctions utilisent le preacutefixe gl
Exemple glColor2f()
Sami Gazzah 2009 242
Les Bibliothegraveques co-existant avec OpenGL
GLU OpenGL Utility Library contient les routines de bas niveau pour
geacuterer les matrices de transformation et de projection la facettisation des
polygones et le rendu de surface Les bibliothegraveques dextension du
systegraveme de fenecirctres permettent lutilisation du rendu OpenGL Il sagit de
GLX pour X Windows (fonctions ayant pour preacutefixe glX) et de WGL
pour Microsoft Windows (fonctions ayant pour preacutefixe wgl)
GLUT OpenGL Utility Toolkit est une boite agrave outils indeacutependante du
systegraveme de fenecirctrage eacutecrite par Mark
Kilgard pour simplifier la tacircche dutiliser des systegravemes diffeacuterents (fonctions
ayant pour preacutefixe glut)
Sami Gazzah 2009 243
Les primitives geacuteomeacutetriques d rsquoOpenGL
Les primitives sont deacutecrites par un bloc d‟instructions deacutelimiteacute par glBegin et glEnd
Ce bloc contient geacuteneacuteralement une liste de vertex Exemple
glBegin(GL_LINE_LOOP)
glVertex2f(-05 -05)
glVertex2f(05 -05)
glVertex2f(05 05)
glVertex2f(-05 05)
glEnd()
D‟autres attributs peuvent ecirctre speacutecifieacutes en chaque sommet
couleur normale coordonneacutee de texture etcSami Gazzah 2009 244
OpenGL est une machine agrave eacutetats
En modifiant les variables d‟eacutetats on peut changer le style de rendu
Sami Gazzah 2009 245
Exemple Honda Hippo (3dRendercom)
Placage de textures
bullL‟apparence et le toucher ( feel ) d‟une surface
bullUne image utiliseacutee pour deacutefinir les caracteacuteristiques d‟une surface
bullUne image multi-dimensionnelle qui est plaqueacutee sur un espace multi-
dimensionnel
Sami Gazzah 2009 246
15122010
42
Sami Gazzah 2009 247
Reacutefeacuterences openGL
Sami Gazzah 2009 248
Chapitre 10
introduction au
traitement
dimages avec OpenCV
Sami Gazzah 2009 249
Preacutesentation geacuteneacuterale
Quest-ce
Open Source Computer Vision Library
Bibliothegraveque open source de traitement des images numeacuteriques
Projet initieacute par Intel (en 1999)
Teacuteleacutechargeable sur httpsourceforgenetprojectsopencvlibrary
Fortement orienteacutee temps reacuteel
eacutecrite en C et C++
optimiseacutee pour les processeurs multi-cœurs
Multi-plateformes disponible pour Linux Windows et Mac OS X
Que contient-elle
Des fonctionnaliteacutes (structures et routines gt350 algos) de base et
avanceacutees pour bacirctir rapidement des applications autour de la vision par
ordinateur
Exemples dutilisation traitements de bas niveau (filtrage ) deacutetection
de visages reconnaissance et suivi dobjets en mouvement Sami Gazzah 2009 250
Fonctionnaliteacutes
Lectureeacutecriture dimages statiques et de seacutequences videacuteo
APIs de bas et moyen niveaux
Traitement des images binaires
Manipulations dimage (eacutechantillonnage (sampling) reacutegion dinteacuterecirct (ROI)
redimensionnement (resizing) rotation deacuteformation (warping) )
Deacutetection de contours de lignes de coins (edge detection)
Traitements multi-eacutechelles (multiscale processing)
Transformeacutees (Fourier cosinus discregravete )
Modules de haut niveau
Deacutetection reconnaissance et suivi (tracking) de visages
Flot optique (estimation du mouvement) (optical flow)
Calibrage (calibration) de la cameacutera
Mise en correspondance steacutereacuteoscopique (stereo matching)
IA et apprentissage par ordinateur (machine learning)
3D mise en correspondance (registration)
Sami Gazzah 2009 251
Modules principaux
CxCore
Types de base pour manip dimages (ex struct image point isin cxtypesh)
Structures dynamiques (listes files graphes arbres) et persistantes (LE)
Manipulations de matrices meacutethodes de lalgegravebre lineacuteaire et statistiques
Dessin en surimpression (overlay) (ex eacutetiquetage)
Cv
Traitement dimage calibrage cameacutera
Geacuteomeacutetrie algorithmique (triangulation )
Cvaux
Reconnaissance de visage
Code expeacuterimental et obsolegravete
Autres (dans otherlibs)
HighGUI ES videacuteos curseurs fenecirctrage
ML classification regroupement (clustering)Sami Gazzah 2009 252
OpenCV premiers programmesBibliothegraveque OpenCV
15122010
43
Sami Gazzah 2009 253
Livre
G Bradski amp A Kaehler laquo Learning OpenCV raquo OReilly Press (2008)
codes sources httpexamplesoreillycom9780596516130
Ressources en ligne
Reacutefeacuterence complegravete httpopencvwillowgaragecomdocumentation
Wiki httpopencvwillowgaragecomwikiFullOpenCVWiki
bullPreacutesentation teacuteleacutechargement installation
bullavec CodeBlocks httpopencvwillowgaragecomwikiCodeBlocks
bullDeacutebuter avec OpenCV FAQ
Tutoriels
httpnchcdlsourceforgenetsourceforgeopencvlibraryippocvpdf
httpdaslmemdrexeledu~noahKuntzopenCVTut1html agrave Tut11html
httpwwwcognoticscomopencvservo_2007_series
Tutoriel sur la vision utilisant OpenCV (en franccedilais)
httpwwwsiteduzerocomtutoriel-3-8631-vision-par-ordinateurhtml
Reacutefeacuterences openCV
15122010
15
Sami Gazzah 2009 85
Restauration des Images monochromatiques et des images
couleurs
Au deacutebut de l‟imagerie numeacuterique les algorithmes deacuteveloppeacutes eacutetaient
destineacutes aux images en niveaux de gris Avec les progregraves techniques et le
deacuteveloppement des outils informatiques le traitement des images
couleurs est devenu possible
bull Approche marginale
Sami Gazzah 2009 86
Approche vectorielle
Dans lapproche vectorielle le vecteur couleur est consideacutereacute globalement
et le traitement doit ecirctre alors reacuteellement vectoriel Il ny a pas dans ce cas
une eacutetape de fusion ou de seacuteparation explicite entre les diffeacuterentes
composantes couleur de lrsquoimage Dans ce cas la correacutelation entre les
diffeacuterentes composantes peut ecirctre prise en compte ce qui aboutit
geacuteneacuteralement agrave des reacutesultats meilleurs que ceux du traitement marginal
Sami Gazzah 2009 87
Rappel
Sami Gazzah 2009 88
Sami Gazzah 2009 89
Nouvelle
image
Nouvelle valeur
de pixel21
1 11
1 111 11
Noyau
Nouvelle valeur de pixel =
9
22 2719
9 19
51 21 14Image
originale
Sami Gazzah 2009 90
15122010
16
Sami Gazzah 2009 91
Lissage spatial tout en remplacent la valeur du pixel courant par la moyenne de
tous les pixels inclus dans un voisinage centreacute en ce point
Sami Gazzah 2009 92
Sami Gazzah 2009 93 Sami Gazzah 2009 94
En traitement d‟image les tailles des fenecirctres utiliseacutees pour le
filtrage meacutedian sont geacuteneacuteralement impaires 3 3 5 5 7 7
exemple
fenecirctre de 5 pixels en croix
Pour les fenecirctres de taille paire ( 2 K valeurs ) apregraves
ordonnancement croissant des valeurs prendre la moyenne des 2
valeurs centrales
valeur de sortie( Kiegraveme valeur ordonneacutee + (K+1)iegraveme valeur ordonneacutee )
2=
Sami Gazzah 2009 95 Sami Gazzah 2009 96
15122010
17
Sami Gazzah 2009 97
Image laquo Piegraveces raquo de reacutefeacuterence bruiteacutee ( bruit de type impulsionnel ) puis filtreacutee
avec un filtre moyenneur (33) et un filtre meacutedian (33)
Image de reacutefeacuterence Image bruiteacutee
Bruit
Le filtrage meacutedian est plus adapteacute que le filtrage
lineacuteaire pour reacuteduire le bruit impulsionnel
Observation
Comparaison filtre meacutedian et filtre moyenneur
Sami Gazzah 2009 99 Sami Gazzah 2009 100
Sami Gazzah 2009 101 Sami Gazzah 2009 102
Chapitre 4
REHAUSSEMENT DrsquoIMAGES
15122010
18
Sami Gazzah 2009 103
Introduction
Le preacutetraitement d‟image est l‟ensemble des opeacuterations effectueacutees sur
une image soit pour l‟ameacuteliorer soit pour la restaurer
Le preacutetraitement d‟une image vise soit agrave renforcer la ressemblance des
pixels soit au contraire agrave accentuer les diffeacuterences de pixels d‟une mecircme
reacutegion
Accroitre la seacuteparabiliteacute des reacutegions composant une scegravene revient agrave
augmenter les contrastes vu
On applique le rehaussement des images afin de faciliter l‟interpreacutetation
visuelle et la compreacutehension des images
Pour comprendre ce type de rehaussement il faut comprendre le concept
d‟histogrammeSami Gazzah 2009 104
Deacutefinition de lrsquohistogramme drsquoune image
L‟histogramme est un outil qui permet de comptabiliser le nombre
d‟occurrences de chacune des valeurs dans une image en niveaux de gris
Dans une image couleur il est neacutecessaire d‟utiliser plusieurs
histogramme sur chacune des composantes du systegraveme de repreacutesentation
de la couleur
Soit h l‟histogramme de l‟image I de dimension (w x h) h[i] repreacutesente
le nombre d‟occurrence de chaque niveau de quantification i La probabiliteacute
estimeacutee du niveau i dans une image I est
hw
ihip
][)(
Image de 256 256 pixels
codeacutes chacun sur 8 bitsPopulation de pixels pour chaque
niveaux de gris [0 255]
Pour chaque niveau de gris on compte le nombre de pixels s‟y reacutefeacuterant
Pour chaque niveau on trace le graphe en bacircton du nombre de pixels
(possibiliteacute de regrouper les niveaux proches en une seule classe)
Exemple drsquohistogramme pour une image en niveaux
de gris
0 50 100 150 200 250
0
200
400
600
800
1000
cameraman
Image laquo A raquo en
niveaux de gris
Matrice des valeurs de luminance
des pixels de lrsquoimage laquo A raquo
Histogramme
de lrsquoimage
laquo A raquo
2 2 2 2 2 2 2 2
2 0 0 0 0 0 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 0 0 0 0 0 2
2 2 2 2 2 2 2 2
Les niveaux 0 1 et 2 sont respectivement repreacutesenteacutes par 24 12 et 28 pixels
repreacutesentation de cette population de pixels sur lhistogramme
Limage laquo A raquo comporte 3 niveaux de gris diffeacuterents 0 1 et 2
Compter le nombre de pixels pour chaque niveau de gris agrave lrsquoaide de la
matrice des valeurs de luminance
Exemple simple de calcul drsquohistogramme pour une image
Image laquo A raquoValeurs de luminance de
laquo A raquo
Histogramme cumuleacute de
laquo A raquo
2 2 2 2 2 2 2 2
2 0 0 0 0 0 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 0 0 0 0 0 2
2 2 2 2 2 2 2 2
Calcul dun histogramme particulier faisant appel aux cumuls des niveaux de gris
Histogramme cumuleacute
Utile pour certains traitements dimage tels que lrsquoeacutegalisation
dhistogramme ( ameacutelioration de contraste)
Chaque bacircton cumule le nombre de pixels du niveaux de gris concerneacute et des
niveaux de gris infeacuterieurs les niveaux 0 1 2 sont donc repreacutesenteacutes
respectivement par 24 36 et 64 pixels
Histogramme cumuleacute drsquoune image L‟histogramme ne donne pas L‟histogramme ne donne pas
d‟informations sur la reacutepartitiond‟informations sur la reacutepartition
Trois images diffeacuterentes ayant un mecircme histogramme
15122010
19
Modification de lrsquohistogrammeModification de lrsquohistogramme
On appelle dynamique des niveaux de gris lintervalle [nminnmax] de
niveaux de gris dans lequel sont compris tous les pixels de limage
Le but de la modification dhistogramme modifier chaque niveau de
gris pour accroicirctre le contraste On modeacutelise cette transformation par
leacutequation Irsquo(ij) = g(I(ij)) ougrave g est la fonction de contraste
Chaque transformation sera deacutecrite par une courbe repreacutesentant la
relation entre un niveau de gris de limage de deacutepart (abscisse) et le
niveau qui lui correspond dans limage ameacutelioreacutee (ordonneacutee)
Sami Gazzah 2009 109
Masquage de zones Masquage de zones Extraction d‟une Extraction d‟une
fenecirctre d‟intensiteacutefenecirctre d‟intensiteacute ((slicingslicing intensiteacute)intensiteacute)
Cette transformation consiste agrave remplacer un intervalle de niveaux
de gris par du blanc (nmax) par du noir (nmin) ou par une valeur
intermeacutediaire du niveau de gris
Sami Gazzah 2009 110
Courbes repreacutesentant de gauche agrave droite lextraction dune fenecirctre dintensiteacute et le masquage blanc et noir de lintervalle [ab]
n-1
n-1
0 n-1
n-1
0a ab b n-1
n-1
0 a b
Sami Gazzah 2009 111
Exemples de Masquage de zonesInversion de la dynamiqueInversion de la dynamique
But produire le neacutegatif d‟une image
donneacutee
Sami Gazzah 2009 112
Sami Gazzah 2009 113
Etirement drsquohistogramme
Sami Gazzah 2009 114
Etirement drsquohistogramme
Augmentation du contraste par eacutetirement d‟histogramme
15122010
20
Sami Gazzah 2009 115
Eacutegalisation dhistogramme
But ameacutelioration du contraste
Distribution uniforme des niveaux de gris
Elle se deacutefinit agrave laide de lhistogramme cumuleacute de limage hc(n)
qui repreacutesente le nombre de pixels de limage dont le niveau de
gris est infeacuterieur ou eacutegal agrave n
Deacutefinition de la transformation deacutegalisation dhistogramme soit
I le niveau de gris dun pixel de deacutepart le niveau de gris de limage
darriveacutee I‟ sera
Sami Gazzah 2009 116
Sami Gazzah 2009 117
Effet de lrsquoeacutegalisation drsquohistogramme
Sami Gazzah 2009 118
Augmentation du contraste exemples et comparaison
Original Eacutetirement d‟histogramme Eacutegalisation
Le rehaussement du contraste est plus marqueacute avec l‟eacutegalisation
d‟histogramme autorisant la deacutetection de structures situeacutees dans
l‟ombre
Sami Gazzah 2009 119
Chapitre 5
SEGMENTATION DrsquoIMAGES
Sami Gazzah 2009 120
Une image est geacuteneacuteralement composeacutee d‟objets L‟analyse de cette
image neacutecessite l‟identification de ces objets
La segmentation dimages est lun des problegravemes phares du traitement
dimages Elle consiste agrave partitionner limages en un ensemble de
reacutegions connexes Linteacuterecirct de ces reacutegions est de pouvoir ecirctre
manipuleacutees ensuite via des traitements de haut niveau pour extraire
des caracteacuteristiques de forme de position de taille etc
Introduction
15122010
21
Sami Gazzah 2009 121 Sami Gazzah 2009 122
Meacutethodes statistiquesSegmentation par Histogrammes
Sami Gazzah 2009 123
Meacutethodes statistiquesSeacutelection Reacutecursive sur Histogrammes
Ohlander Price et Reddy (1978)
Sami Gazzah 2009 124
Segmentation par approche contourIntroduction
Le contour est deacutefini comme le lieu des points connexes qui
possegravedent une forte transition d‟intensiteacute lumineuse ou de texture Le
traitement qui vise agrave l‟obtenir est appeleacute extraction de contour on
parle aussi de deacutetection de contour
Le processus d‟extraction de contour peut ecirctre deacutecomposeacute en
plusieurs eacutetapes distinctes que nous allons les deacutetailler comme suit
- La mise en eacutevidence des contours
- L‟extraction des contours
- La fermeture des contours
Sami Gazzah 2009 125
Segmentation par approche contourLa mise en eacutevidence des contours
Elle s‟obtient par une diffeacuterentiation de l‟image et elle peut
s‟appliquer agrave des images binaires ou non le but de la deacutetection de
contours est d‟obtenir dans un premier temps une image binaire ougrave
chaque contour est d‟eacutepaisseur 1 et sans discontinuiteacute
rehausser le contour
suivre le contour
les points du contour correspondent au maximum en valeur absolue
de la deacuteriveacutee primaire de l‟image on obtient alors un gradient ou au
passage par zeacutero de la deacuteriveacutee seconde de l‟image on obtient alors
un laplacien
Sami Gazzah 2009 126
Segmentation par approche contourLa mise en eacutevidence des contours
La deacutetection de contours peut ecirctre reacutealiseacutee gracircce agrave des filtres
dont les coefficients ont eacuteteacute soigneusement choisis Nous
aborderons dans cette preacutesentation 3 filtres les filtres de
Prewitt Roberts et Sobel
Ce jeu de filtres (Prewitt Roberts et Sobel) est constitueacute d‟une
paire de filtres lineacuteaires qui deacutetectent le contours dans deux
directions orthogonales (vertical et horizontal)
15122010
22
Sami Gazzah 2009 127
Segmentation par approche contourFiltre de Perwitt
Les filtres de Perwitt sont les suivants
Filtre horizontal
Filtre vertical
111
000
111
h
101
101
101
v
Sami Gazzah 2009 128
Segmentation par approche contourFiltre de Perwitt
A partir d‟une image I on calcule Gh et Gv images
correspondant au filtrage de I par h et v Ces images
contiennent les contours horizontaux et verticaux
Si l‟on souhaite obtenir une image de contour unique ne tenant
pas compte de l‟orientation on calcule
Orientation du contour
Image binairehellipchoisir un seuil de deacutetection
22
vh GGG
)(vh
GGarctg
Sami Gazzah 2009 129
Segmentation par approche contourFiltre de Sobel
Les filtres de Sobel sont les suivants
Filtre horizontal
Filtre vertical
121
000
121
h
101
202
101
v
Sami Gazzah 2009 130
Segmentation par approche contourFiltre de Sobel
Sami Gazzah 2009 131
Segmentation par approche contourFiltre de Sobel
Sami Gazzah 2009 132
Segmentation par approche contourFiltre de Roberts
Les filtres de Roberts sont les suivants
Filtre diagonal
Filtre anti-diagonal
10
01h
01
10v
15122010
23
Sami Gazzah 2009 133
Segmentation par approche contourFiltre de Kirsch
Ce deacutetecteur utilise huit noyaux de convolution lui permettant de deacutetecter
des contours en fonction de huit directions agrave
15
335
305
335
1
d 15
333
305
355
2
d 15
333
303
555
3
d
15
333
503
553
4
d 15
533
503
533
5
d 15
555
503
333
6
d
15
555
303
333
7
d 15
355
305
333
8
d
Sami Gazzah 2009 134
Contours et Laplacien
Il s‟agit de calculer la deacuteriveacutee seconde de l‟image
Le Laplacien est tregraves sensible au bruit pour limiter l‟effet du bruit le
Laplacien est approximeacute par un masque qui effectue en mecircme temps
une opeacuteration de filtrage par une Gaussienne qui repreacutesente l‟eacutetape
de lissage de l‟image puis vient l‟application du laplacien Les masques
du Laplacien Gaussien sont preacutesenteacutes ci-apregraves
Segmentation par approche contour
Sami Gazzah 2009 135
Contours et Laplacien
Le contour est ensuite deacutetermineacute par la deacutetection des
passages par zeacutero du laplacien de l‟image
88888888888888
010
141
010
1h
111
101
111
2h
121
242
121
3h
Sami Gazzah 2009 136
Contours et Laplacien
Sami Gazzah 2009 137
Seuillage
Les filtres preacuteceacutedents nous fournissent des images des sauts ou
diffeacuterences d‟intensiteacute
Le seuillage permet d‟eacuteliminer des points en lesquels la diffeacuterence
d‟intensiteacute est tregraves faible
Le seuillage peut ecirctre pousser afin d‟obtenir une image binaire (TOR)
Le seuillage dans sa forme le plus simple ne tient pas compte de la
topologie et peut conserver un point bruiteacute isoleacute ou eacuteliminer une portion
de contour d‟intensiteacute faible
Sami Gazzah 2009 138
Seuillage par hysteacutereacutesis
c‟est une fonction agrave deux seuils un seuil bas et un seuil haut
Tout point dont le module de contour est au-dessus du seuil-haut est un
point de contour
Tout point dont le module de contour est au-dessous du seuil-bas n‟est
pas un point de contour
Les points de module entre le seuil-bas et le seuil-haut sont des points
de contour s‟il possegravede un point de contour dans leur voisinage
15122010
24
Sami Gazzah 2009 139
Seuillage par hysteacutereacutesis
seuil haut
Seuil bas
point sur contour
point hors contour
Seuillage par hysteacuterisais les points de lrsquoimage de contour de valeur
supeacuterieur au seuil haut sont des points de contours A partir de ces points de
contours le voisinage de la direction du contour sont examineacutes srsquoils sont de
valeur supeacuterieure au seuil bas ils sont ajouteacutes au points de contoursSami Gazzah 2009 140
Chapitre 6
Introduction aux
opeacuterateurs
morphomatheacutematique
Sami Gazzah 2009 141
1 Introduction
Les opeacuterateurs morphomatheacutematique (=Morphologie Matheacutematique)
permettent d‟ameacuteliorer les images de contours et apporter d‟autres
fonctionnaliteacutes
Ils ont eacuteteacute initialement appliqueacute sur des images NampB (Matheron et
Sarra1965) ensuite eacutetendus agrave des images en nivaux de gris par Doupherty
(1978)
Pour les appliquer sur des images couleurs on peut les appliquer
seacutepareacutement agrave chaque composante couleur et combiner les reacutesultats
Sami Gazzah 2009 142
Diffeacuterentes opeacuterations
eacuterosion dilatation
ouverture fermeture
Squelettisation
hellip
1 Introduction
Sami Gazzah 2009 143
1 Introduction
Dilatation
Ajouter un pixel sur les pourtours de la forme
boucher les trous
Erosion
Enlever un pixel sur les pourtours de la forme
les objets de taille infeacuterieure agrave celle de leacuteleacutement
structurant vont disparaicirctre
agrandit les trous
Sami Gazzah 2009144
1I Rappels sur les ensembles
L‟eacutegaliteacute
L‟inclusion
Lbdquointersection
L‟union
La diffeacuterence
La diffeacuterence symeacutetrique
La compleacutementariteacute E eacutetant un ensemble
servant de reacutefeacuterentielle
Dans ce qui suit les lettres majuscules deacutesignent des ensembles et les lettres
minuscules deacutesignent des eacuteleacutements appartenant aux ensembles
Sur les ensembles on deacutefinit les opeacuterations suivantes
15122010
25
Sami Gazzah 2009145
1I Rappels sur les ensembles
Sami Gazzah 2009146
1I Rappels sur les ensembles
Lois de De Morgan
Reacuteflexion La reacuteflexion d‟un ensemble A est deacutefinie par
Un ensemble symeacutetrique veacuterifiant ndashA=A C‟est le cas des cercles et des carreacute par
exemple
ccc YXYX )(
ccc YXYX )(
AaaA
A -A B -B
Sami Gazzah 2009147
1I Rappels sur les ensembles
Addition de Minkowski l‟addition d‟un eacuteleacutement x agrave un ensemble A par x est
deacutefinie par
Cette notion n‟est pas uniquement ensembliste elle nous oblige agrave deacutefinir un point
de reacutefeacuterence
On en deacuteduit l‟addition d‟un ensemble B agrave un ensemble A c‟est le reacutesultat de
l‟addition de chaque eacuteleacutement de B agrave A
L‟addition de Minkowski est commutative Elle est eacutegalement appeleacute dilatation
AaxaxAB
A
A
x
AxBxAaBaBbbABAC )()()(
le translateacute de X par b
Sami Gazzah 2009148
1I Rappels sur les ensembles
Eleacutement structurant les opeacuterations morphomatheacutematiques sont deacutefinis agrave
partir des ensemble B discrets appeleacute eacuteleacutement structurant Ces eacuteleacutement
permettent de deacutefinir le type de voisinage souhaiteacute
Addition de Minkowski d‟un ensemble A et d‟un ensemble B
BA
Sami Gazzah 2009149
1II Dilatation
Le reacutesultat de dilatation de lrsquoensemble A par lrsquoensemble B
est lrsquoaddition de Minkowski crsquoest lrsquoensemble des points tel
que lorsque B est centreacute sur un de ces points il y a une
intersection non vide entre A et B
Pour des images en niveaux de gris on obtient lrsquoimage
dilateacutee de la forme A en remplaccedilant tout pixel par le
maximum des intensiteacutes des voisins selon la forme B
Sami Gazzah 2009 150
1II Dilatation1 Image NampB
Soit k l‟eacuteleacutement structurant de taille (2k+1) x (2k+1) L‟algorithme de
dilatation est le suivant on parcourt tous les pixels de l‟image sauf les
bord de l‟image d‟eacutepaisseur k pour chaque pixel du fond rencontreacute s‟il
possegravede un voisin au sens de l‟eacuteleacutement structurant qui appartient agrave un
objet il prend le couleur de l‟objet si non il n‟est pas modifieacute
15122010
26
la dilatation (noteacutee ) drsquoune image monochrome laquo f raquo par un
eacuteleacutement structurant laquo B raquo est deacutefinie en terme de sous-graphe
bull f B = T [ Y ] = Supl l tel que (m n l) Y
bullY = U ( f ) U ( B )
En consideacuterant un eacuteleacutement structurant plan de valeur nulle sur son
support
( f B ) (P) = Max valeurs des pixels du voisinage du pixel P
1II Dilatation1 Image niveaux de gris
max
55 68 77 90 91 95 115 151 210
( f B ) (P) = 210
n
115 91 77
95 68 90
55 151 210
exemple
m
Image de reacutefeacuterence
Eacuteleacutement structurant
(8-connexiteacute)
liste ordonneacutee des valeurs du voisinage
- - -
-
-
-
-
-
1II Dilatation1 Image niveaux de gris
Exemples de filtrages morphologiques(eacuteleacutement structurant 33 complet)
Image de reacutefeacuterenceImage dilateacutee
morphologiquement
La dilatation en niveaux de gris accroicirct la luminance des
pixels entoureacutes de voisins plus lumineux
Observation
Sami Gazzah 2009154
VI Erosion
L‟eacuterosion est deacutefinie par
On deacutefinit la soustraction de Minkowski par
On a eacutequivalence entre eacuterosion et soustraction de Minkowski si B est
symeacutetrique (si B=-B)
D‟un point de vue binaire l‟eacuterode de A par B correspond agrave l‟ensemble
des points tels que si B est centre sur ce points B est entiegraverement inclus
dans A
AxBxBbbABAC )()(
)()( BbbABAC
Sami Gazzah 2009 155
VI Erosion1 Image NampB
on parcourt tous les pixels de l‟image sauf les bord de l‟image
d‟eacutepaisseur k pour chaque pixel du fond rencontreacute s‟il possegravede un
voisin au sens de l‟eacuteleacutement structurant qui appartient agrave un objet il
prend le couleur du fond si non il n‟est pas modifieacute
VI Eacuterosion drsquoune image en niveaux de gris
Lrsquoeacuterosion (noteacutee Ө ) drsquoune image monochrome laquo f raquo par un eacuteleacutement
structurant laquo B raquo est deacutefinie en terme de sous-graphe
bull f Ө B = T [ Y ] = Supl l tel que (m n l) Y
bullY = U ( f ) Ө U ( B )
Classiquement on considegravere un eacuteleacutement structurant plan de
valeur nulle sur son support
( f Ө B ) (P) = Min valeurs des pixels du voisinage du pixel P
15122010
27
VI Eacuterosion drsquoune image en niveaux de gris
min
68 90 91 95 151
( f Ө B ) (P) = 68
n
115 91 77
95 68 90
55 151 210
exemple
m
Image de reacutefeacuterence
ӨӨ
Eacuteleacutement structurant
(4-connexiteacute)
liste ordonneacutee des valeurs du voisinage
-
-
-
-
Exemples de filtrages morphologiques(eacuteleacutement structurant 33 complet)
Image eacuterodeacutee
Lrsquoeacuterosion en niveaux de gris reacuteduit la luminance des pixels
qui sont entoureacutes de voisins de moindre intensiteacute
Image de reacutefeacuterence
Observation
Sami Gazzah 2009 159
Eacuteleacutement structurant (a)
(4-connexiteacute)
-
-
-
-
Eacuteleacutement structurant (b)
(8-connexiteacute)
- - -
-
-
-
-
-
Exercice 1 Sur la mecircme image de deacutepart on reacutealise deux opeacuterations
de dilatations avec deux eacuteleacutements structurant diffeacuterents
Dilatation avec (a) Dilatation avec (b)
image de deacutepart
cas a L‟eacuteleacutement structurant est agrave 4-connexiteacute Chaque pixel
du support qui est eacutegal agrave la valeur 1 ou qui a l‟un de ses 4
voisins agrave la valeur 1 est mis agrave la valeur 1 apregraves filtrage
cas b L‟eacuteleacutement structurant est agrave 8-connexiteacute Chaque pixel
du support qui est eacutegal agrave la valeur 1 ou qui a l‟un de ses 8
voisins agrave la valeur 1 est mis agrave la valeur 1 apregraves filtrage
Dans les deux cas on observe qu‟une dilatation eacutelimine les
trous isoleacutes dans les objets et dilate le contour des objets en
tenant compte de l‟eacuteleacutement structurant
Sami Gazzah 2009 160
Exercice 1
Sami Gazzah 2009 161
Eacuteleacutement structurant (a)
(4-connexiteacute)
-
-
-
-
Eacuteleacutement structurant (b)
(8-connexiteacute)
- - -
-
-
-
-
-
Exercice 2 Sur la mecircme image de deacutepart on reacutealise deux opeacuterations
d‟eacuterosions avec deux eacuteleacutements structurant diffeacuterents
Erosion avec (a) Erosion avec (b)
image de deacutepart
cas a L‟eacuteleacutement structurant est agrave 4-connexiteacute (origine agrave 4 voisins)
Chaque pixel du support qui a la valeur 0 ou qui a l‟un de ses 4
voisins agrave la valeur 0 est mis agrave la valeur 0 apregraves filtrage
cas b L‟eacuteleacutement structurant est agrave 8-connexiteacute Chaque pixel du
support qui a la valeur 0 ou qui a l‟un de ses 8 voisins agrave la valeur 0
est mis agrave la valeur 0 apregraves filtrage
Dans les deux cas on observe qu‟une eacuterosion eacutelimine les pixels
isoleacutes sur le fond et eacuterode le contour des objets
Sami Gazzah 2009 162
Exercice 2
15122010
28
ConclusionsConclusions
Erosion
les objets relieacutes entre eux vont ecirctre seacutepareacutes
Une eacuterosion de taille n peut se reacutealiser en reacutepeacutetant une
eacuterosion n fois avec un eacuteleacutement structurant de taille 1 ou en
appliquant une seule eacuterosion avec un eacuteleacutement structurant
de taille n
Dilatation
des objets sont situeacutes agrave une distance moins grande que la taille
de leacuteleacutement structurant il vont fusionner
Sami Gazzah 2009 163 Sami Gazzah 2009 164
Sami Gazzah 2009 165
Elimine pixels isoleacutes sans inteacuterecirct
L‟ouverture (opening) consiste agrave une eacuterosion suivi d‟une dilatation
Les petites structures et deacutetail fins disparaissent et ne sont pas recreacuteeacutees
lors de la dilation Une opeacuteration d‟ouverture est ainsi inteacuteressante pour
eacuteliminer les petits morceaux de contours bruiteacutes dans une image de
contours
V Ouverture et fermeture1 Ouverture
BBABAC )(
Sami Gazzah 2009 166
V Ouverture et fermetureII Fermeture
La fermeture (closing) consiste agrave une dilatation suivi d‟une eacuterosion
Les structures proches fusionnent lors de la dilation mais seules les
fusions ponctuelles disparaissent agrave nouveau lors de l‟eacuterosion Une
opeacuteration de fermeture est ainsi inteacuteressante pour boucher les petits
trous
Sami Gazzah 2009 167 Sami Gazzah 2009 168
Exercice 3 Sur l‟image de deacutepart on reacutealise une opeacuteration de
fermeture binaire par l‟eacuteleacutement structurant 4-connexiteacute Conclusions
Eacuteleacutement structurant
(4-connexiteacute)
-
-
-
-Fermeture = dilatation puis eacuterosion
Image de deacutepart Image dilateacutee Image dilateacutee puis eacuterodeacutee
Combler les trous
Reacutetablir les jonctions
tout en preacuteservant la taille
15122010
29
Sami Gazzah 2009 169
Exercice 4 Sur l‟image de deacutepart on reacutealise une opeacuteration
d‟ouverture binaire par l‟eacuteleacutement structurant 4-connexiteacute Conclusions
Eacuteleacutement structurant
(4-connexiteacute)
-
-
-
-Ouverture = eacuterosion puis dilatation
Image de deacutepart Image eacuterodeacutee Image eacuterodeacutee puis dilateacutee
Supprimer les fausses alarmes
Seacuteparer les objets accoleacutes
tout en preacuteservant la tailleSami Gazzah 2009 170
Appliquer les filtres suivants sur limage donneacutee Quelles sont les valeurs choisies
aux bords de limage et quelles sont les modifications visuelles
a) filtre moyenneur M3acute3(19)
b) eacuterosion
c) dilatation
d) meacutedian
e) fermeture
f) ouverture
Exercice 5
Sami Gazzah 2009 171
IV Amincissement et Squelettisation
La squelette (skeleton) d‟une forme est l‟axe meacutedian L‟inteacuterecirct de cette
opeacuteration est dans
La reconnaissance de caractegraveres
Deacutetection des reacuteseaux routiers
La planification de trajectoirehellip
Une meacutethode couramment employeacutee est une amincissement reacutepeacuteteacute
jusqu‟agrave le convergence (n‟apporte aucune modification)
Sami Gazzah 2009 172
IV Amincissement et Squelettisation1 Opeacuteration Tout Ou Rien laquoHit or Missraquo
Cette transformation est deacutefinie par
leacuteleacutement structurant eacutetendu est centreacute sur chaque pixel de limage
comme pour les opeacuterations ensemblistes
la question poseacutee est est ce que le contenu de limage est identique au
contenu de leacuteleacutement structurant
si la reacuteponse est oui le pixel reacutesultant vaut 1 si non il vaut 0
Une application permet de deacutetecter des configurations locales
particuliegraveres dans une image
plusieurs masques peuvent ecirctre utiliseacutes indeacutependamment les images
reacutesultat eacutetant ensuite combineacutees par une opeacuteration ou
)()( cc BABABA
Bc-
est le compleacutementaire
local de B
Sami Gazzah 2009 173
IV Amincissement et Squelettisation1 Opeacuteration laquoHit or Missraquo
Exemple dopeacuteration Hit or Miss deacutetection des coinsSami Gazzah 2009 174
IV Amincissement et Squelettisation1 Amincissement (thinning)
bull La transformation TOR nous permet eacutegalement de deacutefinir
l‟amincissement
bullL‟amincissement consiste agrave soustraire limage reacutesultat dun hit or miss de
limage initiale
bull des amincissements successifs conduisent au squelettisation
)()( BAAAthin
15122010
30
Sami Gazzah 2009 175
IV Amincissement et Squelettisation1I Squelettisation
Appliquer des amincissements successifs puis s‟arrecircter lorsque l‟amincissement
n‟apporte plus de modification C‟est une eacuterosion particuliegravere ougrave les pixels sont
supprimeacutes agrave la condition quils ne provoquent pas la seacuteparation dune reacutegion en
deux
Sami Gazzah 2009 176
IV Amincissement et Squelettisation1I Squelettisation
Sami Gazzah 2009 177
Chapitre 7
Transformations
geacuteomeacutetriques 2D
Sami Gazzah 2009 178
I Introduction
On entend par transformation 2D l‟ensemble des transformations du
plan pouvant ecirctre appliqueacutees aux pixels de l‟image sans consideacuteration
de l‟intensiteacute
Par exemples
Reacuteduction agrandissement
Deacuteformation d‟image
Recalage d‟une photo scanneacutee
Recaler des images que l‟on veut comparer
Mosaiumlque d‟images
Sami Gazzah 2009 179
I Transformations euclidiennes
Elles preacuteservent les distances et les angles
Elles sont les compositions de translations et de rotations
1) Translation
Ougrave Tx et Ty sont les deacuteplacements en x et en y de la translation
y
x
Tyy
Txx
Sami Gazzah 2009 180
2) Rotation
15122010
31
Sami Gazzah 2009 181 Sami Gazzah 2009 182
3) Remarques (1)
Sami Gazzah 2009 183
3) Remarques (2)
Sami Gazzah 2009 184
II Homotheacuteties
Changement deacutechelle par rapport agrave lorigine (scaling zoom)
Ougrave Sx et Sy sont les facteurs dagrandissement ( gt1) ou de
reacuteduction ( lt1) en x et en y
ySy
xSx
y
x
Sami Gazzah 2009 185
II Homotheacuteties
Sami Gazzah 2009 186
II Homotheacuteties
15122010
32
Sami Gazzah 2009 187
III Reacuteflexions
Reacuteflexions par rapport aux axes (flip miroir)
Sami Gazzah 2009 188
IV Cisaillement
Cisaillement (glissement shearing) on eacutetire suivant un ou plusieurs axes
Sami Gazzah 2009 189
Transformations inverses
Sami Gazzah 2009 190
Repreacutesentation Matricielle
IV Autres (reacuteflexions miroirs et flips)
Sami Gazzah 2009 191
Interpolation Directe
Sami Gazzah 2009 192
oDifficile de distribuer le niveau de gris sur les pixels voisins
oOn n‟a pas la certitude que tous les pixels de l‟image
transformeacutee recevront une valeur =gt ldquotrousrdquo
15122010
33
Interpolation Inverse
Sami Gazzah 2009 193
o Interpolation de la valeur du pixel agrave partir des voisins plus
facile
oAucun ldquotrourdquo car on parcourt tous les pixels de l‟image
transformeacutee Sami Gazzah 2009 194
V Objet vectoriel - Objet bitmap
Objet vectoriel
Essentiellement on transforme
les sommets (ou points de
controcircle) et on retracehellip
Objet ldquobitmaprdquo
On doit calculer la nouvelle
position de chaque pixel De plus on
doit geacuteneacuteralement interpoler les
niveaux de gris (couleurs)hellip
Sami Gazzah 2009 195
IV Assignation des niveaux de gris
Neacutecessaire car la position d‟un pixel transformeacute n‟est pas entiegraverehellip
Plusieurs meacutethodes
Interpolation au plus proche voisin
Interpolation bilineacuteaire
Interpolation bicubique
Autres types d‟interpolation
Sami Gazzah 2009 196
IV Assignation des niveaux de gris
Linterpolation de limage cest ce qui arrive lorsquon redimensionne
une image numeacuterique ou quon la redimensionne avec une distorsion
quon change la perspective etc
Exemple 1
Image originale (sans interpolation)
Image agrandie et donc interpoleacutee
Perte de netteteacute due agrave linterpolation
Sami Gazzah 2009
197
IV Assignation des niveaux de gris
Exemple 2 recadrage dimage
Nous allons agrandir cette image agrave 180
Il va donc nous manquer des informations lagrave ougrave lon va creacuteer des
pixels pour agrandir limage
Reacutesultat sans interpolation le logiciel agrandit simplement les pixels
Reacutesultat avec interpolation le logiciel calcule une couleur intermeacutediaire
pour chaque nouveau pixel
Sami Gazzah 2009
198
IV Assignation des niveaux de gris
Image originale
Interpolation au plus
proche voisin
Interpolation
bilineacuteaireInterpolation
bicubique
15122010
34
Sami Gazzah 2009 199
IIV Interpolation au plus proche voisin
Cest lalgorithme le plus rapide agrave calculer
Prend en compte dans le calcul que le pixel le plus proche du point
agrave interpoler
Consiste tout simplement agrave agrandir chaque pixel
Exemple Interpolation du plus proche voisin par copie des pixels
Copie de chaque colonne et de chaque rang
23 20
25 28
23 23
23 23
20 20
20 20
25 25
25 25
28 28
28 28
Sami Gazzah 2009 200
IIV Interpolation bilineacuteaire
Fonction bilineacuteaire de 4 pixels voisins ( en 2 D )
i-1 i i+1
i-1 i-12 i i+12 i+1 i+32
yi=xiYi+12=(xi+xi+1)2
Problegraveme pour le dernier point
Extrapolation lineacuteaire de
2 xn-xn-1
Principe 1D
attribuer agrave chaque point cible une
combinaison lineacuteaire des quatre
points sources les plus proches par
la transformation inverse
Sami Gazzah 2009 201
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 202
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 203 Sami Gazzah 2009 204
IIV Interpolation bilineacuteaire
15122010
35
Sami Gazzah 2009 205
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 206
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 207
IIV Interpolation bilineacuteaire exemple
Sami Gazzah 2009 208
IIV Interpolation bicubique
Sami Gazzah 2009 209
exemple
Sami Gazzah 2009 210
Chapitre 8
Geacuteneacuteration de segments de
droite et de cercles en 2D
15122010
36
Sami Gazzah 2009 211
Infographie 2D besoin de dessiner des primitives de
base (segments cercles hellip)
Espace discreacutetiseacute (pixels) il faut trouver un moyen pour
afficher des segments ou des cercles
I Segments 2D cercles1 Introduction
Comment trouver les pixels agrave allumer pour approximer au mieux une
droite ou un cercle
Algorithme rapide et preacutecisSami Gazzah 2009 212
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=ax+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ya
Sami Gazzah 2009 213
Rappelhellip
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=mx+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ym
Sami Gazzah 2009 214
Exemple
Sami Gazzah 2009 215
Agrave partir des coordonneacutees des 2 extreacutemiteacutes d‟un segmenthellip
Un algorithme simple
Boucle de x1 agrave x2 dx=1
ALLUME (x Arrondir(y))
Avec x2gtx1
Arrondir(y) = Arrondir(ax+b)
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Sami Gazzah 2009 216
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Choix de lrsquoaxehellip
Peu efficace
bullagrave chaque iteacuteration 1 multiplication (ou division) + 1 addition
+ 1 arrondi
15122010
37
Sami Gazzah 2009 217
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
DDA (Digital Differential Analyzer)
y et m doivent ecirctre des reacuteelsSami Gazzah 2009 218
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Calcul en entier (donc plus rapide)
Baseacute sur le choix entre deux points discrets deacutependant de leur
distance respective avec le point reacuteel ideacuteal
On simplifie le problegraveme en traitant drsquoabord le traceacute drsquoun segment
dans le 1er octant m infeacuterieur agrave1 et positif (0ltmlt 1)
Facilement geacuteneacuteralisable aux autres octants
Sami Gazzah 2009 219
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Traceacute d‟un segment dans le premier octant mlt1
On part d‟un point (xi yi) allumeacute
Sami Gazzah 2009 220
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
On ne calcule pas reacuteellement les distances rArr on veacuterifie si la diffeacuterence
entre les deux distances est positive ou neacutegative
Le signe de la longueur (d1-d2) deacutetermine s‟il faut allumer le pixel L ou H
L
H
Sami Gazzah 2009 221
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Comme m=ΔyΔx on multiplie cette diffeacuterence par Δx pour eacuteviter la
division
Mais que vaut p1
Sami Gazzah 2009 222
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
15122010
38
Sami Gazzah 2009 223
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Pour eacuteviter de calculer cette diffeacuterence pour chaque point on cherche
une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
Sami Gazzah 2009 224
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009 225
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009
Exercice
Tracer le segment de droite
pi xi yi
2 0 0
-6 1 1
6 2 1
-2 3 2
10 4 2
2 5 3
-6 6 4
6 7 4
-2 8 5
10 9 5
2 10 6
6
10
y
x
Sami Gazzah 2009 227
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
Sami Gazzah 2009 228
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
hellip interchanger les points hellip
Si |Δx| lt | Δy| on interchange le rocircle de x et y
15122010
39
Sami Gazzah 2009 229
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (1)
Sami Gazzah 2009 230
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (2)
Sami Gazzah 2009 231
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (3)
Sami Gazzah 2009 232
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Toujours baseacute sur le choix entre deux
points discrets deacutependant de leur
distance respective avec le point reacuteel
On travaille dans le 2e octant agrave partir
de (0r) ainsi pour un point (xi yi) le
prochain point sera
(xi+1 yi) ou (xi+1 yi-1)
Sami Gazzah 2009 233
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On calcule le prochain y et les diffeacuterences respectives avec les points
discrets de la faccedilon suivante
Le signe de pi nous dira si nous devons choisir le point lateacuteral ou le diagonal
Sami Gazzah 2009 234
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Encore une fois pour eacuteviter de calculer cette diffeacuterence pour chaque point on
cherche une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
15122010
40
Sami Gazzah 2009 235
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On considegravere 2 cas
Valeur initiale
Sami Gazzah 2009 236
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Sami Gazzah 2009 237
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Exemple centre = (00) et r = 3
Sami Gazzah 2009 238
Livres
Diane Lingrand Introduction au Traitement d‟Images Paris Editions Vuibert 2e
eacutedition 2008
Steven k Feiner James D Foley John F Hughes Richard l Phillips Andries
Vanam Introduction agrave l‟infographie Paris Editions Vuibert 2000
William K Pratt Digital Image Processing Willy-Inter-sciences 4th edition 2007
Eacuteric Incerti Compression dimage ndash Algorithmes et standards Vuibert 2003
Gilles Burel Introduction au traitement dimages ndash Simulation sous Matlab
Hermegraves 2001
Sites web
Cours de C Rougier (U Montreacuteal)
httpwww-etudiroumontrealca~rougiercift2730courshtml (cf chapitre 3)
Page wikipeacutedia sur JPEG (en anglais plus complegravete que celle en franccedilais)
httpenwikipediaorgwikiJPEG
Cours de P Courtellemont (Campus numeacuterique Espdon)
httppersouniv-lrfrpcourtelespadonsite_web
Applet de deacutemo par C G Jennings
httpcgjenningscatoyboxhjpegindexhtml
Cours de D Marshall (U Cardiff)
httpwwwcscfacukDaveMultimediaPDF
Reacutefeacuterences
Sami Gazzah 2009 239
Chapitre 9
introduction au
traitement
dimages avec OpenGL
Sami Gazzah 2009 240
OpenGL est une librairie graphique Elle a eacuteteacute creacutee par Silicon
Graphics et beacuteneacuteficie sur ces machines de lacceacuteleacuteration mateacuterielle
Elle est constitueacute d‟environ 200 fonctions graphiques
OpenGL est une bibliothegraveque de fonctions
Les fonctions sont de bas niveaux
La version actuelle est l‟ laquo OpenGL 41 raquo (deacutecembre 2010)
Principale caracteacuteristique indeacutependant du mateacuteriel et du systegraveme
d‟exploitation
Une impleacutementation libre de droits dOpenGL tregraves performante a eacuteteacute
eacutecrite par Brian Paul httpwwwmesa3dorg Et tout son code source
est accessible
Preacutesentation geacuteneacuterale
15122010
41
Sami Gazzah 2009 241
OpenGL propose des fonctions de bas niveaux
Primitives geacuteomeacutetriques points segments polygones
Les fonctions de haut niveaux sont deacuteveloppeacutees par l‟utilisateur ou
importeacutees par la librairie en amont d‟OpenGL
Primitives geacuteomeacutetriques complexes Sphegravere splines etc
Toutes les commandes et fonctions utilisent le preacutefixe gl
Exemple glColor2f()
Sami Gazzah 2009 242
Les Bibliothegraveques co-existant avec OpenGL
GLU OpenGL Utility Library contient les routines de bas niveau pour
geacuterer les matrices de transformation et de projection la facettisation des
polygones et le rendu de surface Les bibliothegraveques dextension du
systegraveme de fenecirctres permettent lutilisation du rendu OpenGL Il sagit de
GLX pour X Windows (fonctions ayant pour preacutefixe glX) et de WGL
pour Microsoft Windows (fonctions ayant pour preacutefixe wgl)
GLUT OpenGL Utility Toolkit est une boite agrave outils indeacutependante du
systegraveme de fenecirctrage eacutecrite par Mark
Kilgard pour simplifier la tacircche dutiliser des systegravemes diffeacuterents (fonctions
ayant pour preacutefixe glut)
Sami Gazzah 2009 243
Les primitives geacuteomeacutetriques d rsquoOpenGL
Les primitives sont deacutecrites par un bloc d‟instructions deacutelimiteacute par glBegin et glEnd
Ce bloc contient geacuteneacuteralement une liste de vertex Exemple
glBegin(GL_LINE_LOOP)
glVertex2f(-05 -05)
glVertex2f(05 -05)
glVertex2f(05 05)
glVertex2f(-05 05)
glEnd()
D‟autres attributs peuvent ecirctre speacutecifieacutes en chaque sommet
couleur normale coordonneacutee de texture etcSami Gazzah 2009 244
OpenGL est une machine agrave eacutetats
En modifiant les variables d‟eacutetats on peut changer le style de rendu
Sami Gazzah 2009 245
Exemple Honda Hippo (3dRendercom)
Placage de textures
bullL‟apparence et le toucher ( feel ) d‟une surface
bullUne image utiliseacutee pour deacutefinir les caracteacuteristiques d‟une surface
bullUne image multi-dimensionnelle qui est plaqueacutee sur un espace multi-
dimensionnel
Sami Gazzah 2009 246
15122010
42
Sami Gazzah 2009 247
Reacutefeacuterences openGL
Sami Gazzah 2009 248
Chapitre 10
introduction au
traitement
dimages avec OpenCV
Sami Gazzah 2009 249
Preacutesentation geacuteneacuterale
Quest-ce
Open Source Computer Vision Library
Bibliothegraveque open source de traitement des images numeacuteriques
Projet initieacute par Intel (en 1999)
Teacuteleacutechargeable sur httpsourceforgenetprojectsopencvlibrary
Fortement orienteacutee temps reacuteel
eacutecrite en C et C++
optimiseacutee pour les processeurs multi-cœurs
Multi-plateformes disponible pour Linux Windows et Mac OS X
Que contient-elle
Des fonctionnaliteacutes (structures et routines gt350 algos) de base et
avanceacutees pour bacirctir rapidement des applications autour de la vision par
ordinateur
Exemples dutilisation traitements de bas niveau (filtrage ) deacutetection
de visages reconnaissance et suivi dobjets en mouvement Sami Gazzah 2009 250
Fonctionnaliteacutes
Lectureeacutecriture dimages statiques et de seacutequences videacuteo
APIs de bas et moyen niveaux
Traitement des images binaires
Manipulations dimage (eacutechantillonnage (sampling) reacutegion dinteacuterecirct (ROI)
redimensionnement (resizing) rotation deacuteformation (warping) )
Deacutetection de contours de lignes de coins (edge detection)
Traitements multi-eacutechelles (multiscale processing)
Transformeacutees (Fourier cosinus discregravete )
Modules de haut niveau
Deacutetection reconnaissance et suivi (tracking) de visages
Flot optique (estimation du mouvement) (optical flow)
Calibrage (calibration) de la cameacutera
Mise en correspondance steacutereacuteoscopique (stereo matching)
IA et apprentissage par ordinateur (machine learning)
3D mise en correspondance (registration)
Sami Gazzah 2009 251
Modules principaux
CxCore
Types de base pour manip dimages (ex struct image point isin cxtypesh)
Structures dynamiques (listes files graphes arbres) et persistantes (LE)
Manipulations de matrices meacutethodes de lalgegravebre lineacuteaire et statistiques
Dessin en surimpression (overlay) (ex eacutetiquetage)
Cv
Traitement dimage calibrage cameacutera
Geacuteomeacutetrie algorithmique (triangulation )
Cvaux
Reconnaissance de visage
Code expeacuterimental et obsolegravete
Autres (dans otherlibs)
HighGUI ES videacuteos curseurs fenecirctrage
ML classification regroupement (clustering)Sami Gazzah 2009 252
OpenCV premiers programmesBibliothegraveque OpenCV
15122010
43
Sami Gazzah 2009 253
Livre
G Bradski amp A Kaehler laquo Learning OpenCV raquo OReilly Press (2008)
codes sources httpexamplesoreillycom9780596516130
Ressources en ligne
Reacutefeacuterence complegravete httpopencvwillowgaragecomdocumentation
Wiki httpopencvwillowgaragecomwikiFullOpenCVWiki
bullPreacutesentation teacuteleacutechargement installation
bullavec CodeBlocks httpopencvwillowgaragecomwikiCodeBlocks
bullDeacutebuter avec OpenCV FAQ
Tutoriels
httpnchcdlsourceforgenetsourceforgeopencvlibraryippocvpdf
httpdaslmemdrexeledu~noahKuntzopenCVTut1html agrave Tut11html
httpwwwcognoticscomopencvservo_2007_series
Tutoriel sur la vision utilisant OpenCV (en franccedilais)
httpwwwsiteduzerocomtutoriel-3-8631-vision-par-ordinateurhtml
Reacutefeacuterences openCV
15122010
16
Sami Gazzah 2009 91
Lissage spatial tout en remplacent la valeur du pixel courant par la moyenne de
tous les pixels inclus dans un voisinage centreacute en ce point
Sami Gazzah 2009 92
Sami Gazzah 2009 93 Sami Gazzah 2009 94
En traitement d‟image les tailles des fenecirctres utiliseacutees pour le
filtrage meacutedian sont geacuteneacuteralement impaires 3 3 5 5 7 7
exemple
fenecirctre de 5 pixels en croix
Pour les fenecirctres de taille paire ( 2 K valeurs ) apregraves
ordonnancement croissant des valeurs prendre la moyenne des 2
valeurs centrales
valeur de sortie( Kiegraveme valeur ordonneacutee + (K+1)iegraveme valeur ordonneacutee )
2=
Sami Gazzah 2009 95 Sami Gazzah 2009 96
15122010
17
Sami Gazzah 2009 97
Image laquo Piegraveces raquo de reacutefeacuterence bruiteacutee ( bruit de type impulsionnel ) puis filtreacutee
avec un filtre moyenneur (33) et un filtre meacutedian (33)
Image de reacutefeacuterence Image bruiteacutee
Bruit
Le filtrage meacutedian est plus adapteacute que le filtrage
lineacuteaire pour reacuteduire le bruit impulsionnel
Observation
Comparaison filtre meacutedian et filtre moyenneur
Sami Gazzah 2009 99 Sami Gazzah 2009 100
Sami Gazzah 2009 101 Sami Gazzah 2009 102
Chapitre 4
REHAUSSEMENT DrsquoIMAGES
15122010
18
Sami Gazzah 2009 103
Introduction
Le preacutetraitement d‟image est l‟ensemble des opeacuterations effectueacutees sur
une image soit pour l‟ameacuteliorer soit pour la restaurer
Le preacutetraitement d‟une image vise soit agrave renforcer la ressemblance des
pixels soit au contraire agrave accentuer les diffeacuterences de pixels d‟une mecircme
reacutegion
Accroitre la seacuteparabiliteacute des reacutegions composant une scegravene revient agrave
augmenter les contrastes vu
On applique le rehaussement des images afin de faciliter l‟interpreacutetation
visuelle et la compreacutehension des images
Pour comprendre ce type de rehaussement il faut comprendre le concept
d‟histogrammeSami Gazzah 2009 104
Deacutefinition de lrsquohistogramme drsquoune image
L‟histogramme est un outil qui permet de comptabiliser le nombre
d‟occurrences de chacune des valeurs dans une image en niveaux de gris
Dans une image couleur il est neacutecessaire d‟utiliser plusieurs
histogramme sur chacune des composantes du systegraveme de repreacutesentation
de la couleur
Soit h l‟histogramme de l‟image I de dimension (w x h) h[i] repreacutesente
le nombre d‟occurrence de chaque niveau de quantification i La probabiliteacute
estimeacutee du niveau i dans une image I est
hw
ihip
][)(
Image de 256 256 pixels
codeacutes chacun sur 8 bitsPopulation de pixels pour chaque
niveaux de gris [0 255]
Pour chaque niveau de gris on compte le nombre de pixels s‟y reacutefeacuterant
Pour chaque niveau on trace le graphe en bacircton du nombre de pixels
(possibiliteacute de regrouper les niveaux proches en une seule classe)
Exemple drsquohistogramme pour une image en niveaux
de gris
0 50 100 150 200 250
0
200
400
600
800
1000
cameraman
Image laquo A raquo en
niveaux de gris
Matrice des valeurs de luminance
des pixels de lrsquoimage laquo A raquo
Histogramme
de lrsquoimage
laquo A raquo
2 2 2 2 2 2 2 2
2 0 0 0 0 0 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 0 0 0 0 0 2
2 2 2 2 2 2 2 2
Les niveaux 0 1 et 2 sont respectivement repreacutesenteacutes par 24 12 et 28 pixels
repreacutesentation de cette population de pixels sur lhistogramme
Limage laquo A raquo comporte 3 niveaux de gris diffeacuterents 0 1 et 2
Compter le nombre de pixels pour chaque niveau de gris agrave lrsquoaide de la
matrice des valeurs de luminance
Exemple simple de calcul drsquohistogramme pour une image
Image laquo A raquoValeurs de luminance de
laquo A raquo
Histogramme cumuleacute de
laquo A raquo
2 2 2 2 2 2 2 2
2 0 0 0 0 0 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 0 0 0 0 0 2
2 2 2 2 2 2 2 2
Calcul dun histogramme particulier faisant appel aux cumuls des niveaux de gris
Histogramme cumuleacute
Utile pour certains traitements dimage tels que lrsquoeacutegalisation
dhistogramme ( ameacutelioration de contraste)
Chaque bacircton cumule le nombre de pixels du niveaux de gris concerneacute et des
niveaux de gris infeacuterieurs les niveaux 0 1 2 sont donc repreacutesenteacutes
respectivement par 24 36 et 64 pixels
Histogramme cumuleacute drsquoune image L‟histogramme ne donne pas L‟histogramme ne donne pas
d‟informations sur la reacutepartitiond‟informations sur la reacutepartition
Trois images diffeacuterentes ayant un mecircme histogramme
15122010
19
Modification de lrsquohistogrammeModification de lrsquohistogramme
On appelle dynamique des niveaux de gris lintervalle [nminnmax] de
niveaux de gris dans lequel sont compris tous les pixels de limage
Le but de la modification dhistogramme modifier chaque niveau de
gris pour accroicirctre le contraste On modeacutelise cette transformation par
leacutequation Irsquo(ij) = g(I(ij)) ougrave g est la fonction de contraste
Chaque transformation sera deacutecrite par une courbe repreacutesentant la
relation entre un niveau de gris de limage de deacutepart (abscisse) et le
niveau qui lui correspond dans limage ameacutelioreacutee (ordonneacutee)
Sami Gazzah 2009 109
Masquage de zones Masquage de zones Extraction d‟une Extraction d‟une
fenecirctre d‟intensiteacutefenecirctre d‟intensiteacute ((slicingslicing intensiteacute)intensiteacute)
Cette transformation consiste agrave remplacer un intervalle de niveaux
de gris par du blanc (nmax) par du noir (nmin) ou par une valeur
intermeacutediaire du niveau de gris
Sami Gazzah 2009 110
Courbes repreacutesentant de gauche agrave droite lextraction dune fenecirctre dintensiteacute et le masquage blanc et noir de lintervalle [ab]
n-1
n-1
0 n-1
n-1
0a ab b n-1
n-1
0 a b
Sami Gazzah 2009 111
Exemples de Masquage de zonesInversion de la dynamiqueInversion de la dynamique
But produire le neacutegatif d‟une image
donneacutee
Sami Gazzah 2009 112
Sami Gazzah 2009 113
Etirement drsquohistogramme
Sami Gazzah 2009 114
Etirement drsquohistogramme
Augmentation du contraste par eacutetirement d‟histogramme
15122010
20
Sami Gazzah 2009 115
Eacutegalisation dhistogramme
But ameacutelioration du contraste
Distribution uniforme des niveaux de gris
Elle se deacutefinit agrave laide de lhistogramme cumuleacute de limage hc(n)
qui repreacutesente le nombre de pixels de limage dont le niveau de
gris est infeacuterieur ou eacutegal agrave n
Deacutefinition de la transformation deacutegalisation dhistogramme soit
I le niveau de gris dun pixel de deacutepart le niveau de gris de limage
darriveacutee I‟ sera
Sami Gazzah 2009 116
Sami Gazzah 2009 117
Effet de lrsquoeacutegalisation drsquohistogramme
Sami Gazzah 2009 118
Augmentation du contraste exemples et comparaison
Original Eacutetirement d‟histogramme Eacutegalisation
Le rehaussement du contraste est plus marqueacute avec l‟eacutegalisation
d‟histogramme autorisant la deacutetection de structures situeacutees dans
l‟ombre
Sami Gazzah 2009 119
Chapitre 5
SEGMENTATION DrsquoIMAGES
Sami Gazzah 2009 120
Une image est geacuteneacuteralement composeacutee d‟objets L‟analyse de cette
image neacutecessite l‟identification de ces objets
La segmentation dimages est lun des problegravemes phares du traitement
dimages Elle consiste agrave partitionner limages en un ensemble de
reacutegions connexes Linteacuterecirct de ces reacutegions est de pouvoir ecirctre
manipuleacutees ensuite via des traitements de haut niveau pour extraire
des caracteacuteristiques de forme de position de taille etc
Introduction
15122010
21
Sami Gazzah 2009 121 Sami Gazzah 2009 122
Meacutethodes statistiquesSegmentation par Histogrammes
Sami Gazzah 2009 123
Meacutethodes statistiquesSeacutelection Reacutecursive sur Histogrammes
Ohlander Price et Reddy (1978)
Sami Gazzah 2009 124
Segmentation par approche contourIntroduction
Le contour est deacutefini comme le lieu des points connexes qui
possegravedent une forte transition d‟intensiteacute lumineuse ou de texture Le
traitement qui vise agrave l‟obtenir est appeleacute extraction de contour on
parle aussi de deacutetection de contour
Le processus d‟extraction de contour peut ecirctre deacutecomposeacute en
plusieurs eacutetapes distinctes que nous allons les deacutetailler comme suit
- La mise en eacutevidence des contours
- L‟extraction des contours
- La fermeture des contours
Sami Gazzah 2009 125
Segmentation par approche contourLa mise en eacutevidence des contours
Elle s‟obtient par une diffeacuterentiation de l‟image et elle peut
s‟appliquer agrave des images binaires ou non le but de la deacutetection de
contours est d‟obtenir dans un premier temps une image binaire ougrave
chaque contour est d‟eacutepaisseur 1 et sans discontinuiteacute
rehausser le contour
suivre le contour
les points du contour correspondent au maximum en valeur absolue
de la deacuteriveacutee primaire de l‟image on obtient alors un gradient ou au
passage par zeacutero de la deacuteriveacutee seconde de l‟image on obtient alors
un laplacien
Sami Gazzah 2009 126
Segmentation par approche contourLa mise en eacutevidence des contours
La deacutetection de contours peut ecirctre reacutealiseacutee gracircce agrave des filtres
dont les coefficients ont eacuteteacute soigneusement choisis Nous
aborderons dans cette preacutesentation 3 filtres les filtres de
Prewitt Roberts et Sobel
Ce jeu de filtres (Prewitt Roberts et Sobel) est constitueacute d‟une
paire de filtres lineacuteaires qui deacutetectent le contours dans deux
directions orthogonales (vertical et horizontal)
15122010
22
Sami Gazzah 2009 127
Segmentation par approche contourFiltre de Perwitt
Les filtres de Perwitt sont les suivants
Filtre horizontal
Filtre vertical
111
000
111
h
101
101
101
v
Sami Gazzah 2009 128
Segmentation par approche contourFiltre de Perwitt
A partir d‟une image I on calcule Gh et Gv images
correspondant au filtrage de I par h et v Ces images
contiennent les contours horizontaux et verticaux
Si l‟on souhaite obtenir une image de contour unique ne tenant
pas compte de l‟orientation on calcule
Orientation du contour
Image binairehellipchoisir un seuil de deacutetection
22
vh GGG
)(vh
GGarctg
Sami Gazzah 2009 129
Segmentation par approche contourFiltre de Sobel
Les filtres de Sobel sont les suivants
Filtre horizontal
Filtre vertical
121
000
121
h
101
202
101
v
Sami Gazzah 2009 130
Segmentation par approche contourFiltre de Sobel
Sami Gazzah 2009 131
Segmentation par approche contourFiltre de Sobel
Sami Gazzah 2009 132
Segmentation par approche contourFiltre de Roberts
Les filtres de Roberts sont les suivants
Filtre diagonal
Filtre anti-diagonal
10
01h
01
10v
15122010
23
Sami Gazzah 2009 133
Segmentation par approche contourFiltre de Kirsch
Ce deacutetecteur utilise huit noyaux de convolution lui permettant de deacutetecter
des contours en fonction de huit directions agrave
15
335
305
335
1
d 15
333
305
355
2
d 15
333
303
555
3
d
15
333
503
553
4
d 15
533
503
533
5
d 15
555
503
333
6
d
15
555
303
333
7
d 15
355
305
333
8
d
Sami Gazzah 2009 134
Contours et Laplacien
Il s‟agit de calculer la deacuteriveacutee seconde de l‟image
Le Laplacien est tregraves sensible au bruit pour limiter l‟effet du bruit le
Laplacien est approximeacute par un masque qui effectue en mecircme temps
une opeacuteration de filtrage par une Gaussienne qui repreacutesente l‟eacutetape
de lissage de l‟image puis vient l‟application du laplacien Les masques
du Laplacien Gaussien sont preacutesenteacutes ci-apregraves
Segmentation par approche contour
Sami Gazzah 2009 135
Contours et Laplacien
Le contour est ensuite deacutetermineacute par la deacutetection des
passages par zeacutero du laplacien de l‟image
88888888888888
010
141
010
1h
111
101
111
2h
121
242
121
3h
Sami Gazzah 2009 136
Contours et Laplacien
Sami Gazzah 2009 137
Seuillage
Les filtres preacuteceacutedents nous fournissent des images des sauts ou
diffeacuterences d‟intensiteacute
Le seuillage permet d‟eacuteliminer des points en lesquels la diffeacuterence
d‟intensiteacute est tregraves faible
Le seuillage peut ecirctre pousser afin d‟obtenir une image binaire (TOR)
Le seuillage dans sa forme le plus simple ne tient pas compte de la
topologie et peut conserver un point bruiteacute isoleacute ou eacuteliminer une portion
de contour d‟intensiteacute faible
Sami Gazzah 2009 138
Seuillage par hysteacutereacutesis
c‟est une fonction agrave deux seuils un seuil bas et un seuil haut
Tout point dont le module de contour est au-dessus du seuil-haut est un
point de contour
Tout point dont le module de contour est au-dessous du seuil-bas n‟est
pas un point de contour
Les points de module entre le seuil-bas et le seuil-haut sont des points
de contour s‟il possegravede un point de contour dans leur voisinage
15122010
24
Sami Gazzah 2009 139
Seuillage par hysteacutereacutesis
seuil haut
Seuil bas
point sur contour
point hors contour
Seuillage par hysteacuterisais les points de lrsquoimage de contour de valeur
supeacuterieur au seuil haut sont des points de contours A partir de ces points de
contours le voisinage de la direction du contour sont examineacutes srsquoils sont de
valeur supeacuterieure au seuil bas ils sont ajouteacutes au points de contoursSami Gazzah 2009 140
Chapitre 6
Introduction aux
opeacuterateurs
morphomatheacutematique
Sami Gazzah 2009 141
1 Introduction
Les opeacuterateurs morphomatheacutematique (=Morphologie Matheacutematique)
permettent d‟ameacuteliorer les images de contours et apporter d‟autres
fonctionnaliteacutes
Ils ont eacuteteacute initialement appliqueacute sur des images NampB (Matheron et
Sarra1965) ensuite eacutetendus agrave des images en nivaux de gris par Doupherty
(1978)
Pour les appliquer sur des images couleurs on peut les appliquer
seacutepareacutement agrave chaque composante couleur et combiner les reacutesultats
Sami Gazzah 2009 142
Diffeacuterentes opeacuterations
eacuterosion dilatation
ouverture fermeture
Squelettisation
hellip
1 Introduction
Sami Gazzah 2009 143
1 Introduction
Dilatation
Ajouter un pixel sur les pourtours de la forme
boucher les trous
Erosion
Enlever un pixel sur les pourtours de la forme
les objets de taille infeacuterieure agrave celle de leacuteleacutement
structurant vont disparaicirctre
agrandit les trous
Sami Gazzah 2009144
1I Rappels sur les ensembles
L‟eacutegaliteacute
L‟inclusion
Lbdquointersection
L‟union
La diffeacuterence
La diffeacuterence symeacutetrique
La compleacutementariteacute E eacutetant un ensemble
servant de reacutefeacuterentielle
Dans ce qui suit les lettres majuscules deacutesignent des ensembles et les lettres
minuscules deacutesignent des eacuteleacutements appartenant aux ensembles
Sur les ensembles on deacutefinit les opeacuterations suivantes
15122010
25
Sami Gazzah 2009145
1I Rappels sur les ensembles
Sami Gazzah 2009146
1I Rappels sur les ensembles
Lois de De Morgan
Reacuteflexion La reacuteflexion d‟un ensemble A est deacutefinie par
Un ensemble symeacutetrique veacuterifiant ndashA=A C‟est le cas des cercles et des carreacute par
exemple
ccc YXYX )(
ccc YXYX )(
AaaA
A -A B -B
Sami Gazzah 2009147
1I Rappels sur les ensembles
Addition de Minkowski l‟addition d‟un eacuteleacutement x agrave un ensemble A par x est
deacutefinie par
Cette notion n‟est pas uniquement ensembliste elle nous oblige agrave deacutefinir un point
de reacutefeacuterence
On en deacuteduit l‟addition d‟un ensemble B agrave un ensemble A c‟est le reacutesultat de
l‟addition de chaque eacuteleacutement de B agrave A
L‟addition de Minkowski est commutative Elle est eacutegalement appeleacute dilatation
AaxaxAB
A
A
x
AxBxAaBaBbbABAC )()()(
le translateacute de X par b
Sami Gazzah 2009148
1I Rappels sur les ensembles
Eleacutement structurant les opeacuterations morphomatheacutematiques sont deacutefinis agrave
partir des ensemble B discrets appeleacute eacuteleacutement structurant Ces eacuteleacutement
permettent de deacutefinir le type de voisinage souhaiteacute
Addition de Minkowski d‟un ensemble A et d‟un ensemble B
BA
Sami Gazzah 2009149
1II Dilatation
Le reacutesultat de dilatation de lrsquoensemble A par lrsquoensemble B
est lrsquoaddition de Minkowski crsquoest lrsquoensemble des points tel
que lorsque B est centreacute sur un de ces points il y a une
intersection non vide entre A et B
Pour des images en niveaux de gris on obtient lrsquoimage
dilateacutee de la forme A en remplaccedilant tout pixel par le
maximum des intensiteacutes des voisins selon la forme B
Sami Gazzah 2009 150
1II Dilatation1 Image NampB
Soit k l‟eacuteleacutement structurant de taille (2k+1) x (2k+1) L‟algorithme de
dilatation est le suivant on parcourt tous les pixels de l‟image sauf les
bord de l‟image d‟eacutepaisseur k pour chaque pixel du fond rencontreacute s‟il
possegravede un voisin au sens de l‟eacuteleacutement structurant qui appartient agrave un
objet il prend le couleur de l‟objet si non il n‟est pas modifieacute
15122010
26
la dilatation (noteacutee ) drsquoune image monochrome laquo f raquo par un
eacuteleacutement structurant laquo B raquo est deacutefinie en terme de sous-graphe
bull f B = T [ Y ] = Supl l tel que (m n l) Y
bullY = U ( f ) U ( B )
En consideacuterant un eacuteleacutement structurant plan de valeur nulle sur son
support
( f B ) (P) = Max valeurs des pixels du voisinage du pixel P
1II Dilatation1 Image niveaux de gris
max
55 68 77 90 91 95 115 151 210
( f B ) (P) = 210
n
115 91 77
95 68 90
55 151 210
exemple
m
Image de reacutefeacuterence
Eacuteleacutement structurant
(8-connexiteacute)
liste ordonneacutee des valeurs du voisinage
- - -
-
-
-
-
-
1II Dilatation1 Image niveaux de gris
Exemples de filtrages morphologiques(eacuteleacutement structurant 33 complet)
Image de reacutefeacuterenceImage dilateacutee
morphologiquement
La dilatation en niveaux de gris accroicirct la luminance des
pixels entoureacutes de voisins plus lumineux
Observation
Sami Gazzah 2009154
VI Erosion
L‟eacuterosion est deacutefinie par
On deacutefinit la soustraction de Minkowski par
On a eacutequivalence entre eacuterosion et soustraction de Minkowski si B est
symeacutetrique (si B=-B)
D‟un point de vue binaire l‟eacuterode de A par B correspond agrave l‟ensemble
des points tels que si B est centre sur ce points B est entiegraverement inclus
dans A
AxBxBbbABAC )()(
)()( BbbABAC
Sami Gazzah 2009 155
VI Erosion1 Image NampB
on parcourt tous les pixels de l‟image sauf les bord de l‟image
d‟eacutepaisseur k pour chaque pixel du fond rencontreacute s‟il possegravede un
voisin au sens de l‟eacuteleacutement structurant qui appartient agrave un objet il
prend le couleur du fond si non il n‟est pas modifieacute
VI Eacuterosion drsquoune image en niveaux de gris
Lrsquoeacuterosion (noteacutee Ө ) drsquoune image monochrome laquo f raquo par un eacuteleacutement
structurant laquo B raquo est deacutefinie en terme de sous-graphe
bull f Ө B = T [ Y ] = Supl l tel que (m n l) Y
bullY = U ( f ) Ө U ( B )
Classiquement on considegravere un eacuteleacutement structurant plan de
valeur nulle sur son support
( f Ө B ) (P) = Min valeurs des pixels du voisinage du pixel P
15122010
27
VI Eacuterosion drsquoune image en niveaux de gris
min
68 90 91 95 151
( f Ө B ) (P) = 68
n
115 91 77
95 68 90
55 151 210
exemple
m
Image de reacutefeacuterence
ӨӨ
Eacuteleacutement structurant
(4-connexiteacute)
liste ordonneacutee des valeurs du voisinage
-
-
-
-
Exemples de filtrages morphologiques(eacuteleacutement structurant 33 complet)
Image eacuterodeacutee
Lrsquoeacuterosion en niveaux de gris reacuteduit la luminance des pixels
qui sont entoureacutes de voisins de moindre intensiteacute
Image de reacutefeacuterence
Observation
Sami Gazzah 2009 159
Eacuteleacutement structurant (a)
(4-connexiteacute)
-
-
-
-
Eacuteleacutement structurant (b)
(8-connexiteacute)
- - -
-
-
-
-
-
Exercice 1 Sur la mecircme image de deacutepart on reacutealise deux opeacuterations
de dilatations avec deux eacuteleacutements structurant diffeacuterents
Dilatation avec (a) Dilatation avec (b)
image de deacutepart
cas a L‟eacuteleacutement structurant est agrave 4-connexiteacute Chaque pixel
du support qui est eacutegal agrave la valeur 1 ou qui a l‟un de ses 4
voisins agrave la valeur 1 est mis agrave la valeur 1 apregraves filtrage
cas b L‟eacuteleacutement structurant est agrave 8-connexiteacute Chaque pixel
du support qui est eacutegal agrave la valeur 1 ou qui a l‟un de ses 8
voisins agrave la valeur 1 est mis agrave la valeur 1 apregraves filtrage
Dans les deux cas on observe qu‟une dilatation eacutelimine les
trous isoleacutes dans les objets et dilate le contour des objets en
tenant compte de l‟eacuteleacutement structurant
Sami Gazzah 2009 160
Exercice 1
Sami Gazzah 2009 161
Eacuteleacutement structurant (a)
(4-connexiteacute)
-
-
-
-
Eacuteleacutement structurant (b)
(8-connexiteacute)
- - -
-
-
-
-
-
Exercice 2 Sur la mecircme image de deacutepart on reacutealise deux opeacuterations
d‟eacuterosions avec deux eacuteleacutements structurant diffeacuterents
Erosion avec (a) Erosion avec (b)
image de deacutepart
cas a L‟eacuteleacutement structurant est agrave 4-connexiteacute (origine agrave 4 voisins)
Chaque pixel du support qui a la valeur 0 ou qui a l‟un de ses 4
voisins agrave la valeur 0 est mis agrave la valeur 0 apregraves filtrage
cas b L‟eacuteleacutement structurant est agrave 8-connexiteacute Chaque pixel du
support qui a la valeur 0 ou qui a l‟un de ses 8 voisins agrave la valeur 0
est mis agrave la valeur 0 apregraves filtrage
Dans les deux cas on observe qu‟une eacuterosion eacutelimine les pixels
isoleacutes sur le fond et eacuterode le contour des objets
Sami Gazzah 2009 162
Exercice 2
15122010
28
ConclusionsConclusions
Erosion
les objets relieacutes entre eux vont ecirctre seacutepareacutes
Une eacuterosion de taille n peut se reacutealiser en reacutepeacutetant une
eacuterosion n fois avec un eacuteleacutement structurant de taille 1 ou en
appliquant une seule eacuterosion avec un eacuteleacutement structurant
de taille n
Dilatation
des objets sont situeacutes agrave une distance moins grande que la taille
de leacuteleacutement structurant il vont fusionner
Sami Gazzah 2009 163 Sami Gazzah 2009 164
Sami Gazzah 2009 165
Elimine pixels isoleacutes sans inteacuterecirct
L‟ouverture (opening) consiste agrave une eacuterosion suivi d‟une dilatation
Les petites structures et deacutetail fins disparaissent et ne sont pas recreacuteeacutees
lors de la dilation Une opeacuteration d‟ouverture est ainsi inteacuteressante pour
eacuteliminer les petits morceaux de contours bruiteacutes dans une image de
contours
V Ouverture et fermeture1 Ouverture
BBABAC )(
Sami Gazzah 2009 166
V Ouverture et fermetureII Fermeture
La fermeture (closing) consiste agrave une dilatation suivi d‟une eacuterosion
Les structures proches fusionnent lors de la dilation mais seules les
fusions ponctuelles disparaissent agrave nouveau lors de l‟eacuterosion Une
opeacuteration de fermeture est ainsi inteacuteressante pour boucher les petits
trous
Sami Gazzah 2009 167 Sami Gazzah 2009 168
Exercice 3 Sur l‟image de deacutepart on reacutealise une opeacuteration de
fermeture binaire par l‟eacuteleacutement structurant 4-connexiteacute Conclusions
Eacuteleacutement structurant
(4-connexiteacute)
-
-
-
-Fermeture = dilatation puis eacuterosion
Image de deacutepart Image dilateacutee Image dilateacutee puis eacuterodeacutee
Combler les trous
Reacutetablir les jonctions
tout en preacuteservant la taille
15122010
29
Sami Gazzah 2009 169
Exercice 4 Sur l‟image de deacutepart on reacutealise une opeacuteration
d‟ouverture binaire par l‟eacuteleacutement structurant 4-connexiteacute Conclusions
Eacuteleacutement structurant
(4-connexiteacute)
-
-
-
-Ouverture = eacuterosion puis dilatation
Image de deacutepart Image eacuterodeacutee Image eacuterodeacutee puis dilateacutee
Supprimer les fausses alarmes
Seacuteparer les objets accoleacutes
tout en preacuteservant la tailleSami Gazzah 2009 170
Appliquer les filtres suivants sur limage donneacutee Quelles sont les valeurs choisies
aux bords de limage et quelles sont les modifications visuelles
a) filtre moyenneur M3acute3(19)
b) eacuterosion
c) dilatation
d) meacutedian
e) fermeture
f) ouverture
Exercice 5
Sami Gazzah 2009 171
IV Amincissement et Squelettisation
La squelette (skeleton) d‟une forme est l‟axe meacutedian L‟inteacuterecirct de cette
opeacuteration est dans
La reconnaissance de caractegraveres
Deacutetection des reacuteseaux routiers
La planification de trajectoirehellip
Une meacutethode couramment employeacutee est une amincissement reacutepeacuteteacute
jusqu‟agrave le convergence (n‟apporte aucune modification)
Sami Gazzah 2009 172
IV Amincissement et Squelettisation1 Opeacuteration Tout Ou Rien laquoHit or Missraquo
Cette transformation est deacutefinie par
leacuteleacutement structurant eacutetendu est centreacute sur chaque pixel de limage
comme pour les opeacuterations ensemblistes
la question poseacutee est est ce que le contenu de limage est identique au
contenu de leacuteleacutement structurant
si la reacuteponse est oui le pixel reacutesultant vaut 1 si non il vaut 0
Une application permet de deacutetecter des configurations locales
particuliegraveres dans une image
plusieurs masques peuvent ecirctre utiliseacutes indeacutependamment les images
reacutesultat eacutetant ensuite combineacutees par une opeacuteration ou
)()( cc BABABA
Bc-
est le compleacutementaire
local de B
Sami Gazzah 2009 173
IV Amincissement et Squelettisation1 Opeacuteration laquoHit or Missraquo
Exemple dopeacuteration Hit or Miss deacutetection des coinsSami Gazzah 2009 174
IV Amincissement et Squelettisation1 Amincissement (thinning)
bull La transformation TOR nous permet eacutegalement de deacutefinir
l‟amincissement
bullL‟amincissement consiste agrave soustraire limage reacutesultat dun hit or miss de
limage initiale
bull des amincissements successifs conduisent au squelettisation
)()( BAAAthin
15122010
30
Sami Gazzah 2009 175
IV Amincissement et Squelettisation1I Squelettisation
Appliquer des amincissements successifs puis s‟arrecircter lorsque l‟amincissement
n‟apporte plus de modification C‟est une eacuterosion particuliegravere ougrave les pixels sont
supprimeacutes agrave la condition quils ne provoquent pas la seacuteparation dune reacutegion en
deux
Sami Gazzah 2009 176
IV Amincissement et Squelettisation1I Squelettisation
Sami Gazzah 2009 177
Chapitre 7
Transformations
geacuteomeacutetriques 2D
Sami Gazzah 2009 178
I Introduction
On entend par transformation 2D l‟ensemble des transformations du
plan pouvant ecirctre appliqueacutees aux pixels de l‟image sans consideacuteration
de l‟intensiteacute
Par exemples
Reacuteduction agrandissement
Deacuteformation d‟image
Recalage d‟une photo scanneacutee
Recaler des images que l‟on veut comparer
Mosaiumlque d‟images
Sami Gazzah 2009 179
I Transformations euclidiennes
Elles preacuteservent les distances et les angles
Elles sont les compositions de translations et de rotations
1) Translation
Ougrave Tx et Ty sont les deacuteplacements en x et en y de la translation
y
x
Tyy
Txx
Sami Gazzah 2009 180
2) Rotation
15122010
31
Sami Gazzah 2009 181 Sami Gazzah 2009 182
3) Remarques (1)
Sami Gazzah 2009 183
3) Remarques (2)
Sami Gazzah 2009 184
II Homotheacuteties
Changement deacutechelle par rapport agrave lorigine (scaling zoom)
Ougrave Sx et Sy sont les facteurs dagrandissement ( gt1) ou de
reacuteduction ( lt1) en x et en y
ySy
xSx
y
x
Sami Gazzah 2009 185
II Homotheacuteties
Sami Gazzah 2009 186
II Homotheacuteties
15122010
32
Sami Gazzah 2009 187
III Reacuteflexions
Reacuteflexions par rapport aux axes (flip miroir)
Sami Gazzah 2009 188
IV Cisaillement
Cisaillement (glissement shearing) on eacutetire suivant un ou plusieurs axes
Sami Gazzah 2009 189
Transformations inverses
Sami Gazzah 2009 190
Repreacutesentation Matricielle
IV Autres (reacuteflexions miroirs et flips)
Sami Gazzah 2009 191
Interpolation Directe
Sami Gazzah 2009 192
oDifficile de distribuer le niveau de gris sur les pixels voisins
oOn n‟a pas la certitude que tous les pixels de l‟image
transformeacutee recevront une valeur =gt ldquotrousrdquo
15122010
33
Interpolation Inverse
Sami Gazzah 2009 193
o Interpolation de la valeur du pixel agrave partir des voisins plus
facile
oAucun ldquotrourdquo car on parcourt tous les pixels de l‟image
transformeacutee Sami Gazzah 2009 194
V Objet vectoriel - Objet bitmap
Objet vectoriel
Essentiellement on transforme
les sommets (ou points de
controcircle) et on retracehellip
Objet ldquobitmaprdquo
On doit calculer la nouvelle
position de chaque pixel De plus on
doit geacuteneacuteralement interpoler les
niveaux de gris (couleurs)hellip
Sami Gazzah 2009 195
IV Assignation des niveaux de gris
Neacutecessaire car la position d‟un pixel transformeacute n‟est pas entiegraverehellip
Plusieurs meacutethodes
Interpolation au plus proche voisin
Interpolation bilineacuteaire
Interpolation bicubique
Autres types d‟interpolation
Sami Gazzah 2009 196
IV Assignation des niveaux de gris
Linterpolation de limage cest ce qui arrive lorsquon redimensionne
une image numeacuterique ou quon la redimensionne avec une distorsion
quon change la perspective etc
Exemple 1
Image originale (sans interpolation)
Image agrandie et donc interpoleacutee
Perte de netteteacute due agrave linterpolation
Sami Gazzah 2009
197
IV Assignation des niveaux de gris
Exemple 2 recadrage dimage
Nous allons agrandir cette image agrave 180
Il va donc nous manquer des informations lagrave ougrave lon va creacuteer des
pixels pour agrandir limage
Reacutesultat sans interpolation le logiciel agrandit simplement les pixels
Reacutesultat avec interpolation le logiciel calcule une couleur intermeacutediaire
pour chaque nouveau pixel
Sami Gazzah 2009
198
IV Assignation des niveaux de gris
Image originale
Interpolation au plus
proche voisin
Interpolation
bilineacuteaireInterpolation
bicubique
15122010
34
Sami Gazzah 2009 199
IIV Interpolation au plus proche voisin
Cest lalgorithme le plus rapide agrave calculer
Prend en compte dans le calcul que le pixel le plus proche du point
agrave interpoler
Consiste tout simplement agrave agrandir chaque pixel
Exemple Interpolation du plus proche voisin par copie des pixels
Copie de chaque colonne et de chaque rang
23 20
25 28
23 23
23 23
20 20
20 20
25 25
25 25
28 28
28 28
Sami Gazzah 2009 200
IIV Interpolation bilineacuteaire
Fonction bilineacuteaire de 4 pixels voisins ( en 2 D )
i-1 i i+1
i-1 i-12 i i+12 i+1 i+32
yi=xiYi+12=(xi+xi+1)2
Problegraveme pour le dernier point
Extrapolation lineacuteaire de
2 xn-xn-1
Principe 1D
attribuer agrave chaque point cible une
combinaison lineacuteaire des quatre
points sources les plus proches par
la transformation inverse
Sami Gazzah 2009 201
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 202
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 203 Sami Gazzah 2009 204
IIV Interpolation bilineacuteaire
15122010
35
Sami Gazzah 2009 205
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 206
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 207
IIV Interpolation bilineacuteaire exemple
Sami Gazzah 2009 208
IIV Interpolation bicubique
Sami Gazzah 2009 209
exemple
Sami Gazzah 2009 210
Chapitre 8
Geacuteneacuteration de segments de
droite et de cercles en 2D
15122010
36
Sami Gazzah 2009 211
Infographie 2D besoin de dessiner des primitives de
base (segments cercles hellip)
Espace discreacutetiseacute (pixels) il faut trouver un moyen pour
afficher des segments ou des cercles
I Segments 2D cercles1 Introduction
Comment trouver les pixels agrave allumer pour approximer au mieux une
droite ou un cercle
Algorithme rapide et preacutecisSami Gazzah 2009 212
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=ax+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ya
Sami Gazzah 2009 213
Rappelhellip
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=mx+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ym
Sami Gazzah 2009 214
Exemple
Sami Gazzah 2009 215
Agrave partir des coordonneacutees des 2 extreacutemiteacutes d‟un segmenthellip
Un algorithme simple
Boucle de x1 agrave x2 dx=1
ALLUME (x Arrondir(y))
Avec x2gtx1
Arrondir(y) = Arrondir(ax+b)
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Sami Gazzah 2009 216
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Choix de lrsquoaxehellip
Peu efficace
bullagrave chaque iteacuteration 1 multiplication (ou division) + 1 addition
+ 1 arrondi
15122010
37
Sami Gazzah 2009 217
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
DDA (Digital Differential Analyzer)
y et m doivent ecirctre des reacuteelsSami Gazzah 2009 218
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Calcul en entier (donc plus rapide)
Baseacute sur le choix entre deux points discrets deacutependant de leur
distance respective avec le point reacuteel ideacuteal
On simplifie le problegraveme en traitant drsquoabord le traceacute drsquoun segment
dans le 1er octant m infeacuterieur agrave1 et positif (0ltmlt 1)
Facilement geacuteneacuteralisable aux autres octants
Sami Gazzah 2009 219
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Traceacute d‟un segment dans le premier octant mlt1
On part d‟un point (xi yi) allumeacute
Sami Gazzah 2009 220
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
On ne calcule pas reacuteellement les distances rArr on veacuterifie si la diffeacuterence
entre les deux distances est positive ou neacutegative
Le signe de la longueur (d1-d2) deacutetermine s‟il faut allumer le pixel L ou H
L
H
Sami Gazzah 2009 221
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Comme m=ΔyΔx on multiplie cette diffeacuterence par Δx pour eacuteviter la
division
Mais que vaut p1
Sami Gazzah 2009 222
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
15122010
38
Sami Gazzah 2009 223
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Pour eacuteviter de calculer cette diffeacuterence pour chaque point on cherche
une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
Sami Gazzah 2009 224
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009 225
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009
Exercice
Tracer le segment de droite
pi xi yi
2 0 0
-6 1 1
6 2 1
-2 3 2
10 4 2
2 5 3
-6 6 4
6 7 4
-2 8 5
10 9 5
2 10 6
6
10
y
x
Sami Gazzah 2009 227
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
Sami Gazzah 2009 228
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
hellip interchanger les points hellip
Si |Δx| lt | Δy| on interchange le rocircle de x et y
15122010
39
Sami Gazzah 2009 229
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (1)
Sami Gazzah 2009 230
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (2)
Sami Gazzah 2009 231
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (3)
Sami Gazzah 2009 232
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Toujours baseacute sur le choix entre deux
points discrets deacutependant de leur
distance respective avec le point reacuteel
On travaille dans le 2e octant agrave partir
de (0r) ainsi pour un point (xi yi) le
prochain point sera
(xi+1 yi) ou (xi+1 yi-1)
Sami Gazzah 2009 233
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On calcule le prochain y et les diffeacuterences respectives avec les points
discrets de la faccedilon suivante
Le signe de pi nous dira si nous devons choisir le point lateacuteral ou le diagonal
Sami Gazzah 2009 234
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Encore une fois pour eacuteviter de calculer cette diffeacuterence pour chaque point on
cherche une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
15122010
40
Sami Gazzah 2009 235
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On considegravere 2 cas
Valeur initiale
Sami Gazzah 2009 236
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Sami Gazzah 2009 237
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Exemple centre = (00) et r = 3
Sami Gazzah 2009 238
Livres
Diane Lingrand Introduction au Traitement d‟Images Paris Editions Vuibert 2e
eacutedition 2008
Steven k Feiner James D Foley John F Hughes Richard l Phillips Andries
Vanam Introduction agrave l‟infographie Paris Editions Vuibert 2000
William K Pratt Digital Image Processing Willy-Inter-sciences 4th edition 2007
Eacuteric Incerti Compression dimage ndash Algorithmes et standards Vuibert 2003
Gilles Burel Introduction au traitement dimages ndash Simulation sous Matlab
Hermegraves 2001
Sites web
Cours de C Rougier (U Montreacuteal)
httpwww-etudiroumontrealca~rougiercift2730courshtml (cf chapitre 3)
Page wikipeacutedia sur JPEG (en anglais plus complegravete que celle en franccedilais)
httpenwikipediaorgwikiJPEG
Cours de P Courtellemont (Campus numeacuterique Espdon)
httppersouniv-lrfrpcourtelespadonsite_web
Applet de deacutemo par C G Jennings
httpcgjenningscatoyboxhjpegindexhtml
Cours de D Marshall (U Cardiff)
httpwwwcscfacukDaveMultimediaPDF
Reacutefeacuterences
Sami Gazzah 2009 239
Chapitre 9
introduction au
traitement
dimages avec OpenGL
Sami Gazzah 2009 240
OpenGL est une librairie graphique Elle a eacuteteacute creacutee par Silicon
Graphics et beacuteneacuteficie sur ces machines de lacceacuteleacuteration mateacuterielle
Elle est constitueacute d‟environ 200 fonctions graphiques
OpenGL est une bibliothegraveque de fonctions
Les fonctions sont de bas niveaux
La version actuelle est l‟ laquo OpenGL 41 raquo (deacutecembre 2010)
Principale caracteacuteristique indeacutependant du mateacuteriel et du systegraveme
d‟exploitation
Une impleacutementation libre de droits dOpenGL tregraves performante a eacuteteacute
eacutecrite par Brian Paul httpwwwmesa3dorg Et tout son code source
est accessible
Preacutesentation geacuteneacuterale
15122010
41
Sami Gazzah 2009 241
OpenGL propose des fonctions de bas niveaux
Primitives geacuteomeacutetriques points segments polygones
Les fonctions de haut niveaux sont deacuteveloppeacutees par l‟utilisateur ou
importeacutees par la librairie en amont d‟OpenGL
Primitives geacuteomeacutetriques complexes Sphegravere splines etc
Toutes les commandes et fonctions utilisent le preacutefixe gl
Exemple glColor2f()
Sami Gazzah 2009 242
Les Bibliothegraveques co-existant avec OpenGL
GLU OpenGL Utility Library contient les routines de bas niveau pour
geacuterer les matrices de transformation et de projection la facettisation des
polygones et le rendu de surface Les bibliothegraveques dextension du
systegraveme de fenecirctres permettent lutilisation du rendu OpenGL Il sagit de
GLX pour X Windows (fonctions ayant pour preacutefixe glX) et de WGL
pour Microsoft Windows (fonctions ayant pour preacutefixe wgl)
GLUT OpenGL Utility Toolkit est une boite agrave outils indeacutependante du
systegraveme de fenecirctrage eacutecrite par Mark
Kilgard pour simplifier la tacircche dutiliser des systegravemes diffeacuterents (fonctions
ayant pour preacutefixe glut)
Sami Gazzah 2009 243
Les primitives geacuteomeacutetriques d rsquoOpenGL
Les primitives sont deacutecrites par un bloc d‟instructions deacutelimiteacute par glBegin et glEnd
Ce bloc contient geacuteneacuteralement une liste de vertex Exemple
glBegin(GL_LINE_LOOP)
glVertex2f(-05 -05)
glVertex2f(05 -05)
glVertex2f(05 05)
glVertex2f(-05 05)
glEnd()
D‟autres attributs peuvent ecirctre speacutecifieacutes en chaque sommet
couleur normale coordonneacutee de texture etcSami Gazzah 2009 244
OpenGL est une machine agrave eacutetats
En modifiant les variables d‟eacutetats on peut changer le style de rendu
Sami Gazzah 2009 245
Exemple Honda Hippo (3dRendercom)
Placage de textures
bullL‟apparence et le toucher ( feel ) d‟une surface
bullUne image utiliseacutee pour deacutefinir les caracteacuteristiques d‟une surface
bullUne image multi-dimensionnelle qui est plaqueacutee sur un espace multi-
dimensionnel
Sami Gazzah 2009 246
15122010
42
Sami Gazzah 2009 247
Reacutefeacuterences openGL
Sami Gazzah 2009 248
Chapitre 10
introduction au
traitement
dimages avec OpenCV
Sami Gazzah 2009 249
Preacutesentation geacuteneacuterale
Quest-ce
Open Source Computer Vision Library
Bibliothegraveque open source de traitement des images numeacuteriques
Projet initieacute par Intel (en 1999)
Teacuteleacutechargeable sur httpsourceforgenetprojectsopencvlibrary
Fortement orienteacutee temps reacuteel
eacutecrite en C et C++
optimiseacutee pour les processeurs multi-cœurs
Multi-plateformes disponible pour Linux Windows et Mac OS X
Que contient-elle
Des fonctionnaliteacutes (structures et routines gt350 algos) de base et
avanceacutees pour bacirctir rapidement des applications autour de la vision par
ordinateur
Exemples dutilisation traitements de bas niveau (filtrage ) deacutetection
de visages reconnaissance et suivi dobjets en mouvement Sami Gazzah 2009 250
Fonctionnaliteacutes
Lectureeacutecriture dimages statiques et de seacutequences videacuteo
APIs de bas et moyen niveaux
Traitement des images binaires
Manipulations dimage (eacutechantillonnage (sampling) reacutegion dinteacuterecirct (ROI)
redimensionnement (resizing) rotation deacuteformation (warping) )
Deacutetection de contours de lignes de coins (edge detection)
Traitements multi-eacutechelles (multiscale processing)
Transformeacutees (Fourier cosinus discregravete )
Modules de haut niveau
Deacutetection reconnaissance et suivi (tracking) de visages
Flot optique (estimation du mouvement) (optical flow)
Calibrage (calibration) de la cameacutera
Mise en correspondance steacutereacuteoscopique (stereo matching)
IA et apprentissage par ordinateur (machine learning)
3D mise en correspondance (registration)
Sami Gazzah 2009 251
Modules principaux
CxCore
Types de base pour manip dimages (ex struct image point isin cxtypesh)
Structures dynamiques (listes files graphes arbres) et persistantes (LE)
Manipulations de matrices meacutethodes de lalgegravebre lineacuteaire et statistiques
Dessin en surimpression (overlay) (ex eacutetiquetage)
Cv
Traitement dimage calibrage cameacutera
Geacuteomeacutetrie algorithmique (triangulation )
Cvaux
Reconnaissance de visage
Code expeacuterimental et obsolegravete
Autres (dans otherlibs)
HighGUI ES videacuteos curseurs fenecirctrage
ML classification regroupement (clustering)Sami Gazzah 2009 252
OpenCV premiers programmesBibliothegraveque OpenCV
15122010
43
Sami Gazzah 2009 253
Livre
G Bradski amp A Kaehler laquo Learning OpenCV raquo OReilly Press (2008)
codes sources httpexamplesoreillycom9780596516130
Ressources en ligne
Reacutefeacuterence complegravete httpopencvwillowgaragecomdocumentation
Wiki httpopencvwillowgaragecomwikiFullOpenCVWiki
bullPreacutesentation teacuteleacutechargement installation
bullavec CodeBlocks httpopencvwillowgaragecomwikiCodeBlocks
bullDeacutebuter avec OpenCV FAQ
Tutoriels
httpnchcdlsourceforgenetsourceforgeopencvlibraryippocvpdf
httpdaslmemdrexeledu~noahKuntzopenCVTut1html agrave Tut11html
httpwwwcognoticscomopencvservo_2007_series
Tutoriel sur la vision utilisant OpenCV (en franccedilais)
httpwwwsiteduzerocomtutoriel-3-8631-vision-par-ordinateurhtml
Reacutefeacuterences openCV
15122010
17
Sami Gazzah 2009 97
Image laquo Piegraveces raquo de reacutefeacuterence bruiteacutee ( bruit de type impulsionnel ) puis filtreacutee
avec un filtre moyenneur (33) et un filtre meacutedian (33)
Image de reacutefeacuterence Image bruiteacutee
Bruit
Le filtrage meacutedian est plus adapteacute que le filtrage
lineacuteaire pour reacuteduire le bruit impulsionnel
Observation
Comparaison filtre meacutedian et filtre moyenneur
Sami Gazzah 2009 99 Sami Gazzah 2009 100
Sami Gazzah 2009 101 Sami Gazzah 2009 102
Chapitre 4
REHAUSSEMENT DrsquoIMAGES
15122010
18
Sami Gazzah 2009 103
Introduction
Le preacutetraitement d‟image est l‟ensemble des opeacuterations effectueacutees sur
une image soit pour l‟ameacuteliorer soit pour la restaurer
Le preacutetraitement d‟une image vise soit agrave renforcer la ressemblance des
pixels soit au contraire agrave accentuer les diffeacuterences de pixels d‟une mecircme
reacutegion
Accroitre la seacuteparabiliteacute des reacutegions composant une scegravene revient agrave
augmenter les contrastes vu
On applique le rehaussement des images afin de faciliter l‟interpreacutetation
visuelle et la compreacutehension des images
Pour comprendre ce type de rehaussement il faut comprendre le concept
d‟histogrammeSami Gazzah 2009 104
Deacutefinition de lrsquohistogramme drsquoune image
L‟histogramme est un outil qui permet de comptabiliser le nombre
d‟occurrences de chacune des valeurs dans une image en niveaux de gris
Dans une image couleur il est neacutecessaire d‟utiliser plusieurs
histogramme sur chacune des composantes du systegraveme de repreacutesentation
de la couleur
Soit h l‟histogramme de l‟image I de dimension (w x h) h[i] repreacutesente
le nombre d‟occurrence de chaque niveau de quantification i La probabiliteacute
estimeacutee du niveau i dans une image I est
hw
ihip
][)(
Image de 256 256 pixels
codeacutes chacun sur 8 bitsPopulation de pixels pour chaque
niveaux de gris [0 255]
Pour chaque niveau de gris on compte le nombre de pixels s‟y reacutefeacuterant
Pour chaque niveau on trace le graphe en bacircton du nombre de pixels
(possibiliteacute de regrouper les niveaux proches en une seule classe)
Exemple drsquohistogramme pour une image en niveaux
de gris
0 50 100 150 200 250
0
200
400
600
800
1000
cameraman
Image laquo A raquo en
niveaux de gris
Matrice des valeurs de luminance
des pixels de lrsquoimage laquo A raquo
Histogramme
de lrsquoimage
laquo A raquo
2 2 2 2 2 2 2 2
2 0 0 0 0 0 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 0 0 0 0 0 2
2 2 2 2 2 2 2 2
Les niveaux 0 1 et 2 sont respectivement repreacutesenteacutes par 24 12 et 28 pixels
repreacutesentation de cette population de pixels sur lhistogramme
Limage laquo A raquo comporte 3 niveaux de gris diffeacuterents 0 1 et 2
Compter le nombre de pixels pour chaque niveau de gris agrave lrsquoaide de la
matrice des valeurs de luminance
Exemple simple de calcul drsquohistogramme pour une image
Image laquo A raquoValeurs de luminance de
laquo A raquo
Histogramme cumuleacute de
laquo A raquo
2 2 2 2 2 2 2 2
2 0 0 0 0 0 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 0 0 0 0 0 2
2 2 2 2 2 2 2 2
Calcul dun histogramme particulier faisant appel aux cumuls des niveaux de gris
Histogramme cumuleacute
Utile pour certains traitements dimage tels que lrsquoeacutegalisation
dhistogramme ( ameacutelioration de contraste)
Chaque bacircton cumule le nombre de pixels du niveaux de gris concerneacute et des
niveaux de gris infeacuterieurs les niveaux 0 1 2 sont donc repreacutesenteacutes
respectivement par 24 36 et 64 pixels
Histogramme cumuleacute drsquoune image L‟histogramme ne donne pas L‟histogramme ne donne pas
d‟informations sur la reacutepartitiond‟informations sur la reacutepartition
Trois images diffeacuterentes ayant un mecircme histogramme
15122010
19
Modification de lrsquohistogrammeModification de lrsquohistogramme
On appelle dynamique des niveaux de gris lintervalle [nminnmax] de
niveaux de gris dans lequel sont compris tous les pixels de limage
Le but de la modification dhistogramme modifier chaque niveau de
gris pour accroicirctre le contraste On modeacutelise cette transformation par
leacutequation Irsquo(ij) = g(I(ij)) ougrave g est la fonction de contraste
Chaque transformation sera deacutecrite par une courbe repreacutesentant la
relation entre un niveau de gris de limage de deacutepart (abscisse) et le
niveau qui lui correspond dans limage ameacutelioreacutee (ordonneacutee)
Sami Gazzah 2009 109
Masquage de zones Masquage de zones Extraction d‟une Extraction d‟une
fenecirctre d‟intensiteacutefenecirctre d‟intensiteacute ((slicingslicing intensiteacute)intensiteacute)
Cette transformation consiste agrave remplacer un intervalle de niveaux
de gris par du blanc (nmax) par du noir (nmin) ou par une valeur
intermeacutediaire du niveau de gris
Sami Gazzah 2009 110
Courbes repreacutesentant de gauche agrave droite lextraction dune fenecirctre dintensiteacute et le masquage blanc et noir de lintervalle [ab]
n-1
n-1
0 n-1
n-1
0a ab b n-1
n-1
0 a b
Sami Gazzah 2009 111
Exemples de Masquage de zonesInversion de la dynamiqueInversion de la dynamique
But produire le neacutegatif d‟une image
donneacutee
Sami Gazzah 2009 112
Sami Gazzah 2009 113
Etirement drsquohistogramme
Sami Gazzah 2009 114
Etirement drsquohistogramme
Augmentation du contraste par eacutetirement d‟histogramme
15122010
20
Sami Gazzah 2009 115
Eacutegalisation dhistogramme
But ameacutelioration du contraste
Distribution uniforme des niveaux de gris
Elle se deacutefinit agrave laide de lhistogramme cumuleacute de limage hc(n)
qui repreacutesente le nombre de pixels de limage dont le niveau de
gris est infeacuterieur ou eacutegal agrave n
Deacutefinition de la transformation deacutegalisation dhistogramme soit
I le niveau de gris dun pixel de deacutepart le niveau de gris de limage
darriveacutee I‟ sera
Sami Gazzah 2009 116
Sami Gazzah 2009 117
Effet de lrsquoeacutegalisation drsquohistogramme
Sami Gazzah 2009 118
Augmentation du contraste exemples et comparaison
Original Eacutetirement d‟histogramme Eacutegalisation
Le rehaussement du contraste est plus marqueacute avec l‟eacutegalisation
d‟histogramme autorisant la deacutetection de structures situeacutees dans
l‟ombre
Sami Gazzah 2009 119
Chapitre 5
SEGMENTATION DrsquoIMAGES
Sami Gazzah 2009 120
Une image est geacuteneacuteralement composeacutee d‟objets L‟analyse de cette
image neacutecessite l‟identification de ces objets
La segmentation dimages est lun des problegravemes phares du traitement
dimages Elle consiste agrave partitionner limages en un ensemble de
reacutegions connexes Linteacuterecirct de ces reacutegions est de pouvoir ecirctre
manipuleacutees ensuite via des traitements de haut niveau pour extraire
des caracteacuteristiques de forme de position de taille etc
Introduction
15122010
21
Sami Gazzah 2009 121 Sami Gazzah 2009 122
Meacutethodes statistiquesSegmentation par Histogrammes
Sami Gazzah 2009 123
Meacutethodes statistiquesSeacutelection Reacutecursive sur Histogrammes
Ohlander Price et Reddy (1978)
Sami Gazzah 2009 124
Segmentation par approche contourIntroduction
Le contour est deacutefini comme le lieu des points connexes qui
possegravedent une forte transition d‟intensiteacute lumineuse ou de texture Le
traitement qui vise agrave l‟obtenir est appeleacute extraction de contour on
parle aussi de deacutetection de contour
Le processus d‟extraction de contour peut ecirctre deacutecomposeacute en
plusieurs eacutetapes distinctes que nous allons les deacutetailler comme suit
- La mise en eacutevidence des contours
- L‟extraction des contours
- La fermeture des contours
Sami Gazzah 2009 125
Segmentation par approche contourLa mise en eacutevidence des contours
Elle s‟obtient par une diffeacuterentiation de l‟image et elle peut
s‟appliquer agrave des images binaires ou non le but de la deacutetection de
contours est d‟obtenir dans un premier temps une image binaire ougrave
chaque contour est d‟eacutepaisseur 1 et sans discontinuiteacute
rehausser le contour
suivre le contour
les points du contour correspondent au maximum en valeur absolue
de la deacuteriveacutee primaire de l‟image on obtient alors un gradient ou au
passage par zeacutero de la deacuteriveacutee seconde de l‟image on obtient alors
un laplacien
Sami Gazzah 2009 126
Segmentation par approche contourLa mise en eacutevidence des contours
La deacutetection de contours peut ecirctre reacutealiseacutee gracircce agrave des filtres
dont les coefficients ont eacuteteacute soigneusement choisis Nous
aborderons dans cette preacutesentation 3 filtres les filtres de
Prewitt Roberts et Sobel
Ce jeu de filtres (Prewitt Roberts et Sobel) est constitueacute d‟une
paire de filtres lineacuteaires qui deacutetectent le contours dans deux
directions orthogonales (vertical et horizontal)
15122010
22
Sami Gazzah 2009 127
Segmentation par approche contourFiltre de Perwitt
Les filtres de Perwitt sont les suivants
Filtre horizontal
Filtre vertical
111
000
111
h
101
101
101
v
Sami Gazzah 2009 128
Segmentation par approche contourFiltre de Perwitt
A partir d‟une image I on calcule Gh et Gv images
correspondant au filtrage de I par h et v Ces images
contiennent les contours horizontaux et verticaux
Si l‟on souhaite obtenir une image de contour unique ne tenant
pas compte de l‟orientation on calcule
Orientation du contour
Image binairehellipchoisir un seuil de deacutetection
22
vh GGG
)(vh
GGarctg
Sami Gazzah 2009 129
Segmentation par approche contourFiltre de Sobel
Les filtres de Sobel sont les suivants
Filtre horizontal
Filtre vertical
121
000
121
h
101
202
101
v
Sami Gazzah 2009 130
Segmentation par approche contourFiltre de Sobel
Sami Gazzah 2009 131
Segmentation par approche contourFiltre de Sobel
Sami Gazzah 2009 132
Segmentation par approche contourFiltre de Roberts
Les filtres de Roberts sont les suivants
Filtre diagonal
Filtre anti-diagonal
10
01h
01
10v
15122010
23
Sami Gazzah 2009 133
Segmentation par approche contourFiltre de Kirsch
Ce deacutetecteur utilise huit noyaux de convolution lui permettant de deacutetecter
des contours en fonction de huit directions agrave
15
335
305
335
1
d 15
333
305
355
2
d 15
333
303
555
3
d
15
333
503
553
4
d 15
533
503
533
5
d 15
555
503
333
6
d
15
555
303
333
7
d 15
355
305
333
8
d
Sami Gazzah 2009 134
Contours et Laplacien
Il s‟agit de calculer la deacuteriveacutee seconde de l‟image
Le Laplacien est tregraves sensible au bruit pour limiter l‟effet du bruit le
Laplacien est approximeacute par un masque qui effectue en mecircme temps
une opeacuteration de filtrage par une Gaussienne qui repreacutesente l‟eacutetape
de lissage de l‟image puis vient l‟application du laplacien Les masques
du Laplacien Gaussien sont preacutesenteacutes ci-apregraves
Segmentation par approche contour
Sami Gazzah 2009 135
Contours et Laplacien
Le contour est ensuite deacutetermineacute par la deacutetection des
passages par zeacutero du laplacien de l‟image
88888888888888
010
141
010
1h
111
101
111
2h
121
242
121
3h
Sami Gazzah 2009 136
Contours et Laplacien
Sami Gazzah 2009 137
Seuillage
Les filtres preacuteceacutedents nous fournissent des images des sauts ou
diffeacuterences d‟intensiteacute
Le seuillage permet d‟eacuteliminer des points en lesquels la diffeacuterence
d‟intensiteacute est tregraves faible
Le seuillage peut ecirctre pousser afin d‟obtenir une image binaire (TOR)
Le seuillage dans sa forme le plus simple ne tient pas compte de la
topologie et peut conserver un point bruiteacute isoleacute ou eacuteliminer une portion
de contour d‟intensiteacute faible
Sami Gazzah 2009 138
Seuillage par hysteacutereacutesis
c‟est une fonction agrave deux seuils un seuil bas et un seuil haut
Tout point dont le module de contour est au-dessus du seuil-haut est un
point de contour
Tout point dont le module de contour est au-dessous du seuil-bas n‟est
pas un point de contour
Les points de module entre le seuil-bas et le seuil-haut sont des points
de contour s‟il possegravede un point de contour dans leur voisinage
15122010
24
Sami Gazzah 2009 139
Seuillage par hysteacutereacutesis
seuil haut
Seuil bas
point sur contour
point hors contour
Seuillage par hysteacuterisais les points de lrsquoimage de contour de valeur
supeacuterieur au seuil haut sont des points de contours A partir de ces points de
contours le voisinage de la direction du contour sont examineacutes srsquoils sont de
valeur supeacuterieure au seuil bas ils sont ajouteacutes au points de contoursSami Gazzah 2009 140
Chapitre 6
Introduction aux
opeacuterateurs
morphomatheacutematique
Sami Gazzah 2009 141
1 Introduction
Les opeacuterateurs morphomatheacutematique (=Morphologie Matheacutematique)
permettent d‟ameacuteliorer les images de contours et apporter d‟autres
fonctionnaliteacutes
Ils ont eacuteteacute initialement appliqueacute sur des images NampB (Matheron et
Sarra1965) ensuite eacutetendus agrave des images en nivaux de gris par Doupherty
(1978)
Pour les appliquer sur des images couleurs on peut les appliquer
seacutepareacutement agrave chaque composante couleur et combiner les reacutesultats
Sami Gazzah 2009 142
Diffeacuterentes opeacuterations
eacuterosion dilatation
ouverture fermeture
Squelettisation
hellip
1 Introduction
Sami Gazzah 2009 143
1 Introduction
Dilatation
Ajouter un pixel sur les pourtours de la forme
boucher les trous
Erosion
Enlever un pixel sur les pourtours de la forme
les objets de taille infeacuterieure agrave celle de leacuteleacutement
structurant vont disparaicirctre
agrandit les trous
Sami Gazzah 2009144
1I Rappels sur les ensembles
L‟eacutegaliteacute
L‟inclusion
Lbdquointersection
L‟union
La diffeacuterence
La diffeacuterence symeacutetrique
La compleacutementariteacute E eacutetant un ensemble
servant de reacutefeacuterentielle
Dans ce qui suit les lettres majuscules deacutesignent des ensembles et les lettres
minuscules deacutesignent des eacuteleacutements appartenant aux ensembles
Sur les ensembles on deacutefinit les opeacuterations suivantes
15122010
25
Sami Gazzah 2009145
1I Rappels sur les ensembles
Sami Gazzah 2009146
1I Rappels sur les ensembles
Lois de De Morgan
Reacuteflexion La reacuteflexion d‟un ensemble A est deacutefinie par
Un ensemble symeacutetrique veacuterifiant ndashA=A C‟est le cas des cercles et des carreacute par
exemple
ccc YXYX )(
ccc YXYX )(
AaaA
A -A B -B
Sami Gazzah 2009147
1I Rappels sur les ensembles
Addition de Minkowski l‟addition d‟un eacuteleacutement x agrave un ensemble A par x est
deacutefinie par
Cette notion n‟est pas uniquement ensembliste elle nous oblige agrave deacutefinir un point
de reacutefeacuterence
On en deacuteduit l‟addition d‟un ensemble B agrave un ensemble A c‟est le reacutesultat de
l‟addition de chaque eacuteleacutement de B agrave A
L‟addition de Minkowski est commutative Elle est eacutegalement appeleacute dilatation
AaxaxAB
A
A
x
AxBxAaBaBbbABAC )()()(
le translateacute de X par b
Sami Gazzah 2009148
1I Rappels sur les ensembles
Eleacutement structurant les opeacuterations morphomatheacutematiques sont deacutefinis agrave
partir des ensemble B discrets appeleacute eacuteleacutement structurant Ces eacuteleacutement
permettent de deacutefinir le type de voisinage souhaiteacute
Addition de Minkowski d‟un ensemble A et d‟un ensemble B
BA
Sami Gazzah 2009149
1II Dilatation
Le reacutesultat de dilatation de lrsquoensemble A par lrsquoensemble B
est lrsquoaddition de Minkowski crsquoest lrsquoensemble des points tel
que lorsque B est centreacute sur un de ces points il y a une
intersection non vide entre A et B
Pour des images en niveaux de gris on obtient lrsquoimage
dilateacutee de la forme A en remplaccedilant tout pixel par le
maximum des intensiteacutes des voisins selon la forme B
Sami Gazzah 2009 150
1II Dilatation1 Image NampB
Soit k l‟eacuteleacutement structurant de taille (2k+1) x (2k+1) L‟algorithme de
dilatation est le suivant on parcourt tous les pixels de l‟image sauf les
bord de l‟image d‟eacutepaisseur k pour chaque pixel du fond rencontreacute s‟il
possegravede un voisin au sens de l‟eacuteleacutement structurant qui appartient agrave un
objet il prend le couleur de l‟objet si non il n‟est pas modifieacute
15122010
26
la dilatation (noteacutee ) drsquoune image monochrome laquo f raquo par un
eacuteleacutement structurant laquo B raquo est deacutefinie en terme de sous-graphe
bull f B = T [ Y ] = Supl l tel que (m n l) Y
bullY = U ( f ) U ( B )
En consideacuterant un eacuteleacutement structurant plan de valeur nulle sur son
support
( f B ) (P) = Max valeurs des pixels du voisinage du pixel P
1II Dilatation1 Image niveaux de gris
max
55 68 77 90 91 95 115 151 210
( f B ) (P) = 210
n
115 91 77
95 68 90
55 151 210
exemple
m
Image de reacutefeacuterence
Eacuteleacutement structurant
(8-connexiteacute)
liste ordonneacutee des valeurs du voisinage
- - -
-
-
-
-
-
1II Dilatation1 Image niveaux de gris
Exemples de filtrages morphologiques(eacuteleacutement structurant 33 complet)
Image de reacutefeacuterenceImage dilateacutee
morphologiquement
La dilatation en niveaux de gris accroicirct la luminance des
pixels entoureacutes de voisins plus lumineux
Observation
Sami Gazzah 2009154
VI Erosion
L‟eacuterosion est deacutefinie par
On deacutefinit la soustraction de Minkowski par
On a eacutequivalence entre eacuterosion et soustraction de Minkowski si B est
symeacutetrique (si B=-B)
D‟un point de vue binaire l‟eacuterode de A par B correspond agrave l‟ensemble
des points tels que si B est centre sur ce points B est entiegraverement inclus
dans A
AxBxBbbABAC )()(
)()( BbbABAC
Sami Gazzah 2009 155
VI Erosion1 Image NampB
on parcourt tous les pixels de l‟image sauf les bord de l‟image
d‟eacutepaisseur k pour chaque pixel du fond rencontreacute s‟il possegravede un
voisin au sens de l‟eacuteleacutement structurant qui appartient agrave un objet il
prend le couleur du fond si non il n‟est pas modifieacute
VI Eacuterosion drsquoune image en niveaux de gris
Lrsquoeacuterosion (noteacutee Ө ) drsquoune image monochrome laquo f raquo par un eacuteleacutement
structurant laquo B raquo est deacutefinie en terme de sous-graphe
bull f Ө B = T [ Y ] = Supl l tel que (m n l) Y
bullY = U ( f ) Ө U ( B )
Classiquement on considegravere un eacuteleacutement structurant plan de
valeur nulle sur son support
( f Ө B ) (P) = Min valeurs des pixels du voisinage du pixel P
15122010
27
VI Eacuterosion drsquoune image en niveaux de gris
min
68 90 91 95 151
( f Ө B ) (P) = 68
n
115 91 77
95 68 90
55 151 210
exemple
m
Image de reacutefeacuterence
ӨӨ
Eacuteleacutement structurant
(4-connexiteacute)
liste ordonneacutee des valeurs du voisinage
-
-
-
-
Exemples de filtrages morphologiques(eacuteleacutement structurant 33 complet)
Image eacuterodeacutee
Lrsquoeacuterosion en niveaux de gris reacuteduit la luminance des pixels
qui sont entoureacutes de voisins de moindre intensiteacute
Image de reacutefeacuterence
Observation
Sami Gazzah 2009 159
Eacuteleacutement structurant (a)
(4-connexiteacute)
-
-
-
-
Eacuteleacutement structurant (b)
(8-connexiteacute)
- - -
-
-
-
-
-
Exercice 1 Sur la mecircme image de deacutepart on reacutealise deux opeacuterations
de dilatations avec deux eacuteleacutements structurant diffeacuterents
Dilatation avec (a) Dilatation avec (b)
image de deacutepart
cas a L‟eacuteleacutement structurant est agrave 4-connexiteacute Chaque pixel
du support qui est eacutegal agrave la valeur 1 ou qui a l‟un de ses 4
voisins agrave la valeur 1 est mis agrave la valeur 1 apregraves filtrage
cas b L‟eacuteleacutement structurant est agrave 8-connexiteacute Chaque pixel
du support qui est eacutegal agrave la valeur 1 ou qui a l‟un de ses 8
voisins agrave la valeur 1 est mis agrave la valeur 1 apregraves filtrage
Dans les deux cas on observe qu‟une dilatation eacutelimine les
trous isoleacutes dans les objets et dilate le contour des objets en
tenant compte de l‟eacuteleacutement structurant
Sami Gazzah 2009 160
Exercice 1
Sami Gazzah 2009 161
Eacuteleacutement structurant (a)
(4-connexiteacute)
-
-
-
-
Eacuteleacutement structurant (b)
(8-connexiteacute)
- - -
-
-
-
-
-
Exercice 2 Sur la mecircme image de deacutepart on reacutealise deux opeacuterations
d‟eacuterosions avec deux eacuteleacutements structurant diffeacuterents
Erosion avec (a) Erosion avec (b)
image de deacutepart
cas a L‟eacuteleacutement structurant est agrave 4-connexiteacute (origine agrave 4 voisins)
Chaque pixel du support qui a la valeur 0 ou qui a l‟un de ses 4
voisins agrave la valeur 0 est mis agrave la valeur 0 apregraves filtrage
cas b L‟eacuteleacutement structurant est agrave 8-connexiteacute Chaque pixel du
support qui a la valeur 0 ou qui a l‟un de ses 8 voisins agrave la valeur 0
est mis agrave la valeur 0 apregraves filtrage
Dans les deux cas on observe qu‟une eacuterosion eacutelimine les pixels
isoleacutes sur le fond et eacuterode le contour des objets
Sami Gazzah 2009 162
Exercice 2
15122010
28
ConclusionsConclusions
Erosion
les objets relieacutes entre eux vont ecirctre seacutepareacutes
Une eacuterosion de taille n peut se reacutealiser en reacutepeacutetant une
eacuterosion n fois avec un eacuteleacutement structurant de taille 1 ou en
appliquant une seule eacuterosion avec un eacuteleacutement structurant
de taille n
Dilatation
des objets sont situeacutes agrave une distance moins grande que la taille
de leacuteleacutement structurant il vont fusionner
Sami Gazzah 2009 163 Sami Gazzah 2009 164
Sami Gazzah 2009 165
Elimine pixels isoleacutes sans inteacuterecirct
L‟ouverture (opening) consiste agrave une eacuterosion suivi d‟une dilatation
Les petites structures et deacutetail fins disparaissent et ne sont pas recreacuteeacutees
lors de la dilation Une opeacuteration d‟ouverture est ainsi inteacuteressante pour
eacuteliminer les petits morceaux de contours bruiteacutes dans une image de
contours
V Ouverture et fermeture1 Ouverture
BBABAC )(
Sami Gazzah 2009 166
V Ouverture et fermetureII Fermeture
La fermeture (closing) consiste agrave une dilatation suivi d‟une eacuterosion
Les structures proches fusionnent lors de la dilation mais seules les
fusions ponctuelles disparaissent agrave nouveau lors de l‟eacuterosion Une
opeacuteration de fermeture est ainsi inteacuteressante pour boucher les petits
trous
Sami Gazzah 2009 167 Sami Gazzah 2009 168
Exercice 3 Sur l‟image de deacutepart on reacutealise une opeacuteration de
fermeture binaire par l‟eacuteleacutement structurant 4-connexiteacute Conclusions
Eacuteleacutement structurant
(4-connexiteacute)
-
-
-
-Fermeture = dilatation puis eacuterosion
Image de deacutepart Image dilateacutee Image dilateacutee puis eacuterodeacutee
Combler les trous
Reacutetablir les jonctions
tout en preacuteservant la taille
15122010
29
Sami Gazzah 2009 169
Exercice 4 Sur l‟image de deacutepart on reacutealise une opeacuteration
d‟ouverture binaire par l‟eacuteleacutement structurant 4-connexiteacute Conclusions
Eacuteleacutement structurant
(4-connexiteacute)
-
-
-
-Ouverture = eacuterosion puis dilatation
Image de deacutepart Image eacuterodeacutee Image eacuterodeacutee puis dilateacutee
Supprimer les fausses alarmes
Seacuteparer les objets accoleacutes
tout en preacuteservant la tailleSami Gazzah 2009 170
Appliquer les filtres suivants sur limage donneacutee Quelles sont les valeurs choisies
aux bords de limage et quelles sont les modifications visuelles
a) filtre moyenneur M3acute3(19)
b) eacuterosion
c) dilatation
d) meacutedian
e) fermeture
f) ouverture
Exercice 5
Sami Gazzah 2009 171
IV Amincissement et Squelettisation
La squelette (skeleton) d‟une forme est l‟axe meacutedian L‟inteacuterecirct de cette
opeacuteration est dans
La reconnaissance de caractegraveres
Deacutetection des reacuteseaux routiers
La planification de trajectoirehellip
Une meacutethode couramment employeacutee est une amincissement reacutepeacuteteacute
jusqu‟agrave le convergence (n‟apporte aucune modification)
Sami Gazzah 2009 172
IV Amincissement et Squelettisation1 Opeacuteration Tout Ou Rien laquoHit or Missraquo
Cette transformation est deacutefinie par
leacuteleacutement structurant eacutetendu est centreacute sur chaque pixel de limage
comme pour les opeacuterations ensemblistes
la question poseacutee est est ce que le contenu de limage est identique au
contenu de leacuteleacutement structurant
si la reacuteponse est oui le pixel reacutesultant vaut 1 si non il vaut 0
Une application permet de deacutetecter des configurations locales
particuliegraveres dans une image
plusieurs masques peuvent ecirctre utiliseacutes indeacutependamment les images
reacutesultat eacutetant ensuite combineacutees par une opeacuteration ou
)()( cc BABABA
Bc-
est le compleacutementaire
local de B
Sami Gazzah 2009 173
IV Amincissement et Squelettisation1 Opeacuteration laquoHit or Missraquo
Exemple dopeacuteration Hit or Miss deacutetection des coinsSami Gazzah 2009 174
IV Amincissement et Squelettisation1 Amincissement (thinning)
bull La transformation TOR nous permet eacutegalement de deacutefinir
l‟amincissement
bullL‟amincissement consiste agrave soustraire limage reacutesultat dun hit or miss de
limage initiale
bull des amincissements successifs conduisent au squelettisation
)()( BAAAthin
15122010
30
Sami Gazzah 2009 175
IV Amincissement et Squelettisation1I Squelettisation
Appliquer des amincissements successifs puis s‟arrecircter lorsque l‟amincissement
n‟apporte plus de modification C‟est une eacuterosion particuliegravere ougrave les pixels sont
supprimeacutes agrave la condition quils ne provoquent pas la seacuteparation dune reacutegion en
deux
Sami Gazzah 2009 176
IV Amincissement et Squelettisation1I Squelettisation
Sami Gazzah 2009 177
Chapitre 7
Transformations
geacuteomeacutetriques 2D
Sami Gazzah 2009 178
I Introduction
On entend par transformation 2D l‟ensemble des transformations du
plan pouvant ecirctre appliqueacutees aux pixels de l‟image sans consideacuteration
de l‟intensiteacute
Par exemples
Reacuteduction agrandissement
Deacuteformation d‟image
Recalage d‟une photo scanneacutee
Recaler des images que l‟on veut comparer
Mosaiumlque d‟images
Sami Gazzah 2009 179
I Transformations euclidiennes
Elles preacuteservent les distances et les angles
Elles sont les compositions de translations et de rotations
1) Translation
Ougrave Tx et Ty sont les deacuteplacements en x et en y de la translation
y
x
Tyy
Txx
Sami Gazzah 2009 180
2) Rotation
15122010
31
Sami Gazzah 2009 181 Sami Gazzah 2009 182
3) Remarques (1)
Sami Gazzah 2009 183
3) Remarques (2)
Sami Gazzah 2009 184
II Homotheacuteties
Changement deacutechelle par rapport agrave lorigine (scaling zoom)
Ougrave Sx et Sy sont les facteurs dagrandissement ( gt1) ou de
reacuteduction ( lt1) en x et en y
ySy
xSx
y
x
Sami Gazzah 2009 185
II Homotheacuteties
Sami Gazzah 2009 186
II Homotheacuteties
15122010
32
Sami Gazzah 2009 187
III Reacuteflexions
Reacuteflexions par rapport aux axes (flip miroir)
Sami Gazzah 2009 188
IV Cisaillement
Cisaillement (glissement shearing) on eacutetire suivant un ou plusieurs axes
Sami Gazzah 2009 189
Transformations inverses
Sami Gazzah 2009 190
Repreacutesentation Matricielle
IV Autres (reacuteflexions miroirs et flips)
Sami Gazzah 2009 191
Interpolation Directe
Sami Gazzah 2009 192
oDifficile de distribuer le niveau de gris sur les pixels voisins
oOn n‟a pas la certitude que tous les pixels de l‟image
transformeacutee recevront une valeur =gt ldquotrousrdquo
15122010
33
Interpolation Inverse
Sami Gazzah 2009 193
o Interpolation de la valeur du pixel agrave partir des voisins plus
facile
oAucun ldquotrourdquo car on parcourt tous les pixels de l‟image
transformeacutee Sami Gazzah 2009 194
V Objet vectoriel - Objet bitmap
Objet vectoriel
Essentiellement on transforme
les sommets (ou points de
controcircle) et on retracehellip
Objet ldquobitmaprdquo
On doit calculer la nouvelle
position de chaque pixel De plus on
doit geacuteneacuteralement interpoler les
niveaux de gris (couleurs)hellip
Sami Gazzah 2009 195
IV Assignation des niveaux de gris
Neacutecessaire car la position d‟un pixel transformeacute n‟est pas entiegraverehellip
Plusieurs meacutethodes
Interpolation au plus proche voisin
Interpolation bilineacuteaire
Interpolation bicubique
Autres types d‟interpolation
Sami Gazzah 2009 196
IV Assignation des niveaux de gris
Linterpolation de limage cest ce qui arrive lorsquon redimensionne
une image numeacuterique ou quon la redimensionne avec une distorsion
quon change la perspective etc
Exemple 1
Image originale (sans interpolation)
Image agrandie et donc interpoleacutee
Perte de netteteacute due agrave linterpolation
Sami Gazzah 2009
197
IV Assignation des niveaux de gris
Exemple 2 recadrage dimage
Nous allons agrandir cette image agrave 180
Il va donc nous manquer des informations lagrave ougrave lon va creacuteer des
pixels pour agrandir limage
Reacutesultat sans interpolation le logiciel agrandit simplement les pixels
Reacutesultat avec interpolation le logiciel calcule une couleur intermeacutediaire
pour chaque nouveau pixel
Sami Gazzah 2009
198
IV Assignation des niveaux de gris
Image originale
Interpolation au plus
proche voisin
Interpolation
bilineacuteaireInterpolation
bicubique
15122010
34
Sami Gazzah 2009 199
IIV Interpolation au plus proche voisin
Cest lalgorithme le plus rapide agrave calculer
Prend en compte dans le calcul que le pixel le plus proche du point
agrave interpoler
Consiste tout simplement agrave agrandir chaque pixel
Exemple Interpolation du plus proche voisin par copie des pixels
Copie de chaque colonne et de chaque rang
23 20
25 28
23 23
23 23
20 20
20 20
25 25
25 25
28 28
28 28
Sami Gazzah 2009 200
IIV Interpolation bilineacuteaire
Fonction bilineacuteaire de 4 pixels voisins ( en 2 D )
i-1 i i+1
i-1 i-12 i i+12 i+1 i+32
yi=xiYi+12=(xi+xi+1)2
Problegraveme pour le dernier point
Extrapolation lineacuteaire de
2 xn-xn-1
Principe 1D
attribuer agrave chaque point cible une
combinaison lineacuteaire des quatre
points sources les plus proches par
la transformation inverse
Sami Gazzah 2009 201
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 202
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 203 Sami Gazzah 2009 204
IIV Interpolation bilineacuteaire
15122010
35
Sami Gazzah 2009 205
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 206
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 207
IIV Interpolation bilineacuteaire exemple
Sami Gazzah 2009 208
IIV Interpolation bicubique
Sami Gazzah 2009 209
exemple
Sami Gazzah 2009 210
Chapitre 8
Geacuteneacuteration de segments de
droite et de cercles en 2D
15122010
36
Sami Gazzah 2009 211
Infographie 2D besoin de dessiner des primitives de
base (segments cercles hellip)
Espace discreacutetiseacute (pixels) il faut trouver un moyen pour
afficher des segments ou des cercles
I Segments 2D cercles1 Introduction
Comment trouver les pixels agrave allumer pour approximer au mieux une
droite ou un cercle
Algorithme rapide et preacutecisSami Gazzah 2009 212
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=ax+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ya
Sami Gazzah 2009 213
Rappelhellip
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=mx+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ym
Sami Gazzah 2009 214
Exemple
Sami Gazzah 2009 215
Agrave partir des coordonneacutees des 2 extreacutemiteacutes d‟un segmenthellip
Un algorithme simple
Boucle de x1 agrave x2 dx=1
ALLUME (x Arrondir(y))
Avec x2gtx1
Arrondir(y) = Arrondir(ax+b)
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Sami Gazzah 2009 216
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Choix de lrsquoaxehellip
Peu efficace
bullagrave chaque iteacuteration 1 multiplication (ou division) + 1 addition
+ 1 arrondi
15122010
37
Sami Gazzah 2009 217
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
DDA (Digital Differential Analyzer)
y et m doivent ecirctre des reacuteelsSami Gazzah 2009 218
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Calcul en entier (donc plus rapide)
Baseacute sur le choix entre deux points discrets deacutependant de leur
distance respective avec le point reacuteel ideacuteal
On simplifie le problegraveme en traitant drsquoabord le traceacute drsquoun segment
dans le 1er octant m infeacuterieur agrave1 et positif (0ltmlt 1)
Facilement geacuteneacuteralisable aux autres octants
Sami Gazzah 2009 219
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Traceacute d‟un segment dans le premier octant mlt1
On part d‟un point (xi yi) allumeacute
Sami Gazzah 2009 220
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
On ne calcule pas reacuteellement les distances rArr on veacuterifie si la diffeacuterence
entre les deux distances est positive ou neacutegative
Le signe de la longueur (d1-d2) deacutetermine s‟il faut allumer le pixel L ou H
L
H
Sami Gazzah 2009 221
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Comme m=ΔyΔx on multiplie cette diffeacuterence par Δx pour eacuteviter la
division
Mais que vaut p1
Sami Gazzah 2009 222
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
15122010
38
Sami Gazzah 2009 223
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Pour eacuteviter de calculer cette diffeacuterence pour chaque point on cherche
une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
Sami Gazzah 2009 224
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009 225
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009
Exercice
Tracer le segment de droite
pi xi yi
2 0 0
-6 1 1
6 2 1
-2 3 2
10 4 2
2 5 3
-6 6 4
6 7 4
-2 8 5
10 9 5
2 10 6
6
10
y
x
Sami Gazzah 2009 227
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
Sami Gazzah 2009 228
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
hellip interchanger les points hellip
Si |Δx| lt | Δy| on interchange le rocircle de x et y
15122010
39
Sami Gazzah 2009 229
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (1)
Sami Gazzah 2009 230
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (2)
Sami Gazzah 2009 231
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (3)
Sami Gazzah 2009 232
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Toujours baseacute sur le choix entre deux
points discrets deacutependant de leur
distance respective avec le point reacuteel
On travaille dans le 2e octant agrave partir
de (0r) ainsi pour un point (xi yi) le
prochain point sera
(xi+1 yi) ou (xi+1 yi-1)
Sami Gazzah 2009 233
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On calcule le prochain y et les diffeacuterences respectives avec les points
discrets de la faccedilon suivante
Le signe de pi nous dira si nous devons choisir le point lateacuteral ou le diagonal
Sami Gazzah 2009 234
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Encore une fois pour eacuteviter de calculer cette diffeacuterence pour chaque point on
cherche une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
15122010
40
Sami Gazzah 2009 235
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On considegravere 2 cas
Valeur initiale
Sami Gazzah 2009 236
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Sami Gazzah 2009 237
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Exemple centre = (00) et r = 3
Sami Gazzah 2009 238
Livres
Diane Lingrand Introduction au Traitement d‟Images Paris Editions Vuibert 2e
eacutedition 2008
Steven k Feiner James D Foley John F Hughes Richard l Phillips Andries
Vanam Introduction agrave l‟infographie Paris Editions Vuibert 2000
William K Pratt Digital Image Processing Willy-Inter-sciences 4th edition 2007
Eacuteric Incerti Compression dimage ndash Algorithmes et standards Vuibert 2003
Gilles Burel Introduction au traitement dimages ndash Simulation sous Matlab
Hermegraves 2001
Sites web
Cours de C Rougier (U Montreacuteal)
httpwww-etudiroumontrealca~rougiercift2730courshtml (cf chapitre 3)
Page wikipeacutedia sur JPEG (en anglais plus complegravete que celle en franccedilais)
httpenwikipediaorgwikiJPEG
Cours de P Courtellemont (Campus numeacuterique Espdon)
httppersouniv-lrfrpcourtelespadonsite_web
Applet de deacutemo par C G Jennings
httpcgjenningscatoyboxhjpegindexhtml
Cours de D Marshall (U Cardiff)
httpwwwcscfacukDaveMultimediaPDF
Reacutefeacuterences
Sami Gazzah 2009 239
Chapitre 9
introduction au
traitement
dimages avec OpenGL
Sami Gazzah 2009 240
OpenGL est une librairie graphique Elle a eacuteteacute creacutee par Silicon
Graphics et beacuteneacuteficie sur ces machines de lacceacuteleacuteration mateacuterielle
Elle est constitueacute d‟environ 200 fonctions graphiques
OpenGL est une bibliothegraveque de fonctions
Les fonctions sont de bas niveaux
La version actuelle est l‟ laquo OpenGL 41 raquo (deacutecembre 2010)
Principale caracteacuteristique indeacutependant du mateacuteriel et du systegraveme
d‟exploitation
Une impleacutementation libre de droits dOpenGL tregraves performante a eacuteteacute
eacutecrite par Brian Paul httpwwwmesa3dorg Et tout son code source
est accessible
Preacutesentation geacuteneacuterale
15122010
41
Sami Gazzah 2009 241
OpenGL propose des fonctions de bas niveaux
Primitives geacuteomeacutetriques points segments polygones
Les fonctions de haut niveaux sont deacuteveloppeacutees par l‟utilisateur ou
importeacutees par la librairie en amont d‟OpenGL
Primitives geacuteomeacutetriques complexes Sphegravere splines etc
Toutes les commandes et fonctions utilisent le preacutefixe gl
Exemple glColor2f()
Sami Gazzah 2009 242
Les Bibliothegraveques co-existant avec OpenGL
GLU OpenGL Utility Library contient les routines de bas niveau pour
geacuterer les matrices de transformation et de projection la facettisation des
polygones et le rendu de surface Les bibliothegraveques dextension du
systegraveme de fenecirctres permettent lutilisation du rendu OpenGL Il sagit de
GLX pour X Windows (fonctions ayant pour preacutefixe glX) et de WGL
pour Microsoft Windows (fonctions ayant pour preacutefixe wgl)
GLUT OpenGL Utility Toolkit est une boite agrave outils indeacutependante du
systegraveme de fenecirctrage eacutecrite par Mark
Kilgard pour simplifier la tacircche dutiliser des systegravemes diffeacuterents (fonctions
ayant pour preacutefixe glut)
Sami Gazzah 2009 243
Les primitives geacuteomeacutetriques d rsquoOpenGL
Les primitives sont deacutecrites par un bloc d‟instructions deacutelimiteacute par glBegin et glEnd
Ce bloc contient geacuteneacuteralement une liste de vertex Exemple
glBegin(GL_LINE_LOOP)
glVertex2f(-05 -05)
glVertex2f(05 -05)
glVertex2f(05 05)
glVertex2f(-05 05)
glEnd()
D‟autres attributs peuvent ecirctre speacutecifieacutes en chaque sommet
couleur normale coordonneacutee de texture etcSami Gazzah 2009 244
OpenGL est une machine agrave eacutetats
En modifiant les variables d‟eacutetats on peut changer le style de rendu
Sami Gazzah 2009 245
Exemple Honda Hippo (3dRendercom)
Placage de textures
bullL‟apparence et le toucher ( feel ) d‟une surface
bullUne image utiliseacutee pour deacutefinir les caracteacuteristiques d‟une surface
bullUne image multi-dimensionnelle qui est plaqueacutee sur un espace multi-
dimensionnel
Sami Gazzah 2009 246
15122010
42
Sami Gazzah 2009 247
Reacutefeacuterences openGL
Sami Gazzah 2009 248
Chapitre 10
introduction au
traitement
dimages avec OpenCV
Sami Gazzah 2009 249
Preacutesentation geacuteneacuterale
Quest-ce
Open Source Computer Vision Library
Bibliothegraveque open source de traitement des images numeacuteriques
Projet initieacute par Intel (en 1999)
Teacuteleacutechargeable sur httpsourceforgenetprojectsopencvlibrary
Fortement orienteacutee temps reacuteel
eacutecrite en C et C++
optimiseacutee pour les processeurs multi-cœurs
Multi-plateformes disponible pour Linux Windows et Mac OS X
Que contient-elle
Des fonctionnaliteacutes (structures et routines gt350 algos) de base et
avanceacutees pour bacirctir rapidement des applications autour de la vision par
ordinateur
Exemples dutilisation traitements de bas niveau (filtrage ) deacutetection
de visages reconnaissance et suivi dobjets en mouvement Sami Gazzah 2009 250
Fonctionnaliteacutes
Lectureeacutecriture dimages statiques et de seacutequences videacuteo
APIs de bas et moyen niveaux
Traitement des images binaires
Manipulations dimage (eacutechantillonnage (sampling) reacutegion dinteacuterecirct (ROI)
redimensionnement (resizing) rotation deacuteformation (warping) )
Deacutetection de contours de lignes de coins (edge detection)
Traitements multi-eacutechelles (multiscale processing)
Transformeacutees (Fourier cosinus discregravete )
Modules de haut niveau
Deacutetection reconnaissance et suivi (tracking) de visages
Flot optique (estimation du mouvement) (optical flow)
Calibrage (calibration) de la cameacutera
Mise en correspondance steacutereacuteoscopique (stereo matching)
IA et apprentissage par ordinateur (machine learning)
3D mise en correspondance (registration)
Sami Gazzah 2009 251
Modules principaux
CxCore
Types de base pour manip dimages (ex struct image point isin cxtypesh)
Structures dynamiques (listes files graphes arbres) et persistantes (LE)
Manipulations de matrices meacutethodes de lalgegravebre lineacuteaire et statistiques
Dessin en surimpression (overlay) (ex eacutetiquetage)
Cv
Traitement dimage calibrage cameacutera
Geacuteomeacutetrie algorithmique (triangulation )
Cvaux
Reconnaissance de visage
Code expeacuterimental et obsolegravete
Autres (dans otherlibs)
HighGUI ES videacuteos curseurs fenecirctrage
ML classification regroupement (clustering)Sami Gazzah 2009 252
OpenCV premiers programmesBibliothegraveque OpenCV
15122010
43
Sami Gazzah 2009 253
Livre
G Bradski amp A Kaehler laquo Learning OpenCV raquo OReilly Press (2008)
codes sources httpexamplesoreillycom9780596516130
Ressources en ligne
Reacutefeacuterence complegravete httpopencvwillowgaragecomdocumentation
Wiki httpopencvwillowgaragecomwikiFullOpenCVWiki
bullPreacutesentation teacuteleacutechargement installation
bullavec CodeBlocks httpopencvwillowgaragecomwikiCodeBlocks
bullDeacutebuter avec OpenCV FAQ
Tutoriels
httpnchcdlsourceforgenetsourceforgeopencvlibraryippocvpdf
httpdaslmemdrexeledu~noahKuntzopenCVTut1html agrave Tut11html
httpwwwcognoticscomopencvservo_2007_series
Tutoriel sur la vision utilisant OpenCV (en franccedilais)
httpwwwsiteduzerocomtutoriel-3-8631-vision-par-ordinateurhtml
Reacutefeacuterences openCV
15122010
18
Sami Gazzah 2009 103
Introduction
Le preacutetraitement d‟image est l‟ensemble des opeacuterations effectueacutees sur
une image soit pour l‟ameacuteliorer soit pour la restaurer
Le preacutetraitement d‟une image vise soit agrave renforcer la ressemblance des
pixels soit au contraire agrave accentuer les diffeacuterences de pixels d‟une mecircme
reacutegion
Accroitre la seacuteparabiliteacute des reacutegions composant une scegravene revient agrave
augmenter les contrastes vu
On applique le rehaussement des images afin de faciliter l‟interpreacutetation
visuelle et la compreacutehension des images
Pour comprendre ce type de rehaussement il faut comprendre le concept
d‟histogrammeSami Gazzah 2009 104
Deacutefinition de lrsquohistogramme drsquoune image
L‟histogramme est un outil qui permet de comptabiliser le nombre
d‟occurrences de chacune des valeurs dans une image en niveaux de gris
Dans une image couleur il est neacutecessaire d‟utiliser plusieurs
histogramme sur chacune des composantes du systegraveme de repreacutesentation
de la couleur
Soit h l‟histogramme de l‟image I de dimension (w x h) h[i] repreacutesente
le nombre d‟occurrence de chaque niveau de quantification i La probabiliteacute
estimeacutee du niveau i dans une image I est
hw
ihip
][)(
Image de 256 256 pixels
codeacutes chacun sur 8 bitsPopulation de pixels pour chaque
niveaux de gris [0 255]
Pour chaque niveau de gris on compte le nombre de pixels s‟y reacutefeacuterant
Pour chaque niveau on trace le graphe en bacircton du nombre de pixels
(possibiliteacute de regrouper les niveaux proches en une seule classe)
Exemple drsquohistogramme pour une image en niveaux
de gris
0 50 100 150 200 250
0
200
400
600
800
1000
cameraman
Image laquo A raquo en
niveaux de gris
Matrice des valeurs de luminance
des pixels de lrsquoimage laquo A raquo
Histogramme
de lrsquoimage
laquo A raquo
2 2 2 2 2 2 2 2
2 0 0 0 0 0 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 0 0 0 0 0 2
2 2 2 2 2 2 2 2
Les niveaux 0 1 et 2 sont respectivement repreacutesenteacutes par 24 12 et 28 pixels
repreacutesentation de cette population de pixels sur lhistogramme
Limage laquo A raquo comporte 3 niveaux de gris diffeacuterents 0 1 et 2
Compter le nombre de pixels pour chaque niveau de gris agrave lrsquoaide de la
matrice des valeurs de luminance
Exemple simple de calcul drsquohistogramme pour une image
Image laquo A raquoValeurs de luminance de
laquo A raquo
Histogramme cumuleacute de
laquo A raquo
2 2 2 2 2 2 2 2
2 0 0 0 0 0 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 0 0 0 0 0 2
2 2 2 2 2 2 2 2
Calcul dun histogramme particulier faisant appel aux cumuls des niveaux de gris
Histogramme cumuleacute
Utile pour certains traitements dimage tels que lrsquoeacutegalisation
dhistogramme ( ameacutelioration de contraste)
Chaque bacircton cumule le nombre de pixels du niveaux de gris concerneacute et des
niveaux de gris infeacuterieurs les niveaux 0 1 2 sont donc repreacutesenteacutes
respectivement par 24 36 et 64 pixels
Histogramme cumuleacute drsquoune image L‟histogramme ne donne pas L‟histogramme ne donne pas
d‟informations sur la reacutepartitiond‟informations sur la reacutepartition
Trois images diffeacuterentes ayant un mecircme histogramme
15122010
19
Modification de lrsquohistogrammeModification de lrsquohistogramme
On appelle dynamique des niveaux de gris lintervalle [nminnmax] de
niveaux de gris dans lequel sont compris tous les pixels de limage
Le but de la modification dhistogramme modifier chaque niveau de
gris pour accroicirctre le contraste On modeacutelise cette transformation par
leacutequation Irsquo(ij) = g(I(ij)) ougrave g est la fonction de contraste
Chaque transformation sera deacutecrite par une courbe repreacutesentant la
relation entre un niveau de gris de limage de deacutepart (abscisse) et le
niveau qui lui correspond dans limage ameacutelioreacutee (ordonneacutee)
Sami Gazzah 2009 109
Masquage de zones Masquage de zones Extraction d‟une Extraction d‟une
fenecirctre d‟intensiteacutefenecirctre d‟intensiteacute ((slicingslicing intensiteacute)intensiteacute)
Cette transformation consiste agrave remplacer un intervalle de niveaux
de gris par du blanc (nmax) par du noir (nmin) ou par une valeur
intermeacutediaire du niveau de gris
Sami Gazzah 2009 110
Courbes repreacutesentant de gauche agrave droite lextraction dune fenecirctre dintensiteacute et le masquage blanc et noir de lintervalle [ab]
n-1
n-1
0 n-1
n-1
0a ab b n-1
n-1
0 a b
Sami Gazzah 2009 111
Exemples de Masquage de zonesInversion de la dynamiqueInversion de la dynamique
But produire le neacutegatif d‟une image
donneacutee
Sami Gazzah 2009 112
Sami Gazzah 2009 113
Etirement drsquohistogramme
Sami Gazzah 2009 114
Etirement drsquohistogramme
Augmentation du contraste par eacutetirement d‟histogramme
15122010
20
Sami Gazzah 2009 115
Eacutegalisation dhistogramme
But ameacutelioration du contraste
Distribution uniforme des niveaux de gris
Elle se deacutefinit agrave laide de lhistogramme cumuleacute de limage hc(n)
qui repreacutesente le nombre de pixels de limage dont le niveau de
gris est infeacuterieur ou eacutegal agrave n
Deacutefinition de la transformation deacutegalisation dhistogramme soit
I le niveau de gris dun pixel de deacutepart le niveau de gris de limage
darriveacutee I‟ sera
Sami Gazzah 2009 116
Sami Gazzah 2009 117
Effet de lrsquoeacutegalisation drsquohistogramme
Sami Gazzah 2009 118
Augmentation du contraste exemples et comparaison
Original Eacutetirement d‟histogramme Eacutegalisation
Le rehaussement du contraste est plus marqueacute avec l‟eacutegalisation
d‟histogramme autorisant la deacutetection de structures situeacutees dans
l‟ombre
Sami Gazzah 2009 119
Chapitre 5
SEGMENTATION DrsquoIMAGES
Sami Gazzah 2009 120
Une image est geacuteneacuteralement composeacutee d‟objets L‟analyse de cette
image neacutecessite l‟identification de ces objets
La segmentation dimages est lun des problegravemes phares du traitement
dimages Elle consiste agrave partitionner limages en un ensemble de
reacutegions connexes Linteacuterecirct de ces reacutegions est de pouvoir ecirctre
manipuleacutees ensuite via des traitements de haut niveau pour extraire
des caracteacuteristiques de forme de position de taille etc
Introduction
15122010
21
Sami Gazzah 2009 121 Sami Gazzah 2009 122
Meacutethodes statistiquesSegmentation par Histogrammes
Sami Gazzah 2009 123
Meacutethodes statistiquesSeacutelection Reacutecursive sur Histogrammes
Ohlander Price et Reddy (1978)
Sami Gazzah 2009 124
Segmentation par approche contourIntroduction
Le contour est deacutefini comme le lieu des points connexes qui
possegravedent une forte transition d‟intensiteacute lumineuse ou de texture Le
traitement qui vise agrave l‟obtenir est appeleacute extraction de contour on
parle aussi de deacutetection de contour
Le processus d‟extraction de contour peut ecirctre deacutecomposeacute en
plusieurs eacutetapes distinctes que nous allons les deacutetailler comme suit
- La mise en eacutevidence des contours
- L‟extraction des contours
- La fermeture des contours
Sami Gazzah 2009 125
Segmentation par approche contourLa mise en eacutevidence des contours
Elle s‟obtient par une diffeacuterentiation de l‟image et elle peut
s‟appliquer agrave des images binaires ou non le but de la deacutetection de
contours est d‟obtenir dans un premier temps une image binaire ougrave
chaque contour est d‟eacutepaisseur 1 et sans discontinuiteacute
rehausser le contour
suivre le contour
les points du contour correspondent au maximum en valeur absolue
de la deacuteriveacutee primaire de l‟image on obtient alors un gradient ou au
passage par zeacutero de la deacuteriveacutee seconde de l‟image on obtient alors
un laplacien
Sami Gazzah 2009 126
Segmentation par approche contourLa mise en eacutevidence des contours
La deacutetection de contours peut ecirctre reacutealiseacutee gracircce agrave des filtres
dont les coefficients ont eacuteteacute soigneusement choisis Nous
aborderons dans cette preacutesentation 3 filtres les filtres de
Prewitt Roberts et Sobel
Ce jeu de filtres (Prewitt Roberts et Sobel) est constitueacute d‟une
paire de filtres lineacuteaires qui deacutetectent le contours dans deux
directions orthogonales (vertical et horizontal)
15122010
22
Sami Gazzah 2009 127
Segmentation par approche contourFiltre de Perwitt
Les filtres de Perwitt sont les suivants
Filtre horizontal
Filtre vertical
111
000
111
h
101
101
101
v
Sami Gazzah 2009 128
Segmentation par approche contourFiltre de Perwitt
A partir d‟une image I on calcule Gh et Gv images
correspondant au filtrage de I par h et v Ces images
contiennent les contours horizontaux et verticaux
Si l‟on souhaite obtenir une image de contour unique ne tenant
pas compte de l‟orientation on calcule
Orientation du contour
Image binairehellipchoisir un seuil de deacutetection
22
vh GGG
)(vh
GGarctg
Sami Gazzah 2009 129
Segmentation par approche contourFiltre de Sobel
Les filtres de Sobel sont les suivants
Filtre horizontal
Filtre vertical
121
000
121
h
101
202
101
v
Sami Gazzah 2009 130
Segmentation par approche contourFiltre de Sobel
Sami Gazzah 2009 131
Segmentation par approche contourFiltre de Sobel
Sami Gazzah 2009 132
Segmentation par approche contourFiltre de Roberts
Les filtres de Roberts sont les suivants
Filtre diagonal
Filtre anti-diagonal
10
01h
01
10v
15122010
23
Sami Gazzah 2009 133
Segmentation par approche contourFiltre de Kirsch
Ce deacutetecteur utilise huit noyaux de convolution lui permettant de deacutetecter
des contours en fonction de huit directions agrave
15
335
305
335
1
d 15
333
305
355
2
d 15
333
303
555
3
d
15
333
503
553
4
d 15
533
503
533
5
d 15
555
503
333
6
d
15
555
303
333
7
d 15
355
305
333
8
d
Sami Gazzah 2009 134
Contours et Laplacien
Il s‟agit de calculer la deacuteriveacutee seconde de l‟image
Le Laplacien est tregraves sensible au bruit pour limiter l‟effet du bruit le
Laplacien est approximeacute par un masque qui effectue en mecircme temps
une opeacuteration de filtrage par une Gaussienne qui repreacutesente l‟eacutetape
de lissage de l‟image puis vient l‟application du laplacien Les masques
du Laplacien Gaussien sont preacutesenteacutes ci-apregraves
Segmentation par approche contour
Sami Gazzah 2009 135
Contours et Laplacien
Le contour est ensuite deacutetermineacute par la deacutetection des
passages par zeacutero du laplacien de l‟image
88888888888888
010
141
010
1h
111
101
111
2h
121
242
121
3h
Sami Gazzah 2009 136
Contours et Laplacien
Sami Gazzah 2009 137
Seuillage
Les filtres preacuteceacutedents nous fournissent des images des sauts ou
diffeacuterences d‟intensiteacute
Le seuillage permet d‟eacuteliminer des points en lesquels la diffeacuterence
d‟intensiteacute est tregraves faible
Le seuillage peut ecirctre pousser afin d‟obtenir une image binaire (TOR)
Le seuillage dans sa forme le plus simple ne tient pas compte de la
topologie et peut conserver un point bruiteacute isoleacute ou eacuteliminer une portion
de contour d‟intensiteacute faible
Sami Gazzah 2009 138
Seuillage par hysteacutereacutesis
c‟est une fonction agrave deux seuils un seuil bas et un seuil haut
Tout point dont le module de contour est au-dessus du seuil-haut est un
point de contour
Tout point dont le module de contour est au-dessous du seuil-bas n‟est
pas un point de contour
Les points de module entre le seuil-bas et le seuil-haut sont des points
de contour s‟il possegravede un point de contour dans leur voisinage
15122010
24
Sami Gazzah 2009 139
Seuillage par hysteacutereacutesis
seuil haut
Seuil bas
point sur contour
point hors contour
Seuillage par hysteacuterisais les points de lrsquoimage de contour de valeur
supeacuterieur au seuil haut sont des points de contours A partir de ces points de
contours le voisinage de la direction du contour sont examineacutes srsquoils sont de
valeur supeacuterieure au seuil bas ils sont ajouteacutes au points de contoursSami Gazzah 2009 140
Chapitre 6
Introduction aux
opeacuterateurs
morphomatheacutematique
Sami Gazzah 2009 141
1 Introduction
Les opeacuterateurs morphomatheacutematique (=Morphologie Matheacutematique)
permettent d‟ameacuteliorer les images de contours et apporter d‟autres
fonctionnaliteacutes
Ils ont eacuteteacute initialement appliqueacute sur des images NampB (Matheron et
Sarra1965) ensuite eacutetendus agrave des images en nivaux de gris par Doupherty
(1978)
Pour les appliquer sur des images couleurs on peut les appliquer
seacutepareacutement agrave chaque composante couleur et combiner les reacutesultats
Sami Gazzah 2009 142
Diffeacuterentes opeacuterations
eacuterosion dilatation
ouverture fermeture
Squelettisation
hellip
1 Introduction
Sami Gazzah 2009 143
1 Introduction
Dilatation
Ajouter un pixel sur les pourtours de la forme
boucher les trous
Erosion
Enlever un pixel sur les pourtours de la forme
les objets de taille infeacuterieure agrave celle de leacuteleacutement
structurant vont disparaicirctre
agrandit les trous
Sami Gazzah 2009144
1I Rappels sur les ensembles
L‟eacutegaliteacute
L‟inclusion
Lbdquointersection
L‟union
La diffeacuterence
La diffeacuterence symeacutetrique
La compleacutementariteacute E eacutetant un ensemble
servant de reacutefeacuterentielle
Dans ce qui suit les lettres majuscules deacutesignent des ensembles et les lettres
minuscules deacutesignent des eacuteleacutements appartenant aux ensembles
Sur les ensembles on deacutefinit les opeacuterations suivantes
15122010
25
Sami Gazzah 2009145
1I Rappels sur les ensembles
Sami Gazzah 2009146
1I Rappels sur les ensembles
Lois de De Morgan
Reacuteflexion La reacuteflexion d‟un ensemble A est deacutefinie par
Un ensemble symeacutetrique veacuterifiant ndashA=A C‟est le cas des cercles et des carreacute par
exemple
ccc YXYX )(
ccc YXYX )(
AaaA
A -A B -B
Sami Gazzah 2009147
1I Rappels sur les ensembles
Addition de Minkowski l‟addition d‟un eacuteleacutement x agrave un ensemble A par x est
deacutefinie par
Cette notion n‟est pas uniquement ensembliste elle nous oblige agrave deacutefinir un point
de reacutefeacuterence
On en deacuteduit l‟addition d‟un ensemble B agrave un ensemble A c‟est le reacutesultat de
l‟addition de chaque eacuteleacutement de B agrave A
L‟addition de Minkowski est commutative Elle est eacutegalement appeleacute dilatation
AaxaxAB
A
A
x
AxBxAaBaBbbABAC )()()(
le translateacute de X par b
Sami Gazzah 2009148
1I Rappels sur les ensembles
Eleacutement structurant les opeacuterations morphomatheacutematiques sont deacutefinis agrave
partir des ensemble B discrets appeleacute eacuteleacutement structurant Ces eacuteleacutement
permettent de deacutefinir le type de voisinage souhaiteacute
Addition de Minkowski d‟un ensemble A et d‟un ensemble B
BA
Sami Gazzah 2009149
1II Dilatation
Le reacutesultat de dilatation de lrsquoensemble A par lrsquoensemble B
est lrsquoaddition de Minkowski crsquoest lrsquoensemble des points tel
que lorsque B est centreacute sur un de ces points il y a une
intersection non vide entre A et B
Pour des images en niveaux de gris on obtient lrsquoimage
dilateacutee de la forme A en remplaccedilant tout pixel par le
maximum des intensiteacutes des voisins selon la forme B
Sami Gazzah 2009 150
1II Dilatation1 Image NampB
Soit k l‟eacuteleacutement structurant de taille (2k+1) x (2k+1) L‟algorithme de
dilatation est le suivant on parcourt tous les pixels de l‟image sauf les
bord de l‟image d‟eacutepaisseur k pour chaque pixel du fond rencontreacute s‟il
possegravede un voisin au sens de l‟eacuteleacutement structurant qui appartient agrave un
objet il prend le couleur de l‟objet si non il n‟est pas modifieacute
15122010
26
la dilatation (noteacutee ) drsquoune image monochrome laquo f raquo par un
eacuteleacutement structurant laquo B raquo est deacutefinie en terme de sous-graphe
bull f B = T [ Y ] = Supl l tel que (m n l) Y
bullY = U ( f ) U ( B )
En consideacuterant un eacuteleacutement structurant plan de valeur nulle sur son
support
( f B ) (P) = Max valeurs des pixels du voisinage du pixel P
1II Dilatation1 Image niveaux de gris
max
55 68 77 90 91 95 115 151 210
( f B ) (P) = 210
n
115 91 77
95 68 90
55 151 210
exemple
m
Image de reacutefeacuterence
Eacuteleacutement structurant
(8-connexiteacute)
liste ordonneacutee des valeurs du voisinage
- - -
-
-
-
-
-
1II Dilatation1 Image niveaux de gris
Exemples de filtrages morphologiques(eacuteleacutement structurant 33 complet)
Image de reacutefeacuterenceImage dilateacutee
morphologiquement
La dilatation en niveaux de gris accroicirct la luminance des
pixels entoureacutes de voisins plus lumineux
Observation
Sami Gazzah 2009154
VI Erosion
L‟eacuterosion est deacutefinie par
On deacutefinit la soustraction de Minkowski par
On a eacutequivalence entre eacuterosion et soustraction de Minkowski si B est
symeacutetrique (si B=-B)
D‟un point de vue binaire l‟eacuterode de A par B correspond agrave l‟ensemble
des points tels que si B est centre sur ce points B est entiegraverement inclus
dans A
AxBxBbbABAC )()(
)()( BbbABAC
Sami Gazzah 2009 155
VI Erosion1 Image NampB
on parcourt tous les pixels de l‟image sauf les bord de l‟image
d‟eacutepaisseur k pour chaque pixel du fond rencontreacute s‟il possegravede un
voisin au sens de l‟eacuteleacutement structurant qui appartient agrave un objet il
prend le couleur du fond si non il n‟est pas modifieacute
VI Eacuterosion drsquoune image en niveaux de gris
Lrsquoeacuterosion (noteacutee Ө ) drsquoune image monochrome laquo f raquo par un eacuteleacutement
structurant laquo B raquo est deacutefinie en terme de sous-graphe
bull f Ө B = T [ Y ] = Supl l tel que (m n l) Y
bullY = U ( f ) Ө U ( B )
Classiquement on considegravere un eacuteleacutement structurant plan de
valeur nulle sur son support
( f Ө B ) (P) = Min valeurs des pixels du voisinage du pixel P
15122010
27
VI Eacuterosion drsquoune image en niveaux de gris
min
68 90 91 95 151
( f Ө B ) (P) = 68
n
115 91 77
95 68 90
55 151 210
exemple
m
Image de reacutefeacuterence
ӨӨ
Eacuteleacutement structurant
(4-connexiteacute)
liste ordonneacutee des valeurs du voisinage
-
-
-
-
Exemples de filtrages morphologiques(eacuteleacutement structurant 33 complet)
Image eacuterodeacutee
Lrsquoeacuterosion en niveaux de gris reacuteduit la luminance des pixels
qui sont entoureacutes de voisins de moindre intensiteacute
Image de reacutefeacuterence
Observation
Sami Gazzah 2009 159
Eacuteleacutement structurant (a)
(4-connexiteacute)
-
-
-
-
Eacuteleacutement structurant (b)
(8-connexiteacute)
- - -
-
-
-
-
-
Exercice 1 Sur la mecircme image de deacutepart on reacutealise deux opeacuterations
de dilatations avec deux eacuteleacutements structurant diffeacuterents
Dilatation avec (a) Dilatation avec (b)
image de deacutepart
cas a L‟eacuteleacutement structurant est agrave 4-connexiteacute Chaque pixel
du support qui est eacutegal agrave la valeur 1 ou qui a l‟un de ses 4
voisins agrave la valeur 1 est mis agrave la valeur 1 apregraves filtrage
cas b L‟eacuteleacutement structurant est agrave 8-connexiteacute Chaque pixel
du support qui est eacutegal agrave la valeur 1 ou qui a l‟un de ses 8
voisins agrave la valeur 1 est mis agrave la valeur 1 apregraves filtrage
Dans les deux cas on observe qu‟une dilatation eacutelimine les
trous isoleacutes dans les objets et dilate le contour des objets en
tenant compte de l‟eacuteleacutement structurant
Sami Gazzah 2009 160
Exercice 1
Sami Gazzah 2009 161
Eacuteleacutement structurant (a)
(4-connexiteacute)
-
-
-
-
Eacuteleacutement structurant (b)
(8-connexiteacute)
- - -
-
-
-
-
-
Exercice 2 Sur la mecircme image de deacutepart on reacutealise deux opeacuterations
d‟eacuterosions avec deux eacuteleacutements structurant diffeacuterents
Erosion avec (a) Erosion avec (b)
image de deacutepart
cas a L‟eacuteleacutement structurant est agrave 4-connexiteacute (origine agrave 4 voisins)
Chaque pixel du support qui a la valeur 0 ou qui a l‟un de ses 4
voisins agrave la valeur 0 est mis agrave la valeur 0 apregraves filtrage
cas b L‟eacuteleacutement structurant est agrave 8-connexiteacute Chaque pixel du
support qui a la valeur 0 ou qui a l‟un de ses 8 voisins agrave la valeur 0
est mis agrave la valeur 0 apregraves filtrage
Dans les deux cas on observe qu‟une eacuterosion eacutelimine les pixels
isoleacutes sur le fond et eacuterode le contour des objets
Sami Gazzah 2009 162
Exercice 2
15122010
28
ConclusionsConclusions
Erosion
les objets relieacutes entre eux vont ecirctre seacutepareacutes
Une eacuterosion de taille n peut se reacutealiser en reacutepeacutetant une
eacuterosion n fois avec un eacuteleacutement structurant de taille 1 ou en
appliquant une seule eacuterosion avec un eacuteleacutement structurant
de taille n
Dilatation
des objets sont situeacutes agrave une distance moins grande que la taille
de leacuteleacutement structurant il vont fusionner
Sami Gazzah 2009 163 Sami Gazzah 2009 164
Sami Gazzah 2009 165
Elimine pixels isoleacutes sans inteacuterecirct
L‟ouverture (opening) consiste agrave une eacuterosion suivi d‟une dilatation
Les petites structures et deacutetail fins disparaissent et ne sont pas recreacuteeacutees
lors de la dilation Une opeacuteration d‟ouverture est ainsi inteacuteressante pour
eacuteliminer les petits morceaux de contours bruiteacutes dans une image de
contours
V Ouverture et fermeture1 Ouverture
BBABAC )(
Sami Gazzah 2009 166
V Ouverture et fermetureII Fermeture
La fermeture (closing) consiste agrave une dilatation suivi d‟une eacuterosion
Les structures proches fusionnent lors de la dilation mais seules les
fusions ponctuelles disparaissent agrave nouveau lors de l‟eacuterosion Une
opeacuteration de fermeture est ainsi inteacuteressante pour boucher les petits
trous
Sami Gazzah 2009 167 Sami Gazzah 2009 168
Exercice 3 Sur l‟image de deacutepart on reacutealise une opeacuteration de
fermeture binaire par l‟eacuteleacutement structurant 4-connexiteacute Conclusions
Eacuteleacutement structurant
(4-connexiteacute)
-
-
-
-Fermeture = dilatation puis eacuterosion
Image de deacutepart Image dilateacutee Image dilateacutee puis eacuterodeacutee
Combler les trous
Reacutetablir les jonctions
tout en preacuteservant la taille
15122010
29
Sami Gazzah 2009 169
Exercice 4 Sur l‟image de deacutepart on reacutealise une opeacuteration
d‟ouverture binaire par l‟eacuteleacutement structurant 4-connexiteacute Conclusions
Eacuteleacutement structurant
(4-connexiteacute)
-
-
-
-Ouverture = eacuterosion puis dilatation
Image de deacutepart Image eacuterodeacutee Image eacuterodeacutee puis dilateacutee
Supprimer les fausses alarmes
Seacuteparer les objets accoleacutes
tout en preacuteservant la tailleSami Gazzah 2009 170
Appliquer les filtres suivants sur limage donneacutee Quelles sont les valeurs choisies
aux bords de limage et quelles sont les modifications visuelles
a) filtre moyenneur M3acute3(19)
b) eacuterosion
c) dilatation
d) meacutedian
e) fermeture
f) ouverture
Exercice 5
Sami Gazzah 2009 171
IV Amincissement et Squelettisation
La squelette (skeleton) d‟une forme est l‟axe meacutedian L‟inteacuterecirct de cette
opeacuteration est dans
La reconnaissance de caractegraveres
Deacutetection des reacuteseaux routiers
La planification de trajectoirehellip
Une meacutethode couramment employeacutee est une amincissement reacutepeacuteteacute
jusqu‟agrave le convergence (n‟apporte aucune modification)
Sami Gazzah 2009 172
IV Amincissement et Squelettisation1 Opeacuteration Tout Ou Rien laquoHit or Missraquo
Cette transformation est deacutefinie par
leacuteleacutement structurant eacutetendu est centreacute sur chaque pixel de limage
comme pour les opeacuterations ensemblistes
la question poseacutee est est ce que le contenu de limage est identique au
contenu de leacuteleacutement structurant
si la reacuteponse est oui le pixel reacutesultant vaut 1 si non il vaut 0
Une application permet de deacutetecter des configurations locales
particuliegraveres dans une image
plusieurs masques peuvent ecirctre utiliseacutes indeacutependamment les images
reacutesultat eacutetant ensuite combineacutees par une opeacuteration ou
)()( cc BABABA
Bc-
est le compleacutementaire
local de B
Sami Gazzah 2009 173
IV Amincissement et Squelettisation1 Opeacuteration laquoHit or Missraquo
Exemple dopeacuteration Hit or Miss deacutetection des coinsSami Gazzah 2009 174
IV Amincissement et Squelettisation1 Amincissement (thinning)
bull La transformation TOR nous permet eacutegalement de deacutefinir
l‟amincissement
bullL‟amincissement consiste agrave soustraire limage reacutesultat dun hit or miss de
limage initiale
bull des amincissements successifs conduisent au squelettisation
)()( BAAAthin
15122010
30
Sami Gazzah 2009 175
IV Amincissement et Squelettisation1I Squelettisation
Appliquer des amincissements successifs puis s‟arrecircter lorsque l‟amincissement
n‟apporte plus de modification C‟est une eacuterosion particuliegravere ougrave les pixels sont
supprimeacutes agrave la condition quils ne provoquent pas la seacuteparation dune reacutegion en
deux
Sami Gazzah 2009 176
IV Amincissement et Squelettisation1I Squelettisation
Sami Gazzah 2009 177
Chapitre 7
Transformations
geacuteomeacutetriques 2D
Sami Gazzah 2009 178
I Introduction
On entend par transformation 2D l‟ensemble des transformations du
plan pouvant ecirctre appliqueacutees aux pixels de l‟image sans consideacuteration
de l‟intensiteacute
Par exemples
Reacuteduction agrandissement
Deacuteformation d‟image
Recalage d‟une photo scanneacutee
Recaler des images que l‟on veut comparer
Mosaiumlque d‟images
Sami Gazzah 2009 179
I Transformations euclidiennes
Elles preacuteservent les distances et les angles
Elles sont les compositions de translations et de rotations
1) Translation
Ougrave Tx et Ty sont les deacuteplacements en x et en y de la translation
y
x
Tyy
Txx
Sami Gazzah 2009 180
2) Rotation
15122010
31
Sami Gazzah 2009 181 Sami Gazzah 2009 182
3) Remarques (1)
Sami Gazzah 2009 183
3) Remarques (2)
Sami Gazzah 2009 184
II Homotheacuteties
Changement deacutechelle par rapport agrave lorigine (scaling zoom)
Ougrave Sx et Sy sont les facteurs dagrandissement ( gt1) ou de
reacuteduction ( lt1) en x et en y
ySy
xSx
y
x
Sami Gazzah 2009 185
II Homotheacuteties
Sami Gazzah 2009 186
II Homotheacuteties
15122010
32
Sami Gazzah 2009 187
III Reacuteflexions
Reacuteflexions par rapport aux axes (flip miroir)
Sami Gazzah 2009 188
IV Cisaillement
Cisaillement (glissement shearing) on eacutetire suivant un ou plusieurs axes
Sami Gazzah 2009 189
Transformations inverses
Sami Gazzah 2009 190
Repreacutesentation Matricielle
IV Autres (reacuteflexions miroirs et flips)
Sami Gazzah 2009 191
Interpolation Directe
Sami Gazzah 2009 192
oDifficile de distribuer le niveau de gris sur les pixels voisins
oOn n‟a pas la certitude que tous les pixels de l‟image
transformeacutee recevront une valeur =gt ldquotrousrdquo
15122010
33
Interpolation Inverse
Sami Gazzah 2009 193
o Interpolation de la valeur du pixel agrave partir des voisins plus
facile
oAucun ldquotrourdquo car on parcourt tous les pixels de l‟image
transformeacutee Sami Gazzah 2009 194
V Objet vectoriel - Objet bitmap
Objet vectoriel
Essentiellement on transforme
les sommets (ou points de
controcircle) et on retracehellip
Objet ldquobitmaprdquo
On doit calculer la nouvelle
position de chaque pixel De plus on
doit geacuteneacuteralement interpoler les
niveaux de gris (couleurs)hellip
Sami Gazzah 2009 195
IV Assignation des niveaux de gris
Neacutecessaire car la position d‟un pixel transformeacute n‟est pas entiegraverehellip
Plusieurs meacutethodes
Interpolation au plus proche voisin
Interpolation bilineacuteaire
Interpolation bicubique
Autres types d‟interpolation
Sami Gazzah 2009 196
IV Assignation des niveaux de gris
Linterpolation de limage cest ce qui arrive lorsquon redimensionne
une image numeacuterique ou quon la redimensionne avec une distorsion
quon change la perspective etc
Exemple 1
Image originale (sans interpolation)
Image agrandie et donc interpoleacutee
Perte de netteteacute due agrave linterpolation
Sami Gazzah 2009
197
IV Assignation des niveaux de gris
Exemple 2 recadrage dimage
Nous allons agrandir cette image agrave 180
Il va donc nous manquer des informations lagrave ougrave lon va creacuteer des
pixels pour agrandir limage
Reacutesultat sans interpolation le logiciel agrandit simplement les pixels
Reacutesultat avec interpolation le logiciel calcule une couleur intermeacutediaire
pour chaque nouveau pixel
Sami Gazzah 2009
198
IV Assignation des niveaux de gris
Image originale
Interpolation au plus
proche voisin
Interpolation
bilineacuteaireInterpolation
bicubique
15122010
34
Sami Gazzah 2009 199
IIV Interpolation au plus proche voisin
Cest lalgorithme le plus rapide agrave calculer
Prend en compte dans le calcul que le pixel le plus proche du point
agrave interpoler
Consiste tout simplement agrave agrandir chaque pixel
Exemple Interpolation du plus proche voisin par copie des pixels
Copie de chaque colonne et de chaque rang
23 20
25 28
23 23
23 23
20 20
20 20
25 25
25 25
28 28
28 28
Sami Gazzah 2009 200
IIV Interpolation bilineacuteaire
Fonction bilineacuteaire de 4 pixels voisins ( en 2 D )
i-1 i i+1
i-1 i-12 i i+12 i+1 i+32
yi=xiYi+12=(xi+xi+1)2
Problegraveme pour le dernier point
Extrapolation lineacuteaire de
2 xn-xn-1
Principe 1D
attribuer agrave chaque point cible une
combinaison lineacuteaire des quatre
points sources les plus proches par
la transformation inverse
Sami Gazzah 2009 201
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 202
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 203 Sami Gazzah 2009 204
IIV Interpolation bilineacuteaire
15122010
35
Sami Gazzah 2009 205
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 206
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 207
IIV Interpolation bilineacuteaire exemple
Sami Gazzah 2009 208
IIV Interpolation bicubique
Sami Gazzah 2009 209
exemple
Sami Gazzah 2009 210
Chapitre 8
Geacuteneacuteration de segments de
droite et de cercles en 2D
15122010
36
Sami Gazzah 2009 211
Infographie 2D besoin de dessiner des primitives de
base (segments cercles hellip)
Espace discreacutetiseacute (pixels) il faut trouver un moyen pour
afficher des segments ou des cercles
I Segments 2D cercles1 Introduction
Comment trouver les pixels agrave allumer pour approximer au mieux une
droite ou un cercle
Algorithme rapide et preacutecisSami Gazzah 2009 212
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=ax+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ya
Sami Gazzah 2009 213
Rappelhellip
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=mx+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ym
Sami Gazzah 2009 214
Exemple
Sami Gazzah 2009 215
Agrave partir des coordonneacutees des 2 extreacutemiteacutes d‟un segmenthellip
Un algorithme simple
Boucle de x1 agrave x2 dx=1
ALLUME (x Arrondir(y))
Avec x2gtx1
Arrondir(y) = Arrondir(ax+b)
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Sami Gazzah 2009 216
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Choix de lrsquoaxehellip
Peu efficace
bullagrave chaque iteacuteration 1 multiplication (ou division) + 1 addition
+ 1 arrondi
15122010
37
Sami Gazzah 2009 217
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
DDA (Digital Differential Analyzer)
y et m doivent ecirctre des reacuteelsSami Gazzah 2009 218
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Calcul en entier (donc plus rapide)
Baseacute sur le choix entre deux points discrets deacutependant de leur
distance respective avec le point reacuteel ideacuteal
On simplifie le problegraveme en traitant drsquoabord le traceacute drsquoun segment
dans le 1er octant m infeacuterieur agrave1 et positif (0ltmlt 1)
Facilement geacuteneacuteralisable aux autres octants
Sami Gazzah 2009 219
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Traceacute d‟un segment dans le premier octant mlt1
On part d‟un point (xi yi) allumeacute
Sami Gazzah 2009 220
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
On ne calcule pas reacuteellement les distances rArr on veacuterifie si la diffeacuterence
entre les deux distances est positive ou neacutegative
Le signe de la longueur (d1-d2) deacutetermine s‟il faut allumer le pixel L ou H
L
H
Sami Gazzah 2009 221
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Comme m=ΔyΔx on multiplie cette diffeacuterence par Δx pour eacuteviter la
division
Mais que vaut p1
Sami Gazzah 2009 222
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
15122010
38
Sami Gazzah 2009 223
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Pour eacuteviter de calculer cette diffeacuterence pour chaque point on cherche
une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
Sami Gazzah 2009 224
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009 225
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009
Exercice
Tracer le segment de droite
pi xi yi
2 0 0
-6 1 1
6 2 1
-2 3 2
10 4 2
2 5 3
-6 6 4
6 7 4
-2 8 5
10 9 5
2 10 6
6
10
y
x
Sami Gazzah 2009 227
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
Sami Gazzah 2009 228
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
hellip interchanger les points hellip
Si |Δx| lt | Δy| on interchange le rocircle de x et y
15122010
39
Sami Gazzah 2009 229
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (1)
Sami Gazzah 2009 230
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (2)
Sami Gazzah 2009 231
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (3)
Sami Gazzah 2009 232
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Toujours baseacute sur le choix entre deux
points discrets deacutependant de leur
distance respective avec le point reacuteel
On travaille dans le 2e octant agrave partir
de (0r) ainsi pour un point (xi yi) le
prochain point sera
(xi+1 yi) ou (xi+1 yi-1)
Sami Gazzah 2009 233
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On calcule le prochain y et les diffeacuterences respectives avec les points
discrets de la faccedilon suivante
Le signe de pi nous dira si nous devons choisir le point lateacuteral ou le diagonal
Sami Gazzah 2009 234
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Encore une fois pour eacuteviter de calculer cette diffeacuterence pour chaque point on
cherche une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
15122010
40
Sami Gazzah 2009 235
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On considegravere 2 cas
Valeur initiale
Sami Gazzah 2009 236
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Sami Gazzah 2009 237
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Exemple centre = (00) et r = 3
Sami Gazzah 2009 238
Livres
Diane Lingrand Introduction au Traitement d‟Images Paris Editions Vuibert 2e
eacutedition 2008
Steven k Feiner James D Foley John F Hughes Richard l Phillips Andries
Vanam Introduction agrave l‟infographie Paris Editions Vuibert 2000
William K Pratt Digital Image Processing Willy-Inter-sciences 4th edition 2007
Eacuteric Incerti Compression dimage ndash Algorithmes et standards Vuibert 2003
Gilles Burel Introduction au traitement dimages ndash Simulation sous Matlab
Hermegraves 2001
Sites web
Cours de C Rougier (U Montreacuteal)
httpwww-etudiroumontrealca~rougiercift2730courshtml (cf chapitre 3)
Page wikipeacutedia sur JPEG (en anglais plus complegravete que celle en franccedilais)
httpenwikipediaorgwikiJPEG
Cours de P Courtellemont (Campus numeacuterique Espdon)
httppersouniv-lrfrpcourtelespadonsite_web
Applet de deacutemo par C G Jennings
httpcgjenningscatoyboxhjpegindexhtml
Cours de D Marshall (U Cardiff)
httpwwwcscfacukDaveMultimediaPDF
Reacutefeacuterences
Sami Gazzah 2009 239
Chapitre 9
introduction au
traitement
dimages avec OpenGL
Sami Gazzah 2009 240
OpenGL est une librairie graphique Elle a eacuteteacute creacutee par Silicon
Graphics et beacuteneacuteficie sur ces machines de lacceacuteleacuteration mateacuterielle
Elle est constitueacute d‟environ 200 fonctions graphiques
OpenGL est une bibliothegraveque de fonctions
Les fonctions sont de bas niveaux
La version actuelle est l‟ laquo OpenGL 41 raquo (deacutecembre 2010)
Principale caracteacuteristique indeacutependant du mateacuteriel et du systegraveme
d‟exploitation
Une impleacutementation libre de droits dOpenGL tregraves performante a eacuteteacute
eacutecrite par Brian Paul httpwwwmesa3dorg Et tout son code source
est accessible
Preacutesentation geacuteneacuterale
15122010
41
Sami Gazzah 2009 241
OpenGL propose des fonctions de bas niveaux
Primitives geacuteomeacutetriques points segments polygones
Les fonctions de haut niveaux sont deacuteveloppeacutees par l‟utilisateur ou
importeacutees par la librairie en amont d‟OpenGL
Primitives geacuteomeacutetriques complexes Sphegravere splines etc
Toutes les commandes et fonctions utilisent le preacutefixe gl
Exemple glColor2f()
Sami Gazzah 2009 242
Les Bibliothegraveques co-existant avec OpenGL
GLU OpenGL Utility Library contient les routines de bas niveau pour
geacuterer les matrices de transformation et de projection la facettisation des
polygones et le rendu de surface Les bibliothegraveques dextension du
systegraveme de fenecirctres permettent lutilisation du rendu OpenGL Il sagit de
GLX pour X Windows (fonctions ayant pour preacutefixe glX) et de WGL
pour Microsoft Windows (fonctions ayant pour preacutefixe wgl)
GLUT OpenGL Utility Toolkit est une boite agrave outils indeacutependante du
systegraveme de fenecirctrage eacutecrite par Mark
Kilgard pour simplifier la tacircche dutiliser des systegravemes diffeacuterents (fonctions
ayant pour preacutefixe glut)
Sami Gazzah 2009 243
Les primitives geacuteomeacutetriques d rsquoOpenGL
Les primitives sont deacutecrites par un bloc d‟instructions deacutelimiteacute par glBegin et glEnd
Ce bloc contient geacuteneacuteralement une liste de vertex Exemple
glBegin(GL_LINE_LOOP)
glVertex2f(-05 -05)
glVertex2f(05 -05)
glVertex2f(05 05)
glVertex2f(-05 05)
glEnd()
D‟autres attributs peuvent ecirctre speacutecifieacutes en chaque sommet
couleur normale coordonneacutee de texture etcSami Gazzah 2009 244
OpenGL est une machine agrave eacutetats
En modifiant les variables d‟eacutetats on peut changer le style de rendu
Sami Gazzah 2009 245
Exemple Honda Hippo (3dRendercom)
Placage de textures
bullL‟apparence et le toucher ( feel ) d‟une surface
bullUne image utiliseacutee pour deacutefinir les caracteacuteristiques d‟une surface
bullUne image multi-dimensionnelle qui est plaqueacutee sur un espace multi-
dimensionnel
Sami Gazzah 2009 246
15122010
42
Sami Gazzah 2009 247
Reacutefeacuterences openGL
Sami Gazzah 2009 248
Chapitre 10
introduction au
traitement
dimages avec OpenCV
Sami Gazzah 2009 249
Preacutesentation geacuteneacuterale
Quest-ce
Open Source Computer Vision Library
Bibliothegraveque open source de traitement des images numeacuteriques
Projet initieacute par Intel (en 1999)
Teacuteleacutechargeable sur httpsourceforgenetprojectsopencvlibrary
Fortement orienteacutee temps reacuteel
eacutecrite en C et C++
optimiseacutee pour les processeurs multi-cœurs
Multi-plateformes disponible pour Linux Windows et Mac OS X
Que contient-elle
Des fonctionnaliteacutes (structures et routines gt350 algos) de base et
avanceacutees pour bacirctir rapidement des applications autour de la vision par
ordinateur
Exemples dutilisation traitements de bas niveau (filtrage ) deacutetection
de visages reconnaissance et suivi dobjets en mouvement Sami Gazzah 2009 250
Fonctionnaliteacutes
Lectureeacutecriture dimages statiques et de seacutequences videacuteo
APIs de bas et moyen niveaux
Traitement des images binaires
Manipulations dimage (eacutechantillonnage (sampling) reacutegion dinteacuterecirct (ROI)
redimensionnement (resizing) rotation deacuteformation (warping) )
Deacutetection de contours de lignes de coins (edge detection)
Traitements multi-eacutechelles (multiscale processing)
Transformeacutees (Fourier cosinus discregravete )
Modules de haut niveau
Deacutetection reconnaissance et suivi (tracking) de visages
Flot optique (estimation du mouvement) (optical flow)
Calibrage (calibration) de la cameacutera
Mise en correspondance steacutereacuteoscopique (stereo matching)
IA et apprentissage par ordinateur (machine learning)
3D mise en correspondance (registration)
Sami Gazzah 2009 251
Modules principaux
CxCore
Types de base pour manip dimages (ex struct image point isin cxtypesh)
Structures dynamiques (listes files graphes arbres) et persistantes (LE)
Manipulations de matrices meacutethodes de lalgegravebre lineacuteaire et statistiques
Dessin en surimpression (overlay) (ex eacutetiquetage)
Cv
Traitement dimage calibrage cameacutera
Geacuteomeacutetrie algorithmique (triangulation )
Cvaux
Reconnaissance de visage
Code expeacuterimental et obsolegravete
Autres (dans otherlibs)
HighGUI ES videacuteos curseurs fenecirctrage
ML classification regroupement (clustering)Sami Gazzah 2009 252
OpenCV premiers programmesBibliothegraveque OpenCV
15122010
43
Sami Gazzah 2009 253
Livre
G Bradski amp A Kaehler laquo Learning OpenCV raquo OReilly Press (2008)
codes sources httpexamplesoreillycom9780596516130
Ressources en ligne
Reacutefeacuterence complegravete httpopencvwillowgaragecomdocumentation
Wiki httpopencvwillowgaragecomwikiFullOpenCVWiki
bullPreacutesentation teacuteleacutechargement installation
bullavec CodeBlocks httpopencvwillowgaragecomwikiCodeBlocks
bullDeacutebuter avec OpenCV FAQ
Tutoriels
httpnchcdlsourceforgenetsourceforgeopencvlibraryippocvpdf
httpdaslmemdrexeledu~noahKuntzopenCVTut1html agrave Tut11html
httpwwwcognoticscomopencvservo_2007_series
Tutoriel sur la vision utilisant OpenCV (en franccedilais)
httpwwwsiteduzerocomtutoriel-3-8631-vision-par-ordinateurhtml
Reacutefeacuterences openCV
15122010
19
Modification de lrsquohistogrammeModification de lrsquohistogramme
On appelle dynamique des niveaux de gris lintervalle [nminnmax] de
niveaux de gris dans lequel sont compris tous les pixels de limage
Le but de la modification dhistogramme modifier chaque niveau de
gris pour accroicirctre le contraste On modeacutelise cette transformation par
leacutequation Irsquo(ij) = g(I(ij)) ougrave g est la fonction de contraste
Chaque transformation sera deacutecrite par une courbe repreacutesentant la
relation entre un niveau de gris de limage de deacutepart (abscisse) et le
niveau qui lui correspond dans limage ameacutelioreacutee (ordonneacutee)
Sami Gazzah 2009 109
Masquage de zones Masquage de zones Extraction d‟une Extraction d‟une
fenecirctre d‟intensiteacutefenecirctre d‟intensiteacute ((slicingslicing intensiteacute)intensiteacute)
Cette transformation consiste agrave remplacer un intervalle de niveaux
de gris par du blanc (nmax) par du noir (nmin) ou par une valeur
intermeacutediaire du niveau de gris
Sami Gazzah 2009 110
Courbes repreacutesentant de gauche agrave droite lextraction dune fenecirctre dintensiteacute et le masquage blanc et noir de lintervalle [ab]
n-1
n-1
0 n-1
n-1
0a ab b n-1
n-1
0 a b
Sami Gazzah 2009 111
Exemples de Masquage de zonesInversion de la dynamiqueInversion de la dynamique
But produire le neacutegatif d‟une image
donneacutee
Sami Gazzah 2009 112
Sami Gazzah 2009 113
Etirement drsquohistogramme
Sami Gazzah 2009 114
Etirement drsquohistogramme
Augmentation du contraste par eacutetirement d‟histogramme
15122010
20
Sami Gazzah 2009 115
Eacutegalisation dhistogramme
But ameacutelioration du contraste
Distribution uniforme des niveaux de gris
Elle se deacutefinit agrave laide de lhistogramme cumuleacute de limage hc(n)
qui repreacutesente le nombre de pixels de limage dont le niveau de
gris est infeacuterieur ou eacutegal agrave n
Deacutefinition de la transformation deacutegalisation dhistogramme soit
I le niveau de gris dun pixel de deacutepart le niveau de gris de limage
darriveacutee I‟ sera
Sami Gazzah 2009 116
Sami Gazzah 2009 117
Effet de lrsquoeacutegalisation drsquohistogramme
Sami Gazzah 2009 118
Augmentation du contraste exemples et comparaison
Original Eacutetirement d‟histogramme Eacutegalisation
Le rehaussement du contraste est plus marqueacute avec l‟eacutegalisation
d‟histogramme autorisant la deacutetection de structures situeacutees dans
l‟ombre
Sami Gazzah 2009 119
Chapitre 5
SEGMENTATION DrsquoIMAGES
Sami Gazzah 2009 120
Une image est geacuteneacuteralement composeacutee d‟objets L‟analyse de cette
image neacutecessite l‟identification de ces objets
La segmentation dimages est lun des problegravemes phares du traitement
dimages Elle consiste agrave partitionner limages en un ensemble de
reacutegions connexes Linteacuterecirct de ces reacutegions est de pouvoir ecirctre
manipuleacutees ensuite via des traitements de haut niveau pour extraire
des caracteacuteristiques de forme de position de taille etc
Introduction
15122010
21
Sami Gazzah 2009 121 Sami Gazzah 2009 122
Meacutethodes statistiquesSegmentation par Histogrammes
Sami Gazzah 2009 123
Meacutethodes statistiquesSeacutelection Reacutecursive sur Histogrammes
Ohlander Price et Reddy (1978)
Sami Gazzah 2009 124
Segmentation par approche contourIntroduction
Le contour est deacutefini comme le lieu des points connexes qui
possegravedent une forte transition d‟intensiteacute lumineuse ou de texture Le
traitement qui vise agrave l‟obtenir est appeleacute extraction de contour on
parle aussi de deacutetection de contour
Le processus d‟extraction de contour peut ecirctre deacutecomposeacute en
plusieurs eacutetapes distinctes que nous allons les deacutetailler comme suit
- La mise en eacutevidence des contours
- L‟extraction des contours
- La fermeture des contours
Sami Gazzah 2009 125
Segmentation par approche contourLa mise en eacutevidence des contours
Elle s‟obtient par une diffeacuterentiation de l‟image et elle peut
s‟appliquer agrave des images binaires ou non le but de la deacutetection de
contours est d‟obtenir dans un premier temps une image binaire ougrave
chaque contour est d‟eacutepaisseur 1 et sans discontinuiteacute
rehausser le contour
suivre le contour
les points du contour correspondent au maximum en valeur absolue
de la deacuteriveacutee primaire de l‟image on obtient alors un gradient ou au
passage par zeacutero de la deacuteriveacutee seconde de l‟image on obtient alors
un laplacien
Sami Gazzah 2009 126
Segmentation par approche contourLa mise en eacutevidence des contours
La deacutetection de contours peut ecirctre reacutealiseacutee gracircce agrave des filtres
dont les coefficients ont eacuteteacute soigneusement choisis Nous
aborderons dans cette preacutesentation 3 filtres les filtres de
Prewitt Roberts et Sobel
Ce jeu de filtres (Prewitt Roberts et Sobel) est constitueacute d‟une
paire de filtres lineacuteaires qui deacutetectent le contours dans deux
directions orthogonales (vertical et horizontal)
15122010
22
Sami Gazzah 2009 127
Segmentation par approche contourFiltre de Perwitt
Les filtres de Perwitt sont les suivants
Filtre horizontal
Filtre vertical
111
000
111
h
101
101
101
v
Sami Gazzah 2009 128
Segmentation par approche contourFiltre de Perwitt
A partir d‟une image I on calcule Gh et Gv images
correspondant au filtrage de I par h et v Ces images
contiennent les contours horizontaux et verticaux
Si l‟on souhaite obtenir une image de contour unique ne tenant
pas compte de l‟orientation on calcule
Orientation du contour
Image binairehellipchoisir un seuil de deacutetection
22
vh GGG
)(vh
GGarctg
Sami Gazzah 2009 129
Segmentation par approche contourFiltre de Sobel
Les filtres de Sobel sont les suivants
Filtre horizontal
Filtre vertical
121
000
121
h
101
202
101
v
Sami Gazzah 2009 130
Segmentation par approche contourFiltre de Sobel
Sami Gazzah 2009 131
Segmentation par approche contourFiltre de Sobel
Sami Gazzah 2009 132
Segmentation par approche contourFiltre de Roberts
Les filtres de Roberts sont les suivants
Filtre diagonal
Filtre anti-diagonal
10
01h
01
10v
15122010
23
Sami Gazzah 2009 133
Segmentation par approche contourFiltre de Kirsch
Ce deacutetecteur utilise huit noyaux de convolution lui permettant de deacutetecter
des contours en fonction de huit directions agrave
15
335
305
335
1
d 15
333
305
355
2
d 15
333
303
555
3
d
15
333
503
553
4
d 15
533
503
533
5
d 15
555
503
333
6
d
15
555
303
333
7
d 15
355
305
333
8
d
Sami Gazzah 2009 134
Contours et Laplacien
Il s‟agit de calculer la deacuteriveacutee seconde de l‟image
Le Laplacien est tregraves sensible au bruit pour limiter l‟effet du bruit le
Laplacien est approximeacute par un masque qui effectue en mecircme temps
une opeacuteration de filtrage par une Gaussienne qui repreacutesente l‟eacutetape
de lissage de l‟image puis vient l‟application du laplacien Les masques
du Laplacien Gaussien sont preacutesenteacutes ci-apregraves
Segmentation par approche contour
Sami Gazzah 2009 135
Contours et Laplacien
Le contour est ensuite deacutetermineacute par la deacutetection des
passages par zeacutero du laplacien de l‟image
88888888888888
010
141
010
1h
111
101
111
2h
121
242
121
3h
Sami Gazzah 2009 136
Contours et Laplacien
Sami Gazzah 2009 137
Seuillage
Les filtres preacuteceacutedents nous fournissent des images des sauts ou
diffeacuterences d‟intensiteacute
Le seuillage permet d‟eacuteliminer des points en lesquels la diffeacuterence
d‟intensiteacute est tregraves faible
Le seuillage peut ecirctre pousser afin d‟obtenir une image binaire (TOR)
Le seuillage dans sa forme le plus simple ne tient pas compte de la
topologie et peut conserver un point bruiteacute isoleacute ou eacuteliminer une portion
de contour d‟intensiteacute faible
Sami Gazzah 2009 138
Seuillage par hysteacutereacutesis
c‟est une fonction agrave deux seuils un seuil bas et un seuil haut
Tout point dont le module de contour est au-dessus du seuil-haut est un
point de contour
Tout point dont le module de contour est au-dessous du seuil-bas n‟est
pas un point de contour
Les points de module entre le seuil-bas et le seuil-haut sont des points
de contour s‟il possegravede un point de contour dans leur voisinage
15122010
24
Sami Gazzah 2009 139
Seuillage par hysteacutereacutesis
seuil haut
Seuil bas
point sur contour
point hors contour
Seuillage par hysteacuterisais les points de lrsquoimage de contour de valeur
supeacuterieur au seuil haut sont des points de contours A partir de ces points de
contours le voisinage de la direction du contour sont examineacutes srsquoils sont de
valeur supeacuterieure au seuil bas ils sont ajouteacutes au points de contoursSami Gazzah 2009 140
Chapitre 6
Introduction aux
opeacuterateurs
morphomatheacutematique
Sami Gazzah 2009 141
1 Introduction
Les opeacuterateurs morphomatheacutematique (=Morphologie Matheacutematique)
permettent d‟ameacuteliorer les images de contours et apporter d‟autres
fonctionnaliteacutes
Ils ont eacuteteacute initialement appliqueacute sur des images NampB (Matheron et
Sarra1965) ensuite eacutetendus agrave des images en nivaux de gris par Doupherty
(1978)
Pour les appliquer sur des images couleurs on peut les appliquer
seacutepareacutement agrave chaque composante couleur et combiner les reacutesultats
Sami Gazzah 2009 142
Diffeacuterentes opeacuterations
eacuterosion dilatation
ouverture fermeture
Squelettisation
hellip
1 Introduction
Sami Gazzah 2009 143
1 Introduction
Dilatation
Ajouter un pixel sur les pourtours de la forme
boucher les trous
Erosion
Enlever un pixel sur les pourtours de la forme
les objets de taille infeacuterieure agrave celle de leacuteleacutement
structurant vont disparaicirctre
agrandit les trous
Sami Gazzah 2009144
1I Rappels sur les ensembles
L‟eacutegaliteacute
L‟inclusion
Lbdquointersection
L‟union
La diffeacuterence
La diffeacuterence symeacutetrique
La compleacutementariteacute E eacutetant un ensemble
servant de reacutefeacuterentielle
Dans ce qui suit les lettres majuscules deacutesignent des ensembles et les lettres
minuscules deacutesignent des eacuteleacutements appartenant aux ensembles
Sur les ensembles on deacutefinit les opeacuterations suivantes
15122010
25
Sami Gazzah 2009145
1I Rappels sur les ensembles
Sami Gazzah 2009146
1I Rappels sur les ensembles
Lois de De Morgan
Reacuteflexion La reacuteflexion d‟un ensemble A est deacutefinie par
Un ensemble symeacutetrique veacuterifiant ndashA=A C‟est le cas des cercles et des carreacute par
exemple
ccc YXYX )(
ccc YXYX )(
AaaA
A -A B -B
Sami Gazzah 2009147
1I Rappels sur les ensembles
Addition de Minkowski l‟addition d‟un eacuteleacutement x agrave un ensemble A par x est
deacutefinie par
Cette notion n‟est pas uniquement ensembliste elle nous oblige agrave deacutefinir un point
de reacutefeacuterence
On en deacuteduit l‟addition d‟un ensemble B agrave un ensemble A c‟est le reacutesultat de
l‟addition de chaque eacuteleacutement de B agrave A
L‟addition de Minkowski est commutative Elle est eacutegalement appeleacute dilatation
AaxaxAB
A
A
x
AxBxAaBaBbbABAC )()()(
le translateacute de X par b
Sami Gazzah 2009148
1I Rappels sur les ensembles
Eleacutement structurant les opeacuterations morphomatheacutematiques sont deacutefinis agrave
partir des ensemble B discrets appeleacute eacuteleacutement structurant Ces eacuteleacutement
permettent de deacutefinir le type de voisinage souhaiteacute
Addition de Minkowski d‟un ensemble A et d‟un ensemble B
BA
Sami Gazzah 2009149
1II Dilatation
Le reacutesultat de dilatation de lrsquoensemble A par lrsquoensemble B
est lrsquoaddition de Minkowski crsquoest lrsquoensemble des points tel
que lorsque B est centreacute sur un de ces points il y a une
intersection non vide entre A et B
Pour des images en niveaux de gris on obtient lrsquoimage
dilateacutee de la forme A en remplaccedilant tout pixel par le
maximum des intensiteacutes des voisins selon la forme B
Sami Gazzah 2009 150
1II Dilatation1 Image NampB
Soit k l‟eacuteleacutement structurant de taille (2k+1) x (2k+1) L‟algorithme de
dilatation est le suivant on parcourt tous les pixels de l‟image sauf les
bord de l‟image d‟eacutepaisseur k pour chaque pixel du fond rencontreacute s‟il
possegravede un voisin au sens de l‟eacuteleacutement structurant qui appartient agrave un
objet il prend le couleur de l‟objet si non il n‟est pas modifieacute
15122010
26
la dilatation (noteacutee ) drsquoune image monochrome laquo f raquo par un
eacuteleacutement structurant laquo B raquo est deacutefinie en terme de sous-graphe
bull f B = T [ Y ] = Supl l tel que (m n l) Y
bullY = U ( f ) U ( B )
En consideacuterant un eacuteleacutement structurant plan de valeur nulle sur son
support
( f B ) (P) = Max valeurs des pixels du voisinage du pixel P
1II Dilatation1 Image niveaux de gris
max
55 68 77 90 91 95 115 151 210
( f B ) (P) = 210
n
115 91 77
95 68 90
55 151 210
exemple
m
Image de reacutefeacuterence
Eacuteleacutement structurant
(8-connexiteacute)
liste ordonneacutee des valeurs du voisinage
- - -
-
-
-
-
-
1II Dilatation1 Image niveaux de gris
Exemples de filtrages morphologiques(eacuteleacutement structurant 33 complet)
Image de reacutefeacuterenceImage dilateacutee
morphologiquement
La dilatation en niveaux de gris accroicirct la luminance des
pixels entoureacutes de voisins plus lumineux
Observation
Sami Gazzah 2009154
VI Erosion
L‟eacuterosion est deacutefinie par
On deacutefinit la soustraction de Minkowski par
On a eacutequivalence entre eacuterosion et soustraction de Minkowski si B est
symeacutetrique (si B=-B)
D‟un point de vue binaire l‟eacuterode de A par B correspond agrave l‟ensemble
des points tels que si B est centre sur ce points B est entiegraverement inclus
dans A
AxBxBbbABAC )()(
)()( BbbABAC
Sami Gazzah 2009 155
VI Erosion1 Image NampB
on parcourt tous les pixels de l‟image sauf les bord de l‟image
d‟eacutepaisseur k pour chaque pixel du fond rencontreacute s‟il possegravede un
voisin au sens de l‟eacuteleacutement structurant qui appartient agrave un objet il
prend le couleur du fond si non il n‟est pas modifieacute
VI Eacuterosion drsquoune image en niveaux de gris
Lrsquoeacuterosion (noteacutee Ө ) drsquoune image monochrome laquo f raquo par un eacuteleacutement
structurant laquo B raquo est deacutefinie en terme de sous-graphe
bull f Ө B = T [ Y ] = Supl l tel que (m n l) Y
bullY = U ( f ) Ө U ( B )
Classiquement on considegravere un eacuteleacutement structurant plan de
valeur nulle sur son support
( f Ө B ) (P) = Min valeurs des pixels du voisinage du pixel P
15122010
27
VI Eacuterosion drsquoune image en niveaux de gris
min
68 90 91 95 151
( f Ө B ) (P) = 68
n
115 91 77
95 68 90
55 151 210
exemple
m
Image de reacutefeacuterence
ӨӨ
Eacuteleacutement structurant
(4-connexiteacute)
liste ordonneacutee des valeurs du voisinage
-
-
-
-
Exemples de filtrages morphologiques(eacuteleacutement structurant 33 complet)
Image eacuterodeacutee
Lrsquoeacuterosion en niveaux de gris reacuteduit la luminance des pixels
qui sont entoureacutes de voisins de moindre intensiteacute
Image de reacutefeacuterence
Observation
Sami Gazzah 2009 159
Eacuteleacutement structurant (a)
(4-connexiteacute)
-
-
-
-
Eacuteleacutement structurant (b)
(8-connexiteacute)
- - -
-
-
-
-
-
Exercice 1 Sur la mecircme image de deacutepart on reacutealise deux opeacuterations
de dilatations avec deux eacuteleacutements structurant diffeacuterents
Dilatation avec (a) Dilatation avec (b)
image de deacutepart
cas a L‟eacuteleacutement structurant est agrave 4-connexiteacute Chaque pixel
du support qui est eacutegal agrave la valeur 1 ou qui a l‟un de ses 4
voisins agrave la valeur 1 est mis agrave la valeur 1 apregraves filtrage
cas b L‟eacuteleacutement structurant est agrave 8-connexiteacute Chaque pixel
du support qui est eacutegal agrave la valeur 1 ou qui a l‟un de ses 8
voisins agrave la valeur 1 est mis agrave la valeur 1 apregraves filtrage
Dans les deux cas on observe qu‟une dilatation eacutelimine les
trous isoleacutes dans les objets et dilate le contour des objets en
tenant compte de l‟eacuteleacutement structurant
Sami Gazzah 2009 160
Exercice 1
Sami Gazzah 2009 161
Eacuteleacutement structurant (a)
(4-connexiteacute)
-
-
-
-
Eacuteleacutement structurant (b)
(8-connexiteacute)
- - -
-
-
-
-
-
Exercice 2 Sur la mecircme image de deacutepart on reacutealise deux opeacuterations
d‟eacuterosions avec deux eacuteleacutements structurant diffeacuterents
Erosion avec (a) Erosion avec (b)
image de deacutepart
cas a L‟eacuteleacutement structurant est agrave 4-connexiteacute (origine agrave 4 voisins)
Chaque pixel du support qui a la valeur 0 ou qui a l‟un de ses 4
voisins agrave la valeur 0 est mis agrave la valeur 0 apregraves filtrage
cas b L‟eacuteleacutement structurant est agrave 8-connexiteacute Chaque pixel du
support qui a la valeur 0 ou qui a l‟un de ses 8 voisins agrave la valeur 0
est mis agrave la valeur 0 apregraves filtrage
Dans les deux cas on observe qu‟une eacuterosion eacutelimine les pixels
isoleacutes sur le fond et eacuterode le contour des objets
Sami Gazzah 2009 162
Exercice 2
15122010
28
ConclusionsConclusions
Erosion
les objets relieacutes entre eux vont ecirctre seacutepareacutes
Une eacuterosion de taille n peut se reacutealiser en reacutepeacutetant une
eacuterosion n fois avec un eacuteleacutement structurant de taille 1 ou en
appliquant une seule eacuterosion avec un eacuteleacutement structurant
de taille n
Dilatation
des objets sont situeacutes agrave une distance moins grande que la taille
de leacuteleacutement structurant il vont fusionner
Sami Gazzah 2009 163 Sami Gazzah 2009 164
Sami Gazzah 2009 165
Elimine pixels isoleacutes sans inteacuterecirct
L‟ouverture (opening) consiste agrave une eacuterosion suivi d‟une dilatation
Les petites structures et deacutetail fins disparaissent et ne sont pas recreacuteeacutees
lors de la dilation Une opeacuteration d‟ouverture est ainsi inteacuteressante pour
eacuteliminer les petits morceaux de contours bruiteacutes dans une image de
contours
V Ouverture et fermeture1 Ouverture
BBABAC )(
Sami Gazzah 2009 166
V Ouverture et fermetureII Fermeture
La fermeture (closing) consiste agrave une dilatation suivi d‟une eacuterosion
Les structures proches fusionnent lors de la dilation mais seules les
fusions ponctuelles disparaissent agrave nouveau lors de l‟eacuterosion Une
opeacuteration de fermeture est ainsi inteacuteressante pour boucher les petits
trous
Sami Gazzah 2009 167 Sami Gazzah 2009 168
Exercice 3 Sur l‟image de deacutepart on reacutealise une opeacuteration de
fermeture binaire par l‟eacuteleacutement structurant 4-connexiteacute Conclusions
Eacuteleacutement structurant
(4-connexiteacute)
-
-
-
-Fermeture = dilatation puis eacuterosion
Image de deacutepart Image dilateacutee Image dilateacutee puis eacuterodeacutee
Combler les trous
Reacutetablir les jonctions
tout en preacuteservant la taille
15122010
29
Sami Gazzah 2009 169
Exercice 4 Sur l‟image de deacutepart on reacutealise une opeacuteration
d‟ouverture binaire par l‟eacuteleacutement structurant 4-connexiteacute Conclusions
Eacuteleacutement structurant
(4-connexiteacute)
-
-
-
-Ouverture = eacuterosion puis dilatation
Image de deacutepart Image eacuterodeacutee Image eacuterodeacutee puis dilateacutee
Supprimer les fausses alarmes
Seacuteparer les objets accoleacutes
tout en preacuteservant la tailleSami Gazzah 2009 170
Appliquer les filtres suivants sur limage donneacutee Quelles sont les valeurs choisies
aux bords de limage et quelles sont les modifications visuelles
a) filtre moyenneur M3acute3(19)
b) eacuterosion
c) dilatation
d) meacutedian
e) fermeture
f) ouverture
Exercice 5
Sami Gazzah 2009 171
IV Amincissement et Squelettisation
La squelette (skeleton) d‟une forme est l‟axe meacutedian L‟inteacuterecirct de cette
opeacuteration est dans
La reconnaissance de caractegraveres
Deacutetection des reacuteseaux routiers
La planification de trajectoirehellip
Une meacutethode couramment employeacutee est une amincissement reacutepeacuteteacute
jusqu‟agrave le convergence (n‟apporte aucune modification)
Sami Gazzah 2009 172
IV Amincissement et Squelettisation1 Opeacuteration Tout Ou Rien laquoHit or Missraquo
Cette transformation est deacutefinie par
leacuteleacutement structurant eacutetendu est centreacute sur chaque pixel de limage
comme pour les opeacuterations ensemblistes
la question poseacutee est est ce que le contenu de limage est identique au
contenu de leacuteleacutement structurant
si la reacuteponse est oui le pixel reacutesultant vaut 1 si non il vaut 0
Une application permet de deacutetecter des configurations locales
particuliegraveres dans une image
plusieurs masques peuvent ecirctre utiliseacutes indeacutependamment les images
reacutesultat eacutetant ensuite combineacutees par une opeacuteration ou
)()( cc BABABA
Bc-
est le compleacutementaire
local de B
Sami Gazzah 2009 173
IV Amincissement et Squelettisation1 Opeacuteration laquoHit or Missraquo
Exemple dopeacuteration Hit or Miss deacutetection des coinsSami Gazzah 2009 174
IV Amincissement et Squelettisation1 Amincissement (thinning)
bull La transformation TOR nous permet eacutegalement de deacutefinir
l‟amincissement
bullL‟amincissement consiste agrave soustraire limage reacutesultat dun hit or miss de
limage initiale
bull des amincissements successifs conduisent au squelettisation
)()( BAAAthin
15122010
30
Sami Gazzah 2009 175
IV Amincissement et Squelettisation1I Squelettisation
Appliquer des amincissements successifs puis s‟arrecircter lorsque l‟amincissement
n‟apporte plus de modification C‟est une eacuterosion particuliegravere ougrave les pixels sont
supprimeacutes agrave la condition quils ne provoquent pas la seacuteparation dune reacutegion en
deux
Sami Gazzah 2009 176
IV Amincissement et Squelettisation1I Squelettisation
Sami Gazzah 2009 177
Chapitre 7
Transformations
geacuteomeacutetriques 2D
Sami Gazzah 2009 178
I Introduction
On entend par transformation 2D l‟ensemble des transformations du
plan pouvant ecirctre appliqueacutees aux pixels de l‟image sans consideacuteration
de l‟intensiteacute
Par exemples
Reacuteduction agrandissement
Deacuteformation d‟image
Recalage d‟une photo scanneacutee
Recaler des images que l‟on veut comparer
Mosaiumlque d‟images
Sami Gazzah 2009 179
I Transformations euclidiennes
Elles preacuteservent les distances et les angles
Elles sont les compositions de translations et de rotations
1) Translation
Ougrave Tx et Ty sont les deacuteplacements en x et en y de la translation
y
x
Tyy
Txx
Sami Gazzah 2009 180
2) Rotation
15122010
31
Sami Gazzah 2009 181 Sami Gazzah 2009 182
3) Remarques (1)
Sami Gazzah 2009 183
3) Remarques (2)
Sami Gazzah 2009 184
II Homotheacuteties
Changement deacutechelle par rapport agrave lorigine (scaling zoom)
Ougrave Sx et Sy sont les facteurs dagrandissement ( gt1) ou de
reacuteduction ( lt1) en x et en y
ySy
xSx
y
x
Sami Gazzah 2009 185
II Homotheacuteties
Sami Gazzah 2009 186
II Homotheacuteties
15122010
32
Sami Gazzah 2009 187
III Reacuteflexions
Reacuteflexions par rapport aux axes (flip miroir)
Sami Gazzah 2009 188
IV Cisaillement
Cisaillement (glissement shearing) on eacutetire suivant un ou plusieurs axes
Sami Gazzah 2009 189
Transformations inverses
Sami Gazzah 2009 190
Repreacutesentation Matricielle
IV Autres (reacuteflexions miroirs et flips)
Sami Gazzah 2009 191
Interpolation Directe
Sami Gazzah 2009 192
oDifficile de distribuer le niveau de gris sur les pixels voisins
oOn n‟a pas la certitude que tous les pixels de l‟image
transformeacutee recevront une valeur =gt ldquotrousrdquo
15122010
33
Interpolation Inverse
Sami Gazzah 2009 193
o Interpolation de la valeur du pixel agrave partir des voisins plus
facile
oAucun ldquotrourdquo car on parcourt tous les pixels de l‟image
transformeacutee Sami Gazzah 2009 194
V Objet vectoriel - Objet bitmap
Objet vectoriel
Essentiellement on transforme
les sommets (ou points de
controcircle) et on retracehellip
Objet ldquobitmaprdquo
On doit calculer la nouvelle
position de chaque pixel De plus on
doit geacuteneacuteralement interpoler les
niveaux de gris (couleurs)hellip
Sami Gazzah 2009 195
IV Assignation des niveaux de gris
Neacutecessaire car la position d‟un pixel transformeacute n‟est pas entiegraverehellip
Plusieurs meacutethodes
Interpolation au plus proche voisin
Interpolation bilineacuteaire
Interpolation bicubique
Autres types d‟interpolation
Sami Gazzah 2009 196
IV Assignation des niveaux de gris
Linterpolation de limage cest ce qui arrive lorsquon redimensionne
une image numeacuterique ou quon la redimensionne avec une distorsion
quon change la perspective etc
Exemple 1
Image originale (sans interpolation)
Image agrandie et donc interpoleacutee
Perte de netteteacute due agrave linterpolation
Sami Gazzah 2009
197
IV Assignation des niveaux de gris
Exemple 2 recadrage dimage
Nous allons agrandir cette image agrave 180
Il va donc nous manquer des informations lagrave ougrave lon va creacuteer des
pixels pour agrandir limage
Reacutesultat sans interpolation le logiciel agrandit simplement les pixels
Reacutesultat avec interpolation le logiciel calcule une couleur intermeacutediaire
pour chaque nouveau pixel
Sami Gazzah 2009
198
IV Assignation des niveaux de gris
Image originale
Interpolation au plus
proche voisin
Interpolation
bilineacuteaireInterpolation
bicubique
15122010
34
Sami Gazzah 2009 199
IIV Interpolation au plus proche voisin
Cest lalgorithme le plus rapide agrave calculer
Prend en compte dans le calcul que le pixel le plus proche du point
agrave interpoler
Consiste tout simplement agrave agrandir chaque pixel
Exemple Interpolation du plus proche voisin par copie des pixels
Copie de chaque colonne et de chaque rang
23 20
25 28
23 23
23 23
20 20
20 20
25 25
25 25
28 28
28 28
Sami Gazzah 2009 200
IIV Interpolation bilineacuteaire
Fonction bilineacuteaire de 4 pixels voisins ( en 2 D )
i-1 i i+1
i-1 i-12 i i+12 i+1 i+32
yi=xiYi+12=(xi+xi+1)2
Problegraveme pour le dernier point
Extrapolation lineacuteaire de
2 xn-xn-1
Principe 1D
attribuer agrave chaque point cible une
combinaison lineacuteaire des quatre
points sources les plus proches par
la transformation inverse
Sami Gazzah 2009 201
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 202
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 203 Sami Gazzah 2009 204
IIV Interpolation bilineacuteaire
15122010
35
Sami Gazzah 2009 205
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 206
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 207
IIV Interpolation bilineacuteaire exemple
Sami Gazzah 2009 208
IIV Interpolation bicubique
Sami Gazzah 2009 209
exemple
Sami Gazzah 2009 210
Chapitre 8
Geacuteneacuteration de segments de
droite et de cercles en 2D
15122010
36
Sami Gazzah 2009 211
Infographie 2D besoin de dessiner des primitives de
base (segments cercles hellip)
Espace discreacutetiseacute (pixels) il faut trouver un moyen pour
afficher des segments ou des cercles
I Segments 2D cercles1 Introduction
Comment trouver les pixels agrave allumer pour approximer au mieux une
droite ou un cercle
Algorithme rapide et preacutecisSami Gazzah 2009 212
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=ax+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ya
Sami Gazzah 2009 213
Rappelhellip
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=mx+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ym
Sami Gazzah 2009 214
Exemple
Sami Gazzah 2009 215
Agrave partir des coordonneacutees des 2 extreacutemiteacutes d‟un segmenthellip
Un algorithme simple
Boucle de x1 agrave x2 dx=1
ALLUME (x Arrondir(y))
Avec x2gtx1
Arrondir(y) = Arrondir(ax+b)
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Sami Gazzah 2009 216
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Choix de lrsquoaxehellip
Peu efficace
bullagrave chaque iteacuteration 1 multiplication (ou division) + 1 addition
+ 1 arrondi
15122010
37
Sami Gazzah 2009 217
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
DDA (Digital Differential Analyzer)
y et m doivent ecirctre des reacuteelsSami Gazzah 2009 218
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Calcul en entier (donc plus rapide)
Baseacute sur le choix entre deux points discrets deacutependant de leur
distance respective avec le point reacuteel ideacuteal
On simplifie le problegraveme en traitant drsquoabord le traceacute drsquoun segment
dans le 1er octant m infeacuterieur agrave1 et positif (0ltmlt 1)
Facilement geacuteneacuteralisable aux autres octants
Sami Gazzah 2009 219
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Traceacute d‟un segment dans le premier octant mlt1
On part d‟un point (xi yi) allumeacute
Sami Gazzah 2009 220
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
On ne calcule pas reacuteellement les distances rArr on veacuterifie si la diffeacuterence
entre les deux distances est positive ou neacutegative
Le signe de la longueur (d1-d2) deacutetermine s‟il faut allumer le pixel L ou H
L
H
Sami Gazzah 2009 221
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Comme m=ΔyΔx on multiplie cette diffeacuterence par Δx pour eacuteviter la
division
Mais que vaut p1
Sami Gazzah 2009 222
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
15122010
38
Sami Gazzah 2009 223
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Pour eacuteviter de calculer cette diffeacuterence pour chaque point on cherche
une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
Sami Gazzah 2009 224
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009 225
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009
Exercice
Tracer le segment de droite
pi xi yi
2 0 0
-6 1 1
6 2 1
-2 3 2
10 4 2
2 5 3
-6 6 4
6 7 4
-2 8 5
10 9 5
2 10 6
6
10
y
x
Sami Gazzah 2009 227
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
Sami Gazzah 2009 228
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
hellip interchanger les points hellip
Si |Δx| lt | Δy| on interchange le rocircle de x et y
15122010
39
Sami Gazzah 2009 229
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (1)
Sami Gazzah 2009 230
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (2)
Sami Gazzah 2009 231
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (3)
Sami Gazzah 2009 232
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Toujours baseacute sur le choix entre deux
points discrets deacutependant de leur
distance respective avec le point reacuteel
On travaille dans le 2e octant agrave partir
de (0r) ainsi pour un point (xi yi) le
prochain point sera
(xi+1 yi) ou (xi+1 yi-1)
Sami Gazzah 2009 233
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On calcule le prochain y et les diffeacuterences respectives avec les points
discrets de la faccedilon suivante
Le signe de pi nous dira si nous devons choisir le point lateacuteral ou le diagonal
Sami Gazzah 2009 234
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Encore une fois pour eacuteviter de calculer cette diffeacuterence pour chaque point on
cherche une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
15122010
40
Sami Gazzah 2009 235
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On considegravere 2 cas
Valeur initiale
Sami Gazzah 2009 236
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Sami Gazzah 2009 237
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Exemple centre = (00) et r = 3
Sami Gazzah 2009 238
Livres
Diane Lingrand Introduction au Traitement d‟Images Paris Editions Vuibert 2e
eacutedition 2008
Steven k Feiner James D Foley John F Hughes Richard l Phillips Andries
Vanam Introduction agrave l‟infographie Paris Editions Vuibert 2000
William K Pratt Digital Image Processing Willy-Inter-sciences 4th edition 2007
Eacuteric Incerti Compression dimage ndash Algorithmes et standards Vuibert 2003
Gilles Burel Introduction au traitement dimages ndash Simulation sous Matlab
Hermegraves 2001
Sites web
Cours de C Rougier (U Montreacuteal)
httpwww-etudiroumontrealca~rougiercift2730courshtml (cf chapitre 3)
Page wikipeacutedia sur JPEG (en anglais plus complegravete que celle en franccedilais)
httpenwikipediaorgwikiJPEG
Cours de P Courtellemont (Campus numeacuterique Espdon)
httppersouniv-lrfrpcourtelespadonsite_web
Applet de deacutemo par C G Jennings
httpcgjenningscatoyboxhjpegindexhtml
Cours de D Marshall (U Cardiff)
httpwwwcscfacukDaveMultimediaPDF
Reacutefeacuterences
Sami Gazzah 2009 239
Chapitre 9
introduction au
traitement
dimages avec OpenGL
Sami Gazzah 2009 240
OpenGL est une librairie graphique Elle a eacuteteacute creacutee par Silicon
Graphics et beacuteneacuteficie sur ces machines de lacceacuteleacuteration mateacuterielle
Elle est constitueacute d‟environ 200 fonctions graphiques
OpenGL est une bibliothegraveque de fonctions
Les fonctions sont de bas niveaux
La version actuelle est l‟ laquo OpenGL 41 raquo (deacutecembre 2010)
Principale caracteacuteristique indeacutependant du mateacuteriel et du systegraveme
d‟exploitation
Une impleacutementation libre de droits dOpenGL tregraves performante a eacuteteacute
eacutecrite par Brian Paul httpwwwmesa3dorg Et tout son code source
est accessible
Preacutesentation geacuteneacuterale
15122010
41
Sami Gazzah 2009 241
OpenGL propose des fonctions de bas niveaux
Primitives geacuteomeacutetriques points segments polygones
Les fonctions de haut niveaux sont deacuteveloppeacutees par l‟utilisateur ou
importeacutees par la librairie en amont d‟OpenGL
Primitives geacuteomeacutetriques complexes Sphegravere splines etc
Toutes les commandes et fonctions utilisent le preacutefixe gl
Exemple glColor2f()
Sami Gazzah 2009 242
Les Bibliothegraveques co-existant avec OpenGL
GLU OpenGL Utility Library contient les routines de bas niveau pour
geacuterer les matrices de transformation et de projection la facettisation des
polygones et le rendu de surface Les bibliothegraveques dextension du
systegraveme de fenecirctres permettent lutilisation du rendu OpenGL Il sagit de
GLX pour X Windows (fonctions ayant pour preacutefixe glX) et de WGL
pour Microsoft Windows (fonctions ayant pour preacutefixe wgl)
GLUT OpenGL Utility Toolkit est une boite agrave outils indeacutependante du
systegraveme de fenecirctrage eacutecrite par Mark
Kilgard pour simplifier la tacircche dutiliser des systegravemes diffeacuterents (fonctions
ayant pour preacutefixe glut)
Sami Gazzah 2009 243
Les primitives geacuteomeacutetriques d rsquoOpenGL
Les primitives sont deacutecrites par un bloc d‟instructions deacutelimiteacute par glBegin et glEnd
Ce bloc contient geacuteneacuteralement une liste de vertex Exemple
glBegin(GL_LINE_LOOP)
glVertex2f(-05 -05)
glVertex2f(05 -05)
glVertex2f(05 05)
glVertex2f(-05 05)
glEnd()
D‟autres attributs peuvent ecirctre speacutecifieacutes en chaque sommet
couleur normale coordonneacutee de texture etcSami Gazzah 2009 244
OpenGL est une machine agrave eacutetats
En modifiant les variables d‟eacutetats on peut changer le style de rendu
Sami Gazzah 2009 245
Exemple Honda Hippo (3dRendercom)
Placage de textures
bullL‟apparence et le toucher ( feel ) d‟une surface
bullUne image utiliseacutee pour deacutefinir les caracteacuteristiques d‟une surface
bullUne image multi-dimensionnelle qui est plaqueacutee sur un espace multi-
dimensionnel
Sami Gazzah 2009 246
15122010
42
Sami Gazzah 2009 247
Reacutefeacuterences openGL
Sami Gazzah 2009 248
Chapitre 10
introduction au
traitement
dimages avec OpenCV
Sami Gazzah 2009 249
Preacutesentation geacuteneacuterale
Quest-ce
Open Source Computer Vision Library
Bibliothegraveque open source de traitement des images numeacuteriques
Projet initieacute par Intel (en 1999)
Teacuteleacutechargeable sur httpsourceforgenetprojectsopencvlibrary
Fortement orienteacutee temps reacuteel
eacutecrite en C et C++
optimiseacutee pour les processeurs multi-cœurs
Multi-plateformes disponible pour Linux Windows et Mac OS X
Que contient-elle
Des fonctionnaliteacutes (structures et routines gt350 algos) de base et
avanceacutees pour bacirctir rapidement des applications autour de la vision par
ordinateur
Exemples dutilisation traitements de bas niveau (filtrage ) deacutetection
de visages reconnaissance et suivi dobjets en mouvement Sami Gazzah 2009 250
Fonctionnaliteacutes
Lectureeacutecriture dimages statiques et de seacutequences videacuteo
APIs de bas et moyen niveaux
Traitement des images binaires
Manipulations dimage (eacutechantillonnage (sampling) reacutegion dinteacuterecirct (ROI)
redimensionnement (resizing) rotation deacuteformation (warping) )
Deacutetection de contours de lignes de coins (edge detection)
Traitements multi-eacutechelles (multiscale processing)
Transformeacutees (Fourier cosinus discregravete )
Modules de haut niveau
Deacutetection reconnaissance et suivi (tracking) de visages
Flot optique (estimation du mouvement) (optical flow)
Calibrage (calibration) de la cameacutera
Mise en correspondance steacutereacuteoscopique (stereo matching)
IA et apprentissage par ordinateur (machine learning)
3D mise en correspondance (registration)
Sami Gazzah 2009 251
Modules principaux
CxCore
Types de base pour manip dimages (ex struct image point isin cxtypesh)
Structures dynamiques (listes files graphes arbres) et persistantes (LE)
Manipulations de matrices meacutethodes de lalgegravebre lineacuteaire et statistiques
Dessin en surimpression (overlay) (ex eacutetiquetage)
Cv
Traitement dimage calibrage cameacutera
Geacuteomeacutetrie algorithmique (triangulation )
Cvaux
Reconnaissance de visage
Code expeacuterimental et obsolegravete
Autres (dans otherlibs)
HighGUI ES videacuteos curseurs fenecirctrage
ML classification regroupement (clustering)Sami Gazzah 2009 252
OpenCV premiers programmesBibliothegraveque OpenCV
15122010
43
Sami Gazzah 2009 253
Livre
G Bradski amp A Kaehler laquo Learning OpenCV raquo OReilly Press (2008)
codes sources httpexamplesoreillycom9780596516130
Ressources en ligne
Reacutefeacuterence complegravete httpopencvwillowgaragecomdocumentation
Wiki httpopencvwillowgaragecomwikiFullOpenCVWiki
bullPreacutesentation teacuteleacutechargement installation
bullavec CodeBlocks httpopencvwillowgaragecomwikiCodeBlocks
bullDeacutebuter avec OpenCV FAQ
Tutoriels
httpnchcdlsourceforgenetsourceforgeopencvlibraryippocvpdf
httpdaslmemdrexeledu~noahKuntzopenCVTut1html agrave Tut11html
httpwwwcognoticscomopencvservo_2007_series
Tutoriel sur la vision utilisant OpenCV (en franccedilais)
httpwwwsiteduzerocomtutoriel-3-8631-vision-par-ordinateurhtml
Reacutefeacuterences openCV
15122010
20
Sami Gazzah 2009 115
Eacutegalisation dhistogramme
But ameacutelioration du contraste
Distribution uniforme des niveaux de gris
Elle se deacutefinit agrave laide de lhistogramme cumuleacute de limage hc(n)
qui repreacutesente le nombre de pixels de limage dont le niveau de
gris est infeacuterieur ou eacutegal agrave n
Deacutefinition de la transformation deacutegalisation dhistogramme soit
I le niveau de gris dun pixel de deacutepart le niveau de gris de limage
darriveacutee I‟ sera
Sami Gazzah 2009 116
Sami Gazzah 2009 117
Effet de lrsquoeacutegalisation drsquohistogramme
Sami Gazzah 2009 118
Augmentation du contraste exemples et comparaison
Original Eacutetirement d‟histogramme Eacutegalisation
Le rehaussement du contraste est plus marqueacute avec l‟eacutegalisation
d‟histogramme autorisant la deacutetection de structures situeacutees dans
l‟ombre
Sami Gazzah 2009 119
Chapitre 5
SEGMENTATION DrsquoIMAGES
Sami Gazzah 2009 120
Une image est geacuteneacuteralement composeacutee d‟objets L‟analyse de cette
image neacutecessite l‟identification de ces objets
La segmentation dimages est lun des problegravemes phares du traitement
dimages Elle consiste agrave partitionner limages en un ensemble de
reacutegions connexes Linteacuterecirct de ces reacutegions est de pouvoir ecirctre
manipuleacutees ensuite via des traitements de haut niveau pour extraire
des caracteacuteristiques de forme de position de taille etc
Introduction
15122010
21
Sami Gazzah 2009 121 Sami Gazzah 2009 122
Meacutethodes statistiquesSegmentation par Histogrammes
Sami Gazzah 2009 123
Meacutethodes statistiquesSeacutelection Reacutecursive sur Histogrammes
Ohlander Price et Reddy (1978)
Sami Gazzah 2009 124
Segmentation par approche contourIntroduction
Le contour est deacutefini comme le lieu des points connexes qui
possegravedent une forte transition d‟intensiteacute lumineuse ou de texture Le
traitement qui vise agrave l‟obtenir est appeleacute extraction de contour on
parle aussi de deacutetection de contour
Le processus d‟extraction de contour peut ecirctre deacutecomposeacute en
plusieurs eacutetapes distinctes que nous allons les deacutetailler comme suit
- La mise en eacutevidence des contours
- L‟extraction des contours
- La fermeture des contours
Sami Gazzah 2009 125
Segmentation par approche contourLa mise en eacutevidence des contours
Elle s‟obtient par une diffeacuterentiation de l‟image et elle peut
s‟appliquer agrave des images binaires ou non le but de la deacutetection de
contours est d‟obtenir dans un premier temps une image binaire ougrave
chaque contour est d‟eacutepaisseur 1 et sans discontinuiteacute
rehausser le contour
suivre le contour
les points du contour correspondent au maximum en valeur absolue
de la deacuteriveacutee primaire de l‟image on obtient alors un gradient ou au
passage par zeacutero de la deacuteriveacutee seconde de l‟image on obtient alors
un laplacien
Sami Gazzah 2009 126
Segmentation par approche contourLa mise en eacutevidence des contours
La deacutetection de contours peut ecirctre reacutealiseacutee gracircce agrave des filtres
dont les coefficients ont eacuteteacute soigneusement choisis Nous
aborderons dans cette preacutesentation 3 filtres les filtres de
Prewitt Roberts et Sobel
Ce jeu de filtres (Prewitt Roberts et Sobel) est constitueacute d‟une
paire de filtres lineacuteaires qui deacutetectent le contours dans deux
directions orthogonales (vertical et horizontal)
15122010
22
Sami Gazzah 2009 127
Segmentation par approche contourFiltre de Perwitt
Les filtres de Perwitt sont les suivants
Filtre horizontal
Filtre vertical
111
000
111
h
101
101
101
v
Sami Gazzah 2009 128
Segmentation par approche contourFiltre de Perwitt
A partir d‟une image I on calcule Gh et Gv images
correspondant au filtrage de I par h et v Ces images
contiennent les contours horizontaux et verticaux
Si l‟on souhaite obtenir une image de contour unique ne tenant
pas compte de l‟orientation on calcule
Orientation du contour
Image binairehellipchoisir un seuil de deacutetection
22
vh GGG
)(vh
GGarctg
Sami Gazzah 2009 129
Segmentation par approche contourFiltre de Sobel
Les filtres de Sobel sont les suivants
Filtre horizontal
Filtre vertical
121
000
121
h
101
202
101
v
Sami Gazzah 2009 130
Segmentation par approche contourFiltre de Sobel
Sami Gazzah 2009 131
Segmentation par approche contourFiltre de Sobel
Sami Gazzah 2009 132
Segmentation par approche contourFiltre de Roberts
Les filtres de Roberts sont les suivants
Filtre diagonal
Filtre anti-diagonal
10
01h
01
10v
15122010
23
Sami Gazzah 2009 133
Segmentation par approche contourFiltre de Kirsch
Ce deacutetecteur utilise huit noyaux de convolution lui permettant de deacutetecter
des contours en fonction de huit directions agrave
15
335
305
335
1
d 15
333
305
355
2
d 15
333
303
555
3
d
15
333
503
553
4
d 15
533
503
533
5
d 15
555
503
333
6
d
15
555
303
333
7
d 15
355
305
333
8
d
Sami Gazzah 2009 134
Contours et Laplacien
Il s‟agit de calculer la deacuteriveacutee seconde de l‟image
Le Laplacien est tregraves sensible au bruit pour limiter l‟effet du bruit le
Laplacien est approximeacute par un masque qui effectue en mecircme temps
une opeacuteration de filtrage par une Gaussienne qui repreacutesente l‟eacutetape
de lissage de l‟image puis vient l‟application du laplacien Les masques
du Laplacien Gaussien sont preacutesenteacutes ci-apregraves
Segmentation par approche contour
Sami Gazzah 2009 135
Contours et Laplacien
Le contour est ensuite deacutetermineacute par la deacutetection des
passages par zeacutero du laplacien de l‟image
88888888888888
010
141
010
1h
111
101
111
2h
121
242
121
3h
Sami Gazzah 2009 136
Contours et Laplacien
Sami Gazzah 2009 137
Seuillage
Les filtres preacuteceacutedents nous fournissent des images des sauts ou
diffeacuterences d‟intensiteacute
Le seuillage permet d‟eacuteliminer des points en lesquels la diffeacuterence
d‟intensiteacute est tregraves faible
Le seuillage peut ecirctre pousser afin d‟obtenir une image binaire (TOR)
Le seuillage dans sa forme le plus simple ne tient pas compte de la
topologie et peut conserver un point bruiteacute isoleacute ou eacuteliminer une portion
de contour d‟intensiteacute faible
Sami Gazzah 2009 138
Seuillage par hysteacutereacutesis
c‟est une fonction agrave deux seuils un seuil bas et un seuil haut
Tout point dont le module de contour est au-dessus du seuil-haut est un
point de contour
Tout point dont le module de contour est au-dessous du seuil-bas n‟est
pas un point de contour
Les points de module entre le seuil-bas et le seuil-haut sont des points
de contour s‟il possegravede un point de contour dans leur voisinage
15122010
24
Sami Gazzah 2009 139
Seuillage par hysteacutereacutesis
seuil haut
Seuil bas
point sur contour
point hors contour
Seuillage par hysteacuterisais les points de lrsquoimage de contour de valeur
supeacuterieur au seuil haut sont des points de contours A partir de ces points de
contours le voisinage de la direction du contour sont examineacutes srsquoils sont de
valeur supeacuterieure au seuil bas ils sont ajouteacutes au points de contoursSami Gazzah 2009 140
Chapitre 6
Introduction aux
opeacuterateurs
morphomatheacutematique
Sami Gazzah 2009 141
1 Introduction
Les opeacuterateurs morphomatheacutematique (=Morphologie Matheacutematique)
permettent d‟ameacuteliorer les images de contours et apporter d‟autres
fonctionnaliteacutes
Ils ont eacuteteacute initialement appliqueacute sur des images NampB (Matheron et
Sarra1965) ensuite eacutetendus agrave des images en nivaux de gris par Doupherty
(1978)
Pour les appliquer sur des images couleurs on peut les appliquer
seacutepareacutement agrave chaque composante couleur et combiner les reacutesultats
Sami Gazzah 2009 142
Diffeacuterentes opeacuterations
eacuterosion dilatation
ouverture fermeture
Squelettisation
hellip
1 Introduction
Sami Gazzah 2009 143
1 Introduction
Dilatation
Ajouter un pixel sur les pourtours de la forme
boucher les trous
Erosion
Enlever un pixel sur les pourtours de la forme
les objets de taille infeacuterieure agrave celle de leacuteleacutement
structurant vont disparaicirctre
agrandit les trous
Sami Gazzah 2009144
1I Rappels sur les ensembles
L‟eacutegaliteacute
L‟inclusion
Lbdquointersection
L‟union
La diffeacuterence
La diffeacuterence symeacutetrique
La compleacutementariteacute E eacutetant un ensemble
servant de reacutefeacuterentielle
Dans ce qui suit les lettres majuscules deacutesignent des ensembles et les lettres
minuscules deacutesignent des eacuteleacutements appartenant aux ensembles
Sur les ensembles on deacutefinit les opeacuterations suivantes
15122010
25
Sami Gazzah 2009145
1I Rappels sur les ensembles
Sami Gazzah 2009146
1I Rappels sur les ensembles
Lois de De Morgan
Reacuteflexion La reacuteflexion d‟un ensemble A est deacutefinie par
Un ensemble symeacutetrique veacuterifiant ndashA=A C‟est le cas des cercles et des carreacute par
exemple
ccc YXYX )(
ccc YXYX )(
AaaA
A -A B -B
Sami Gazzah 2009147
1I Rappels sur les ensembles
Addition de Minkowski l‟addition d‟un eacuteleacutement x agrave un ensemble A par x est
deacutefinie par
Cette notion n‟est pas uniquement ensembliste elle nous oblige agrave deacutefinir un point
de reacutefeacuterence
On en deacuteduit l‟addition d‟un ensemble B agrave un ensemble A c‟est le reacutesultat de
l‟addition de chaque eacuteleacutement de B agrave A
L‟addition de Minkowski est commutative Elle est eacutegalement appeleacute dilatation
AaxaxAB
A
A
x
AxBxAaBaBbbABAC )()()(
le translateacute de X par b
Sami Gazzah 2009148
1I Rappels sur les ensembles
Eleacutement structurant les opeacuterations morphomatheacutematiques sont deacutefinis agrave
partir des ensemble B discrets appeleacute eacuteleacutement structurant Ces eacuteleacutement
permettent de deacutefinir le type de voisinage souhaiteacute
Addition de Minkowski d‟un ensemble A et d‟un ensemble B
BA
Sami Gazzah 2009149
1II Dilatation
Le reacutesultat de dilatation de lrsquoensemble A par lrsquoensemble B
est lrsquoaddition de Minkowski crsquoest lrsquoensemble des points tel
que lorsque B est centreacute sur un de ces points il y a une
intersection non vide entre A et B
Pour des images en niveaux de gris on obtient lrsquoimage
dilateacutee de la forme A en remplaccedilant tout pixel par le
maximum des intensiteacutes des voisins selon la forme B
Sami Gazzah 2009 150
1II Dilatation1 Image NampB
Soit k l‟eacuteleacutement structurant de taille (2k+1) x (2k+1) L‟algorithme de
dilatation est le suivant on parcourt tous les pixels de l‟image sauf les
bord de l‟image d‟eacutepaisseur k pour chaque pixel du fond rencontreacute s‟il
possegravede un voisin au sens de l‟eacuteleacutement structurant qui appartient agrave un
objet il prend le couleur de l‟objet si non il n‟est pas modifieacute
15122010
26
la dilatation (noteacutee ) drsquoune image monochrome laquo f raquo par un
eacuteleacutement structurant laquo B raquo est deacutefinie en terme de sous-graphe
bull f B = T [ Y ] = Supl l tel que (m n l) Y
bullY = U ( f ) U ( B )
En consideacuterant un eacuteleacutement structurant plan de valeur nulle sur son
support
( f B ) (P) = Max valeurs des pixels du voisinage du pixel P
1II Dilatation1 Image niveaux de gris
max
55 68 77 90 91 95 115 151 210
( f B ) (P) = 210
n
115 91 77
95 68 90
55 151 210
exemple
m
Image de reacutefeacuterence
Eacuteleacutement structurant
(8-connexiteacute)
liste ordonneacutee des valeurs du voisinage
- - -
-
-
-
-
-
1II Dilatation1 Image niveaux de gris
Exemples de filtrages morphologiques(eacuteleacutement structurant 33 complet)
Image de reacutefeacuterenceImage dilateacutee
morphologiquement
La dilatation en niveaux de gris accroicirct la luminance des
pixels entoureacutes de voisins plus lumineux
Observation
Sami Gazzah 2009154
VI Erosion
L‟eacuterosion est deacutefinie par
On deacutefinit la soustraction de Minkowski par
On a eacutequivalence entre eacuterosion et soustraction de Minkowski si B est
symeacutetrique (si B=-B)
D‟un point de vue binaire l‟eacuterode de A par B correspond agrave l‟ensemble
des points tels que si B est centre sur ce points B est entiegraverement inclus
dans A
AxBxBbbABAC )()(
)()( BbbABAC
Sami Gazzah 2009 155
VI Erosion1 Image NampB
on parcourt tous les pixels de l‟image sauf les bord de l‟image
d‟eacutepaisseur k pour chaque pixel du fond rencontreacute s‟il possegravede un
voisin au sens de l‟eacuteleacutement structurant qui appartient agrave un objet il
prend le couleur du fond si non il n‟est pas modifieacute
VI Eacuterosion drsquoune image en niveaux de gris
Lrsquoeacuterosion (noteacutee Ө ) drsquoune image monochrome laquo f raquo par un eacuteleacutement
structurant laquo B raquo est deacutefinie en terme de sous-graphe
bull f Ө B = T [ Y ] = Supl l tel que (m n l) Y
bullY = U ( f ) Ө U ( B )
Classiquement on considegravere un eacuteleacutement structurant plan de
valeur nulle sur son support
( f Ө B ) (P) = Min valeurs des pixels du voisinage du pixel P
15122010
27
VI Eacuterosion drsquoune image en niveaux de gris
min
68 90 91 95 151
( f Ө B ) (P) = 68
n
115 91 77
95 68 90
55 151 210
exemple
m
Image de reacutefeacuterence
ӨӨ
Eacuteleacutement structurant
(4-connexiteacute)
liste ordonneacutee des valeurs du voisinage
-
-
-
-
Exemples de filtrages morphologiques(eacuteleacutement structurant 33 complet)
Image eacuterodeacutee
Lrsquoeacuterosion en niveaux de gris reacuteduit la luminance des pixels
qui sont entoureacutes de voisins de moindre intensiteacute
Image de reacutefeacuterence
Observation
Sami Gazzah 2009 159
Eacuteleacutement structurant (a)
(4-connexiteacute)
-
-
-
-
Eacuteleacutement structurant (b)
(8-connexiteacute)
- - -
-
-
-
-
-
Exercice 1 Sur la mecircme image de deacutepart on reacutealise deux opeacuterations
de dilatations avec deux eacuteleacutements structurant diffeacuterents
Dilatation avec (a) Dilatation avec (b)
image de deacutepart
cas a L‟eacuteleacutement structurant est agrave 4-connexiteacute Chaque pixel
du support qui est eacutegal agrave la valeur 1 ou qui a l‟un de ses 4
voisins agrave la valeur 1 est mis agrave la valeur 1 apregraves filtrage
cas b L‟eacuteleacutement structurant est agrave 8-connexiteacute Chaque pixel
du support qui est eacutegal agrave la valeur 1 ou qui a l‟un de ses 8
voisins agrave la valeur 1 est mis agrave la valeur 1 apregraves filtrage
Dans les deux cas on observe qu‟une dilatation eacutelimine les
trous isoleacutes dans les objets et dilate le contour des objets en
tenant compte de l‟eacuteleacutement structurant
Sami Gazzah 2009 160
Exercice 1
Sami Gazzah 2009 161
Eacuteleacutement structurant (a)
(4-connexiteacute)
-
-
-
-
Eacuteleacutement structurant (b)
(8-connexiteacute)
- - -
-
-
-
-
-
Exercice 2 Sur la mecircme image de deacutepart on reacutealise deux opeacuterations
d‟eacuterosions avec deux eacuteleacutements structurant diffeacuterents
Erosion avec (a) Erosion avec (b)
image de deacutepart
cas a L‟eacuteleacutement structurant est agrave 4-connexiteacute (origine agrave 4 voisins)
Chaque pixel du support qui a la valeur 0 ou qui a l‟un de ses 4
voisins agrave la valeur 0 est mis agrave la valeur 0 apregraves filtrage
cas b L‟eacuteleacutement structurant est agrave 8-connexiteacute Chaque pixel du
support qui a la valeur 0 ou qui a l‟un de ses 8 voisins agrave la valeur 0
est mis agrave la valeur 0 apregraves filtrage
Dans les deux cas on observe qu‟une eacuterosion eacutelimine les pixels
isoleacutes sur le fond et eacuterode le contour des objets
Sami Gazzah 2009 162
Exercice 2
15122010
28
ConclusionsConclusions
Erosion
les objets relieacutes entre eux vont ecirctre seacutepareacutes
Une eacuterosion de taille n peut se reacutealiser en reacutepeacutetant une
eacuterosion n fois avec un eacuteleacutement structurant de taille 1 ou en
appliquant une seule eacuterosion avec un eacuteleacutement structurant
de taille n
Dilatation
des objets sont situeacutes agrave une distance moins grande que la taille
de leacuteleacutement structurant il vont fusionner
Sami Gazzah 2009 163 Sami Gazzah 2009 164
Sami Gazzah 2009 165
Elimine pixels isoleacutes sans inteacuterecirct
L‟ouverture (opening) consiste agrave une eacuterosion suivi d‟une dilatation
Les petites structures et deacutetail fins disparaissent et ne sont pas recreacuteeacutees
lors de la dilation Une opeacuteration d‟ouverture est ainsi inteacuteressante pour
eacuteliminer les petits morceaux de contours bruiteacutes dans une image de
contours
V Ouverture et fermeture1 Ouverture
BBABAC )(
Sami Gazzah 2009 166
V Ouverture et fermetureII Fermeture
La fermeture (closing) consiste agrave une dilatation suivi d‟une eacuterosion
Les structures proches fusionnent lors de la dilation mais seules les
fusions ponctuelles disparaissent agrave nouveau lors de l‟eacuterosion Une
opeacuteration de fermeture est ainsi inteacuteressante pour boucher les petits
trous
Sami Gazzah 2009 167 Sami Gazzah 2009 168
Exercice 3 Sur l‟image de deacutepart on reacutealise une opeacuteration de
fermeture binaire par l‟eacuteleacutement structurant 4-connexiteacute Conclusions
Eacuteleacutement structurant
(4-connexiteacute)
-
-
-
-Fermeture = dilatation puis eacuterosion
Image de deacutepart Image dilateacutee Image dilateacutee puis eacuterodeacutee
Combler les trous
Reacutetablir les jonctions
tout en preacuteservant la taille
15122010
29
Sami Gazzah 2009 169
Exercice 4 Sur l‟image de deacutepart on reacutealise une opeacuteration
d‟ouverture binaire par l‟eacuteleacutement structurant 4-connexiteacute Conclusions
Eacuteleacutement structurant
(4-connexiteacute)
-
-
-
-Ouverture = eacuterosion puis dilatation
Image de deacutepart Image eacuterodeacutee Image eacuterodeacutee puis dilateacutee
Supprimer les fausses alarmes
Seacuteparer les objets accoleacutes
tout en preacuteservant la tailleSami Gazzah 2009 170
Appliquer les filtres suivants sur limage donneacutee Quelles sont les valeurs choisies
aux bords de limage et quelles sont les modifications visuelles
a) filtre moyenneur M3acute3(19)
b) eacuterosion
c) dilatation
d) meacutedian
e) fermeture
f) ouverture
Exercice 5
Sami Gazzah 2009 171
IV Amincissement et Squelettisation
La squelette (skeleton) d‟une forme est l‟axe meacutedian L‟inteacuterecirct de cette
opeacuteration est dans
La reconnaissance de caractegraveres
Deacutetection des reacuteseaux routiers
La planification de trajectoirehellip
Une meacutethode couramment employeacutee est une amincissement reacutepeacuteteacute
jusqu‟agrave le convergence (n‟apporte aucune modification)
Sami Gazzah 2009 172
IV Amincissement et Squelettisation1 Opeacuteration Tout Ou Rien laquoHit or Missraquo
Cette transformation est deacutefinie par
leacuteleacutement structurant eacutetendu est centreacute sur chaque pixel de limage
comme pour les opeacuterations ensemblistes
la question poseacutee est est ce que le contenu de limage est identique au
contenu de leacuteleacutement structurant
si la reacuteponse est oui le pixel reacutesultant vaut 1 si non il vaut 0
Une application permet de deacutetecter des configurations locales
particuliegraveres dans une image
plusieurs masques peuvent ecirctre utiliseacutes indeacutependamment les images
reacutesultat eacutetant ensuite combineacutees par une opeacuteration ou
)()( cc BABABA
Bc-
est le compleacutementaire
local de B
Sami Gazzah 2009 173
IV Amincissement et Squelettisation1 Opeacuteration laquoHit or Missraquo
Exemple dopeacuteration Hit or Miss deacutetection des coinsSami Gazzah 2009 174
IV Amincissement et Squelettisation1 Amincissement (thinning)
bull La transformation TOR nous permet eacutegalement de deacutefinir
l‟amincissement
bullL‟amincissement consiste agrave soustraire limage reacutesultat dun hit or miss de
limage initiale
bull des amincissements successifs conduisent au squelettisation
)()( BAAAthin
15122010
30
Sami Gazzah 2009 175
IV Amincissement et Squelettisation1I Squelettisation
Appliquer des amincissements successifs puis s‟arrecircter lorsque l‟amincissement
n‟apporte plus de modification C‟est une eacuterosion particuliegravere ougrave les pixels sont
supprimeacutes agrave la condition quils ne provoquent pas la seacuteparation dune reacutegion en
deux
Sami Gazzah 2009 176
IV Amincissement et Squelettisation1I Squelettisation
Sami Gazzah 2009 177
Chapitre 7
Transformations
geacuteomeacutetriques 2D
Sami Gazzah 2009 178
I Introduction
On entend par transformation 2D l‟ensemble des transformations du
plan pouvant ecirctre appliqueacutees aux pixels de l‟image sans consideacuteration
de l‟intensiteacute
Par exemples
Reacuteduction agrandissement
Deacuteformation d‟image
Recalage d‟une photo scanneacutee
Recaler des images que l‟on veut comparer
Mosaiumlque d‟images
Sami Gazzah 2009 179
I Transformations euclidiennes
Elles preacuteservent les distances et les angles
Elles sont les compositions de translations et de rotations
1) Translation
Ougrave Tx et Ty sont les deacuteplacements en x et en y de la translation
y
x
Tyy
Txx
Sami Gazzah 2009 180
2) Rotation
15122010
31
Sami Gazzah 2009 181 Sami Gazzah 2009 182
3) Remarques (1)
Sami Gazzah 2009 183
3) Remarques (2)
Sami Gazzah 2009 184
II Homotheacuteties
Changement deacutechelle par rapport agrave lorigine (scaling zoom)
Ougrave Sx et Sy sont les facteurs dagrandissement ( gt1) ou de
reacuteduction ( lt1) en x et en y
ySy
xSx
y
x
Sami Gazzah 2009 185
II Homotheacuteties
Sami Gazzah 2009 186
II Homotheacuteties
15122010
32
Sami Gazzah 2009 187
III Reacuteflexions
Reacuteflexions par rapport aux axes (flip miroir)
Sami Gazzah 2009 188
IV Cisaillement
Cisaillement (glissement shearing) on eacutetire suivant un ou plusieurs axes
Sami Gazzah 2009 189
Transformations inverses
Sami Gazzah 2009 190
Repreacutesentation Matricielle
IV Autres (reacuteflexions miroirs et flips)
Sami Gazzah 2009 191
Interpolation Directe
Sami Gazzah 2009 192
oDifficile de distribuer le niveau de gris sur les pixels voisins
oOn n‟a pas la certitude que tous les pixels de l‟image
transformeacutee recevront une valeur =gt ldquotrousrdquo
15122010
33
Interpolation Inverse
Sami Gazzah 2009 193
o Interpolation de la valeur du pixel agrave partir des voisins plus
facile
oAucun ldquotrourdquo car on parcourt tous les pixels de l‟image
transformeacutee Sami Gazzah 2009 194
V Objet vectoriel - Objet bitmap
Objet vectoriel
Essentiellement on transforme
les sommets (ou points de
controcircle) et on retracehellip
Objet ldquobitmaprdquo
On doit calculer la nouvelle
position de chaque pixel De plus on
doit geacuteneacuteralement interpoler les
niveaux de gris (couleurs)hellip
Sami Gazzah 2009 195
IV Assignation des niveaux de gris
Neacutecessaire car la position d‟un pixel transformeacute n‟est pas entiegraverehellip
Plusieurs meacutethodes
Interpolation au plus proche voisin
Interpolation bilineacuteaire
Interpolation bicubique
Autres types d‟interpolation
Sami Gazzah 2009 196
IV Assignation des niveaux de gris
Linterpolation de limage cest ce qui arrive lorsquon redimensionne
une image numeacuterique ou quon la redimensionne avec une distorsion
quon change la perspective etc
Exemple 1
Image originale (sans interpolation)
Image agrandie et donc interpoleacutee
Perte de netteteacute due agrave linterpolation
Sami Gazzah 2009
197
IV Assignation des niveaux de gris
Exemple 2 recadrage dimage
Nous allons agrandir cette image agrave 180
Il va donc nous manquer des informations lagrave ougrave lon va creacuteer des
pixels pour agrandir limage
Reacutesultat sans interpolation le logiciel agrandit simplement les pixels
Reacutesultat avec interpolation le logiciel calcule une couleur intermeacutediaire
pour chaque nouveau pixel
Sami Gazzah 2009
198
IV Assignation des niveaux de gris
Image originale
Interpolation au plus
proche voisin
Interpolation
bilineacuteaireInterpolation
bicubique
15122010
34
Sami Gazzah 2009 199
IIV Interpolation au plus proche voisin
Cest lalgorithme le plus rapide agrave calculer
Prend en compte dans le calcul que le pixel le plus proche du point
agrave interpoler
Consiste tout simplement agrave agrandir chaque pixel
Exemple Interpolation du plus proche voisin par copie des pixels
Copie de chaque colonne et de chaque rang
23 20
25 28
23 23
23 23
20 20
20 20
25 25
25 25
28 28
28 28
Sami Gazzah 2009 200
IIV Interpolation bilineacuteaire
Fonction bilineacuteaire de 4 pixels voisins ( en 2 D )
i-1 i i+1
i-1 i-12 i i+12 i+1 i+32
yi=xiYi+12=(xi+xi+1)2
Problegraveme pour le dernier point
Extrapolation lineacuteaire de
2 xn-xn-1
Principe 1D
attribuer agrave chaque point cible une
combinaison lineacuteaire des quatre
points sources les plus proches par
la transformation inverse
Sami Gazzah 2009 201
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 202
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 203 Sami Gazzah 2009 204
IIV Interpolation bilineacuteaire
15122010
35
Sami Gazzah 2009 205
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 206
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 207
IIV Interpolation bilineacuteaire exemple
Sami Gazzah 2009 208
IIV Interpolation bicubique
Sami Gazzah 2009 209
exemple
Sami Gazzah 2009 210
Chapitre 8
Geacuteneacuteration de segments de
droite et de cercles en 2D
15122010
36
Sami Gazzah 2009 211
Infographie 2D besoin de dessiner des primitives de
base (segments cercles hellip)
Espace discreacutetiseacute (pixels) il faut trouver un moyen pour
afficher des segments ou des cercles
I Segments 2D cercles1 Introduction
Comment trouver les pixels agrave allumer pour approximer au mieux une
droite ou un cercle
Algorithme rapide et preacutecisSami Gazzah 2009 212
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=ax+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ya
Sami Gazzah 2009 213
Rappelhellip
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=mx+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ym
Sami Gazzah 2009 214
Exemple
Sami Gazzah 2009 215
Agrave partir des coordonneacutees des 2 extreacutemiteacutes d‟un segmenthellip
Un algorithme simple
Boucle de x1 agrave x2 dx=1
ALLUME (x Arrondir(y))
Avec x2gtx1
Arrondir(y) = Arrondir(ax+b)
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Sami Gazzah 2009 216
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Choix de lrsquoaxehellip
Peu efficace
bullagrave chaque iteacuteration 1 multiplication (ou division) + 1 addition
+ 1 arrondi
15122010
37
Sami Gazzah 2009 217
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
DDA (Digital Differential Analyzer)
y et m doivent ecirctre des reacuteelsSami Gazzah 2009 218
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Calcul en entier (donc plus rapide)
Baseacute sur le choix entre deux points discrets deacutependant de leur
distance respective avec le point reacuteel ideacuteal
On simplifie le problegraveme en traitant drsquoabord le traceacute drsquoun segment
dans le 1er octant m infeacuterieur agrave1 et positif (0ltmlt 1)
Facilement geacuteneacuteralisable aux autres octants
Sami Gazzah 2009 219
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Traceacute d‟un segment dans le premier octant mlt1
On part d‟un point (xi yi) allumeacute
Sami Gazzah 2009 220
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
On ne calcule pas reacuteellement les distances rArr on veacuterifie si la diffeacuterence
entre les deux distances est positive ou neacutegative
Le signe de la longueur (d1-d2) deacutetermine s‟il faut allumer le pixel L ou H
L
H
Sami Gazzah 2009 221
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Comme m=ΔyΔx on multiplie cette diffeacuterence par Δx pour eacuteviter la
division
Mais que vaut p1
Sami Gazzah 2009 222
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
15122010
38
Sami Gazzah 2009 223
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Pour eacuteviter de calculer cette diffeacuterence pour chaque point on cherche
une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
Sami Gazzah 2009 224
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009 225
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009
Exercice
Tracer le segment de droite
pi xi yi
2 0 0
-6 1 1
6 2 1
-2 3 2
10 4 2
2 5 3
-6 6 4
6 7 4
-2 8 5
10 9 5
2 10 6
6
10
y
x
Sami Gazzah 2009 227
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
Sami Gazzah 2009 228
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
hellip interchanger les points hellip
Si |Δx| lt | Δy| on interchange le rocircle de x et y
15122010
39
Sami Gazzah 2009 229
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (1)
Sami Gazzah 2009 230
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (2)
Sami Gazzah 2009 231
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (3)
Sami Gazzah 2009 232
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Toujours baseacute sur le choix entre deux
points discrets deacutependant de leur
distance respective avec le point reacuteel
On travaille dans le 2e octant agrave partir
de (0r) ainsi pour un point (xi yi) le
prochain point sera
(xi+1 yi) ou (xi+1 yi-1)
Sami Gazzah 2009 233
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On calcule le prochain y et les diffeacuterences respectives avec les points
discrets de la faccedilon suivante
Le signe de pi nous dira si nous devons choisir le point lateacuteral ou le diagonal
Sami Gazzah 2009 234
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Encore une fois pour eacuteviter de calculer cette diffeacuterence pour chaque point on
cherche une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
15122010
40
Sami Gazzah 2009 235
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On considegravere 2 cas
Valeur initiale
Sami Gazzah 2009 236
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Sami Gazzah 2009 237
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Exemple centre = (00) et r = 3
Sami Gazzah 2009 238
Livres
Diane Lingrand Introduction au Traitement d‟Images Paris Editions Vuibert 2e
eacutedition 2008
Steven k Feiner James D Foley John F Hughes Richard l Phillips Andries
Vanam Introduction agrave l‟infographie Paris Editions Vuibert 2000
William K Pratt Digital Image Processing Willy-Inter-sciences 4th edition 2007
Eacuteric Incerti Compression dimage ndash Algorithmes et standards Vuibert 2003
Gilles Burel Introduction au traitement dimages ndash Simulation sous Matlab
Hermegraves 2001
Sites web
Cours de C Rougier (U Montreacuteal)
httpwww-etudiroumontrealca~rougiercift2730courshtml (cf chapitre 3)
Page wikipeacutedia sur JPEG (en anglais plus complegravete que celle en franccedilais)
httpenwikipediaorgwikiJPEG
Cours de P Courtellemont (Campus numeacuterique Espdon)
httppersouniv-lrfrpcourtelespadonsite_web
Applet de deacutemo par C G Jennings
httpcgjenningscatoyboxhjpegindexhtml
Cours de D Marshall (U Cardiff)
httpwwwcscfacukDaveMultimediaPDF
Reacutefeacuterences
Sami Gazzah 2009 239
Chapitre 9
introduction au
traitement
dimages avec OpenGL
Sami Gazzah 2009 240
OpenGL est une librairie graphique Elle a eacuteteacute creacutee par Silicon
Graphics et beacuteneacuteficie sur ces machines de lacceacuteleacuteration mateacuterielle
Elle est constitueacute d‟environ 200 fonctions graphiques
OpenGL est une bibliothegraveque de fonctions
Les fonctions sont de bas niveaux
La version actuelle est l‟ laquo OpenGL 41 raquo (deacutecembre 2010)
Principale caracteacuteristique indeacutependant du mateacuteriel et du systegraveme
d‟exploitation
Une impleacutementation libre de droits dOpenGL tregraves performante a eacuteteacute
eacutecrite par Brian Paul httpwwwmesa3dorg Et tout son code source
est accessible
Preacutesentation geacuteneacuterale
15122010
41
Sami Gazzah 2009 241
OpenGL propose des fonctions de bas niveaux
Primitives geacuteomeacutetriques points segments polygones
Les fonctions de haut niveaux sont deacuteveloppeacutees par l‟utilisateur ou
importeacutees par la librairie en amont d‟OpenGL
Primitives geacuteomeacutetriques complexes Sphegravere splines etc
Toutes les commandes et fonctions utilisent le preacutefixe gl
Exemple glColor2f()
Sami Gazzah 2009 242
Les Bibliothegraveques co-existant avec OpenGL
GLU OpenGL Utility Library contient les routines de bas niveau pour
geacuterer les matrices de transformation et de projection la facettisation des
polygones et le rendu de surface Les bibliothegraveques dextension du
systegraveme de fenecirctres permettent lutilisation du rendu OpenGL Il sagit de
GLX pour X Windows (fonctions ayant pour preacutefixe glX) et de WGL
pour Microsoft Windows (fonctions ayant pour preacutefixe wgl)
GLUT OpenGL Utility Toolkit est une boite agrave outils indeacutependante du
systegraveme de fenecirctrage eacutecrite par Mark
Kilgard pour simplifier la tacircche dutiliser des systegravemes diffeacuterents (fonctions
ayant pour preacutefixe glut)
Sami Gazzah 2009 243
Les primitives geacuteomeacutetriques d rsquoOpenGL
Les primitives sont deacutecrites par un bloc d‟instructions deacutelimiteacute par glBegin et glEnd
Ce bloc contient geacuteneacuteralement une liste de vertex Exemple
glBegin(GL_LINE_LOOP)
glVertex2f(-05 -05)
glVertex2f(05 -05)
glVertex2f(05 05)
glVertex2f(-05 05)
glEnd()
D‟autres attributs peuvent ecirctre speacutecifieacutes en chaque sommet
couleur normale coordonneacutee de texture etcSami Gazzah 2009 244
OpenGL est une machine agrave eacutetats
En modifiant les variables d‟eacutetats on peut changer le style de rendu
Sami Gazzah 2009 245
Exemple Honda Hippo (3dRendercom)
Placage de textures
bullL‟apparence et le toucher ( feel ) d‟une surface
bullUne image utiliseacutee pour deacutefinir les caracteacuteristiques d‟une surface
bullUne image multi-dimensionnelle qui est plaqueacutee sur un espace multi-
dimensionnel
Sami Gazzah 2009 246
15122010
42
Sami Gazzah 2009 247
Reacutefeacuterences openGL
Sami Gazzah 2009 248
Chapitre 10
introduction au
traitement
dimages avec OpenCV
Sami Gazzah 2009 249
Preacutesentation geacuteneacuterale
Quest-ce
Open Source Computer Vision Library
Bibliothegraveque open source de traitement des images numeacuteriques
Projet initieacute par Intel (en 1999)
Teacuteleacutechargeable sur httpsourceforgenetprojectsopencvlibrary
Fortement orienteacutee temps reacuteel
eacutecrite en C et C++
optimiseacutee pour les processeurs multi-cœurs
Multi-plateformes disponible pour Linux Windows et Mac OS X
Que contient-elle
Des fonctionnaliteacutes (structures et routines gt350 algos) de base et
avanceacutees pour bacirctir rapidement des applications autour de la vision par
ordinateur
Exemples dutilisation traitements de bas niveau (filtrage ) deacutetection
de visages reconnaissance et suivi dobjets en mouvement Sami Gazzah 2009 250
Fonctionnaliteacutes
Lectureeacutecriture dimages statiques et de seacutequences videacuteo
APIs de bas et moyen niveaux
Traitement des images binaires
Manipulations dimage (eacutechantillonnage (sampling) reacutegion dinteacuterecirct (ROI)
redimensionnement (resizing) rotation deacuteformation (warping) )
Deacutetection de contours de lignes de coins (edge detection)
Traitements multi-eacutechelles (multiscale processing)
Transformeacutees (Fourier cosinus discregravete )
Modules de haut niveau
Deacutetection reconnaissance et suivi (tracking) de visages
Flot optique (estimation du mouvement) (optical flow)
Calibrage (calibration) de la cameacutera
Mise en correspondance steacutereacuteoscopique (stereo matching)
IA et apprentissage par ordinateur (machine learning)
3D mise en correspondance (registration)
Sami Gazzah 2009 251
Modules principaux
CxCore
Types de base pour manip dimages (ex struct image point isin cxtypesh)
Structures dynamiques (listes files graphes arbres) et persistantes (LE)
Manipulations de matrices meacutethodes de lalgegravebre lineacuteaire et statistiques
Dessin en surimpression (overlay) (ex eacutetiquetage)
Cv
Traitement dimage calibrage cameacutera
Geacuteomeacutetrie algorithmique (triangulation )
Cvaux
Reconnaissance de visage
Code expeacuterimental et obsolegravete
Autres (dans otherlibs)
HighGUI ES videacuteos curseurs fenecirctrage
ML classification regroupement (clustering)Sami Gazzah 2009 252
OpenCV premiers programmesBibliothegraveque OpenCV
15122010
43
Sami Gazzah 2009 253
Livre
G Bradski amp A Kaehler laquo Learning OpenCV raquo OReilly Press (2008)
codes sources httpexamplesoreillycom9780596516130
Ressources en ligne
Reacutefeacuterence complegravete httpopencvwillowgaragecomdocumentation
Wiki httpopencvwillowgaragecomwikiFullOpenCVWiki
bullPreacutesentation teacuteleacutechargement installation
bullavec CodeBlocks httpopencvwillowgaragecomwikiCodeBlocks
bullDeacutebuter avec OpenCV FAQ
Tutoriels
httpnchcdlsourceforgenetsourceforgeopencvlibraryippocvpdf
httpdaslmemdrexeledu~noahKuntzopenCVTut1html agrave Tut11html
httpwwwcognoticscomopencvservo_2007_series
Tutoriel sur la vision utilisant OpenCV (en franccedilais)
httpwwwsiteduzerocomtutoriel-3-8631-vision-par-ordinateurhtml
Reacutefeacuterences openCV
15122010
21
Sami Gazzah 2009 121 Sami Gazzah 2009 122
Meacutethodes statistiquesSegmentation par Histogrammes
Sami Gazzah 2009 123
Meacutethodes statistiquesSeacutelection Reacutecursive sur Histogrammes
Ohlander Price et Reddy (1978)
Sami Gazzah 2009 124
Segmentation par approche contourIntroduction
Le contour est deacutefini comme le lieu des points connexes qui
possegravedent une forte transition d‟intensiteacute lumineuse ou de texture Le
traitement qui vise agrave l‟obtenir est appeleacute extraction de contour on
parle aussi de deacutetection de contour
Le processus d‟extraction de contour peut ecirctre deacutecomposeacute en
plusieurs eacutetapes distinctes que nous allons les deacutetailler comme suit
- La mise en eacutevidence des contours
- L‟extraction des contours
- La fermeture des contours
Sami Gazzah 2009 125
Segmentation par approche contourLa mise en eacutevidence des contours
Elle s‟obtient par une diffeacuterentiation de l‟image et elle peut
s‟appliquer agrave des images binaires ou non le but de la deacutetection de
contours est d‟obtenir dans un premier temps une image binaire ougrave
chaque contour est d‟eacutepaisseur 1 et sans discontinuiteacute
rehausser le contour
suivre le contour
les points du contour correspondent au maximum en valeur absolue
de la deacuteriveacutee primaire de l‟image on obtient alors un gradient ou au
passage par zeacutero de la deacuteriveacutee seconde de l‟image on obtient alors
un laplacien
Sami Gazzah 2009 126
Segmentation par approche contourLa mise en eacutevidence des contours
La deacutetection de contours peut ecirctre reacutealiseacutee gracircce agrave des filtres
dont les coefficients ont eacuteteacute soigneusement choisis Nous
aborderons dans cette preacutesentation 3 filtres les filtres de
Prewitt Roberts et Sobel
Ce jeu de filtres (Prewitt Roberts et Sobel) est constitueacute d‟une
paire de filtres lineacuteaires qui deacutetectent le contours dans deux
directions orthogonales (vertical et horizontal)
15122010
22
Sami Gazzah 2009 127
Segmentation par approche contourFiltre de Perwitt
Les filtres de Perwitt sont les suivants
Filtre horizontal
Filtre vertical
111
000
111
h
101
101
101
v
Sami Gazzah 2009 128
Segmentation par approche contourFiltre de Perwitt
A partir d‟une image I on calcule Gh et Gv images
correspondant au filtrage de I par h et v Ces images
contiennent les contours horizontaux et verticaux
Si l‟on souhaite obtenir une image de contour unique ne tenant
pas compte de l‟orientation on calcule
Orientation du contour
Image binairehellipchoisir un seuil de deacutetection
22
vh GGG
)(vh
GGarctg
Sami Gazzah 2009 129
Segmentation par approche contourFiltre de Sobel
Les filtres de Sobel sont les suivants
Filtre horizontal
Filtre vertical
121
000
121
h
101
202
101
v
Sami Gazzah 2009 130
Segmentation par approche contourFiltre de Sobel
Sami Gazzah 2009 131
Segmentation par approche contourFiltre de Sobel
Sami Gazzah 2009 132
Segmentation par approche contourFiltre de Roberts
Les filtres de Roberts sont les suivants
Filtre diagonal
Filtre anti-diagonal
10
01h
01
10v
15122010
23
Sami Gazzah 2009 133
Segmentation par approche contourFiltre de Kirsch
Ce deacutetecteur utilise huit noyaux de convolution lui permettant de deacutetecter
des contours en fonction de huit directions agrave
15
335
305
335
1
d 15
333
305
355
2
d 15
333
303
555
3
d
15
333
503
553
4
d 15
533
503
533
5
d 15
555
503
333
6
d
15
555
303
333
7
d 15
355
305
333
8
d
Sami Gazzah 2009 134
Contours et Laplacien
Il s‟agit de calculer la deacuteriveacutee seconde de l‟image
Le Laplacien est tregraves sensible au bruit pour limiter l‟effet du bruit le
Laplacien est approximeacute par un masque qui effectue en mecircme temps
une opeacuteration de filtrage par une Gaussienne qui repreacutesente l‟eacutetape
de lissage de l‟image puis vient l‟application du laplacien Les masques
du Laplacien Gaussien sont preacutesenteacutes ci-apregraves
Segmentation par approche contour
Sami Gazzah 2009 135
Contours et Laplacien
Le contour est ensuite deacutetermineacute par la deacutetection des
passages par zeacutero du laplacien de l‟image
88888888888888
010
141
010
1h
111
101
111
2h
121
242
121
3h
Sami Gazzah 2009 136
Contours et Laplacien
Sami Gazzah 2009 137
Seuillage
Les filtres preacuteceacutedents nous fournissent des images des sauts ou
diffeacuterences d‟intensiteacute
Le seuillage permet d‟eacuteliminer des points en lesquels la diffeacuterence
d‟intensiteacute est tregraves faible
Le seuillage peut ecirctre pousser afin d‟obtenir une image binaire (TOR)
Le seuillage dans sa forme le plus simple ne tient pas compte de la
topologie et peut conserver un point bruiteacute isoleacute ou eacuteliminer une portion
de contour d‟intensiteacute faible
Sami Gazzah 2009 138
Seuillage par hysteacutereacutesis
c‟est une fonction agrave deux seuils un seuil bas et un seuil haut
Tout point dont le module de contour est au-dessus du seuil-haut est un
point de contour
Tout point dont le module de contour est au-dessous du seuil-bas n‟est
pas un point de contour
Les points de module entre le seuil-bas et le seuil-haut sont des points
de contour s‟il possegravede un point de contour dans leur voisinage
15122010
24
Sami Gazzah 2009 139
Seuillage par hysteacutereacutesis
seuil haut
Seuil bas
point sur contour
point hors contour
Seuillage par hysteacuterisais les points de lrsquoimage de contour de valeur
supeacuterieur au seuil haut sont des points de contours A partir de ces points de
contours le voisinage de la direction du contour sont examineacutes srsquoils sont de
valeur supeacuterieure au seuil bas ils sont ajouteacutes au points de contoursSami Gazzah 2009 140
Chapitre 6
Introduction aux
opeacuterateurs
morphomatheacutematique
Sami Gazzah 2009 141
1 Introduction
Les opeacuterateurs morphomatheacutematique (=Morphologie Matheacutematique)
permettent d‟ameacuteliorer les images de contours et apporter d‟autres
fonctionnaliteacutes
Ils ont eacuteteacute initialement appliqueacute sur des images NampB (Matheron et
Sarra1965) ensuite eacutetendus agrave des images en nivaux de gris par Doupherty
(1978)
Pour les appliquer sur des images couleurs on peut les appliquer
seacutepareacutement agrave chaque composante couleur et combiner les reacutesultats
Sami Gazzah 2009 142
Diffeacuterentes opeacuterations
eacuterosion dilatation
ouverture fermeture
Squelettisation
hellip
1 Introduction
Sami Gazzah 2009 143
1 Introduction
Dilatation
Ajouter un pixel sur les pourtours de la forme
boucher les trous
Erosion
Enlever un pixel sur les pourtours de la forme
les objets de taille infeacuterieure agrave celle de leacuteleacutement
structurant vont disparaicirctre
agrandit les trous
Sami Gazzah 2009144
1I Rappels sur les ensembles
L‟eacutegaliteacute
L‟inclusion
Lbdquointersection
L‟union
La diffeacuterence
La diffeacuterence symeacutetrique
La compleacutementariteacute E eacutetant un ensemble
servant de reacutefeacuterentielle
Dans ce qui suit les lettres majuscules deacutesignent des ensembles et les lettres
minuscules deacutesignent des eacuteleacutements appartenant aux ensembles
Sur les ensembles on deacutefinit les opeacuterations suivantes
15122010
25
Sami Gazzah 2009145
1I Rappels sur les ensembles
Sami Gazzah 2009146
1I Rappels sur les ensembles
Lois de De Morgan
Reacuteflexion La reacuteflexion d‟un ensemble A est deacutefinie par
Un ensemble symeacutetrique veacuterifiant ndashA=A C‟est le cas des cercles et des carreacute par
exemple
ccc YXYX )(
ccc YXYX )(
AaaA
A -A B -B
Sami Gazzah 2009147
1I Rappels sur les ensembles
Addition de Minkowski l‟addition d‟un eacuteleacutement x agrave un ensemble A par x est
deacutefinie par
Cette notion n‟est pas uniquement ensembliste elle nous oblige agrave deacutefinir un point
de reacutefeacuterence
On en deacuteduit l‟addition d‟un ensemble B agrave un ensemble A c‟est le reacutesultat de
l‟addition de chaque eacuteleacutement de B agrave A
L‟addition de Minkowski est commutative Elle est eacutegalement appeleacute dilatation
AaxaxAB
A
A
x
AxBxAaBaBbbABAC )()()(
le translateacute de X par b
Sami Gazzah 2009148
1I Rappels sur les ensembles
Eleacutement structurant les opeacuterations morphomatheacutematiques sont deacutefinis agrave
partir des ensemble B discrets appeleacute eacuteleacutement structurant Ces eacuteleacutement
permettent de deacutefinir le type de voisinage souhaiteacute
Addition de Minkowski d‟un ensemble A et d‟un ensemble B
BA
Sami Gazzah 2009149
1II Dilatation
Le reacutesultat de dilatation de lrsquoensemble A par lrsquoensemble B
est lrsquoaddition de Minkowski crsquoest lrsquoensemble des points tel
que lorsque B est centreacute sur un de ces points il y a une
intersection non vide entre A et B
Pour des images en niveaux de gris on obtient lrsquoimage
dilateacutee de la forme A en remplaccedilant tout pixel par le
maximum des intensiteacutes des voisins selon la forme B
Sami Gazzah 2009 150
1II Dilatation1 Image NampB
Soit k l‟eacuteleacutement structurant de taille (2k+1) x (2k+1) L‟algorithme de
dilatation est le suivant on parcourt tous les pixels de l‟image sauf les
bord de l‟image d‟eacutepaisseur k pour chaque pixel du fond rencontreacute s‟il
possegravede un voisin au sens de l‟eacuteleacutement structurant qui appartient agrave un
objet il prend le couleur de l‟objet si non il n‟est pas modifieacute
15122010
26
la dilatation (noteacutee ) drsquoune image monochrome laquo f raquo par un
eacuteleacutement structurant laquo B raquo est deacutefinie en terme de sous-graphe
bull f B = T [ Y ] = Supl l tel que (m n l) Y
bullY = U ( f ) U ( B )
En consideacuterant un eacuteleacutement structurant plan de valeur nulle sur son
support
( f B ) (P) = Max valeurs des pixels du voisinage du pixel P
1II Dilatation1 Image niveaux de gris
max
55 68 77 90 91 95 115 151 210
( f B ) (P) = 210
n
115 91 77
95 68 90
55 151 210
exemple
m
Image de reacutefeacuterence
Eacuteleacutement structurant
(8-connexiteacute)
liste ordonneacutee des valeurs du voisinage
- - -
-
-
-
-
-
1II Dilatation1 Image niveaux de gris
Exemples de filtrages morphologiques(eacuteleacutement structurant 33 complet)
Image de reacutefeacuterenceImage dilateacutee
morphologiquement
La dilatation en niveaux de gris accroicirct la luminance des
pixels entoureacutes de voisins plus lumineux
Observation
Sami Gazzah 2009154
VI Erosion
L‟eacuterosion est deacutefinie par
On deacutefinit la soustraction de Minkowski par
On a eacutequivalence entre eacuterosion et soustraction de Minkowski si B est
symeacutetrique (si B=-B)
D‟un point de vue binaire l‟eacuterode de A par B correspond agrave l‟ensemble
des points tels que si B est centre sur ce points B est entiegraverement inclus
dans A
AxBxBbbABAC )()(
)()( BbbABAC
Sami Gazzah 2009 155
VI Erosion1 Image NampB
on parcourt tous les pixels de l‟image sauf les bord de l‟image
d‟eacutepaisseur k pour chaque pixel du fond rencontreacute s‟il possegravede un
voisin au sens de l‟eacuteleacutement structurant qui appartient agrave un objet il
prend le couleur du fond si non il n‟est pas modifieacute
VI Eacuterosion drsquoune image en niveaux de gris
Lrsquoeacuterosion (noteacutee Ө ) drsquoune image monochrome laquo f raquo par un eacuteleacutement
structurant laquo B raquo est deacutefinie en terme de sous-graphe
bull f Ө B = T [ Y ] = Supl l tel que (m n l) Y
bullY = U ( f ) Ө U ( B )
Classiquement on considegravere un eacuteleacutement structurant plan de
valeur nulle sur son support
( f Ө B ) (P) = Min valeurs des pixels du voisinage du pixel P
15122010
27
VI Eacuterosion drsquoune image en niveaux de gris
min
68 90 91 95 151
( f Ө B ) (P) = 68
n
115 91 77
95 68 90
55 151 210
exemple
m
Image de reacutefeacuterence
ӨӨ
Eacuteleacutement structurant
(4-connexiteacute)
liste ordonneacutee des valeurs du voisinage
-
-
-
-
Exemples de filtrages morphologiques(eacuteleacutement structurant 33 complet)
Image eacuterodeacutee
Lrsquoeacuterosion en niveaux de gris reacuteduit la luminance des pixels
qui sont entoureacutes de voisins de moindre intensiteacute
Image de reacutefeacuterence
Observation
Sami Gazzah 2009 159
Eacuteleacutement structurant (a)
(4-connexiteacute)
-
-
-
-
Eacuteleacutement structurant (b)
(8-connexiteacute)
- - -
-
-
-
-
-
Exercice 1 Sur la mecircme image de deacutepart on reacutealise deux opeacuterations
de dilatations avec deux eacuteleacutements structurant diffeacuterents
Dilatation avec (a) Dilatation avec (b)
image de deacutepart
cas a L‟eacuteleacutement structurant est agrave 4-connexiteacute Chaque pixel
du support qui est eacutegal agrave la valeur 1 ou qui a l‟un de ses 4
voisins agrave la valeur 1 est mis agrave la valeur 1 apregraves filtrage
cas b L‟eacuteleacutement structurant est agrave 8-connexiteacute Chaque pixel
du support qui est eacutegal agrave la valeur 1 ou qui a l‟un de ses 8
voisins agrave la valeur 1 est mis agrave la valeur 1 apregraves filtrage
Dans les deux cas on observe qu‟une dilatation eacutelimine les
trous isoleacutes dans les objets et dilate le contour des objets en
tenant compte de l‟eacuteleacutement structurant
Sami Gazzah 2009 160
Exercice 1
Sami Gazzah 2009 161
Eacuteleacutement structurant (a)
(4-connexiteacute)
-
-
-
-
Eacuteleacutement structurant (b)
(8-connexiteacute)
- - -
-
-
-
-
-
Exercice 2 Sur la mecircme image de deacutepart on reacutealise deux opeacuterations
d‟eacuterosions avec deux eacuteleacutements structurant diffeacuterents
Erosion avec (a) Erosion avec (b)
image de deacutepart
cas a L‟eacuteleacutement structurant est agrave 4-connexiteacute (origine agrave 4 voisins)
Chaque pixel du support qui a la valeur 0 ou qui a l‟un de ses 4
voisins agrave la valeur 0 est mis agrave la valeur 0 apregraves filtrage
cas b L‟eacuteleacutement structurant est agrave 8-connexiteacute Chaque pixel du
support qui a la valeur 0 ou qui a l‟un de ses 8 voisins agrave la valeur 0
est mis agrave la valeur 0 apregraves filtrage
Dans les deux cas on observe qu‟une eacuterosion eacutelimine les pixels
isoleacutes sur le fond et eacuterode le contour des objets
Sami Gazzah 2009 162
Exercice 2
15122010
28
ConclusionsConclusions
Erosion
les objets relieacutes entre eux vont ecirctre seacutepareacutes
Une eacuterosion de taille n peut se reacutealiser en reacutepeacutetant une
eacuterosion n fois avec un eacuteleacutement structurant de taille 1 ou en
appliquant une seule eacuterosion avec un eacuteleacutement structurant
de taille n
Dilatation
des objets sont situeacutes agrave une distance moins grande que la taille
de leacuteleacutement structurant il vont fusionner
Sami Gazzah 2009 163 Sami Gazzah 2009 164
Sami Gazzah 2009 165
Elimine pixels isoleacutes sans inteacuterecirct
L‟ouverture (opening) consiste agrave une eacuterosion suivi d‟une dilatation
Les petites structures et deacutetail fins disparaissent et ne sont pas recreacuteeacutees
lors de la dilation Une opeacuteration d‟ouverture est ainsi inteacuteressante pour
eacuteliminer les petits morceaux de contours bruiteacutes dans une image de
contours
V Ouverture et fermeture1 Ouverture
BBABAC )(
Sami Gazzah 2009 166
V Ouverture et fermetureII Fermeture
La fermeture (closing) consiste agrave une dilatation suivi d‟une eacuterosion
Les structures proches fusionnent lors de la dilation mais seules les
fusions ponctuelles disparaissent agrave nouveau lors de l‟eacuterosion Une
opeacuteration de fermeture est ainsi inteacuteressante pour boucher les petits
trous
Sami Gazzah 2009 167 Sami Gazzah 2009 168
Exercice 3 Sur l‟image de deacutepart on reacutealise une opeacuteration de
fermeture binaire par l‟eacuteleacutement structurant 4-connexiteacute Conclusions
Eacuteleacutement structurant
(4-connexiteacute)
-
-
-
-Fermeture = dilatation puis eacuterosion
Image de deacutepart Image dilateacutee Image dilateacutee puis eacuterodeacutee
Combler les trous
Reacutetablir les jonctions
tout en preacuteservant la taille
15122010
29
Sami Gazzah 2009 169
Exercice 4 Sur l‟image de deacutepart on reacutealise une opeacuteration
d‟ouverture binaire par l‟eacuteleacutement structurant 4-connexiteacute Conclusions
Eacuteleacutement structurant
(4-connexiteacute)
-
-
-
-Ouverture = eacuterosion puis dilatation
Image de deacutepart Image eacuterodeacutee Image eacuterodeacutee puis dilateacutee
Supprimer les fausses alarmes
Seacuteparer les objets accoleacutes
tout en preacuteservant la tailleSami Gazzah 2009 170
Appliquer les filtres suivants sur limage donneacutee Quelles sont les valeurs choisies
aux bords de limage et quelles sont les modifications visuelles
a) filtre moyenneur M3acute3(19)
b) eacuterosion
c) dilatation
d) meacutedian
e) fermeture
f) ouverture
Exercice 5
Sami Gazzah 2009 171
IV Amincissement et Squelettisation
La squelette (skeleton) d‟une forme est l‟axe meacutedian L‟inteacuterecirct de cette
opeacuteration est dans
La reconnaissance de caractegraveres
Deacutetection des reacuteseaux routiers
La planification de trajectoirehellip
Une meacutethode couramment employeacutee est une amincissement reacutepeacuteteacute
jusqu‟agrave le convergence (n‟apporte aucune modification)
Sami Gazzah 2009 172
IV Amincissement et Squelettisation1 Opeacuteration Tout Ou Rien laquoHit or Missraquo
Cette transformation est deacutefinie par
leacuteleacutement structurant eacutetendu est centreacute sur chaque pixel de limage
comme pour les opeacuterations ensemblistes
la question poseacutee est est ce que le contenu de limage est identique au
contenu de leacuteleacutement structurant
si la reacuteponse est oui le pixel reacutesultant vaut 1 si non il vaut 0
Une application permet de deacutetecter des configurations locales
particuliegraveres dans une image
plusieurs masques peuvent ecirctre utiliseacutes indeacutependamment les images
reacutesultat eacutetant ensuite combineacutees par une opeacuteration ou
)()( cc BABABA
Bc-
est le compleacutementaire
local de B
Sami Gazzah 2009 173
IV Amincissement et Squelettisation1 Opeacuteration laquoHit or Missraquo
Exemple dopeacuteration Hit or Miss deacutetection des coinsSami Gazzah 2009 174
IV Amincissement et Squelettisation1 Amincissement (thinning)
bull La transformation TOR nous permet eacutegalement de deacutefinir
l‟amincissement
bullL‟amincissement consiste agrave soustraire limage reacutesultat dun hit or miss de
limage initiale
bull des amincissements successifs conduisent au squelettisation
)()( BAAAthin
15122010
30
Sami Gazzah 2009 175
IV Amincissement et Squelettisation1I Squelettisation
Appliquer des amincissements successifs puis s‟arrecircter lorsque l‟amincissement
n‟apporte plus de modification C‟est une eacuterosion particuliegravere ougrave les pixels sont
supprimeacutes agrave la condition quils ne provoquent pas la seacuteparation dune reacutegion en
deux
Sami Gazzah 2009 176
IV Amincissement et Squelettisation1I Squelettisation
Sami Gazzah 2009 177
Chapitre 7
Transformations
geacuteomeacutetriques 2D
Sami Gazzah 2009 178
I Introduction
On entend par transformation 2D l‟ensemble des transformations du
plan pouvant ecirctre appliqueacutees aux pixels de l‟image sans consideacuteration
de l‟intensiteacute
Par exemples
Reacuteduction agrandissement
Deacuteformation d‟image
Recalage d‟une photo scanneacutee
Recaler des images que l‟on veut comparer
Mosaiumlque d‟images
Sami Gazzah 2009 179
I Transformations euclidiennes
Elles preacuteservent les distances et les angles
Elles sont les compositions de translations et de rotations
1) Translation
Ougrave Tx et Ty sont les deacuteplacements en x et en y de la translation
y
x
Tyy
Txx
Sami Gazzah 2009 180
2) Rotation
15122010
31
Sami Gazzah 2009 181 Sami Gazzah 2009 182
3) Remarques (1)
Sami Gazzah 2009 183
3) Remarques (2)
Sami Gazzah 2009 184
II Homotheacuteties
Changement deacutechelle par rapport agrave lorigine (scaling zoom)
Ougrave Sx et Sy sont les facteurs dagrandissement ( gt1) ou de
reacuteduction ( lt1) en x et en y
ySy
xSx
y
x
Sami Gazzah 2009 185
II Homotheacuteties
Sami Gazzah 2009 186
II Homotheacuteties
15122010
32
Sami Gazzah 2009 187
III Reacuteflexions
Reacuteflexions par rapport aux axes (flip miroir)
Sami Gazzah 2009 188
IV Cisaillement
Cisaillement (glissement shearing) on eacutetire suivant un ou plusieurs axes
Sami Gazzah 2009 189
Transformations inverses
Sami Gazzah 2009 190
Repreacutesentation Matricielle
IV Autres (reacuteflexions miroirs et flips)
Sami Gazzah 2009 191
Interpolation Directe
Sami Gazzah 2009 192
oDifficile de distribuer le niveau de gris sur les pixels voisins
oOn n‟a pas la certitude que tous les pixels de l‟image
transformeacutee recevront une valeur =gt ldquotrousrdquo
15122010
33
Interpolation Inverse
Sami Gazzah 2009 193
o Interpolation de la valeur du pixel agrave partir des voisins plus
facile
oAucun ldquotrourdquo car on parcourt tous les pixels de l‟image
transformeacutee Sami Gazzah 2009 194
V Objet vectoriel - Objet bitmap
Objet vectoriel
Essentiellement on transforme
les sommets (ou points de
controcircle) et on retracehellip
Objet ldquobitmaprdquo
On doit calculer la nouvelle
position de chaque pixel De plus on
doit geacuteneacuteralement interpoler les
niveaux de gris (couleurs)hellip
Sami Gazzah 2009 195
IV Assignation des niveaux de gris
Neacutecessaire car la position d‟un pixel transformeacute n‟est pas entiegraverehellip
Plusieurs meacutethodes
Interpolation au plus proche voisin
Interpolation bilineacuteaire
Interpolation bicubique
Autres types d‟interpolation
Sami Gazzah 2009 196
IV Assignation des niveaux de gris
Linterpolation de limage cest ce qui arrive lorsquon redimensionne
une image numeacuterique ou quon la redimensionne avec une distorsion
quon change la perspective etc
Exemple 1
Image originale (sans interpolation)
Image agrandie et donc interpoleacutee
Perte de netteteacute due agrave linterpolation
Sami Gazzah 2009
197
IV Assignation des niveaux de gris
Exemple 2 recadrage dimage
Nous allons agrandir cette image agrave 180
Il va donc nous manquer des informations lagrave ougrave lon va creacuteer des
pixels pour agrandir limage
Reacutesultat sans interpolation le logiciel agrandit simplement les pixels
Reacutesultat avec interpolation le logiciel calcule une couleur intermeacutediaire
pour chaque nouveau pixel
Sami Gazzah 2009
198
IV Assignation des niveaux de gris
Image originale
Interpolation au plus
proche voisin
Interpolation
bilineacuteaireInterpolation
bicubique
15122010
34
Sami Gazzah 2009 199
IIV Interpolation au plus proche voisin
Cest lalgorithme le plus rapide agrave calculer
Prend en compte dans le calcul que le pixel le plus proche du point
agrave interpoler
Consiste tout simplement agrave agrandir chaque pixel
Exemple Interpolation du plus proche voisin par copie des pixels
Copie de chaque colonne et de chaque rang
23 20
25 28
23 23
23 23
20 20
20 20
25 25
25 25
28 28
28 28
Sami Gazzah 2009 200
IIV Interpolation bilineacuteaire
Fonction bilineacuteaire de 4 pixels voisins ( en 2 D )
i-1 i i+1
i-1 i-12 i i+12 i+1 i+32
yi=xiYi+12=(xi+xi+1)2
Problegraveme pour le dernier point
Extrapolation lineacuteaire de
2 xn-xn-1
Principe 1D
attribuer agrave chaque point cible une
combinaison lineacuteaire des quatre
points sources les plus proches par
la transformation inverse
Sami Gazzah 2009 201
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 202
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 203 Sami Gazzah 2009 204
IIV Interpolation bilineacuteaire
15122010
35
Sami Gazzah 2009 205
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 206
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 207
IIV Interpolation bilineacuteaire exemple
Sami Gazzah 2009 208
IIV Interpolation bicubique
Sami Gazzah 2009 209
exemple
Sami Gazzah 2009 210
Chapitre 8
Geacuteneacuteration de segments de
droite et de cercles en 2D
15122010
36
Sami Gazzah 2009 211
Infographie 2D besoin de dessiner des primitives de
base (segments cercles hellip)
Espace discreacutetiseacute (pixels) il faut trouver un moyen pour
afficher des segments ou des cercles
I Segments 2D cercles1 Introduction
Comment trouver les pixels agrave allumer pour approximer au mieux une
droite ou un cercle
Algorithme rapide et preacutecisSami Gazzah 2009 212
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=ax+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ya
Sami Gazzah 2009 213
Rappelhellip
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=mx+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ym
Sami Gazzah 2009 214
Exemple
Sami Gazzah 2009 215
Agrave partir des coordonneacutees des 2 extreacutemiteacutes d‟un segmenthellip
Un algorithme simple
Boucle de x1 agrave x2 dx=1
ALLUME (x Arrondir(y))
Avec x2gtx1
Arrondir(y) = Arrondir(ax+b)
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Sami Gazzah 2009 216
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Choix de lrsquoaxehellip
Peu efficace
bullagrave chaque iteacuteration 1 multiplication (ou division) + 1 addition
+ 1 arrondi
15122010
37
Sami Gazzah 2009 217
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
DDA (Digital Differential Analyzer)
y et m doivent ecirctre des reacuteelsSami Gazzah 2009 218
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Calcul en entier (donc plus rapide)
Baseacute sur le choix entre deux points discrets deacutependant de leur
distance respective avec le point reacuteel ideacuteal
On simplifie le problegraveme en traitant drsquoabord le traceacute drsquoun segment
dans le 1er octant m infeacuterieur agrave1 et positif (0ltmlt 1)
Facilement geacuteneacuteralisable aux autres octants
Sami Gazzah 2009 219
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Traceacute d‟un segment dans le premier octant mlt1
On part d‟un point (xi yi) allumeacute
Sami Gazzah 2009 220
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
On ne calcule pas reacuteellement les distances rArr on veacuterifie si la diffeacuterence
entre les deux distances est positive ou neacutegative
Le signe de la longueur (d1-d2) deacutetermine s‟il faut allumer le pixel L ou H
L
H
Sami Gazzah 2009 221
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Comme m=ΔyΔx on multiplie cette diffeacuterence par Δx pour eacuteviter la
division
Mais que vaut p1
Sami Gazzah 2009 222
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
15122010
38
Sami Gazzah 2009 223
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Pour eacuteviter de calculer cette diffeacuterence pour chaque point on cherche
une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
Sami Gazzah 2009 224
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009 225
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009
Exercice
Tracer le segment de droite
pi xi yi
2 0 0
-6 1 1
6 2 1
-2 3 2
10 4 2
2 5 3
-6 6 4
6 7 4
-2 8 5
10 9 5
2 10 6
6
10
y
x
Sami Gazzah 2009 227
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
Sami Gazzah 2009 228
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
hellip interchanger les points hellip
Si |Δx| lt | Δy| on interchange le rocircle de x et y
15122010
39
Sami Gazzah 2009 229
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (1)
Sami Gazzah 2009 230
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (2)
Sami Gazzah 2009 231
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (3)
Sami Gazzah 2009 232
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Toujours baseacute sur le choix entre deux
points discrets deacutependant de leur
distance respective avec le point reacuteel
On travaille dans le 2e octant agrave partir
de (0r) ainsi pour un point (xi yi) le
prochain point sera
(xi+1 yi) ou (xi+1 yi-1)
Sami Gazzah 2009 233
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On calcule le prochain y et les diffeacuterences respectives avec les points
discrets de la faccedilon suivante
Le signe de pi nous dira si nous devons choisir le point lateacuteral ou le diagonal
Sami Gazzah 2009 234
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Encore une fois pour eacuteviter de calculer cette diffeacuterence pour chaque point on
cherche une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
15122010
40
Sami Gazzah 2009 235
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On considegravere 2 cas
Valeur initiale
Sami Gazzah 2009 236
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Sami Gazzah 2009 237
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Exemple centre = (00) et r = 3
Sami Gazzah 2009 238
Livres
Diane Lingrand Introduction au Traitement d‟Images Paris Editions Vuibert 2e
eacutedition 2008
Steven k Feiner James D Foley John F Hughes Richard l Phillips Andries
Vanam Introduction agrave l‟infographie Paris Editions Vuibert 2000
William K Pratt Digital Image Processing Willy-Inter-sciences 4th edition 2007
Eacuteric Incerti Compression dimage ndash Algorithmes et standards Vuibert 2003
Gilles Burel Introduction au traitement dimages ndash Simulation sous Matlab
Hermegraves 2001
Sites web
Cours de C Rougier (U Montreacuteal)
httpwww-etudiroumontrealca~rougiercift2730courshtml (cf chapitre 3)
Page wikipeacutedia sur JPEG (en anglais plus complegravete que celle en franccedilais)
httpenwikipediaorgwikiJPEG
Cours de P Courtellemont (Campus numeacuterique Espdon)
httppersouniv-lrfrpcourtelespadonsite_web
Applet de deacutemo par C G Jennings
httpcgjenningscatoyboxhjpegindexhtml
Cours de D Marshall (U Cardiff)
httpwwwcscfacukDaveMultimediaPDF
Reacutefeacuterences
Sami Gazzah 2009 239
Chapitre 9
introduction au
traitement
dimages avec OpenGL
Sami Gazzah 2009 240
OpenGL est une librairie graphique Elle a eacuteteacute creacutee par Silicon
Graphics et beacuteneacuteficie sur ces machines de lacceacuteleacuteration mateacuterielle
Elle est constitueacute d‟environ 200 fonctions graphiques
OpenGL est une bibliothegraveque de fonctions
Les fonctions sont de bas niveaux
La version actuelle est l‟ laquo OpenGL 41 raquo (deacutecembre 2010)
Principale caracteacuteristique indeacutependant du mateacuteriel et du systegraveme
d‟exploitation
Une impleacutementation libre de droits dOpenGL tregraves performante a eacuteteacute
eacutecrite par Brian Paul httpwwwmesa3dorg Et tout son code source
est accessible
Preacutesentation geacuteneacuterale
15122010
41
Sami Gazzah 2009 241
OpenGL propose des fonctions de bas niveaux
Primitives geacuteomeacutetriques points segments polygones
Les fonctions de haut niveaux sont deacuteveloppeacutees par l‟utilisateur ou
importeacutees par la librairie en amont d‟OpenGL
Primitives geacuteomeacutetriques complexes Sphegravere splines etc
Toutes les commandes et fonctions utilisent le preacutefixe gl
Exemple glColor2f()
Sami Gazzah 2009 242
Les Bibliothegraveques co-existant avec OpenGL
GLU OpenGL Utility Library contient les routines de bas niveau pour
geacuterer les matrices de transformation et de projection la facettisation des
polygones et le rendu de surface Les bibliothegraveques dextension du
systegraveme de fenecirctres permettent lutilisation du rendu OpenGL Il sagit de
GLX pour X Windows (fonctions ayant pour preacutefixe glX) et de WGL
pour Microsoft Windows (fonctions ayant pour preacutefixe wgl)
GLUT OpenGL Utility Toolkit est une boite agrave outils indeacutependante du
systegraveme de fenecirctrage eacutecrite par Mark
Kilgard pour simplifier la tacircche dutiliser des systegravemes diffeacuterents (fonctions
ayant pour preacutefixe glut)
Sami Gazzah 2009 243
Les primitives geacuteomeacutetriques d rsquoOpenGL
Les primitives sont deacutecrites par un bloc d‟instructions deacutelimiteacute par glBegin et glEnd
Ce bloc contient geacuteneacuteralement une liste de vertex Exemple
glBegin(GL_LINE_LOOP)
glVertex2f(-05 -05)
glVertex2f(05 -05)
glVertex2f(05 05)
glVertex2f(-05 05)
glEnd()
D‟autres attributs peuvent ecirctre speacutecifieacutes en chaque sommet
couleur normale coordonneacutee de texture etcSami Gazzah 2009 244
OpenGL est une machine agrave eacutetats
En modifiant les variables d‟eacutetats on peut changer le style de rendu
Sami Gazzah 2009 245
Exemple Honda Hippo (3dRendercom)
Placage de textures
bullL‟apparence et le toucher ( feel ) d‟une surface
bullUne image utiliseacutee pour deacutefinir les caracteacuteristiques d‟une surface
bullUne image multi-dimensionnelle qui est plaqueacutee sur un espace multi-
dimensionnel
Sami Gazzah 2009 246
15122010
42
Sami Gazzah 2009 247
Reacutefeacuterences openGL
Sami Gazzah 2009 248
Chapitre 10
introduction au
traitement
dimages avec OpenCV
Sami Gazzah 2009 249
Preacutesentation geacuteneacuterale
Quest-ce
Open Source Computer Vision Library
Bibliothegraveque open source de traitement des images numeacuteriques
Projet initieacute par Intel (en 1999)
Teacuteleacutechargeable sur httpsourceforgenetprojectsopencvlibrary
Fortement orienteacutee temps reacuteel
eacutecrite en C et C++
optimiseacutee pour les processeurs multi-cœurs
Multi-plateformes disponible pour Linux Windows et Mac OS X
Que contient-elle
Des fonctionnaliteacutes (structures et routines gt350 algos) de base et
avanceacutees pour bacirctir rapidement des applications autour de la vision par
ordinateur
Exemples dutilisation traitements de bas niveau (filtrage ) deacutetection
de visages reconnaissance et suivi dobjets en mouvement Sami Gazzah 2009 250
Fonctionnaliteacutes
Lectureeacutecriture dimages statiques et de seacutequences videacuteo
APIs de bas et moyen niveaux
Traitement des images binaires
Manipulations dimage (eacutechantillonnage (sampling) reacutegion dinteacuterecirct (ROI)
redimensionnement (resizing) rotation deacuteformation (warping) )
Deacutetection de contours de lignes de coins (edge detection)
Traitements multi-eacutechelles (multiscale processing)
Transformeacutees (Fourier cosinus discregravete )
Modules de haut niveau
Deacutetection reconnaissance et suivi (tracking) de visages
Flot optique (estimation du mouvement) (optical flow)
Calibrage (calibration) de la cameacutera
Mise en correspondance steacutereacuteoscopique (stereo matching)
IA et apprentissage par ordinateur (machine learning)
3D mise en correspondance (registration)
Sami Gazzah 2009 251
Modules principaux
CxCore
Types de base pour manip dimages (ex struct image point isin cxtypesh)
Structures dynamiques (listes files graphes arbres) et persistantes (LE)
Manipulations de matrices meacutethodes de lalgegravebre lineacuteaire et statistiques
Dessin en surimpression (overlay) (ex eacutetiquetage)
Cv
Traitement dimage calibrage cameacutera
Geacuteomeacutetrie algorithmique (triangulation )
Cvaux
Reconnaissance de visage
Code expeacuterimental et obsolegravete
Autres (dans otherlibs)
HighGUI ES videacuteos curseurs fenecirctrage
ML classification regroupement (clustering)Sami Gazzah 2009 252
OpenCV premiers programmesBibliothegraveque OpenCV
15122010
43
Sami Gazzah 2009 253
Livre
G Bradski amp A Kaehler laquo Learning OpenCV raquo OReilly Press (2008)
codes sources httpexamplesoreillycom9780596516130
Ressources en ligne
Reacutefeacuterence complegravete httpopencvwillowgaragecomdocumentation
Wiki httpopencvwillowgaragecomwikiFullOpenCVWiki
bullPreacutesentation teacuteleacutechargement installation
bullavec CodeBlocks httpopencvwillowgaragecomwikiCodeBlocks
bullDeacutebuter avec OpenCV FAQ
Tutoriels
httpnchcdlsourceforgenetsourceforgeopencvlibraryippocvpdf
httpdaslmemdrexeledu~noahKuntzopenCVTut1html agrave Tut11html
httpwwwcognoticscomopencvservo_2007_series
Tutoriel sur la vision utilisant OpenCV (en franccedilais)
httpwwwsiteduzerocomtutoriel-3-8631-vision-par-ordinateurhtml
Reacutefeacuterences openCV
15122010
22
Sami Gazzah 2009 127
Segmentation par approche contourFiltre de Perwitt
Les filtres de Perwitt sont les suivants
Filtre horizontal
Filtre vertical
111
000
111
h
101
101
101
v
Sami Gazzah 2009 128
Segmentation par approche contourFiltre de Perwitt
A partir d‟une image I on calcule Gh et Gv images
correspondant au filtrage de I par h et v Ces images
contiennent les contours horizontaux et verticaux
Si l‟on souhaite obtenir une image de contour unique ne tenant
pas compte de l‟orientation on calcule
Orientation du contour
Image binairehellipchoisir un seuil de deacutetection
22
vh GGG
)(vh
GGarctg
Sami Gazzah 2009 129
Segmentation par approche contourFiltre de Sobel
Les filtres de Sobel sont les suivants
Filtre horizontal
Filtre vertical
121
000
121
h
101
202
101
v
Sami Gazzah 2009 130
Segmentation par approche contourFiltre de Sobel
Sami Gazzah 2009 131
Segmentation par approche contourFiltre de Sobel
Sami Gazzah 2009 132
Segmentation par approche contourFiltre de Roberts
Les filtres de Roberts sont les suivants
Filtre diagonal
Filtre anti-diagonal
10
01h
01
10v
15122010
23
Sami Gazzah 2009 133
Segmentation par approche contourFiltre de Kirsch
Ce deacutetecteur utilise huit noyaux de convolution lui permettant de deacutetecter
des contours en fonction de huit directions agrave
15
335
305
335
1
d 15
333
305
355
2
d 15
333
303
555
3
d
15
333
503
553
4
d 15
533
503
533
5
d 15
555
503
333
6
d
15
555
303
333
7
d 15
355
305
333
8
d
Sami Gazzah 2009 134
Contours et Laplacien
Il s‟agit de calculer la deacuteriveacutee seconde de l‟image
Le Laplacien est tregraves sensible au bruit pour limiter l‟effet du bruit le
Laplacien est approximeacute par un masque qui effectue en mecircme temps
une opeacuteration de filtrage par une Gaussienne qui repreacutesente l‟eacutetape
de lissage de l‟image puis vient l‟application du laplacien Les masques
du Laplacien Gaussien sont preacutesenteacutes ci-apregraves
Segmentation par approche contour
Sami Gazzah 2009 135
Contours et Laplacien
Le contour est ensuite deacutetermineacute par la deacutetection des
passages par zeacutero du laplacien de l‟image
88888888888888
010
141
010
1h
111
101
111
2h
121
242
121
3h
Sami Gazzah 2009 136
Contours et Laplacien
Sami Gazzah 2009 137
Seuillage
Les filtres preacuteceacutedents nous fournissent des images des sauts ou
diffeacuterences d‟intensiteacute
Le seuillage permet d‟eacuteliminer des points en lesquels la diffeacuterence
d‟intensiteacute est tregraves faible
Le seuillage peut ecirctre pousser afin d‟obtenir une image binaire (TOR)
Le seuillage dans sa forme le plus simple ne tient pas compte de la
topologie et peut conserver un point bruiteacute isoleacute ou eacuteliminer une portion
de contour d‟intensiteacute faible
Sami Gazzah 2009 138
Seuillage par hysteacutereacutesis
c‟est une fonction agrave deux seuils un seuil bas et un seuil haut
Tout point dont le module de contour est au-dessus du seuil-haut est un
point de contour
Tout point dont le module de contour est au-dessous du seuil-bas n‟est
pas un point de contour
Les points de module entre le seuil-bas et le seuil-haut sont des points
de contour s‟il possegravede un point de contour dans leur voisinage
15122010
24
Sami Gazzah 2009 139
Seuillage par hysteacutereacutesis
seuil haut
Seuil bas
point sur contour
point hors contour
Seuillage par hysteacuterisais les points de lrsquoimage de contour de valeur
supeacuterieur au seuil haut sont des points de contours A partir de ces points de
contours le voisinage de la direction du contour sont examineacutes srsquoils sont de
valeur supeacuterieure au seuil bas ils sont ajouteacutes au points de contoursSami Gazzah 2009 140
Chapitre 6
Introduction aux
opeacuterateurs
morphomatheacutematique
Sami Gazzah 2009 141
1 Introduction
Les opeacuterateurs morphomatheacutematique (=Morphologie Matheacutematique)
permettent d‟ameacuteliorer les images de contours et apporter d‟autres
fonctionnaliteacutes
Ils ont eacuteteacute initialement appliqueacute sur des images NampB (Matheron et
Sarra1965) ensuite eacutetendus agrave des images en nivaux de gris par Doupherty
(1978)
Pour les appliquer sur des images couleurs on peut les appliquer
seacutepareacutement agrave chaque composante couleur et combiner les reacutesultats
Sami Gazzah 2009 142
Diffeacuterentes opeacuterations
eacuterosion dilatation
ouverture fermeture
Squelettisation
hellip
1 Introduction
Sami Gazzah 2009 143
1 Introduction
Dilatation
Ajouter un pixel sur les pourtours de la forme
boucher les trous
Erosion
Enlever un pixel sur les pourtours de la forme
les objets de taille infeacuterieure agrave celle de leacuteleacutement
structurant vont disparaicirctre
agrandit les trous
Sami Gazzah 2009144
1I Rappels sur les ensembles
L‟eacutegaliteacute
L‟inclusion
Lbdquointersection
L‟union
La diffeacuterence
La diffeacuterence symeacutetrique
La compleacutementariteacute E eacutetant un ensemble
servant de reacutefeacuterentielle
Dans ce qui suit les lettres majuscules deacutesignent des ensembles et les lettres
minuscules deacutesignent des eacuteleacutements appartenant aux ensembles
Sur les ensembles on deacutefinit les opeacuterations suivantes
15122010
25
Sami Gazzah 2009145
1I Rappels sur les ensembles
Sami Gazzah 2009146
1I Rappels sur les ensembles
Lois de De Morgan
Reacuteflexion La reacuteflexion d‟un ensemble A est deacutefinie par
Un ensemble symeacutetrique veacuterifiant ndashA=A C‟est le cas des cercles et des carreacute par
exemple
ccc YXYX )(
ccc YXYX )(
AaaA
A -A B -B
Sami Gazzah 2009147
1I Rappels sur les ensembles
Addition de Minkowski l‟addition d‟un eacuteleacutement x agrave un ensemble A par x est
deacutefinie par
Cette notion n‟est pas uniquement ensembliste elle nous oblige agrave deacutefinir un point
de reacutefeacuterence
On en deacuteduit l‟addition d‟un ensemble B agrave un ensemble A c‟est le reacutesultat de
l‟addition de chaque eacuteleacutement de B agrave A
L‟addition de Minkowski est commutative Elle est eacutegalement appeleacute dilatation
AaxaxAB
A
A
x
AxBxAaBaBbbABAC )()()(
le translateacute de X par b
Sami Gazzah 2009148
1I Rappels sur les ensembles
Eleacutement structurant les opeacuterations morphomatheacutematiques sont deacutefinis agrave
partir des ensemble B discrets appeleacute eacuteleacutement structurant Ces eacuteleacutement
permettent de deacutefinir le type de voisinage souhaiteacute
Addition de Minkowski d‟un ensemble A et d‟un ensemble B
BA
Sami Gazzah 2009149
1II Dilatation
Le reacutesultat de dilatation de lrsquoensemble A par lrsquoensemble B
est lrsquoaddition de Minkowski crsquoest lrsquoensemble des points tel
que lorsque B est centreacute sur un de ces points il y a une
intersection non vide entre A et B
Pour des images en niveaux de gris on obtient lrsquoimage
dilateacutee de la forme A en remplaccedilant tout pixel par le
maximum des intensiteacutes des voisins selon la forme B
Sami Gazzah 2009 150
1II Dilatation1 Image NampB
Soit k l‟eacuteleacutement structurant de taille (2k+1) x (2k+1) L‟algorithme de
dilatation est le suivant on parcourt tous les pixels de l‟image sauf les
bord de l‟image d‟eacutepaisseur k pour chaque pixel du fond rencontreacute s‟il
possegravede un voisin au sens de l‟eacuteleacutement structurant qui appartient agrave un
objet il prend le couleur de l‟objet si non il n‟est pas modifieacute
15122010
26
la dilatation (noteacutee ) drsquoune image monochrome laquo f raquo par un
eacuteleacutement structurant laquo B raquo est deacutefinie en terme de sous-graphe
bull f B = T [ Y ] = Supl l tel que (m n l) Y
bullY = U ( f ) U ( B )
En consideacuterant un eacuteleacutement structurant plan de valeur nulle sur son
support
( f B ) (P) = Max valeurs des pixels du voisinage du pixel P
1II Dilatation1 Image niveaux de gris
max
55 68 77 90 91 95 115 151 210
( f B ) (P) = 210
n
115 91 77
95 68 90
55 151 210
exemple
m
Image de reacutefeacuterence
Eacuteleacutement structurant
(8-connexiteacute)
liste ordonneacutee des valeurs du voisinage
- - -
-
-
-
-
-
1II Dilatation1 Image niveaux de gris
Exemples de filtrages morphologiques(eacuteleacutement structurant 33 complet)
Image de reacutefeacuterenceImage dilateacutee
morphologiquement
La dilatation en niveaux de gris accroicirct la luminance des
pixels entoureacutes de voisins plus lumineux
Observation
Sami Gazzah 2009154
VI Erosion
L‟eacuterosion est deacutefinie par
On deacutefinit la soustraction de Minkowski par
On a eacutequivalence entre eacuterosion et soustraction de Minkowski si B est
symeacutetrique (si B=-B)
D‟un point de vue binaire l‟eacuterode de A par B correspond agrave l‟ensemble
des points tels que si B est centre sur ce points B est entiegraverement inclus
dans A
AxBxBbbABAC )()(
)()( BbbABAC
Sami Gazzah 2009 155
VI Erosion1 Image NampB
on parcourt tous les pixels de l‟image sauf les bord de l‟image
d‟eacutepaisseur k pour chaque pixel du fond rencontreacute s‟il possegravede un
voisin au sens de l‟eacuteleacutement structurant qui appartient agrave un objet il
prend le couleur du fond si non il n‟est pas modifieacute
VI Eacuterosion drsquoune image en niveaux de gris
Lrsquoeacuterosion (noteacutee Ө ) drsquoune image monochrome laquo f raquo par un eacuteleacutement
structurant laquo B raquo est deacutefinie en terme de sous-graphe
bull f Ө B = T [ Y ] = Supl l tel que (m n l) Y
bullY = U ( f ) Ө U ( B )
Classiquement on considegravere un eacuteleacutement structurant plan de
valeur nulle sur son support
( f Ө B ) (P) = Min valeurs des pixels du voisinage du pixel P
15122010
27
VI Eacuterosion drsquoune image en niveaux de gris
min
68 90 91 95 151
( f Ө B ) (P) = 68
n
115 91 77
95 68 90
55 151 210
exemple
m
Image de reacutefeacuterence
ӨӨ
Eacuteleacutement structurant
(4-connexiteacute)
liste ordonneacutee des valeurs du voisinage
-
-
-
-
Exemples de filtrages morphologiques(eacuteleacutement structurant 33 complet)
Image eacuterodeacutee
Lrsquoeacuterosion en niveaux de gris reacuteduit la luminance des pixels
qui sont entoureacutes de voisins de moindre intensiteacute
Image de reacutefeacuterence
Observation
Sami Gazzah 2009 159
Eacuteleacutement structurant (a)
(4-connexiteacute)
-
-
-
-
Eacuteleacutement structurant (b)
(8-connexiteacute)
- - -
-
-
-
-
-
Exercice 1 Sur la mecircme image de deacutepart on reacutealise deux opeacuterations
de dilatations avec deux eacuteleacutements structurant diffeacuterents
Dilatation avec (a) Dilatation avec (b)
image de deacutepart
cas a L‟eacuteleacutement structurant est agrave 4-connexiteacute Chaque pixel
du support qui est eacutegal agrave la valeur 1 ou qui a l‟un de ses 4
voisins agrave la valeur 1 est mis agrave la valeur 1 apregraves filtrage
cas b L‟eacuteleacutement structurant est agrave 8-connexiteacute Chaque pixel
du support qui est eacutegal agrave la valeur 1 ou qui a l‟un de ses 8
voisins agrave la valeur 1 est mis agrave la valeur 1 apregraves filtrage
Dans les deux cas on observe qu‟une dilatation eacutelimine les
trous isoleacutes dans les objets et dilate le contour des objets en
tenant compte de l‟eacuteleacutement structurant
Sami Gazzah 2009 160
Exercice 1
Sami Gazzah 2009 161
Eacuteleacutement structurant (a)
(4-connexiteacute)
-
-
-
-
Eacuteleacutement structurant (b)
(8-connexiteacute)
- - -
-
-
-
-
-
Exercice 2 Sur la mecircme image de deacutepart on reacutealise deux opeacuterations
d‟eacuterosions avec deux eacuteleacutements structurant diffeacuterents
Erosion avec (a) Erosion avec (b)
image de deacutepart
cas a L‟eacuteleacutement structurant est agrave 4-connexiteacute (origine agrave 4 voisins)
Chaque pixel du support qui a la valeur 0 ou qui a l‟un de ses 4
voisins agrave la valeur 0 est mis agrave la valeur 0 apregraves filtrage
cas b L‟eacuteleacutement structurant est agrave 8-connexiteacute Chaque pixel du
support qui a la valeur 0 ou qui a l‟un de ses 8 voisins agrave la valeur 0
est mis agrave la valeur 0 apregraves filtrage
Dans les deux cas on observe qu‟une eacuterosion eacutelimine les pixels
isoleacutes sur le fond et eacuterode le contour des objets
Sami Gazzah 2009 162
Exercice 2
15122010
28
ConclusionsConclusions
Erosion
les objets relieacutes entre eux vont ecirctre seacutepareacutes
Une eacuterosion de taille n peut se reacutealiser en reacutepeacutetant une
eacuterosion n fois avec un eacuteleacutement structurant de taille 1 ou en
appliquant une seule eacuterosion avec un eacuteleacutement structurant
de taille n
Dilatation
des objets sont situeacutes agrave une distance moins grande que la taille
de leacuteleacutement structurant il vont fusionner
Sami Gazzah 2009 163 Sami Gazzah 2009 164
Sami Gazzah 2009 165
Elimine pixels isoleacutes sans inteacuterecirct
L‟ouverture (opening) consiste agrave une eacuterosion suivi d‟une dilatation
Les petites structures et deacutetail fins disparaissent et ne sont pas recreacuteeacutees
lors de la dilation Une opeacuteration d‟ouverture est ainsi inteacuteressante pour
eacuteliminer les petits morceaux de contours bruiteacutes dans une image de
contours
V Ouverture et fermeture1 Ouverture
BBABAC )(
Sami Gazzah 2009 166
V Ouverture et fermetureII Fermeture
La fermeture (closing) consiste agrave une dilatation suivi d‟une eacuterosion
Les structures proches fusionnent lors de la dilation mais seules les
fusions ponctuelles disparaissent agrave nouveau lors de l‟eacuterosion Une
opeacuteration de fermeture est ainsi inteacuteressante pour boucher les petits
trous
Sami Gazzah 2009 167 Sami Gazzah 2009 168
Exercice 3 Sur l‟image de deacutepart on reacutealise une opeacuteration de
fermeture binaire par l‟eacuteleacutement structurant 4-connexiteacute Conclusions
Eacuteleacutement structurant
(4-connexiteacute)
-
-
-
-Fermeture = dilatation puis eacuterosion
Image de deacutepart Image dilateacutee Image dilateacutee puis eacuterodeacutee
Combler les trous
Reacutetablir les jonctions
tout en preacuteservant la taille
15122010
29
Sami Gazzah 2009 169
Exercice 4 Sur l‟image de deacutepart on reacutealise une opeacuteration
d‟ouverture binaire par l‟eacuteleacutement structurant 4-connexiteacute Conclusions
Eacuteleacutement structurant
(4-connexiteacute)
-
-
-
-Ouverture = eacuterosion puis dilatation
Image de deacutepart Image eacuterodeacutee Image eacuterodeacutee puis dilateacutee
Supprimer les fausses alarmes
Seacuteparer les objets accoleacutes
tout en preacuteservant la tailleSami Gazzah 2009 170
Appliquer les filtres suivants sur limage donneacutee Quelles sont les valeurs choisies
aux bords de limage et quelles sont les modifications visuelles
a) filtre moyenneur M3acute3(19)
b) eacuterosion
c) dilatation
d) meacutedian
e) fermeture
f) ouverture
Exercice 5
Sami Gazzah 2009 171
IV Amincissement et Squelettisation
La squelette (skeleton) d‟une forme est l‟axe meacutedian L‟inteacuterecirct de cette
opeacuteration est dans
La reconnaissance de caractegraveres
Deacutetection des reacuteseaux routiers
La planification de trajectoirehellip
Une meacutethode couramment employeacutee est une amincissement reacutepeacuteteacute
jusqu‟agrave le convergence (n‟apporte aucune modification)
Sami Gazzah 2009 172
IV Amincissement et Squelettisation1 Opeacuteration Tout Ou Rien laquoHit or Missraquo
Cette transformation est deacutefinie par
leacuteleacutement structurant eacutetendu est centreacute sur chaque pixel de limage
comme pour les opeacuterations ensemblistes
la question poseacutee est est ce que le contenu de limage est identique au
contenu de leacuteleacutement structurant
si la reacuteponse est oui le pixel reacutesultant vaut 1 si non il vaut 0
Une application permet de deacutetecter des configurations locales
particuliegraveres dans une image
plusieurs masques peuvent ecirctre utiliseacutes indeacutependamment les images
reacutesultat eacutetant ensuite combineacutees par une opeacuteration ou
)()( cc BABABA
Bc-
est le compleacutementaire
local de B
Sami Gazzah 2009 173
IV Amincissement et Squelettisation1 Opeacuteration laquoHit or Missraquo
Exemple dopeacuteration Hit or Miss deacutetection des coinsSami Gazzah 2009 174
IV Amincissement et Squelettisation1 Amincissement (thinning)
bull La transformation TOR nous permet eacutegalement de deacutefinir
l‟amincissement
bullL‟amincissement consiste agrave soustraire limage reacutesultat dun hit or miss de
limage initiale
bull des amincissements successifs conduisent au squelettisation
)()( BAAAthin
15122010
30
Sami Gazzah 2009 175
IV Amincissement et Squelettisation1I Squelettisation
Appliquer des amincissements successifs puis s‟arrecircter lorsque l‟amincissement
n‟apporte plus de modification C‟est une eacuterosion particuliegravere ougrave les pixels sont
supprimeacutes agrave la condition quils ne provoquent pas la seacuteparation dune reacutegion en
deux
Sami Gazzah 2009 176
IV Amincissement et Squelettisation1I Squelettisation
Sami Gazzah 2009 177
Chapitre 7
Transformations
geacuteomeacutetriques 2D
Sami Gazzah 2009 178
I Introduction
On entend par transformation 2D l‟ensemble des transformations du
plan pouvant ecirctre appliqueacutees aux pixels de l‟image sans consideacuteration
de l‟intensiteacute
Par exemples
Reacuteduction agrandissement
Deacuteformation d‟image
Recalage d‟une photo scanneacutee
Recaler des images que l‟on veut comparer
Mosaiumlque d‟images
Sami Gazzah 2009 179
I Transformations euclidiennes
Elles preacuteservent les distances et les angles
Elles sont les compositions de translations et de rotations
1) Translation
Ougrave Tx et Ty sont les deacuteplacements en x et en y de la translation
y
x
Tyy
Txx
Sami Gazzah 2009 180
2) Rotation
15122010
31
Sami Gazzah 2009 181 Sami Gazzah 2009 182
3) Remarques (1)
Sami Gazzah 2009 183
3) Remarques (2)
Sami Gazzah 2009 184
II Homotheacuteties
Changement deacutechelle par rapport agrave lorigine (scaling zoom)
Ougrave Sx et Sy sont les facteurs dagrandissement ( gt1) ou de
reacuteduction ( lt1) en x et en y
ySy
xSx
y
x
Sami Gazzah 2009 185
II Homotheacuteties
Sami Gazzah 2009 186
II Homotheacuteties
15122010
32
Sami Gazzah 2009 187
III Reacuteflexions
Reacuteflexions par rapport aux axes (flip miroir)
Sami Gazzah 2009 188
IV Cisaillement
Cisaillement (glissement shearing) on eacutetire suivant un ou plusieurs axes
Sami Gazzah 2009 189
Transformations inverses
Sami Gazzah 2009 190
Repreacutesentation Matricielle
IV Autres (reacuteflexions miroirs et flips)
Sami Gazzah 2009 191
Interpolation Directe
Sami Gazzah 2009 192
oDifficile de distribuer le niveau de gris sur les pixels voisins
oOn n‟a pas la certitude que tous les pixels de l‟image
transformeacutee recevront une valeur =gt ldquotrousrdquo
15122010
33
Interpolation Inverse
Sami Gazzah 2009 193
o Interpolation de la valeur du pixel agrave partir des voisins plus
facile
oAucun ldquotrourdquo car on parcourt tous les pixels de l‟image
transformeacutee Sami Gazzah 2009 194
V Objet vectoriel - Objet bitmap
Objet vectoriel
Essentiellement on transforme
les sommets (ou points de
controcircle) et on retracehellip
Objet ldquobitmaprdquo
On doit calculer la nouvelle
position de chaque pixel De plus on
doit geacuteneacuteralement interpoler les
niveaux de gris (couleurs)hellip
Sami Gazzah 2009 195
IV Assignation des niveaux de gris
Neacutecessaire car la position d‟un pixel transformeacute n‟est pas entiegraverehellip
Plusieurs meacutethodes
Interpolation au plus proche voisin
Interpolation bilineacuteaire
Interpolation bicubique
Autres types d‟interpolation
Sami Gazzah 2009 196
IV Assignation des niveaux de gris
Linterpolation de limage cest ce qui arrive lorsquon redimensionne
une image numeacuterique ou quon la redimensionne avec une distorsion
quon change la perspective etc
Exemple 1
Image originale (sans interpolation)
Image agrandie et donc interpoleacutee
Perte de netteteacute due agrave linterpolation
Sami Gazzah 2009
197
IV Assignation des niveaux de gris
Exemple 2 recadrage dimage
Nous allons agrandir cette image agrave 180
Il va donc nous manquer des informations lagrave ougrave lon va creacuteer des
pixels pour agrandir limage
Reacutesultat sans interpolation le logiciel agrandit simplement les pixels
Reacutesultat avec interpolation le logiciel calcule une couleur intermeacutediaire
pour chaque nouveau pixel
Sami Gazzah 2009
198
IV Assignation des niveaux de gris
Image originale
Interpolation au plus
proche voisin
Interpolation
bilineacuteaireInterpolation
bicubique
15122010
34
Sami Gazzah 2009 199
IIV Interpolation au plus proche voisin
Cest lalgorithme le plus rapide agrave calculer
Prend en compte dans le calcul que le pixel le plus proche du point
agrave interpoler
Consiste tout simplement agrave agrandir chaque pixel
Exemple Interpolation du plus proche voisin par copie des pixels
Copie de chaque colonne et de chaque rang
23 20
25 28
23 23
23 23
20 20
20 20
25 25
25 25
28 28
28 28
Sami Gazzah 2009 200
IIV Interpolation bilineacuteaire
Fonction bilineacuteaire de 4 pixels voisins ( en 2 D )
i-1 i i+1
i-1 i-12 i i+12 i+1 i+32
yi=xiYi+12=(xi+xi+1)2
Problegraveme pour le dernier point
Extrapolation lineacuteaire de
2 xn-xn-1
Principe 1D
attribuer agrave chaque point cible une
combinaison lineacuteaire des quatre
points sources les plus proches par
la transformation inverse
Sami Gazzah 2009 201
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 202
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 203 Sami Gazzah 2009 204
IIV Interpolation bilineacuteaire
15122010
35
Sami Gazzah 2009 205
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 206
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 207
IIV Interpolation bilineacuteaire exemple
Sami Gazzah 2009 208
IIV Interpolation bicubique
Sami Gazzah 2009 209
exemple
Sami Gazzah 2009 210
Chapitre 8
Geacuteneacuteration de segments de
droite et de cercles en 2D
15122010
36
Sami Gazzah 2009 211
Infographie 2D besoin de dessiner des primitives de
base (segments cercles hellip)
Espace discreacutetiseacute (pixels) il faut trouver un moyen pour
afficher des segments ou des cercles
I Segments 2D cercles1 Introduction
Comment trouver les pixels agrave allumer pour approximer au mieux une
droite ou un cercle
Algorithme rapide et preacutecisSami Gazzah 2009 212
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=ax+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ya
Sami Gazzah 2009 213
Rappelhellip
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=mx+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ym
Sami Gazzah 2009 214
Exemple
Sami Gazzah 2009 215
Agrave partir des coordonneacutees des 2 extreacutemiteacutes d‟un segmenthellip
Un algorithme simple
Boucle de x1 agrave x2 dx=1
ALLUME (x Arrondir(y))
Avec x2gtx1
Arrondir(y) = Arrondir(ax+b)
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Sami Gazzah 2009 216
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Choix de lrsquoaxehellip
Peu efficace
bullagrave chaque iteacuteration 1 multiplication (ou division) + 1 addition
+ 1 arrondi
15122010
37
Sami Gazzah 2009 217
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
DDA (Digital Differential Analyzer)
y et m doivent ecirctre des reacuteelsSami Gazzah 2009 218
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Calcul en entier (donc plus rapide)
Baseacute sur le choix entre deux points discrets deacutependant de leur
distance respective avec le point reacuteel ideacuteal
On simplifie le problegraveme en traitant drsquoabord le traceacute drsquoun segment
dans le 1er octant m infeacuterieur agrave1 et positif (0ltmlt 1)
Facilement geacuteneacuteralisable aux autres octants
Sami Gazzah 2009 219
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Traceacute d‟un segment dans le premier octant mlt1
On part d‟un point (xi yi) allumeacute
Sami Gazzah 2009 220
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
On ne calcule pas reacuteellement les distances rArr on veacuterifie si la diffeacuterence
entre les deux distances est positive ou neacutegative
Le signe de la longueur (d1-d2) deacutetermine s‟il faut allumer le pixel L ou H
L
H
Sami Gazzah 2009 221
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Comme m=ΔyΔx on multiplie cette diffeacuterence par Δx pour eacuteviter la
division
Mais que vaut p1
Sami Gazzah 2009 222
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
15122010
38
Sami Gazzah 2009 223
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Pour eacuteviter de calculer cette diffeacuterence pour chaque point on cherche
une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
Sami Gazzah 2009 224
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009 225
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009
Exercice
Tracer le segment de droite
pi xi yi
2 0 0
-6 1 1
6 2 1
-2 3 2
10 4 2
2 5 3
-6 6 4
6 7 4
-2 8 5
10 9 5
2 10 6
6
10
y
x
Sami Gazzah 2009 227
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
Sami Gazzah 2009 228
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
hellip interchanger les points hellip
Si |Δx| lt | Δy| on interchange le rocircle de x et y
15122010
39
Sami Gazzah 2009 229
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (1)
Sami Gazzah 2009 230
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (2)
Sami Gazzah 2009 231
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (3)
Sami Gazzah 2009 232
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Toujours baseacute sur le choix entre deux
points discrets deacutependant de leur
distance respective avec le point reacuteel
On travaille dans le 2e octant agrave partir
de (0r) ainsi pour un point (xi yi) le
prochain point sera
(xi+1 yi) ou (xi+1 yi-1)
Sami Gazzah 2009 233
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On calcule le prochain y et les diffeacuterences respectives avec les points
discrets de la faccedilon suivante
Le signe de pi nous dira si nous devons choisir le point lateacuteral ou le diagonal
Sami Gazzah 2009 234
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Encore une fois pour eacuteviter de calculer cette diffeacuterence pour chaque point on
cherche une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
15122010
40
Sami Gazzah 2009 235
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On considegravere 2 cas
Valeur initiale
Sami Gazzah 2009 236
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Sami Gazzah 2009 237
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Exemple centre = (00) et r = 3
Sami Gazzah 2009 238
Livres
Diane Lingrand Introduction au Traitement d‟Images Paris Editions Vuibert 2e
eacutedition 2008
Steven k Feiner James D Foley John F Hughes Richard l Phillips Andries
Vanam Introduction agrave l‟infographie Paris Editions Vuibert 2000
William K Pratt Digital Image Processing Willy-Inter-sciences 4th edition 2007
Eacuteric Incerti Compression dimage ndash Algorithmes et standards Vuibert 2003
Gilles Burel Introduction au traitement dimages ndash Simulation sous Matlab
Hermegraves 2001
Sites web
Cours de C Rougier (U Montreacuteal)
httpwww-etudiroumontrealca~rougiercift2730courshtml (cf chapitre 3)
Page wikipeacutedia sur JPEG (en anglais plus complegravete que celle en franccedilais)
httpenwikipediaorgwikiJPEG
Cours de P Courtellemont (Campus numeacuterique Espdon)
httppersouniv-lrfrpcourtelespadonsite_web
Applet de deacutemo par C G Jennings
httpcgjenningscatoyboxhjpegindexhtml
Cours de D Marshall (U Cardiff)
httpwwwcscfacukDaveMultimediaPDF
Reacutefeacuterences
Sami Gazzah 2009 239
Chapitre 9
introduction au
traitement
dimages avec OpenGL
Sami Gazzah 2009 240
OpenGL est une librairie graphique Elle a eacuteteacute creacutee par Silicon
Graphics et beacuteneacuteficie sur ces machines de lacceacuteleacuteration mateacuterielle
Elle est constitueacute d‟environ 200 fonctions graphiques
OpenGL est une bibliothegraveque de fonctions
Les fonctions sont de bas niveaux
La version actuelle est l‟ laquo OpenGL 41 raquo (deacutecembre 2010)
Principale caracteacuteristique indeacutependant du mateacuteriel et du systegraveme
d‟exploitation
Une impleacutementation libre de droits dOpenGL tregraves performante a eacuteteacute
eacutecrite par Brian Paul httpwwwmesa3dorg Et tout son code source
est accessible
Preacutesentation geacuteneacuterale
15122010
41
Sami Gazzah 2009 241
OpenGL propose des fonctions de bas niveaux
Primitives geacuteomeacutetriques points segments polygones
Les fonctions de haut niveaux sont deacuteveloppeacutees par l‟utilisateur ou
importeacutees par la librairie en amont d‟OpenGL
Primitives geacuteomeacutetriques complexes Sphegravere splines etc
Toutes les commandes et fonctions utilisent le preacutefixe gl
Exemple glColor2f()
Sami Gazzah 2009 242
Les Bibliothegraveques co-existant avec OpenGL
GLU OpenGL Utility Library contient les routines de bas niveau pour
geacuterer les matrices de transformation et de projection la facettisation des
polygones et le rendu de surface Les bibliothegraveques dextension du
systegraveme de fenecirctres permettent lutilisation du rendu OpenGL Il sagit de
GLX pour X Windows (fonctions ayant pour preacutefixe glX) et de WGL
pour Microsoft Windows (fonctions ayant pour preacutefixe wgl)
GLUT OpenGL Utility Toolkit est une boite agrave outils indeacutependante du
systegraveme de fenecirctrage eacutecrite par Mark
Kilgard pour simplifier la tacircche dutiliser des systegravemes diffeacuterents (fonctions
ayant pour preacutefixe glut)
Sami Gazzah 2009 243
Les primitives geacuteomeacutetriques d rsquoOpenGL
Les primitives sont deacutecrites par un bloc d‟instructions deacutelimiteacute par glBegin et glEnd
Ce bloc contient geacuteneacuteralement une liste de vertex Exemple
glBegin(GL_LINE_LOOP)
glVertex2f(-05 -05)
glVertex2f(05 -05)
glVertex2f(05 05)
glVertex2f(-05 05)
glEnd()
D‟autres attributs peuvent ecirctre speacutecifieacutes en chaque sommet
couleur normale coordonneacutee de texture etcSami Gazzah 2009 244
OpenGL est une machine agrave eacutetats
En modifiant les variables d‟eacutetats on peut changer le style de rendu
Sami Gazzah 2009 245
Exemple Honda Hippo (3dRendercom)
Placage de textures
bullL‟apparence et le toucher ( feel ) d‟une surface
bullUne image utiliseacutee pour deacutefinir les caracteacuteristiques d‟une surface
bullUne image multi-dimensionnelle qui est plaqueacutee sur un espace multi-
dimensionnel
Sami Gazzah 2009 246
15122010
42
Sami Gazzah 2009 247
Reacutefeacuterences openGL
Sami Gazzah 2009 248
Chapitre 10
introduction au
traitement
dimages avec OpenCV
Sami Gazzah 2009 249
Preacutesentation geacuteneacuterale
Quest-ce
Open Source Computer Vision Library
Bibliothegraveque open source de traitement des images numeacuteriques
Projet initieacute par Intel (en 1999)
Teacuteleacutechargeable sur httpsourceforgenetprojectsopencvlibrary
Fortement orienteacutee temps reacuteel
eacutecrite en C et C++
optimiseacutee pour les processeurs multi-cœurs
Multi-plateformes disponible pour Linux Windows et Mac OS X
Que contient-elle
Des fonctionnaliteacutes (structures et routines gt350 algos) de base et
avanceacutees pour bacirctir rapidement des applications autour de la vision par
ordinateur
Exemples dutilisation traitements de bas niveau (filtrage ) deacutetection
de visages reconnaissance et suivi dobjets en mouvement Sami Gazzah 2009 250
Fonctionnaliteacutes
Lectureeacutecriture dimages statiques et de seacutequences videacuteo
APIs de bas et moyen niveaux
Traitement des images binaires
Manipulations dimage (eacutechantillonnage (sampling) reacutegion dinteacuterecirct (ROI)
redimensionnement (resizing) rotation deacuteformation (warping) )
Deacutetection de contours de lignes de coins (edge detection)
Traitements multi-eacutechelles (multiscale processing)
Transformeacutees (Fourier cosinus discregravete )
Modules de haut niveau
Deacutetection reconnaissance et suivi (tracking) de visages
Flot optique (estimation du mouvement) (optical flow)
Calibrage (calibration) de la cameacutera
Mise en correspondance steacutereacuteoscopique (stereo matching)
IA et apprentissage par ordinateur (machine learning)
3D mise en correspondance (registration)
Sami Gazzah 2009 251
Modules principaux
CxCore
Types de base pour manip dimages (ex struct image point isin cxtypesh)
Structures dynamiques (listes files graphes arbres) et persistantes (LE)
Manipulations de matrices meacutethodes de lalgegravebre lineacuteaire et statistiques
Dessin en surimpression (overlay) (ex eacutetiquetage)
Cv
Traitement dimage calibrage cameacutera
Geacuteomeacutetrie algorithmique (triangulation )
Cvaux
Reconnaissance de visage
Code expeacuterimental et obsolegravete
Autres (dans otherlibs)
HighGUI ES videacuteos curseurs fenecirctrage
ML classification regroupement (clustering)Sami Gazzah 2009 252
OpenCV premiers programmesBibliothegraveque OpenCV
15122010
43
Sami Gazzah 2009 253
Livre
G Bradski amp A Kaehler laquo Learning OpenCV raquo OReilly Press (2008)
codes sources httpexamplesoreillycom9780596516130
Ressources en ligne
Reacutefeacuterence complegravete httpopencvwillowgaragecomdocumentation
Wiki httpopencvwillowgaragecomwikiFullOpenCVWiki
bullPreacutesentation teacuteleacutechargement installation
bullavec CodeBlocks httpopencvwillowgaragecomwikiCodeBlocks
bullDeacutebuter avec OpenCV FAQ
Tutoriels
httpnchcdlsourceforgenetsourceforgeopencvlibraryippocvpdf
httpdaslmemdrexeledu~noahKuntzopenCVTut1html agrave Tut11html
httpwwwcognoticscomopencvservo_2007_series
Tutoriel sur la vision utilisant OpenCV (en franccedilais)
httpwwwsiteduzerocomtutoriel-3-8631-vision-par-ordinateurhtml
Reacutefeacuterences openCV
15122010
23
Sami Gazzah 2009 133
Segmentation par approche contourFiltre de Kirsch
Ce deacutetecteur utilise huit noyaux de convolution lui permettant de deacutetecter
des contours en fonction de huit directions agrave
15
335
305
335
1
d 15
333
305
355
2
d 15
333
303
555
3
d
15
333
503
553
4
d 15
533
503
533
5
d 15
555
503
333
6
d
15
555
303
333
7
d 15
355
305
333
8
d
Sami Gazzah 2009 134
Contours et Laplacien
Il s‟agit de calculer la deacuteriveacutee seconde de l‟image
Le Laplacien est tregraves sensible au bruit pour limiter l‟effet du bruit le
Laplacien est approximeacute par un masque qui effectue en mecircme temps
une opeacuteration de filtrage par une Gaussienne qui repreacutesente l‟eacutetape
de lissage de l‟image puis vient l‟application du laplacien Les masques
du Laplacien Gaussien sont preacutesenteacutes ci-apregraves
Segmentation par approche contour
Sami Gazzah 2009 135
Contours et Laplacien
Le contour est ensuite deacutetermineacute par la deacutetection des
passages par zeacutero du laplacien de l‟image
88888888888888
010
141
010
1h
111
101
111
2h
121
242
121
3h
Sami Gazzah 2009 136
Contours et Laplacien
Sami Gazzah 2009 137
Seuillage
Les filtres preacuteceacutedents nous fournissent des images des sauts ou
diffeacuterences d‟intensiteacute
Le seuillage permet d‟eacuteliminer des points en lesquels la diffeacuterence
d‟intensiteacute est tregraves faible
Le seuillage peut ecirctre pousser afin d‟obtenir une image binaire (TOR)
Le seuillage dans sa forme le plus simple ne tient pas compte de la
topologie et peut conserver un point bruiteacute isoleacute ou eacuteliminer une portion
de contour d‟intensiteacute faible
Sami Gazzah 2009 138
Seuillage par hysteacutereacutesis
c‟est une fonction agrave deux seuils un seuil bas et un seuil haut
Tout point dont le module de contour est au-dessus du seuil-haut est un
point de contour
Tout point dont le module de contour est au-dessous du seuil-bas n‟est
pas un point de contour
Les points de module entre le seuil-bas et le seuil-haut sont des points
de contour s‟il possegravede un point de contour dans leur voisinage
15122010
24
Sami Gazzah 2009 139
Seuillage par hysteacutereacutesis
seuil haut
Seuil bas
point sur contour
point hors contour
Seuillage par hysteacuterisais les points de lrsquoimage de contour de valeur
supeacuterieur au seuil haut sont des points de contours A partir de ces points de
contours le voisinage de la direction du contour sont examineacutes srsquoils sont de
valeur supeacuterieure au seuil bas ils sont ajouteacutes au points de contoursSami Gazzah 2009 140
Chapitre 6
Introduction aux
opeacuterateurs
morphomatheacutematique
Sami Gazzah 2009 141
1 Introduction
Les opeacuterateurs morphomatheacutematique (=Morphologie Matheacutematique)
permettent d‟ameacuteliorer les images de contours et apporter d‟autres
fonctionnaliteacutes
Ils ont eacuteteacute initialement appliqueacute sur des images NampB (Matheron et
Sarra1965) ensuite eacutetendus agrave des images en nivaux de gris par Doupherty
(1978)
Pour les appliquer sur des images couleurs on peut les appliquer
seacutepareacutement agrave chaque composante couleur et combiner les reacutesultats
Sami Gazzah 2009 142
Diffeacuterentes opeacuterations
eacuterosion dilatation
ouverture fermeture
Squelettisation
hellip
1 Introduction
Sami Gazzah 2009 143
1 Introduction
Dilatation
Ajouter un pixel sur les pourtours de la forme
boucher les trous
Erosion
Enlever un pixel sur les pourtours de la forme
les objets de taille infeacuterieure agrave celle de leacuteleacutement
structurant vont disparaicirctre
agrandit les trous
Sami Gazzah 2009144
1I Rappels sur les ensembles
L‟eacutegaliteacute
L‟inclusion
Lbdquointersection
L‟union
La diffeacuterence
La diffeacuterence symeacutetrique
La compleacutementariteacute E eacutetant un ensemble
servant de reacutefeacuterentielle
Dans ce qui suit les lettres majuscules deacutesignent des ensembles et les lettres
minuscules deacutesignent des eacuteleacutements appartenant aux ensembles
Sur les ensembles on deacutefinit les opeacuterations suivantes
15122010
25
Sami Gazzah 2009145
1I Rappels sur les ensembles
Sami Gazzah 2009146
1I Rappels sur les ensembles
Lois de De Morgan
Reacuteflexion La reacuteflexion d‟un ensemble A est deacutefinie par
Un ensemble symeacutetrique veacuterifiant ndashA=A C‟est le cas des cercles et des carreacute par
exemple
ccc YXYX )(
ccc YXYX )(
AaaA
A -A B -B
Sami Gazzah 2009147
1I Rappels sur les ensembles
Addition de Minkowski l‟addition d‟un eacuteleacutement x agrave un ensemble A par x est
deacutefinie par
Cette notion n‟est pas uniquement ensembliste elle nous oblige agrave deacutefinir un point
de reacutefeacuterence
On en deacuteduit l‟addition d‟un ensemble B agrave un ensemble A c‟est le reacutesultat de
l‟addition de chaque eacuteleacutement de B agrave A
L‟addition de Minkowski est commutative Elle est eacutegalement appeleacute dilatation
AaxaxAB
A
A
x
AxBxAaBaBbbABAC )()()(
le translateacute de X par b
Sami Gazzah 2009148
1I Rappels sur les ensembles
Eleacutement structurant les opeacuterations morphomatheacutematiques sont deacutefinis agrave
partir des ensemble B discrets appeleacute eacuteleacutement structurant Ces eacuteleacutement
permettent de deacutefinir le type de voisinage souhaiteacute
Addition de Minkowski d‟un ensemble A et d‟un ensemble B
BA
Sami Gazzah 2009149
1II Dilatation
Le reacutesultat de dilatation de lrsquoensemble A par lrsquoensemble B
est lrsquoaddition de Minkowski crsquoest lrsquoensemble des points tel
que lorsque B est centreacute sur un de ces points il y a une
intersection non vide entre A et B
Pour des images en niveaux de gris on obtient lrsquoimage
dilateacutee de la forme A en remplaccedilant tout pixel par le
maximum des intensiteacutes des voisins selon la forme B
Sami Gazzah 2009 150
1II Dilatation1 Image NampB
Soit k l‟eacuteleacutement structurant de taille (2k+1) x (2k+1) L‟algorithme de
dilatation est le suivant on parcourt tous les pixels de l‟image sauf les
bord de l‟image d‟eacutepaisseur k pour chaque pixel du fond rencontreacute s‟il
possegravede un voisin au sens de l‟eacuteleacutement structurant qui appartient agrave un
objet il prend le couleur de l‟objet si non il n‟est pas modifieacute
15122010
26
la dilatation (noteacutee ) drsquoune image monochrome laquo f raquo par un
eacuteleacutement structurant laquo B raquo est deacutefinie en terme de sous-graphe
bull f B = T [ Y ] = Supl l tel que (m n l) Y
bullY = U ( f ) U ( B )
En consideacuterant un eacuteleacutement structurant plan de valeur nulle sur son
support
( f B ) (P) = Max valeurs des pixels du voisinage du pixel P
1II Dilatation1 Image niveaux de gris
max
55 68 77 90 91 95 115 151 210
( f B ) (P) = 210
n
115 91 77
95 68 90
55 151 210
exemple
m
Image de reacutefeacuterence
Eacuteleacutement structurant
(8-connexiteacute)
liste ordonneacutee des valeurs du voisinage
- - -
-
-
-
-
-
1II Dilatation1 Image niveaux de gris
Exemples de filtrages morphologiques(eacuteleacutement structurant 33 complet)
Image de reacutefeacuterenceImage dilateacutee
morphologiquement
La dilatation en niveaux de gris accroicirct la luminance des
pixels entoureacutes de voisins plus lumineux
Observation
Sami Gazzah 2009154
VI Erosion
L‟eacuterosion est deacutefinie par
On deacutefinit la soustraction de Minkowski par
On a eacutequivalence entre eacuterosion et soustraction de Minkowski si B est
symeacutetrique (si B=-B)
D‟un point de vue binaire l‟eacuterode de A par B correspond agrave l‟ensemble
des points tels que si B est centre sur ce points B est entiegraverement inclus
dans A
AxBxBbbABAC )()(
)()( BbbABAC
Sami Gazzah 2009 155
VI Erosion1 Image NampB
on parcourt tous les pixels de l‟image sauf les bord de l‟image
d‟eacutepaisseur k pour chaque pixel du fond rencontreacute s‟il possegravede un
voisin au sens de l‟eacuteleacutement structurant qui appartient agrave un objet il
prend le couleur du fond si non il n‟est pas modifieacute
VI Eacuterosion drsquoune image en niveaux de gris
Lrsquoeacuterosion (noteacutee Ө ) drsquoune image monochrome laquo f raquo par un eacuteleacutement
structurant laquo B raquo est deacutefinie en terme de sous-graphe
bull f Ө B = T [ Y ] = Supl l tel que (m n l) Y
bullY = U ( f ) Ө U ( B )
Classiquement on considegravere un eacuteleacutement structurant plan de
valeur nulle sur son support
( f Ө B ) (P) = Min valeurs des pixels du voisinage du pixel P
15122010
27
VI Eacuterosion drsquoune image en niveaux de gris
min
68 90 91 95 151
( f Ө B ) (P) = 68
n
115 91 77
95 68 90
55 151 210
exemple
m
Image de reacutefeacuterence
ӨӨ
Eacuteleacutement structurant
(4-connexiteacute)
liste ordonneacutee des valeurs du voisinage
-
-
-
-
Exemples de filtrages morphologiques(eacuteleacutement structurant 33 complet)
Image eacuterodeacutee
Lrsquoeacuterosion en niveaux de gris reacuteduit la luminance des pixels
qui sont entoureacutes de voisins de moindre intensiteacute
Image de reacutefeacuterence
Observation
Sami Gazzah 2009 159
Eacuteleacutement structurant (a)
(4-connexiteacute)
-
-
-
-
Eacuteleacutement structurant (b)
(8-connexiteacute)
- - -
-
-
-
-
-
Exercice 1 Sur la mecircme image de deacutepart on reacutealise deux opeacuterations
de dilatations avec deux eacuteleacutements structurant diffeacuterents
Dilatation avec (a) Dilatation avec (b)
image de deacutepart
cas a L‟eacuteleacutement structurant est agrave 4-connexiteacute Chaque pixel
du support qui est eacutegal agrave la valeur 1 ou qui a l‟un de ses 4
voisins agrave la valeur 1 est mis agrave la valeur 1 apregraves filtrage
cas b L‟eacuteleacutement structurant est agrave 8-connexiteacute Chaque pixel
du support qui est eacutegal agrave la valeur 1 ou qui a l‟un de ses 8
voisins agrave la valeur 1 est mis agrave la valeur 1 apregraves filtrage
Dans les deux cas on observe qu‟une dilatation eacutelimine les
trous isoleacutes dans les objets et dilate le contour des objets en
tenant compte de l‟eacuteleacutement structurant
Sami Gazzah 2009 160
Exercice 1
Sami Gazzah 2009 161
Eacuteleacutement structurant (a)
(4-connexiteacute)
-
-
-
-
Eacuteleacutement structurant (b)
(8-connexiteacute)
- - -
-
-
-
-
-
Exercice 2 Sur la mecircme image de deacutepart on reacutealise deux opeacuterations
d‟eacuterosions avec deux eacuteleacutements structurant diffeacuterents
Erosion avec (a) Erosion avec (b)
image de deacutepart
cas a L‟eacuteleacutement structurant est agrave 4-connexiteacute (origine agrave 4 voisins)
Chaque pixel du support qui a la valeur 0 ou qui a l‟un de ses 4
voisins agrave la valeur 0 est mis agrave la valeur 0 apregraves filtrage
cas b L‟eacuteleacutement structurant est agrave 8-connexiteacute Chaque pixel du
support qui a la valeur 0 ou qui a l‟un de ses 8 voisins agrave la valeur 0
est mis agrave la valeur 0 apregraves filtrage
Dans les deux cas on observe qu‟une eacuterosion eacutelimine les pixels
isoleacutes sur le fond et eacuterode le contour des objets
Sami Gazzah 2009 162
Exercice 2
15122010
28
ConclusionsConclusions
Erosion
les objets relieacutes entre eux vont ecirctre seacutepareacutes
Une eacuterosion de taille n peut se reacutealiser en reacutepeacutetant une
eacuterosion n fois avec un eacuteleacutement structurant de taille 1 ou en
appliquant une seule eacuterosion avec un eacuteleacutement structurant
de taille n
Dilatation
des objets sont situeacutes agrave une distance moins grande que la taille
de leacuteleacutement structurant il vont fusionner
Sami Gazzah 2009 163 Sami Gazzah 2009 164
Sami Gazzah 2009 165
Elimine pixels isoleacutes sans inteacuterecirct
L‟ouverture (opening) consiste agrave une eacuterosion suivi d‟une dilatation
Les petites structures et deacutetail fins disparaissent et ne sont pas recreacuteeacutees
lors de la dilation Une opeacuteration d‟ouverture est ainsi inteacuteressante pour
eacuteliminer les petits morceaux de contours bruiteacutes dans une image de
contours
V Ouverture et fermeture1 Ouverture
BBABAC )(
Sami Gazzah 2009 166
V Ouverture et fermetureII Fermeture
La fermeture (closing) consiste agrave une dilatation suivi d‟une eacuterosion
Les structures proches fusionnent lors de la dilation mais seules les
fusions ponctuelles disparaissent agrave nouveau lors de l‟eacuterosion Une
opeacuteration de fermeture est ainsi inteacuteressante pour boucher les petits
trous
Sami Gazzah 2009 167 Sami Gazzah 2009 168
Exercice 3 Sur l‟image de deacutepart on reacutealise une opeacuteration de
fermeture binaire par l‟eacuteleacutement structurant 4-connexiteacute Conclusions
Eacuteleacutement structurant
(4-connexiteacute)
-
-
-
-Fermeture = dilatation puis eacuterosion
Image de deacutepart Image dilateacutee Image dilateacutee puis eacuterodeacutee
Combler les trous
Reacutetablir les jonctions
tout en preacuteservant la taille
15122010
29
Sami Gazzah 2009 169
Exercice 4 Sur l‟image de deacutepart on reacutealise une opeacuteration
d‟ouverture binaire par l‟eacuteleacutement structurant 4-connexiteacute Conclusions
Eacuteleacutement structurant
(4-connexiteacute)
-
-
-
-Ouverture = eacuterosion puis dilatation
Image de deacutepart Image eacuterodeacutee Image eacuterodeacutee puis dilateacutee
Supprimer les fausses alarmes
Seacuteparer les objets accoleacutes
tout en preacuteservant la tailleSami Gazzah 2009 170
Appliquer les filtres suivants sur limage donneacutee Quelles sont les valeurs choisies
aux bords de limage et quelles sont les modifications visuelles
a) filtre moyenneur M3acute3(19)
b) eacuterosion
c) dilatation
d) meacutedian
e) fermeture
f) ouverture
Exercice 5
Sami Gazzah 2009 171
IV Amincissement et Squelettisation
La squelette (skeleton) d‟une forme est l‟axe meacutedian L‟inteacuterecirct de cette
opeacuteration est dans
La reconnaissance de caractegraveres
Deacutetection des reacuteseaux routiers
La planification de trajectoirehellip
Une meacutethode couramment employeacutee est une amincissement reacutepeacuteteacute
jusqu‟agrave le convergence (n‟apporte aucune modification)
Sami Gazzah 2009 172
IV Amincissement et Squelettisation1 Opeacuteration Tout Ou Rien laquoHit or Missraquo
Cette transformation est deacutefinie par
leacuteleacutement structurant eacutetendu est centreacute sur chaque pixel de limage
comme pour les opeacuterations ensemblistes
la question poseacutee est est ce que le contenu de limage est identique au
contenu de leacuteleacutement structurant
si la reacuteponse est oui le pixel reacutesultant vaut 1 si non il vaut 0
Une application permet de deacutetecter des configurations locales
particuliegraveres dans une image
plusieurs masques peuvent ecirctre utiliseacutes indeacutependamment les images
reacutesultat eacutetant ensuite combineacutees par une opeacuteration ou
)()( cc BABABA
Bc-
est le compleacutementaire
local de B
Sami Gazzah 2009 173
IV Amincissement et Squelettisation1 Opeacuteration laquoHit or Missraquo
Exemple dopeacuteration Hit or Miss deacutetection des coinsSami Gazzah 2009 174
IV Amincissement et Squelettisation1 Amincissement (thinning)
bull La transformation TOR nous permet eacutegalement de deacutefinir
l‟amincissement
bullL‟amincissement consiste agrave soustraire limage reacutesultat dun hit or miss de
limage initiale
bull des amincissements successifs conduisent au squelettisation
)()( BAAAthin
15122010
30
Sami Gazzah 2009 175
IV Amincissement et Squelettisation1I Squelettisation
Appliquer des amincissements successifs puis s‟arrecircter lorsque l‟amincissement
n‟apporte plus de modification C‟est une eacuterosion particuliegravere ougrave les pixels sont
supprimeacutes agrave la condition quils ne provoquent pas la seacuteparation dune reacutegion en
deux
Sami Gazzah 2009 176
IV Amincissement et Squelettisation1I Squelettisation
Sami Gazzah 2009 177
Chapitre 7
Transformations
geacuteomeacutetriques 2D
Sami Gazzah 2009 178
I Introduction
On entend par transformation 2D l‟ensemble des transformations du
plan pouvant ecirctre appliqueacutees aux pixels de l‟image sans consideacuteration
de l‟intensiteacute
Par exemples
Reacuteduction agrandissement
Deacuteformation d‟image
Recalage d‟une photo scanneacutee
Recaler des images que l‟on veut comparer
Mosaiumlque d‟images
Sami Gazzah 2009 179
I Transformations euclidiennes
Elles preacuteservent les distances et les angles
Elles sont les compositions de translations et de rotations
1) Translation
Ougrave Tx et Ty sont les deacuteplacements en x et en y de la translation
y
x
Tyy
Txx
Sami Gazzah 2009 180
2) Rotation
15122010
31
Sami Gazzah 2009 181 Sami Gazzah 2009 182
3) Remarques (1)
Sami Gazzah 2009 183
3) Remarques (2)
Sami Gazzah 2009 184
II Homotheacuteties
Changement deacutechelle par rapport agrave lorigine (scaling zoom)
Ougrave Sx et Sy sont les facteurs dagrandissement ( gt1) ou de
reacuteduction ( lt1) en x et en y
ySy
xSx
y
x
Sami Gazzah 2009 185
II Homotheacuteties
Sami Gazzah 2009 186
II Homotheacuteties
15122010
32
Sami Gazzah 2009 187
III Reacuteflexions
Reacuteflexions par rapport aux axes (flip miroir)
Sami Gazzah 2009 188
IV Cisaillement
Cisaillement (glissement shearing) on eacutetire suivant un ou plusieurs axes
Sami Gazzah 2009 189
Transformations inverses
Sami Gazzah 2009 190
Repreacutesentation Matricielle
IV Autres (reacuteflexions miroirs et flips)
Sami Gazzah 2009 191
Interpolation Directe
Sami Gazzah 2009 192
oDifficile de distribuer le niveau de gris sur les pixels voisins
oOn n‟a pas la certitude que tous les pixels de l‟image
transformeacutee recevront une valeur =gt ldquotrousrdquo
15122010
33
Interpolation Inverse
Sami Gazzah 2009 193
o Interpolation de la valeur du pixel agrave partir des voisins plus
facile
oAucun ldquotrourdquo car on parcourt tous les pixels de l‟image
transformeacutee Sami Gazzah 2009 194
V Objet vectoriel - Objet bitmap
Objet vectoriel
Essentiellement on transforme
les sommets (ou points de
controcircle) et on retracehellip
Objet ldquobitmaprdquo
On doit calculer la nouvelle
position de chaque pixel De plus on
doit geacuteneacuteralement interpoler les
niveaux de gris (couleurs)hellip
Sami Gazzah 2009 195
IV Assignation des niveaux de gris
Neacutecessaire car la position d‟un pixel transformeacute n‟est pas entiegraverehellip
Plusieurs meacutethodes
Interpolation au plus proche voisin
Interpolation bilineacuteaire
Interpolation bicubique
Autres types d‟interpolation
Sami Gazzah 2009 196
IV Assignation des niveaux de gris
Linterpolation de limage cest ce qui arrive lorsquon redimensionne
une image numeacuterique ou quon la redimensionne avec une distorsion
quon change la perspective etc
Exemple 1
Image originale (sans interpolation)
Image agrandie et donc interpoleacutee
Perte de netteteacute due agrave linterpolation
Sami Gazzah 2009
197
IV Assignation des niveaux de gris
Exemple 2 recadrage dimage
Nous allons agrandir cette image agrave 180
Il va donc nous manquer des informations lagrave ougrave lon va creacuteer des
pixels pour agrandir limage
Reacutesultat sans interpolation le logiciel agrandit simplement les pixels
Reacutesultat avec interpolation le logiciel calcule une couleur intermeacutediaire
pour chaque nouveau pixel
Sami Gazzah 2009
198
IV Assignation des niveaux de gris
Image originale
Interpolation au plus
proche voisin
Interpolation
bilineacuteaireInterpolation
bicubique
15122010
34
Sami Gazzah 2009 199
IIV Interpolation au plus proche voisin
Cest lalgorithme le plus rapide agrave calculer
Prend en compte dans le calcul que le pixel le plus proche du point
agrave interpoler
Consiste tout simplement agrave agrandir chaque pixel
Exemple Interpolation du plus proche voisin par copie des pixels
Copie de chaque colonne et de chaque rang
23 20
25 28
23 23
23 23
20 20
20 20
25 25
25 25
28 28
28 28
Sami Gazzah 2009 200
IIV Interpolation bilineacuteaire
Fonction bilineacuteaire de 4 pixels voisins ( en 2 D )
i-1 i i+1
i-1 i-12 i i+12 i+1 i+32
yi=xiYi+12=(xi+xi+1)2
Problegraveme pour le dernier point
Extrapolation lineacuteaire de
2 xn-xn-1
Principe 1D
attribuer agrave chaque point cible une
combinaison lineacuteaire des quatre
points sources les plus proches par
la transformation inverse
Sami Gazzah 2009 201
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 202
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 203 Sami Gazzah 2009 204
IIV Interpolation bilineacuteaire
15122010
35
Sami Gazzah 2009 205
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 206
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 207
IIV Interpolation bilineacuteaire exemple
Sami Gazzah 2009 208
IIV Interpolation bicubique
Sami Gazzah 2009 209
exemple
Sami Gazzah 2009 210
Chapitre 8
Geacuteneacuteration de segments de
droite et de cercles en 2D
15122010
36
Sami Gazzah 2009 211
Infographie 2D besoin de dessiner des primitives de
base (segments cercles hellip)
Espace discreacutetiseacute (pixels) il faut trouver un moyen pour
afficher des segments ou des cercles
I Segments 2D cercles1 Introduction
Comment trouver les pixels agrave allumer pour approximer au mieux une
droite ou un cercle
Algorithme rapide et preacutecisSami Gazzah 2009 212
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=ax+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ya
Sami Gazzah 2009 213
Rappelhellip
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=mx+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ym
Sami Gazzah 2009 214
Exemple
Sami Gazzah 2009 215
Agrave partir des coordonneacutees des 2 extreacutemiteacutes d‟un segmenthellip
Un algorithme simple
Boucle de x1 agrave x2 dx=1
ALLUME (x Arrondir(y))
Avec x2gtx1
Arrondir(y) = Arrondir(ax+b)
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Sami Gazzah 2009 216
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Choix de lrsquoaxehellip
Peu efficace
bullagrave chaque iteacuteration 1 multiplication (ou division) + 1 addition
+ 1 arrondi
15122010
37
Sami Gazzah 2009 217
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
DDA (Digital Differential Analyzer)
y et m doivent ecirctre des reacuteelsSami Gazzah 2009 218
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Calcul en entier (donc plus rapide)
Baseacute sur le choix entre deux points discrets deacutependant de leur
distance respective avec le point reacuteel ideacuteal
On simplifie le problegraveme en traitant drsquoabord le traceacute drsquoun segment
dans le 1er octant m infeacuterieur agrave1 et positif (0ltmlt 1)
Facilement geacuteneacuteralisable aux autres octants
Sami Gazzah 2009 219
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Traceacute d‟un segment dans le premier octant mlt1
On part d‟un point (xi yi) allumeacute
Sami Gazzah 2009 220
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
On ne calcule pas reacuteellement les distances rArr on veacuterifie si la diffeacuterence
entre les deux distances est positive ou neacutegative
Le signe de la longueur (d1-d2) deacutetermine s‟il faut allumer le pixel L ou H
L
H
Sami Gazzah 2009 221
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Comme m=ΔyΔx on multiplie cette diffeacuterence par Δx pour eacuteviter la
division
Mais que vaut p1
Sami Gazzah 2009 222
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
15122010
38
Sami Gazzah 2009 223
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Pour eacuteviter de calculer cette diffeacuterence pour chaque point on cherche
une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
Sami Gazzah 2009 224
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009 225
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009
Exercice
Tracer le segment de droite
pi xi yi
2 0 0
-6 1 1
6 2 1
-2 3 2
10 4 2
2 5 3
-6 6 4
6 7 4
-2 8 5
10 9 5
2 10 6
6
10
y
x
Sami Gazzah 2009 227
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
Sami Gazzah 2009 228
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
hellip interchanger les points hellip
Si |Δx| lt | Δy| on interchange le rocircle de x et y
15122010
39
Sami Gazzah 2009 229
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (1)
Sami Gazzah 2009 230
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (2)
Sami Gazzah 2009 231
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (3)
Sami Gazzah 2009 232
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Toujours baseacute sur le choix entre deux
points discrets deacutependant de leur
distance respective avec le point reacuteel
On travaille dans le 2e octant agrave partir
de (0r) ainsi pour un point (xi yi) le
prochain point sera
(xi+1 yi) ou (xi+1 yi-1)
Sami Gazzah 2009 233
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On calcule le prochain y et les diffeacuterences respectives avec les points
discrets de la faccedilon suivante
Le signe de pi nous dira si nous devons choisir le point lateacuteral ou le diagonal
Sami Gazzah 2009 234
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Encore une fois pour eacuteviter de calculer cette diffeacuterence pour chaque point on
cherche une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
15122010
40
Sami Gazzah 2009 235
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On considegravere 2 cas
Valeur initiale
Sami Gazzah 2009 236
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Sami Gazzah 2009 237
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Exemple centre = (00) et r = 3
Sami Gazzah 2009 238
Livres
Diane Lingrand Introduction au Traitement d‟Images Paris Editions Vuibert 2e
eacutedition 2008
Steven k Feiner James D Foley John F Hughes Richard l Phillips Andries
Vanam Introduction agrave l‟infographie Paris Editions Vuibert 2000
William K Pratt Digital Image Processing Willy-Inter-sciences 4th edition 2007
Eacuteric Incerti Compression dimage ndash Algorithmes et standards Vuibert 2003
Gilles Burel Introduction au traitement dimages ndash Simulation sous Matlab
Hermegraves 2001
Sites web
Cours de C Rougier (U Montreacuteal)
httpwww-etudiroumontrealca~rougiercift2730courshtml (cf chapitre 3)
Page wikipeacutedia sur JPEG (en anglais plus complegravete que celle en franccedilais)
httpenwikipediaorgwikiJPEG
Cours de P Courtellemont (Campus numeacuterique Espdon)
httppersouniv-lrfrpcourtelespadonsite_web
Applet de deacutemo par C G Jennings
httpcgjenningscatoyboxhjpegindexhtml
Cours de D Marshall (U Cardiff)
httpwwwcscfacukDaveMultimediaPDF
Reacutefeacuterences
Sami Gazzah 2009 239
Chapitre 9
introduction au
traitement
dimages avec OpenGL
Sami Gazzah 2009 240
OpenGL est une librairie graphique Elle a eacuteteacute creacutee par Silicon
Graphics et beacuteneacuteficie sur ces machines de lacceacuteleacuteration mateacuterielle
Elle est constitueacute d‟environ 200 fonctions graphiques
OpenGL est une bibliothegraveque de fonctions
Les fonctions sont de bas niveaux
La version actuelle est l‟ laquo OpenGL 41 raquo (deacutecembre 2010)
Principale caracteacuteristique indeacutependant du mateacuteriel et du systegraveme
d‟exploitation
Une impleacutementation libre de droits dOpenGL tregraves performante a eacuteteacute
eacutecrite par Brian Paul httpwwwmesa3dorg Et tout son code source
est accessible
Preacutesentation geacuteneacuterale
15122010
41
Sami Gazzah 2009 241
OpenGL propose des fonctions de bas niveaux
Primitives geacuteomeacutetriques points segments polygones
Les fonctions de haut niveaux sont deacuteveloppeacutees par l‟utilisateur ou
importeacutees par la librairie en amont d‟OpenGL
Primitives geacuteomeacutetriques complexes Sphegravere splines etc
Toutes les commandes et fonctions utilisent le preacutefixe gl
Exemple glColor2f()
Sami Gazzah 2009 242
Les Bibliothegraveques co-existant avec OpenGL
GLU OpenGL Utility Library contient les routines de bas niveau pour
geacuterer les matrices de transformation et de projection la facettisation des
polygones et le rendu de surface Les bibliothegraveques dextension du
systegraveme de fenecirctres permettent lutilisation du rendu OpenGL Il sagit de
GLX pour X Windows (fonctions ayant pour preacutefixe glX) et de WGL
pour Microsoft Windows (fonctions ayant pour preacutefixe wgl)
GLUT OpenGL Utility Toolkit est une boite agrave outils indeacutependante du
systegraveme de fenecirctrage eacutecrite par Mark
Kilgard pour simplifier la tacircche dutiliser des systegravemes diffeacuterents (fonctions
ayant pour preacutefixe glut)
Sami Gazzah 2009 243
Les primitives geacuteomeacutetriques d rsquoOpenGL
Les primitives sont deacutecrites par un bloc d‟instructions deacutelimiteacute par glBegin et glEnd
Ce bloc contient geacuteneacuteralement une liste de vertex Exemple
glBegin(GL_LINE_LOOP)
glVertex2f(-05 -05)
glVertex2f(05 -05)
glVertex2f(05 05)
glVertex2f(-05 05)
glEnd()
D‟autres attributs peuvent ecirctre speacutecifieacutes en chaque sommet
couleur normale coordonneacutee de texture etcSami Gazzah 2009 244
OpenGL est une machine agrave eacutetats
En modifiant les variables d‟eacutetats on peut changer le style de rendu
Sami Gazzah 2009 245
Exemple Honda Hippo (3dRendercom)
Placage de textures
bullL‟apparence et le toucher ( feel ) d‟une surface
bullUne image utiliseacutee pour deacutefinir les caracteacuteristiques d‟une surface
bullUne image multi-dimensionnelle qui est plaqueacutee sur un espace multi-
dimensionnel
Sami Gazzah 2009 246
15122010
42
Sami Gazzah 2009 247
Reacutefeacuterences openGL
Sami Gazzah 2009 248
Chapitre 10
introduction au
traitement
dimages avec OpenCV
Sami Gazzah 2009 249
Preacutesentation geacuteneacuterale
Quest-ce
Open Source Computer Vision Library
Bibliothegraveque open source de traitement des images numeacuteriques
Projet initieacute par Intel (en 1999)
Teacuteleacutechargeable sur httpsourceforgenetprojectsopencvlibrary
Fortement orienteacutee temps reacuteel
eacutecrite en C et C++
optimiseacutee pour les processeurs multi-cœurs
Multi-plateformes disponible pour Linux Windows et Mac OS X
Que contient-elle
Des fonctionnaliteacutes (structures et routines gt350 algos) de base et
avanceacutees pour bacirctir rapidement des applications autour de la vision par
ordinateur
Exemples dutilisation traitements de bas niveau (filtrage ) deacutetection
de visages reconnaissance et suivi dobjets en mouvement Sami Gazzah 2009 250
Fonctionnaliteacutes
Lectureeacutecriture dimages statiques et de seacutequences videacuteo
APIs de bas et moyen niveaux
Traitement des images binaires
Manipulations dimage (eacutechantillonnage (sampling) reacutegion dinteacuterecirct (ROI)
redimensionnement (resizing) rotation deacuteformation (warping) )
Deacutetection de contours de lignes de coins (edge detection)
Traitements multi-eacutechelles (multiscale processing)
Transformeacutees (Fourier cosinus discregravete )
Modules de haut niveau
Deacutetection reconnaissance et suivi (tracking) de visages
Flot optique (estimation du mouvement) (optical flow)
Calibrage (calibration) de la cameacutera
Mise en correspondance steacutereacuteoscopique (stereo matching)
IA et apprentissage par ordinateur (machine learning)
3D mise en correspondance (registration)
Sami Gazzah 2009 251
Modules principaux
CxCore
Types de base pour manip dimages (ex struct image point isin cxtypesh)
Structures dynamiques (listes files graphes arbres) et persistantes (LE)
Manipulations de matrices meacutethodes de lalgegravebre lineacuteaire et statistiques
Dessin en surimpression (overlay) (ex eacutetiquetage)
Cv
Traitement dimage calibrage cameacutera
Geacuteomeacutetrie algorithmique (triangulation )
Cvaux
Reconnaissance de visage
Code expeacuterimental et obsolegravete
Autres (dans otherlibs)
HighGUI ES videacuteos curseurs fenecirctrage
ML classification regroupement (clustering)Sami Gazzah 2009 252
OpenCV premiers programmesBibliothegraveque OpenCV
15122010
43
Sami Gazzah 2009 253
Livre
G Bradski amp A Kaehler laquo Learning OpenCV raquo OReilly Press (2008)
codes sources httpexamplesoreillycom9780596516130
Ressources en ligne
Reacutefeacuterence complegravete httpopencvwillowgaragecomdocumentation
Wiki httpopencvwillowgaragecomwikiFullOpenCVWiki
bullPreacutesentation teacuteleacutechargement installation
bullavec CodeBlocks httpopencvwillowgaragecomwikiCodeBlocks
bullDeacutebuter avec OpenCV FAQ
Tutoriels
httpnchcdlsourceforgenetsourceforgeopencvlibraryippocvpdf
httpdaslmemdrexeledu~noahKuntzopenCVTut1html agrave Tut11html
httpwwwcognoticscomopencvservo_2007_series
Tutoriel sur la vision utilisant OpenCV (en franccedilais)
httpwwwsiteduzerocomtutoriel-3-8631-vision-par-ordinateurhtml
Reacutefeacuterences openCV
15122010
24
Sami Gazzah 2009 139
Seuillage par hysteacutereacutesis
seuil haut
Seuil bas
point sur contour
point hors contour
Seuillage par hysteacuterisais les points de lrsquoimage de contour de valeur
supeacuterieur au seuil haut sont des points de contours A partir de ces points de
contours le voisinage de la direction du contour sont examineacutes srsquoils sont de
valeur supeacuterieure au seuil bas ils sont ajouteacutes au points de contoursSami Gazzah 2009 140
Chapitre 6
Introduction aux
opeacuterateurs
morphomatheacutematique
Sami Gazzah 2009 141
1 Introduction
Les opeacuterateurs morphomatheacutematique (=Morphologie Matheacutematique)
permettent d‟ameacuteliorer les images de contours et apporter d‟autres
fonctionnaliteacutes
Ils ont eacuteteacute initialement appliqueacute sur des images NampB (Matheron et
Sarra1965) ensuite eacutetendus agrave des images en nivaux de gris par Doupherty
(1978)
Pour les appliquer sur des images couleurs on peut les appliquer
seacutepareacutement agrave chaque composante couleur et combiner les reacutesultats
Sami Gazzah 2009 142
Diffeacuterentes opeacuterations
eacuterosion dilatation
ouverture fermeture
Squelettisation
hellip
1 Introduction
Sami Gazzah 2009 143
1 Introduction
Dilatation
Ajouter un pixel sur les pourtours de la forme
boucher les trous
Erosion
Enlever un pixel sur les pourtours de la forme
les objets de taille infeacuterieure agrave celle de leacuteleacutement
structurant vont disparaicirctre
agrandit les trous
Sami Gazzah 2009144
1I Rappels sur les ensembles
L‟eacutegaliteacute
L‟inclusion
Lbdquointersection
L‟union
La diffeacuterence
La diffeacuterence symeacutetrique
La compleacutementariteacute E eacutetant un ensemble
servant de reacutefeacuterentielle
Dans ce qui suit les lettres majuscules deacutesignent des ensembles et les lettres
minuscules deacutesignent des eacuteleacutements appartenant aux ensembles
Sur les ensembles on deacutefinit les opeacuterations suivantes
15122010
25
Sami Gazzah 2009145
1I Rappels sur les ensembles
Sami Gazzah 2009146
1I Rappels sur les ensembles
Lois de De Morgan
Reacuteflexion La reacuteflexion d‟un ensemble A est deacutefinie par
Un ensemble symeacutetrique veacuterifiant ndashA=A C‟est le cas des cercles et des carreacute par
exemple
ccc YXYX )(
ccc YXYX )(
AaaA
A -A B -B
Sami Gazzah 2009147
1I Rappels sur les ensembles
Addition de Minkowski l‟addition d‟un eacuteleacutement x agrave un ensemble A par x est
deacutefinie par
Cette notion n‟est pas uniquement ensembliste elle nous oblige agrave deacutefinir un point
de reacutefeacuterence
On en deacuteduit l‟addition d‟un ensemble B agrave un ensemble A c‟est le reacutesultat de
l‟addition de chaque eacuteleacutement de B agrave A
L‟addition de Minkowski est commutative Elle est eacutegalement appeleacute dilatation
AaxaxAB
A
A
x
AxBxAaBaBbbABAC )()()(
le translateacute de X par b
Sami Gazzah 2009148
1I Rappels sur les ensembles
Eleacutement structurant les opeacuterations morphomatheacutematiques sont deacutefinis agrave
partir des ensemble B discrets appeleacute eacuteleacutement structurant Ces eacuteleacutement
permettent de deacutefinir le type de voisinage souhaiteacute
Addition de Minkowski d‟un ensemble A et d‟un ensemble B
BA
Sami Gazzah 2009149
1II Dilatation
Le reacutesultat de dilatation de lrsquoensemble A par lrsquoensemble B
est lrsquoaddition de Minkowski crsquoest lrsquoensemble des points tel
que lorsque B est centreacute sur un de ces points il y a une
intersection non vide entre A et B
Pour des images en niveaux de gris on obtient lrsquoimage
dilateacutee de la forme A en remplaccedilant tout pixel par le
maximum des intensiteacutes des voisins selon la forme B
Sami Gazzah 2009 150
1II Dilatation1 Image NampB
Soit k l‟eacuteleacutement structurant de taille (2k+1) x (2k+1) L‟algorithme de
dilatation est le suivant on parcourt tous les pixels de l‟image sauf les
bord de l‟image d‟eacutepaisseur k pour chaque pixel du fond rencontreacute s‟il
possegravede un voisin au sens de l‟eacuteleacutement structurant qui appartient agrave un
objet il prend le couleur de l‟objet si non il n‟est pas modifieacute
15122010
26
la dilatation (noteacutee ) drsquoune image monochrome laquo f raquo par un
eacuteleacutement structurant laquo B raquo est deacutefinie en terme de sous-graphe
bull f B = T [ Y ] = Supl l tel que (m n l) Y
bullY = U ( f ) U ( B )
En consideacuterant un eacuteleacutement structurant plan de valeur nulle sur son
support
( f B ) (P) = Max valeurs des pixels du voisinage du pixel P
1II Dilatation1 Image niveaux de gris
max
55 68 77 90 91 95 115 151 210
( f B ) (P) = 210
n
115 91 77
95 68 90
55 151 210
exemple
m
Image de reacutefeacuterence
Eacuteleacutement structurant
(8-connexiteacute)
liste ordonneacutee des valeurs du voisinage
- - -
-
-
-
-
-
1II Dilatation1 Image niveaux de gris
Exemples de filtrages morphologiques(eacuteleacutement structurant 33 complet)
Image de reacutefeacuterenceImage dilateacutee
morphologiquement
La dilatation en niveaux de gris accroicirct la luminance des
pixels entoureacutes de voisins plus lumineux
Observation
Sami Gazzah 2009154
VI Erosion
L‟eacuterosion est deacutefinie par
On deacutefinit la soustraction de Minkowski par
On a eacutequivalence entre eacuterosion et soustraction de Minkowski si B est
symeacutetrique (si B=-B)
D‟un point de vue binaire l‟eacuterode de A par B correspond agrave l‟ensemble
des points tels que si B est centre sur ce points B est entiegraverement inclus
dans A
AxBxBbbABAC )()(
)()( BbbABAC
Sami Gazzah 2009 155
VI Erosion1 Image NampB
on parcourt tous les pixels de l‟image sauf les bord de l‟image
d‟eacutepaisseur k pour chaque pixel du fond rencontreacute s‟il possegravede un
voisin au sens de l‟eacuteleacutement structurant qui appartient agrave un objet il
prend le couleur du fond si non il n‟est pas modifieacute
VI Eacuterosion drsquoune image en niveaux de gris
Lrsquoeacuterosion (noteacutee Ө ) drsquoune image monochrome laquo f raquo par un eacuteleacutement
structurant laquo B raquo est deacutefinie en terme de sous-graphe
bull f Ө B = T [ Y ] = Supl l tel que (m n l) Y
bullY = U ( f ) Ө U ( B )
Classiquement on considegravere un eacuteleacutement structurant plan de
valeur nulle sur son support
( f Ө B ) (P) = Min valeurs des pixels du voisinage du pixel P
15122010
27
VI Eacuterosion drsquoune image en niveaux de gris
min
68 90 91 95 151
( f Ө B ) (P) = 68
n
115 91 77
95 68 90
55 151 210
exemple
m
Image de reacutefeacuterence
ӨӨ
Eacuteleacutement structurant
(4-connexiteacute)
liste ordonneacutee des valeurs du voisinage
-
-
-
-
Exemples de filtrages morphologiques(eacuteleacutement structurant 33 complet)
Image eacuterodeacutee
Lrsquoeacuterosion en niveaux de gris reacuteduit la luminance des pixels
qui sont entoureacutes de voisins de moindre intensiteacute
Image de reacutefeacuterence
Observation
Sami Gazzah 2009 159
Eacuteleacutement structurant (a)
(4-connexiteacute)
-
-
-
-
Eacuteleacutement structurant (b)
(8-connexiteacute)
- - -
-
-
-
-
-
Exercice 1 Sur la mecircme image de deacutepart on reacutealise deux opeacuterations
de dilatations avec deux eacuteleacutements structurant diffeacuterents
Dilatation avec (a) Dilatation avec (b)
image de deacutepart
cas a L‟eacuteleacutement structurant est agrave 4-connexiteacute Chaque pixel
du support qui est eacutegal agrave la valeur 1 ou qui a l‟un de ses 4
voisins agrave la valeur 1 est mis agrave la valeur 1 apregraves filtrage
cas b L‟eacuteleacutement structurant est agrave 8-connexiteacute Chaque pixel
du support qui est eacutegal agrave la valeur 1 ou qui a l‟un de ses 8
voisins agrave la valeur 1 est mis agrave la valeur 1 apregraves filtrage
Dans les deux cas on observe qu‟une dilatation eacutelimine les
trous isoleacutes dans les objets et dilate le contour des objets en
tenant compte de l‟eacuteleacutement structurant
Sami Gazzah 2009 160
Exercice 1
Sami Gazzah 2009 161
Eacuteleacutement structurant (a)
(4-connexiteacute)
-
-
-
-
Eacuteleacutement structurant (b)
(8-connexiteacute)
- - -
-
-
-
-
-
Exercice 2 Sur la mecircme image de deacutepart on reacutealise deux opeacuterations
d‟eacuterosions avec deux eacuteleacutements structurant diffeacuterents
Erosion avec (a) Erosion avec (b)
image de deacutepart
cas a L‟eacuteleacutement structurant est agrave 4-connexiteacute (origine agrave 4 voisins)
Chaque pixel du support qui a la valeur 0 ou qui a l‟un de ses 4
voisins agrave la valeur 0 est mis agrave la valeur 0 apregraves filtrage
cas b L‟eacuteleacutement structurant est agrave 8-connexiteacute Chaque pixel du
support qui a la valeur 0 ou qui a l‟un de ses 8 voisins agrave la valeur 0
est mis agrave la valeur 0 apregraves filtrage
Dans les deux cas on observe qu‟une eacuterosion eacutelimine les pixels
isoleacutes sur le fond et eacuterode le contour des objets
Sami Gazzah 2009 162
Exercice 2
15122010
28
ConclusionsConclusions
Erosion
les objets relieacutes entre eux vont ecirctre seacutepareacutes
Une eacuterosion de taille n peut se reacutealiser en reacutepeacutetant une
eacuterosion n fois avec un eacuteleacutement structurant de taille 1 ou en
appliquant une seule eacuterosion avec un eacuteleacutement structurant
de taille n
Dilatation
des objets sont situeacutes agrave une distance moins grande que la taille
de leacuteleacutement structurant il vont fusionner
Sami Gazzah 2009 163 Sami Gazzah 2009 164
Sami Gazzah 2009 165
Elimine pixels isoleacutes sans inteacuterecirct
L‟ouverture (opening) consiste agrave une eacuterosion suivi d‟une dilatation
Les petites structures et deacutetail fins disparaissent et ne sont pas recreacuteeacutees
lors de la dilation Une opeacuteration d‟ouverture est ainsi inteacuteressante pour
eacuteliminer les petits morceaux de contours bruiteacutes dans une image de
contours
V Ouverture et fermeture1 Ouverture
BBABAC )(
Sami Gazzah 2009 166
V Ouverture et fermetureII Fermeture
La fermeture (closing) consiste agrave une dilatation suivi d‟une eacuterosion
Les structures proches fusionnent lors de la dilation mais seules les
fusions ponctuelles disparaissent agrave nouveau lors de l‟eacuterosion Une
opeacuteration de fermeture est ainsi inteacuteressante pour boucher les petits
trous
Sami Gazzah 2009 167 Sami Gazzah 2009 168
Exercice 3 Sur l‟image de deacutepart on reacutealise une opeacuteration de
fermeture binaire par l‟eacuteleacutement structurant 4-connexiteacute Conclusions
Eacuteleacutement structurant
(4-connexiteacute)
-
-
-
-Fermeture = dilatation puis eacuterosion
Image de deacutepart Image dilateacutee Image dilateacutee puis eacuterodeacutee
Combler les trous
Reacutetablir les jonctions
tout en preacuteservant la taille
15122010
29
Sami Gazzah 2009 169
Exercice 4 Sur l‟image de deacutepart on reacutealise une opeacuteration
d‟ouverture binaire par l‟eacuteleacutement structurant 4-connexiteacute Conclusions
Eacuteleacutement structurant
(4-connexiteacute)
-
-
-
-Ouverture = eacuterosion puis dilatation
Image de deacutepart Image eacuterodeacutee Image eacuterodeacutee puis dilateacutee
Supprimer les fausses alarmes
Seacuteparer les objets accoleacutes
tout en preacuteservant la tailleSami Gazzah 2009 170
Appliquer les filtres suivants sur limage donneacutee Quelles sont les valeurs choisies
aux bords de limage et quelles sont les modifications visuelles
a) filtre moyenneur M3acute3(19)
b) eacuterosion
c) dilatation
d) meacutedian
e) fermeture
f) ouverture
Exercice 5
Sami Gazzah 2009 171
IV Amincissement et Squelettisation
La squelette (skeleton) d‟une forme est l‟axe meacutedian L‟inteacuterecirct de cette
opeacuteration est dans
La reconnaissance de caractegraveres
Deacutetection des reacuteseaux routiers
La planification de trajectoirehellip
Une meacutethode couramment employeacutee est une amincissement reacutepeacuteteacute
jusqu‟agrave le convergence (n‟apporte aucune modification)
Sami Gazzah 2009 172
IV Amincissement et Squelettisation1 Opeacuteration Tout Ou Rien laquoHit or Missraquo
Cette transformation est deacutefinie par
leacuteleacutement structurant eacutetendu est centreacute sur chaque pixel de limage
comme pour les opeacuterations ensemblistes
la question poseacutee est est ce que le contenu de limage est identique au
contenu de leacuteleacutement structurant
si la reacuteponse est oui le pixel reacutesultant vaut 1 si non il vaut 0
Une application permet de deacutetecter des configurations locales
particuliegraveres dans une image
plusieurs masques peuvent ecirctre utiliseacutes indeacutependamment les images
reacutesultat eacutetant ensuite combineacutees par une opeacuteration ou
)()( cc BABABA
Bc-
est le compleacutementaire
local de B
Sami Gazzah 2009 173
IV Amincissement et Squelettisation1 Opeacuteration laquoHit or Missraquo
Exemple dopeacuteration Hit or Miss deacutetection des coinsSami Gazzah 2009 174
IV Amincissement et Squelettisation1 Amincissement (thinning)
bull La transformation TOR nous permet eacutegalement de deacutefinir
l‟amincissement
bullL‟amincissement consiste agrave soustraire limage reacutesultat dun hit or miss de
limage initiale
bull des amincissements successifs conduisent au squelettisation
)()( BAAAthin
15122010
30
Sami Gazzah 2009 175
IV Amincissement et Squelettisation1I Squelettisation
Appliquer des amincissements successifs puis s‟arrecircter lorsque l‟amincissement
n‟apporte plus de modification C‟est une eacuterosion particuliegravere ougrave les pixels sont
supprimeacutes agrave la condition quils ne provoquent pas la seacuteparation dune reacutegion en
deux
Sami Gazzah 2009 176
IV Amincissement et Squelettisation1I Squelettisation
Sami Gazzah 2009 177
Chapitre 7
Transformations
geacuteomeacutetriques 2D
Sami Gazzah 2009 178
I Introduction
On entend par transformation 2D l‟ensemble des transformations du
plan pouvant ecirctre appliqueacutees aux pixels de l‟image sans consideacuteration
de l‟intensiteacute
Par exemples
Reacuteduction agrandissement
Deacuteformation d‟image
Recalage d‟une photo scanneacutee
Recaler des images que l‟on veut comparer
Mosaiumlque d‟images
Sami Gazzah 2009 179
I Transformations euclidiennes
Elles preacuteservent les distances et les angles
Elles sont les compositions de translations et de rotations
1) Translation
Ougrave Tx et Ty sont les deacuteplacements en x et en y de la translation
y
x
Tyy
Txx
Sami Gazzah 2009 180
2) Rotation
15122010
31
Sami Gazzah 2009 181 Sami Gazzah 2009 182
3) Remarques (1)
Sami Gazzah 2009 183
3) Remarques (2)
Sami Gazzah 2009 184
II Homotheacuteties
Changement deacutechelle par rapport agrave lorigine (scaling zoom)
Ougrave Sx et Sy sont les facteurs dagrandissement ( gt1) ou de
reacuteduction ( lt1) en x et en y
ySy
xSx
y
x
Sami Gazzah 2009 185
II Homotheacuteties
Sami Gazzah 2009 186
II Homotheacuteties
15122010
32
Sami Gazzah 2009 187
III Reacuteflexions
Reacuteflexions par rapport aux axes (flip miroir)
Sami Gazzah 2009 188
IV Cisaillement
Cisaillement (glissement shearing) on eacutetire suivant un ou plusieurs axes
Sami Gazzah 2009 189
Transformations inverses
Sami Gazzah 2009 190
Repreacutesentation Matricielle
IV Autres (reacuteflexions miroirs et flips)
Sami Gazzah 2009 191
Interpolation Directe
Sami Gazzah 2009 192
oDifficile de distribuer le niveau de gris sur les pixels voisins
oOn n‟a pas la certitude que tous les pixels de l‟image
transformeacutee recevront une valeur =gt ldquotrousrdquo
15122010
33
Interpolation Inverse
Sami Gazzah 2009 193
o Interpolation de la valeur du pixel agrave partir des voisins plus
facile
oAucun ldquotrourdquo car on parcourt tous les pixels de l‟image
transformeacutee Sami Gazzah 2009 194
V Objet vectoriel - Objet bitmap
Objet vectoriel
Essentiellement on transforme
les sommets (ou points de
controcircle) et on retracehellip
Objet ldquobitmaprdquo
On doit calculer la nouvelle
position de chaque pixel De plus on
doit geacuteneacuteralement interpoler les
niveaux de gris (couleurs)hellip
Sami Gazzah 2009 195
IV Assignation des niveaux de gris
Neacutecessaire car la position d‟un pixel transformeacute n‟est pas entiegraverehellip
Plusieurs meacutethodes
Interpolation au plus proche voisin
Interpolation bilineacuteaire
Interpolation bicubique
Autres types d‟interpolation
Sami Gazzah 2009 196
IV Assignation des niveaux de gris
Linterpolation de limage cest ce qui arrive lorsquon redimensionne
une image numeacuterique ou quon la redimensionne avec une distorsion
quon change la perspective etc
Exemple 1
Image originale (sans interpolation)
Image agrandie et donc interpoleacutee
Perte de netteteacute due agrave linterpolation
Sami Gazzah 2009
197
IV Assignation des niveaux de gris
Exemple 2 recadrage dimage
Nous allons agrandir cette image agrave 180
Il va donc nous manquer des informations lagrave ougrave lon va creacuteer des
pixels pour agrandir limage
Reacutesultat sans interpolation le logiciel agrandit simplement les pixels
Reacutesultat avec interpolation le logiciel calcule une couleur intermeacutediaire
pour chaque nouveau pixel
Sami Gazzah 2009
198
IV Assignation des niveaux de gris
Image originale
Interpolation au plus
proche voisin
Interpolation
bilineacuteaireInterpolation
bicubique
15122010
34
Sami Gazzah 2009 199
IIV Interpolation au plus proche voisin
Cest lalgorithme le plus rapide agrave calculer
Prend en compte dans le calcul que le pixel le plus proche du point
agrave interpoler
Consiste tout simplement agrave agrandir chaque pixel
Exemple Interpolation du plus proche voisin par copie des pixels
Copie de chaque colonne et de chaque rang
23 20
25 28
23 23
23 23
20 20
20 20
25 25
25 25
28 28
28 28
Sami Gazzah 2009 200
IIV Interpolation bilineacuteaire
Fonction bilineacuteaire de 4 pixels voisins ( en 2 D )
i-1 i i+1
i-1 i-12 i i+12 i+1 i+32
yi=xiYi+12=(xi+xi+1)2
Problegraveme pour le dernier point
Extrapolation lineacuteaire de
2 xn-xn-1
Principe 1D
attribuer agrave chaque point cible une
combinaison lineacuteaire des quatre
points sources les plus proches par
la transformation inverse
Sami Gazzah 2009 201
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 202
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 203 Sami Gazzah 2009 204
IIV Interpolation bilineacuteaire
15122010
35
Sami Gazzah 2009 205
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 206
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 207
IIV Interpolation bilineacuteaire exemple
Sami Gazzah 2009 208
IIV Interpolation bicubique
Sami Gazzah 2009 209
exemple
Sami Gazzah 2009 210
Chapitre 8
Geacuteneacuteration de segments de
droite et de cercles en 2D
15122010
36
Sami Gazzah 2009 211
Infographie 2D besoin de dessiner des primitives de
base (segments cercles hellip)
Espace discreacutetiseacute (pixels) il faut trouver un moyen pour
afficher des segments ou des cercles
I Segments 2D cercles1 Introduction
Comment trouver les pixels agrave allumer pour approximer au mieux une
droite ou un cercle
Algorithme rapide et preacutecisSami Gazzah 2009 212
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=ax+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ya
Sami Gazzah 2009 213
Rappelhellip
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=mx+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ym
Sami Gazzah 2009 214
Exemple
Sami Gazzah 2009 215
Agrave partir des coordonneacutees des 2 extreacutemiteacutes d‟un segmenthellip
Un algorithme simple
Boucle de x1 agrave x2 dx=1
ALLUME (x Arrondir(y))
Avec x2gtx1
Arrondir(y) = Arrondir(ax+b)
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Sami Gazzah 2009 216
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Choix de lrsquoaxehellip
Peu efficace
bullagrave chaque iteacuteration 1 multiplication (ou division) + 1 addition
+ 1 arrondi
15122010
37
Sami Gazzah 2009 217
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
DDA (Digital Differential Analyzer)
y et m doivent ecirctre des reacuteelsSami Gazzah 2009 218
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Calcul en entier (donc plus rapide)
Baseacute sur le choix entre deux points discrets deacutependant de leur
distance respective avec le point reacuteel ideacuteal
On simplifie le problegraveme en traitant drsquoabord le traceacute drsquoun segment
dans le 1er octant m infeacuterieur agrave1 et positif (0ltmlt 1)
Facilement geacuteneacuteralisable aux autres octants
Sami Gazzah 2009 219
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Traceacute d‟un segment dans le premier octant mlt1
On part d‟un point (xi yi) allumeacute
Sami Gazzah 2009 220
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
On ne calcule pas reacuteellement les distances rArr on veacuterifie si la diffeacuterence
entre les deux distances est positive ou neacutegative
Le signe de la longueur (d1-d2) deacutetermine s‟il faut allumer le pixel L ou H
L
H
Sami Gazzah 2009 221
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Comme m=ΔyΔx on multiplie cette diffeacuterence par Δx pour eacuteviter la
division
Mais que vaut p1
Sami Gazzah 2009 222
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
15122010
38
Sami Gazzah 2009 223
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Pour eacuteviter de calculer cette diffeacuterence pour chaque point on cherche
une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
Sami Gazzah 2009 224
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009 225
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009
Exercice
Tracer le segment de droite
pi xi yi
2 0 0
-6 1 1
6 2 1
-2 3 2
10 4 2
2 5 3
-6 6 4
6 7 4
-2 8 5
10 9 5
2 10 6
6
10
y
x
Sami Gazzah 2009 227
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
Sami Gazzah 2009 228
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
hellip interchanger les points hellip
Si |Δx| lt | Δy| on interchange le rocircle de x et y
15122010
39
Sami Gazzah 2009 229
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (1)
Sami Gazzah 2009 230
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (2)
Sami Gazzah 2009 231
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (3)
Sami Gazzah 2009 232
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Toujours baseacute sur le choix entre deux
points discrets deacutependant de leur
distance respective avec le point reacuteel
On travaille dans le 2e octant agrave partir
de (0r) ainsi pour un point (xi yi) le
prochain point sera
(xi+1 yi) ou (xi+1 yi-1)
Sami Gazzah 2009 233
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On calcule le prochain y et les diffeacuterences respectives avec les points
discrets de la faccedilon suivante
Le signe de pi nous dira si nous devons choisir le point lateacuteral ou le diagonal
Sami Gazzah 2009 234
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Encore une fois pour eacuteviter de calculer cette diffeacuterence pour chaque point on
cherche une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
15122010
40
Sami Gazzah 2009 235
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On considegravere 2 cas
Valeur initiale
Sami Gazzah 2009 236
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Sami Gazzah 2009 237
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Exemple centre = (00) et r = 3
Sami Gazzah 2009 238
Livres
Diane Lingrand Introduction au Traitement d‟Images Paris Editions Vuibert 2e
eacutedition 2008
Steven k Feiner James D Foley John F Hughes Richard l Phillips Andries
Vanam Introduction agrave l‟infographie Paris Editions Vuibert 2000
William K Pratt Digital Image Processing Willy-Inter-sciences 4th edition 2007
Eacuteric Incerti Compression dimage ndash Algorithmes et standards Vuibert 2003
Gilles Burel Introduction au traitement dimages ndash Simulation sous Matlab
Hermegraves 2001
Sites web
Cours de C Rougier (U Montreacuteal)
httpwww-etudiroumontrealca~rougiercift2730courshtml (cf chapitre 3)
Page wikipeacutedia sur JPEG (en anglais plus complegravete que celle en franccedilais)
httpenwikipediaorgwikiJPEG
Cours de P Courtellemont (Campus numeacuterique Espdon)
httppersouniv-lrfrpcourtelespadonsite_web
Applet de deacutemo par C G Jennings
httpcgjenningscatoyboxhjpegindexhtml
Cours de D Marshall (U Cardiff)
httpwwwcscfacukDaveMultimediaPDF
Reacutefeacuterences
Sami Gazzah 2009 239
Chapitre 9
introduction au
traitement
dimages avec OpenGL
Sami Gazzah 2009 240
OpenGL est une librairie graphique Elle a eacuteteacute creacutee par Silicon
Graphics et beacuteneacuteficie sur ces machines de lacceacuteleacuteration mateacuterielle
Elle est constitueacute d‟environ 200 fonctions graphiques
OpenGL est une bibliothegraveque de fonctions
Les fonctions sont de bas niveaux
La version actuelle est l‟ laquo OpenGL 41 raquo (deacutecembre 2010)
Principale caracteacuteristique indeacutependant du mateacuteriel et du systegraveme
d‟exploitation
Une impleacutementation libre de droits dOpenGL tregraves performante a eacuteteacute
eacutecrite par Brian Paul httpwwwmesa3dorg Et tout son code source
est accessible
Preacutesentation geacuteneacuterale
15122010
41
Sami Gazzah 2009 241
OpenGL propose des fonctions de bas niveaux
Primitives geacuteomeacutetriques points segments polygones
Les fonctions de haut niveaux sont deacuteveloppeacutees par l‟utilisateur ou
importeacutees par la librairie en amont d‟OpenGL
Primitives geacuteomeacutetriques complexes Sphegravere splines etc
Toutes les commandes et fonctions utilisent le preacutefixe gl
Exemple glColor2f()
Sami Gazzah 2009 242
Les Bibliothegraveques co-existant avec OpenGL
GLU OpenGL Utility Library contient les routines de bas niveau pour
geacuterer les matrices de transformation et de projection la facettisation des
polygones et le rendu de surface Les bibliothegraveques dextension du
systegraveme de fenecirctres permettent lutilisation du rendu OpenGL Il sagit de
GLX pour X Windows (fonctions ayant pour preacutefixe glX) et de WGL
pour Microsoft Windows (fonctions ayant pour preacutefixe wgl)
GLUT OpenGL Utility Toolkit est une boite agrave outils indeacutependante du
systegraveme de fenecirctrage eacutecrite par Mark
Kilgard pour simplifier la tacircche dutiliser des systegravemes diffeacuterents (fonctions
ayant pour preacutefixe glut)
Sami Gazzah 2009 243
Les primitives geacuteomeacutetriques d rsquoOpenGL
Les primitives sont deacutecrites par un bloc d‟instructions deacutelimiteacute par glBegin et glEnd
Ce bloc contient geacuteneacuteralement une liste de vertex Exemple
glBegin(GL_LINE_LOOP)
glVertex2f(-05 -05)
glVertex2f(05 -05)
glVertex2f(05 05)
glVertex2f(-05 05)
glEnd()
D‟autres attributs peuvent ecirctre speacutecifieacutes en chaque sommet
couleur normale coordonneacutee de texture etcSami Gazzah 2009 244
OpenGL est une machine agrave eacutetats
En modifiant les variables d‟eacutetats on peut changer le style de rendu
Sami Gazzah 2009 245
Exemple Honda Hippo (3dRendercom)
Placage de textures
bullL‟apparence et le toucher ( feel ) d‟une surface
bullUne image utiliseacutee pour deacutefinir les caracteacuteristiques d‟une surface
bullUne image multi-dimensionnelle qui est plaqueacutee sur un espace multi-
dimensionnel
Sami Gazzah 2009 246
15122010
42
Sami Gazzah 2009 247
Reacutefeacuterences openGL
Sami Gazzah 2009 248
Chapitre 10
introduction au
traitement
dimages avec OpenCV
Sami Gazzah 2009 249
Preacutesentation geacuteneacuterale
Quest-ce
Open Source Computer Vision Library
Bibliothegraveque open source de traitement des images numeacuteriques
Projet initieacute par Intel (en 1999)
Teacuteleacutechargeable sur httpsourceforgenetprojectsopencvlibrary
Fortement orienteacutee temps reacuteel
eacutecrite en C et C++
optimiseacutee pour les processeurs multi-cœurs
Multi-plateformes disponible pour Linux Windows et Mac OS X
Que contient-elle
Des fonctionnaliteacutes (structures et routines gt350 algos) de base et
avanceacutees pour bacirctir rapidement des applications autour de la vision par
ordinateur
Exemples dutilisation traitements de bas niveau (filtrage ) deacutetection
de visages reconnaissance et suivi dobjets en mouvement Sami Gazzah 2009 250
Fonctionnaliteacutes
Lectureeacutecriture dimages statiques et de seacutequences videacuteo
APIs de bas et moyen niveaux
Traitement des images binaires
Manipulations dimage (eacutechantillonnage (sampling) reacutegion dinteacuterecirct (ROI)
redimensionnement (resizing) rotation deacuteformation (warping) )
Deacutetection de contours de lignes de coins (edge detection)
Traitements multi-eacutechelles (multiscale processing)
Transformeacutees (Fourier cosinus discregravete )
Modules de haut niveau
Deacutetection reconnaissance et suivi (tracking) de visages
Flot optique (estimation du mouvement) (optical flow)
Calibrage (calibration) de la cameacutera
Mise en correspondance steacutereacuteoscopique (stereo matching)
IA et apprentissage par ordinateur (machine learning)
3D mise en correspondance (registration)
Sami Gazzah 2009 251
Modules principaux
CxCore
Types de base pour manip dimages (ex struct image point isin cxtypesh)
Structures dynamiques (listes files graphes arbres) et persistantes (LE)
Manipulations de matrices meacutethodes de lalgegravebre lineacuteaire et statistiques
Dessin en surimpression (overlay) (ex eacutetiquetage)
Cv
Traitement dimage calibrage cameacutera
Geacuteomeacutetrie algorithmique (triangulation )
Cvaux
Reconnaissance de visage
Code expeacuterimental et obsolegravete
Autres (dans otherlibs)
HighGUI ES videacuteos curseurs fenecirctrage
ML classification regroupement (clustering)Sami Gazzah 2009 252
OpenCV premiers programmesBibliothegraveque OpenCV
15122010
43
Sami Gazzah 2009 253
Livre
G Bradski amp A Kaehler laquo Learning OpenCV raquo OReilly Press (2008)
codes sources httpexamplesoreillycom9780596516130
Ressources en ligne
Reacutefeacuterence complegravete httpopencvwillowgaragecomdocumentation
Wiki httpopencvwillowgaragecomwikiFullOpenCVWiki
bullPreacutesentation teacuteleacutechargement installation
bullavec CodeBlocks httpopencvwillowgaragecomwikiCodeBlocks
bullDeacutebuter avec OpenCV FAQ
Tutoriels
httpnchcdlsourceforgenetsourceforgeopencvlibraryippocvpdf
httpdaslmemdrexeledu~noahKuntzopenCVTut1html agrave Tut11html
httpwwwcognoticscomopencvservo_2007_series
Tutoriel sur la vision utilisant OpenCV (en franccedilais)
httpwwwsiteduzerocomtutoriel-3-8631-vision-par-ordinateurhtml
Reacutefeacuterences openCV
15122010
25
Sami Gazzah 2009145
1I Rappels sur les ensembles
Sami Gazzah 2009146
1I Rappels sur les ensembles
Lois de De Morgan
Reacuteflexion La reacuteflexion d‟un ensemble A est deacutefinie par
Un ensemble symeacutetrique veacuterifiant ndashA=A C‟est le cas des cercles et des carreacute par
exemple
ccc YXYX )(
ccc YXYX )(
AaaA
A -A B -B
Sami Gazzah 2009147
1I Rappels sur les ensembles
Addition de Minkowski l‟addition d‟un eacuteleacutement x agrave un ensemble A par x est
deacutefinie par
Cette notion n‟est pas uniquement ensembliste elle nous oblige agrave deacutefinir un point
de reacutefeacuterence
On en deacuteduit l‟addition d‟un ensemble B agrave un ensemble A c‟est le reacutesultat de
l‟addition de chaque eacuteleacutement de B agrave A
L‟addition de Minkowski est commutative Elle est eacutegalement appeleacute dilatation
AaxaxAB
A
A
x
AxBxAaBaBbbABAC )()()(
le translateacute de X par b
Sami Gazzah 2009148
1I Rappels sur les ensembles
Eleacutement structurant les opeacuterations morphomatheacutematiques sont deacutefinis agrave
partir des ensemble B discrets appeleacute eacuteleacutement structurant Ces eacuteleacutement
permettent de deacutefinir le type de voisinage souhaiteacute
Addition de Minkowski d‟un ensemble A et d‟un ensemble B
BA
Sami Gazzah 2009149
1II Dilatation
Le reacutesultat de dilatation de lrsquoensemble A par lrsquoensemble B
est lrsquoaddition de Minkowski crsquoest lrsquoensemble des points tel
que lorsque B est centreacute sur un de ces points il y a une
intersection non vide entre A et B
Pour des images en niveaux de gris on obtient lrsquoimage
dilateacutee de la forme A en remplaccedilant tout pixel par le
maximum des intensiteacutes des voisins selon la forme B
Sami Gazzah 2009 150
1II Dilatation1 Image NampB
Soit k l‟eacuteleacutement structurant de taille (2k+1) x (2k+1) L‟algorithme de
dilatation est le suivant on parcourt tous les pixels de l‟image sauf les
bord de l‟image d‟eacutepaisseur k pour chaque pixel du fond rencontreacute s‟il
possegravede un voisin au sens de l‟eacuteleacutement structurant qui appartient agrave un
objet il prend le couleur de l‟objet si non il n‟est pas modifieacute
15122010
26
la dilatation (noteacutee ) drsquoune image monochrome laquo f raquo par un
eacuteleacutement structurant laquo B raquo est deacutefinie en terme de sous-graphe
bull f B = T [ Y ] = Supl l tel que (m n l) Y
bullY = U ( f ) U ( B )
En consideacuterant un eacuteleacutement structurant plan de valeur nulle sur son
support
( f B ) (P) = Max valeurs des pixels du voisinage du pixel P
1II Dilatation1 Image niveaux de gris
max
55 68 77 90 91 95 115 151 210
( f B ) (P) = 210
n
115 91 77
95 68 90
55 151 210
exemple
m
Image de reacutefeacuterence
Eacuteleacutement structurant
(8-connexiteacute)
liste ordonneacutee des valeurs du voisinage
- - -
-
-
-
-
-
1II Dilatation1 Image niveaux de gris
Exemples de filtrages morphologiques(eacuteleacutement structurant 33 complet)
Image de reacutefeacuterenceImage dilateacutee
morphologiquement
La dilatation en niveaux de gris accroicirct la luminance des
pixels entoureacutes de voisins plus lumineux
Observation
Sami Gazzah 2009154
VI Erosion
L‟eacuterosion est deacutefinie par
On deacutefinit la soustraction de Minkowski par
On a eacutequivalence entre eacuterosion et soustraction de Minkowski si B est
symeacutetrique (si B=-B)
D‟un point de vue binaire l‟eacuterode de A par B correspond agrave l‟ensemble
des points tels que si B est centre sur ce points B est entiegraverement inclus
dans A
AxBxBbbABAC )()(
)()( BbbABAC
Sami Gazzah 2009 155
VI Erosion1 Image NampB
on parcourt tous les pixels de l‟image sauf les bord de l‟image
d‟eacutepaisseur k pour chaque pixel du fond rencontreacute s‟il possegravede un
voisin au sens de l‟eacuteleacutement structurant qui appartient agrave un objet il
prend le couleur du fond si non il n‟est pas modifieacute
VI Eacuterosion drsquoune image en niveaux de gris
Lrsquoeacuterosion (noteacutee Ө ) drsquoune image monochrome laquo f raquo par un eacuteleacutement
structurant laquo B raquo est deacutefinie en terme de sous-graphe
bull f Ө B = T [ Y ] = Supl l tel que (m n l) Y
bullY = U ( f ) Ө U ( B )
Classiquement on considegravere un eacuteleacutement structurant plan de
valeur nulle sur son support
( f Ө B ) (P) = Min valeurs des pixels du voisinage du pixel P
15122010
27
VI Eacuterosion drsquoune image en niveaux de gris
min
68 90 91 95 151
( f Ө B ) (P) = 68
n
115 91 77
95 68 90
55 151 210
exemple
m
Image de reacutefeacuterence
ӨӨ
Eacuteleacutement structurant
(4-connexiteacute)
liste ordonneacutee des valeurs du voisinage
-
-
-
-
Exemples de filtrages morphologiques(eacuteleacutement structurant 33 complet)
Image eacuterodeacutee
Lrsquoeacuterosion en niveaux de gris reacuteduit la luminance des pixels
qui sont entoureacutes de voisins de moindre intensiteacute
Image de reacutefeacuterence
Observation
Sami Gazzah 2009 159
Eacuteleacutement structurant (a)
(4-connexiteacute)
-
-
-
-
Eacuteleacutement structurant (b)
(8-connexiteacute)
- - -
-
-
-
-
-
Exercice 1 Sur la mecircme image de deacutepart on reacutealise deux opeacuterations
de dilatations avec deux eacuteleacutements structurant diffeacuterents
Dilatation avec (a) Dilatation avec (b)
image de deacutepart
cas a L‟eacuteleacutement structurant est agrave 4-connexiteacute Chaque pixel
du support qui est eacutegal agrave la valeur 1 ou qui a l‟un de ses 4
voisins agrave la valeur 1 est mis agrave la valeur 1 apregraves filtrage
cas b L‟eacuteleacutement structurant est agrave 8-connexiteacute Chaque pixel
du support qui est eacutegal agrave la valeur 1 ou qui a l‟un de ses 8
voisins agrave la valeur 1 est mis agrave la valeur 1 apregraves filtrage
Dans les deux cas on observe qu‟une dilatation eacutelimine les
trous isoleacutes dans les objets et dilate le contour des objets en
tenant compte de l‟eacuteleacutement structurant
Sami Gazzah 2009 160
Exercice 1
Sami Gazzah 2009 161
Eacuteleacutement structurant (a)
(4-connexiteacute)
-
-
-
-
Eacuteleacutement structurant (b)
(8-connexiteacute)
- - -
-
-
-
-
-
Exercice 2 Sur la mecircme image de deacutepart on reacutealise deux opeacuterations
d‟eacuterosions avec deux eacuteleacutements structurant diffeacuterents
Erosion avec (a) Erosion avec (b)
image de deacutepart
cas a L‟eacuteleacutement structurant est agrave 4-connexiteacute (origine agrave 4 voisins)
Chaque pixel du support qui a la valeur 0 ou qui a l‟un de ses 4
voisins agrave la valeur 0 est mis agrave la valeur 0 apregraves filtrage
cas b L‟eacuteleacutement structurant est agrave 8-connexiteacute Chaque pixel du
support qui a la valeur 0 ou qui a l‟un de ses 8 voisins agrave la valeur 0
est mis agrave la valeur 0 apregraves filtrage
Dans les deux cas on observe qu‟une eacuterosion eacutelimine les pixels
isoleacutes sur le fond et eacuterode le contour des objets
Sami Gazzah 2009 162
Exercice 2
15122010
28
ConclusionsConclusions
Erosion
les objets relieacutes entre eux vont ecirctre seacutepareacutes
Une eacuterosion de taille n peut se reacutealiser en reacutepeacutetant une
eacuterosion n fois avec un eacuteleacutement structurant de taille 1 ou en
appliquant une seule eacuterosion avec un eacuteleacutement structurant
de taille n
Dilatation
des objets sont situeacutes agrave une distance moins grande que la taille
de leacuteleacutement structurant il vont fusionner
Sami Gazzah 2009 163 Sami Gazzah 2009 164
Sami Gazzah 2009 165
Elimine pixels isoleacutes sans inteacuterecirct
L‟ouverture (opening) consiste agrave une eacuterosion suivi d‟une dilatation
Les petites structures et deacutetail fins disparaissent et ne sont pas recreacuteeacutees
lors de la dilation Une opeacuteration d‟ouverture est ainsi inteacuteressante pour
eacuteliminer les petits morceaux de contours bruiteacutes dans une image de
contours
V Ouverture et fermeture1 Ouverture
BBABAC )(
Sami Gazzah 2009 166
V Ouverture et fermetureII Fermeture
La fermeture (closing) consiste agrave une dilatation suivi d‟une eacuterosion
Les structures proches fusionnent lors de la dilation mais seules les
fusions ponctuelles disparaissent agrave nouveau lors de l‟eacuterosion Une
opeacuteration de fermeture est ainsi inteacuteressante pour boucher les petits
trous
Sami Gazzah 2009 167 Sami Gazzah 2009 168
Exercice 3 Sur l‟image de deacutepart on reacutealise une opeacuteration de
fermeture binaire par l‟eacuteleacutement structurant 4-connexiteacute Conclusions
Eacuteleacutement structurant
(4-connexiteacute)
-
-
-
-Fermeture = dilatation puis eacuterosion
Image de deacutepart Image dilateacutee Image dilateacutee puis eacuterodeacutee
Combler les trous
Reacutetablir les jonctions
tout en preacuteservant la taille
15122010
29
Sami Gazzah 2009 169
Exercice 4 Sur l‟image de deacutepart on reacutealise une opeacuteration
d‟ouverture binaire par l‟eacuteleacutement structurant 4-connexiteacute Conclusions
Eacuteleacutement structurant
(4-connexiteacute)
-
-
-
-Ouverture = eacuterosion puis dilatation
Image de deacutepart Image eacuterodeacutee Image eacuterodeacutee puis dilateacutee
Supprimer les fausses alarmes
Seacuteparer les objets accoleacutes
tout en preacuteservant la tailleSami Gazzah 2009 170
Appliquer les filtres suivants sur limage donneacutee Quelles sont les valeurs choisies
aux bords de limage et quelles sont les modifications visuelles
a) filtre moyenneur M3acute3(19)
b) eacuterosion
c) dilatation
d) meacutedian
e) fermeture
f) ouverture
Exercice 5
Sami Gazzah 2009 171
IV Amincissement et Squelettisation
La squelette (skeleton) d‟une forme est l‟axe meacutedian L‟inteacuterecirct de cette
opeacuteration est dans
La reconnaissance de caractegraveres
Deacutetection des reacuteseaux routiers
La planification de trajectoirehellip
Une meacutethode couramment employeacutee est une amincissement reacutepeacuteteacute
jusqu‟agrave le convergence (n‟apporte aucune modification)
Sami Gazzah 2009 172
IV Amincissement et Squelettisation1 Opeacuteration Tout Ou Rien laquoHit or Missraquo
Cette transformation est deacutefinie par
leacuteleacutement structurant eacutetendu est centreacute sur chaque pixel de limage
comme pour les opeacuterations ensemblistes
la question poseacutee est est ce que le contenu de limage est identique au
contenu de leacuteleacutement structurant
si la reacuteponse est oui le pixel reacutesultant vaut 1 si non il vaut 0
Une application permet de deacutetecter des configurations locales
particuliegraveres dans une image
plusieurs masques peuvent ecirctre utiliseacutes indeacutependamment les images
reacutesultat eacutetant ensuite combineacutees par une opeacuteration ou
)()( cc BABABA
Bc-
est le compleacutementaire
local de B
Sami Gazzah 2009 173
IV Amincissement et Squelettisation1 Opeacuteration laquoHit or Missraquo
Exemple dopeacuteration Hit or Miss deacutetection des coinsSami Gazzah 2009 174
IV Amincissement et Squelettisation1 Amincissement (thinning)
bull La transformation TOR nous permet eacutegalement de deacutefinir
l‟amincissement
bullL‟amincissement consiste agrave soustraire limage reacutesultat dun hit or miss de
limage initiale
bull des amincissements successifs conduisent au squelettisation
)()( BAAAthin
15122010
30
Sami Gazzah 2009 175
IV Amincissement et Squelettisation1I Squelettisation
Appliquer des amincissements successifs puis s‟arrecircter lorsque l‟amincissement
n‟apporte plus de modification C‟est une eacuterosion particuliegravere ougrave les pixels sont
supprimeacutes agrave la condition quils ne provoquent pas la seacuteparation dune reacutegion en
deux
Sami Gazzah 2009 176
IV Amincissement et Squelettisation1I Squelettisation
Sami Gazzah 2009 177
Chapitre 7
Transformations
geacuteomeacutetriques 2D
Sami Gazzah 2009 178
I Introduction
On entend par transformation 2D l‟ensemble des transformations du
plan pouvant ecirctre appliqueacutees aux pixels de l‟image sans consideacuteration
de l‟intensiteacute
Par exemples
Reacuteduction agrandissement
Deacuteformation d‟image
Recalage d‟une photo scanneacutee
Recaler des images que l‟on veut comparer
Mosaiumlque d‟images
Sami Gazzah 2009 179
I Transformations euclidiennes
Elles preacuteservent les distances et les angles
Elles sont les compositions de translations et de rotations
1) Translation
Ougrave Tx et Ty sont les deacuteplacements en x et en y de la translation
y
x
Tyy
Txx
Sami Gazzah 2009 180
2) Rotation
15122010
31
Sami Gazzah 2009 181 Sami Gazzah 2009 182
3) Remarques (1)
Sami Gazzah 2009 183
3) Remarques (2)
Sami Gazzah 2009 184
II Homotheacuteties
Changement deacutechelle par rapport agrave lorigine (scaling zoom)
Ougrave Sx et Sy sont les facteurs dagrandissement ( gt1) ou de
reacuteduction ( lt1) en x et en y
ySy
xSx
y
x
Sami Gazzah 2009 185
II Homotheacuteties
Sami Gazzah 2009 186
II Homotheacuteties
15122010
32
Sami Gazzah 2009 187
III Reacuteflexions
Reacuteflexions par rapport aux axes (flip miroir)
Sami Gazzah 2009 188
IV Cisaillement
Cisaillement (glissement shearing) on eacutetire suivant un ou plusieurs axes
Sami Gazzah 2009 189
Transformations inverses
Sami Gazzah 2009 190
Repreacutesentation Matricielle
IV Autres (reacuteflexions miroirs et flips)
Sami Gazzah 2009 191
Interpolation Directe
Sami Gazzah 2009 192
oDifficile de distribuer le niveau de gris sur les pixels voisins
oOn n‟a pas la certitude que tous les pixels de l‟image
transformeacutee recevront une valeur =gt ldquotrousrdquo
15122010
33
Interpolation Inverse
Sami Gazzah 2009 193
o Interpolation de la valeur du pixel agrave partir des voisins plus
facile
oAucun ldquotrourdquo car on parcourt tous les pixels de l‟image
transformeacutee Sami Gazzah 2009 194
V Objet vectoriel - Objet bitmap
Objet vectoriel
Essentiellement on transforme
les sommets (ou points de
controcircle) et on retracehellip
Objet ldquobitmaprdquo
On doit calculer la nouvelle
position de chaque pixel De plus on
doit geacuteneacuteralement interpoler les
niveaux de gris (couleurs)hellip
Sami Gazzah 2009 195
IV Assignation des niveaux de gris
Neacutecessaire car la position d‟un pixel transformeacute n‟est pas entiegraverehellip
Plusieurs meacutethodes
Interpolation au plus proche voisin
Interpolation bilineacuteaire
Interpolation bicubique
Autres types d‟interpolation
Sami Gazzah 2009 196
IV Assignation des niveaux de gris
Linterpolation de limage cest ce qui arrive lorsquon redimensionne
une image numeacuterique ou quon la redimensionne avec une distorsion
quon change la perspective etc
Exemple 1
Image originale (sans interpolation)
Image agrandie et donc interpoleacutee
Perte de netteteacute due agrave linterpolation
Sami Gazzah 2009
197
IV Assignation des niveaux de gris
Exemple 2 recadrage dimage
Nous allons agrandir cette image agrave 180
Il va donc nous manquer des informations lagrave ougrave lon va creacuteer des
pixels pour agrandir limage
Reacutesultat sans interpolation le logiciel agrandit simplement les pixels
Reacutesultat avec interpolation le logiciel calcule une couleur intermeacutediaire
pour chaque nouveau pixel
Sami Gazzah 2009
198
IV Assignation des niveaux de gris
Image originale
Interpolation au plus
proche voisin
Interpolation
bilineacuteaireInterpolation
bicubique
15122010
34
Sami Gazzah 2009 199
IIV Interpolation au plus proche voisin
Cest lalgorithme le plus rapide agrave calculer
Prend en compte dans le calcul que le pixel le plus proche du point
agrave interpoler
Consiste tout simplement agrave agrandir chaque pixel
Exemple Interpolation du plus proche voisin par copie des pixels
Copie de chaque colonne et de chaque rang
23 20
25 28
23 23
23 23
20 20
20 20
25 25
25 25
28 28
28 28
Sami Gazzah 2009 200
IIV Interpolation bilineacuteaire
Fonction bilineacuteaire de 4 pixels voisins ( en 2 D )
i-1 i i+1
i-1 i-12 i i+12 i+1 i+32
yi=xiYi+12=(xi+xi+1)2
Problegraveme pour le dernier point
Extrapolation lineacuteaire de
2 xn-xn-1
Principe 1D
attribuer agrave chaque point cible une
combinaison lineacuteaire des quatre
points sources les plus proches par
la transformation inverse
Sami Gazzah 2009 201
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 202
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 203 Sami Gazzah 2009 204
IIV Interpolation bilineacuteaire
15122010
35
Sami Gazzah 2009 205
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 206
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 207
IIV Interpolation bilineacuteaire exemple
Sami Gazzah 2009 208
IIV Interpolation bicubique
Sami Gazzah 2009 209
exemple
Sami Gazzah 2009 210
Chapitre 8
Geacuteneacuteration de segments de
droite et de cercles en 2D
15122010
36
Sami Gazzah 2009 211
Infographie 2D besoin de dessiner des primitives de
base (segments cercles hellip)
Espace discreacutetiseacute (pixels) il faut trouver un moyen pour
afficher des segments ou des cercles
I Segments 2D cercles1 Introduction
Comment trouver les pixels agrave allumer pour approximer au mieux une
droite ou un cercle
Algorithme rapide et preacutecisSami Gazzah 2009 212
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=ax+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ya
Sami Gazzah 2009 213
Rappelhellip
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=mx+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ym
Sami Gazzah 2009 214
Exemple
Sami Gazzah 2009 215
Agrave partir des coordonneacutees des 2 extreacutemiteacutes d‟un segmenthellip
Un algorithme simple
Boucle de x1 agrave x2 dx=1
ALLUME (x Arrondir(y))
Avec x2gtx1
Arrondir(y) = Arrondir(ax+b)
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Sami Gazzah 2009 216
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Choix de lrsquoaxehellip
Peu efficace
bullagrave chaque iteacuteration 1 multiplication (ou division) + 1 addition
+ 1 arrondi
15122010
37
Sami Gazzah 2009 217
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
DDA (Digital Differential Analyzer)
y et m doivent ecirctre des reacuteelsSami Gazzah 2009 218
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Calcul en entier (donc plus rapide)
Baseacute sur le choix entre deux points discrets deacutependant de leur
distance respective avec le point reacuteel ideacuteal
On simplifie le problegraveme en traitant drsquoabord le traceacute drsquoun segment
dans le 1er octant m infeacuterieur agrave1 et positif (0ltmlt 1)
Facilement geacuteneacuteralisable aux autres octants
Sami Gazzah 2009 219
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Traceacute d‟un segment dans le premier octant mlt1
On part d‟un point (xi yi) allumeacute
Sami Gazzah 2009 220
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
On ne calcule pas reacuteellement les distances rArr on veacuterifie si la diffeacuterence
entre les deux distances est positive ou neacutegative
Le signe de la longueur (d1-d2) deacutetermine s‟il faut allumer le pixel L ou H
L
H
Sami Gazzah 2009 221
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Comme m=ΔyΔx on multiplie cette diffeacuterence par Δx pour eacuteviter la
division
Mais que vaut p1
Sami Gazzah 2009 222
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
15122010
38
Sami Gazzah 2009 223
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Pour eacuteviter de calculer cette diffeacuterence pour chaque point on cherche
une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
Sami Gazzah 2009 224
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009 225
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009
Exercice
Tracer le segment de droite
pi xi yi
2 0 0
-6 1 1
6 2 1
-2 3 2
10 4 2
2 5 3
-6 6 4
6 7 4
-2 8 5
10 9 5
2 10 6
6
10
y
x
Sami Gazzah 2009 227
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
Sami Gazzah 2009 228
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
hellip interchanger les points hellip
Si |Δx| lt | Δy| on interchange le rocircle de x et y
15122010
39
Sami Gazzah 2009 229
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (1)
Sami Gazzah 2009 230
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (2)
Sami Gazzah 2009 231
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (3)
Sami Gazzah 2009 232
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Toujours baseacute sur le choix entre deux
points discrets deacutependant de leur
distance respective avec le point reacuteel
On travaille dans le 2e octant agrave partir
de (0r) ainsi pour un point (xi yi) le
prochain point sera
(xi+1 yi) ou (xi+1 yi-1)
Sami Gazzah 2009 233
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On calcule le prochain y et les diffeacuterences respectives avec les points
discrets de la faccedilon suivante
Le signe de pi nous dira si nous devons choisir le point lateacuteral ou le diagonal
Sami Gazzah 2009 234
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Encore une fois pour eacuteviter de calculer cette diffeacuterence pour chaque point on
cherche une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
15122010
40
Sami Gazzah 2009 235
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On considegravere 2 cas
Valeur initiale
Sami Gazzah 2009 236
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Sami Gazzah 2009 237
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Exemple centre = (00) et r = 3
Sami Gazzah 2009 238
Livres
Diane Lingrand Introduction au Traitement d‟Images Paris Editions Vuibert 2e
eacutedition 2008
Steven k Feiner James D Foley John F Hughes Richard l Phillips Andries
Vanam Introduction agrave l‟infographie Paris Editions Vuibert 2000
William K Pratt Digital Image Processing Willy-Inter-sciences 4th edition 2007
Eacuteric Incerti Compression dimage ndash Algorithmes et standards Vuibert 2003
Gilles Burel Introduction au traitement dimages ndash Simulation sous Matlab
Hermegraves 2001
Sites web
Cours de C Rougier (U Montreacuteal)
httpwww-etudiroumontrealca~rougiercift2730courshtml (cf chapitre 3)
Page wikipeacutedia sur JPEG (en anglais plus complegravete que celle en franccedilais)
httpenwikipediaorgwikiJPEG
Cours de P Courtellemont (Campus numeacuterique Espdon)
httppersouniv-lrfrpcourtelespadonsite_web
Applet de deacutemo par C G Jennings
httpcgjenningscatoyboxhjpegindexhtml
Cours de D Marshall (U Cardiff)
httpwwwcscfacukDaveMultimediaPDF
Reacutefeacuterences
Sami Gazzah 2009 239
Chapitre 9
introduction au
traitement
dimages avec OpenGL
Sami Gazzah 2009 240
OpenGL est une librairie graphique Elle a eacuteteacute creacutee par Silicon
Graphics et beacuteneacuteficie sur ces machines de lacceacuteleacuteration mateacuterielle
Elle est constitueacute d‟environ 200 fonctions graphiques
OpenGL est une bibliothegraveque de fonctions
Les fonctions sont de bas niveaux
La version actuelle est l‟ laquo OpenGL 41 raquo (deacutecembre 2010)
Principale caracteacuteristique indeacutependant du mateacuteriel et du systegraveme
d‟exploitation
Une impleacutementation libre de droits dOpenGL tregraves performante a eacuteteacute
eacutecrite par Brian Paul httpwwwmesa3dorg Et tout son code source
est accessible
Preacutesentation geacuteneacuterale
15122010
41
Sami Gazzah 2009 241
OpenGL propose des fonctions de bas niveaux
Primitives geacuteomeacutetriques points segments polygones
Les fonctions de haut niveaux sont deacuteveloppeacutees par l‟utilisateur ou
importeacutees par la librairie en amont d‟OpenGL
Primitives geacuteomeacutetriques complexes Sphegravere splines etc
Toutes les commandes et fonctions utilisent le preacutefixe gl
Exemple glColor2f()
Sami Gazzah 2009 242
Les Bibliothegraveques co-existant avec OpenGL
GLU OpenGL Utility Library contient les routines de bas niveau pour
geacuterer les matrices de transformation et de projection la facettisation des
polygones et le rendu de surface Les bibliothegraveques dextension du
systegraveme de fenecirctres permettent lutilisation du rendu OpenGL Il sagit de
GLX pour X Windows (fonctions ayant pour preacutefixe glX) et de WGL
pour Microsoft Windows (fonctions ayant pour preacutefixe wgl)
GLUT OpenGL Utility Toolkit est une boite agrave outils indeacutependante du
systegraveme de fenecirctrage eacutecrite par Mark
Kilgard pour simplifier la tacircche dutiliser des systegravemes diffeacuterents (fonctions
ayant pour preacutefixe glut)
Sami Gazzah 2009 243
Les primitives geacuteomeacutetriques d rsquoOpenGL
Les primitives sont deacutecrites par un bloc d‟instructions deacutelimiteacute par glBegin et glEnd
Ce bloc contient geacuteneacuteralement une liste de vertex Exemple
glBegin(GL_LINE_LOOP)
glVertex2f(-05 -05)
glVertex2f(05 -05)
glVertex2f(05 05)
glVertex2f(-05 05)
glEnd()
D‟autres attributs peuvent ecirctre speacutecifieacutes en chaque sommet
couleur normale coordonneacutee de texture etcSami Gazzah 2009 244
OpenGL est une machine agrave eacutetats
En modifiant les variables d‟eacutetats on peut changer le style de rendu
Sami Gazzah 2009 245
Exemple Honda Hippo (3dRendercom)
Placage de textures
bullL‟apparence et le toucher ( feel ) d‟une surface
bullUne image utiliseacutee pour deacutefinir les caracteacuteristiques d‟une surface
bullUne image multi-dimensionnelle qui est plaqueacutee sur un espace multi-
dimensionnel
Sami Gazzah 2009 246
15122010
42
Sami Gazzah 2009 247
Reacutefeacuterences openGL
Sami Gazzah 2009 248
Chapitre 10
introduction au
traitement
dimages avec OpenCV
Sami Gazzah 2009 249
Preacutesentation geacuteneacuterale
Quest-ce
Open Source Computer Vision Library
Bibliothegraveque open source de traitement des images numeacuteriques
Projet initieacute par Intel (en 1999)
Teacuteleacutechargeable sur httpsourceforgenetprojectsopencvlibrary
Fortement orienteacutee temps reacuteel
eacutecrite en C et C++
optimiseacutee pour les processeurs multi-cœurs
Multi-plateformes disponible pour Linux Windows et Mac OS X
Que contient-elle
Des fonctionnaliteacutes (structures et routines gt350 algos) de base et
avanceacutees pour bacirctir rapidement des applications autour de la vision par
ordinateur
Exemples dutilisation traitements de bas niveau (filtrage ) deacutetection
de visages reconnaissance et suivi dobjets en mouvement Sami Gazzah 2009 250
Fonctionnaliteacutes
Lectureeacutecriture dimages statiques et de seacutequences videacuteo
APIs de bas et moyen niveaux
Traitement des images binaires
Manipulations dimage (eacutechantillonnage (sampling) reacutegion dinteacuterecirct (ROI)
redimensionnement (resizing) rotation deacuteformation (warping) )
Deacutetection de contours de lignes de coins (edge detection)
Traitements multi-eacutechelles (multiscale processing)
Transformeacutees (Fourier cosinus discregravete )
Modules de haut niveau
Deacutetection reconnaissance et suivi (tracking) de visages
Flot optique (estimation du mouvement) (optical flow)
Calibrage (calibration) de la cameacutera
Mise en correspondance steacutereacuteoscopique (stereo matching)
IA et apprentissage par ordinateur (machine learning)
3D mise en correspondance (registration)
Sami Gazzah 2009 251
Modules principaux
CxCore
Types de base pour manip dimages (ex struct image point isin cxtypesh)
Structures dynamiques (listes files graphes arbres) et persistantes (LE)
Manipulations de matrices meacutethodes de lalgegravebre lineacuteaire et statistiques
Dessin en surimpression (overlay) (ex eacutetiquetage)
Cv
Traitement dimage calibrage cameacutera
Geacuteomeacutetrie algorithmique (triangulation )
Cvaux
Reconnaissance de visage
Code expeacuterimental et obsolegravete
Autres (dans otherlibs)
HighGUI ES videacuteos curseurs fenecirctrage
ML classification regroupement (clustering)Sami Gazzah 2009 252
OpenCV premiers programmesBibliothegraveque OpenCV
15122010
43
Sami Gazzah 2009 253
Livre
G Bradski amp A Kaehler laquo Learning OpenCV raquo OReilly Press (2008)
codes sources httpexamplesoreillycom9780596516130
Ressources en ligne
Reacutefeacuterence complegravete httpopencvwillowgaragecomdocumentation
Wiki httpopencvwillowgaragecomwikiFullOpenCVWiki
bullPreacutesentation teacuteleacutechargement installation
bullavec CodeBlocks httpopencvwillowgaragecomwikiCodeBlocks
bullDeacutebuter avec OpenCV FAQ
Tutoriels
httpnchcdlsourceforgenetsourceforgeopencvlibraryippocvpdf
httpdaslmemdrexeledu~noahKuntzopenCVTut1html agrave Tut11html
httpwwwcognoticscomopencvservo_2007_series
Tutoriel sur la vision utilisant OpenCV (en franccedilais)
httpwwwsiteduzerocomtutoriel-3-8631-vision-par-ordinateurhtml
Reacutefeacuterences openCV
15122010
26
la dilatation (noteacutee ) drsquoune image monochrome laquo f raquo par un
eacuteleacutement structurant laquo B raquo est deacutefinie en terme de sous-graphe
bull f B = T [ Y ] = Supl l tel que (m n l) Y
bullY = U ( f ) U ( B )
En consideacuterant un eacuteleacutement structurant plan de valeur nulle sur son
support
( f B ) (P) = Max valeurs des pixels du voisinage du pixel P
1II Dilatation1 Image niveaux de gris
max
55 68 77 90 91 95 115 151 210
( f B ) (P) = 210
n
115 91 77
95 68 90
55 151 210
exemple
m
Image de reacutefeacuterence
Eacuteleacutement structurant
(8-connexiteacute)
liste ordonneacutee des valeurs du voisinage
- - -
-
-
-
-
-
1II Dilatation1 Image niveaux de gris
Exemples de filtrages morphologiques(eacuteleacutement structurant 33 complet)
Image de reacutefeacuterenceImage dilateacutee
morphologiquement
La dilatation en niveaux de gris accroicirct la luminance des
pixels entoureacutes de voisins plus lumineux
Observation
Sami Gazzah 2009154
VI Erosion
L‟eacuterosion est deacutefinie par
On deacutefinit la soustraction de Minkowski par
On a eacutequivalence entre eacuterosion et soustraction de Minkowski si B est
symeacutetrique (si B=-B)
D‟un point de vue binaire l‟eacuterode de A par B correspond agrave l‟ensemble
des points tels que si B est centre sur ce points B est entiegraverement inclus
dans A
AxBxBbbABAC )()(
)()( BbbABAC
Sami Gazzah 2009 155
VI Erosion1 Image NampB
on parcourt tous les pixels de l‟image sauf les bord de l‟image
d‟eacutepaisseur k pour chaque pixel du fond rencontreacute s‟il possegravede un
voisin au sens de l‟eacuteleacutement structurant qui appartient agrave un objet il
prend le couleur du fond si non il n‟est pas modifieacute
VI Eacuterosion drsquoune image en niveaux de gris
Lrsquoeacuterosion (noteacutee Ө ) drsquoune image monochrome laquo f raquo par un eacuteleacutement
structurant laquo B raquo est deacutefinie en terme de sous-graphe
bull f Ө B = T [ Y ] = Supl l tel que (m n l) Y
bullY = U ( f ) Ө U ( B )
Classiquement on considegravere un eacuteleacutement structurant plan de
valeur nulle sur son support
( f Ө B ) (P) = Min valeurs des pixels du voisinage du pixel P
15122010
27
VI Eacuterosion drsquoune image en niveaux de gris
min
68 90 91 95 151
( f Ө B ) (P) = 68
n
115 91 77
95 68 90
55 151 210
exemple
m
Image de reacutefeacuterence
ӨӨ
Eacuteleacutement structurant
(4-connexiteacute)
liste ordonneacutee des valeurs du voisinage
-
-
-
-
Exemples de filtrages morphologiques(eacuteleacutement structurant 33 complet)
Image eacuterodeacutee
Lrsquoeacuterosion en niveaux de gris reacuteduit la luminance des pixels
qui sont entoureacutes de voisins de moindre intensiteacute
Image de reacutefeacuterence
Observation
Sami Gazzah 2009 159
Eacuteleacutement structurant (a)
(4-connexiteacute)
-
-
-
-
Eacuteleacutement structurant (b)
(8-connexiteacute)
- - -
-
-
-
-
-
Exercice 1 Sur la mecircme image de deacutepart on reacutealise deux opeacuterations
de dilatations avec deux eacuteleacutements structurant diffeacuterents
Dilatation avec (a) Dilatation avec (b)
image de deacutepart
cas a L‟eacuteleacutement structurant est agrave 4-connexiteacute Chaque pixel
du support qui est eacutegal agrave la valeur 1 ou qui a l‟un de ses 4
voisins agrave la valeur 1 est mis agrave la valeur 1 apregraves filtrage
cas b L‟eacuteleacutement structurant est agrave 8-connexiteacute Chaque pixel
du support qui est eacutegal agrave la valeur 1 ou qui a l‟un de ses 8
voisins agrave la valeur 1 est mis agrave la valeur 1 apregraves filtrage
Dans les deux cas on observe qu‟une dilatation eacutelimine les
trous isoleacutes dans les objets et dilate le contour des objets en
tenant compte de l‟eacuteleacutement structurant
Sami Gazzah 2009 160
Exercice 1
Sami Gazzah 2009 161
Eacuteleacutement structurant (a)
(4-connexiteacute)
-
-
-
-
Eacuteleacutement structurant (b)
(8-connexiteacute)
- - -
-
-
-
-
-
Exercice 2 Sur la mecircme image de deacutepart on reacutealise deux opeacuterations
d‟eacuterosions avec deux eacuteleacutements structurant diffeacuterents
Erosion avec (a) Erosion avec (b)
image de deacutepart
cas a L‟eacuteleacutement structurant est agrave 4-connexiteacute (origine agrave 4 voisins)
Chaque pixel du support qui a la valeur 0 ou qui a l‟un de ses 4
voisins agrave la valeur 0 est mis agrave la valeur 0 apregraves filtrage
cas b L‟eacuteleacutement structurant est agrave 8-connexiteacute Chaque pixel du
support qui a la valeur 0 ou qui a l‟un de ses 8 voisins agrave la valeur 0
est mis agrave la valeur 0 apregraves filtrage
Dans les deux cas on observe qu‟une eacuterosion eacutelimine les pixels
isoleacutes sur le fond et eacuterode le contour des objets
Sami Gazzah 2009 162
Exercice 2
15122010
28
ConclusionsConclusions
Erosion
les objets relieacutes entre eux vont ecirctre seacutepareacutes
Une eacuterosion de taille n peut se reacutealiser en reacutepeacutetant une
eacuterosion n fois avec un eacuteleacutement structurant de taille 1 ou en
appliquant une seule eacuterosion avec un eacuteleacutement structurant
de taille n
Dilatation
des objets sont situeacutes agrave une distance moins grande que la taille
de leacuteleacutement structurant il vont fusionner
Sami Gazzah 2009 163 Sami Gazzah 2009 164
Sami Gazzah 2009 165
Elimine pixels isoleacutes sans inteacuterecirct
L‟ouverture (opening) consiste agrave une eacuterosion suivi d‟une dilatation
Les petites structures et deacutetail fins disparaissent et ne sont pas recreacuteeacutees
lors de la dilation Une opeacuteration d‟ouverture est ainsi inteacuteressante pour
eacuteliminer les petits morceaux de contours bruiteacutes dans une image de
contours
V Ouverture et fermeture1 Ouverture
BBABAC )(
Sami Gazzah 2009 166
V Ouverture et fermetureII Fermeture
La fermeture (closing) consiste agrave une dilatation suivi d‟une eacuterosion
Les structures proches fusionnent lors de la dilation mais seules les
fusions ponctuelles disparaissent agrave nouveau lors de l‟eacuterosion Une
opeacuteration de fermeture est ainsi inteacuteressante pour boucher les petits
trous
Sami Gazzah 2009 167 Sami Gazzah 2009 168
Exercice 3 Sur l‟image de deacutepart on reacutealise une opeacuteration de
fermeture binaire par l‟eacuteleacutement structurant 4-connexiteacute Conclusions
Eacuteleacutement structurant
(4-connexiteacute)
-
-
-
-Fermeture = dilatation puis eacuterosion
Image de deacutepart Image dilateacutee Image dilateacutee puis eacuterodeacutee
Combler les trous
Reacutetablir les jonctions
tout en preacuteservant la taille
15122010
29
Sami Gazzah 2009 169
Exercice 4 Sur l‟image de deacutepart on reacutealise une opeacuteration
d‟ouverture binaire par l‟eacuteleacutement structurant 4-connexiteacute Conclusions
Eacuteleacutement structurant
(4-connexiteacute)
-
-
-
-Ouverture = eacuterosion puis dilatation
Image de deacutepart Image eacuterodeacutee Image eacuterodeacutee puis dilateacutee
Supprimer les fausses alarmes
Seacuteparer les objets accoleacutes
tout en preacuteservant la tailleSami Gazzah 2009 170
Appliquer les filtres suivants sur limage donneacutee Quelles sont les valeurs choisies
aux bords de limage et quelles sont les modifications visuelles
a) filtre moyenneur M3acute3(19)
b) eacuterosion
c) dilatation
d) meacutedian
e) fermeture
f) ouverture
Exercice 5
Sami Gazzah 2009 171
IV Amincissement et Squelettisation
La squelette (skeleton) d‟une forme est l‟axe meacutedian L‟inteacuterecirct de cette
opeacuteration est dans
La reconnaissance de caractegraveres
Deacutetection des reacuteseaux routiers
La planification de trajectoirehellip
Une meacutethode couramment employeacutee est une amincissement reacutepeacuteteacute
jusqu‟agrave le convergence (n‟apporte aucune modification)
Sami Gazzah 2009 172
IV Amincissement et Squelettisation1 Opeacuteration Tout Ou Rien laquoHit or Missraquo
Cette transformation est deacutefinie par
leacuteleacutement structurant eacutetendu est centreacute sur chaque pixel de limage
comme pour les opeacuterations ensemblistes
la question poseacutee est est ce que le contenu de limage est identique au
contenu de leacuteleacutement structurant
si la reacuteponse est oui le pixel reacutesultant vaut 1 si non il vaut 0
Une application permet de deacutetecter des configurations locales
particuliegraveres dans une image
plusieurs masques peuvent ecirctre utiliseacutes indeacutependamment les images
reacutesultat eacutetant ensuite combineacutees par une opeacuteration ou
)()( cc BABABA
Bc-
est le compleacutementaire
local de B
Sami Gazzah 2009 173
IV Amincissement et Squelettisation1 Opeacuteration laquoHit or Missraquo
Exemple dopeacuteration Hit or Miss deacutetection des coinsSami Gazzah 2009 174
IV Amincissement et Squelettisation1 Amincissement (thinning)
bull La transformation TOR nous permet eacutegalement de deacutefinir
l‟amincissement
bullL‟amincissement consiste agrave soustraire limage reacutesultat dun hit or miss de
limage initiale
bull des amincissements successifs conduisent au squelettisation
)()( BAAAthin
15122010
30
Sami Gazzah 2009 175
IV Amincissement et Squelettisation1I Squelettisation
Appliquer des amincissements successifs puis s‟arrecircter lorsque l‟amincissement
n‟apporte plus de modification C‟est une eacuterosion particuliegravere ougrave les pixels sont
supprimeacutes agrave la condition quils ne provoquent pas la seacuteparation dune reacutegion en
deux
Sami Gazzah 2009 176
IV Amincissement et Squelettisation1I Squelettisation
Sami Gazzah 2009 177
Chapitre 7
Transformations
geacuteomeacutetriques 2D
Sami Gazzah 2009 178
I Introduction
On entend par transformation 2D l‟ensemble des transformations du
plan pouvant ecirctre appliqueacutees aux pixels de l‟image sans consideacuteration
de l‟intensiteacute
Par exemples
Reacuteduction agrandissement
Deacuteformation d‟image
Recalage d‟une photo scanneacutee
Recaler des images que l‟on veut comparer
Mosaiumlque d‟images
Sami Gazzah 2009 179
I Transformations euclidiennes
Elles preacuteservent les distances et les angles
Elles sont les compositions de translations et de rotations
1) Translation
Ougrave Tx et Ty sont les deacuteplacements en x et en y de la translation
y
x
Tyy
Txx
Sami Gazzah 2009 180
2) Rotation
15122010
31
Sami Gazzah 2009 181 Sami Gazzah 2009 182
3) Remarques (1)
Sami Gazzah 2009 183
3) Remarques (2)
Sami Gazzah 2009 184
II Homotheacuteties
Changement deacutechelle par rapport agrave lorigine (scaling zoom)
Ougrave Sx et Sy sont les facteurs dagrandissement ( gt1) ou de
reacuteduction ( lt1) en x et en y
ySy
xSx
y
x
Sami Gazzah 2009 185
II Homotheacuteties
Sami Gazzah 2009 186
II Homotheacuteties
15122010
32
Sami Gazzah 2009 187
III Reacuteflexions
Reacuteflexions par rapport aux axes (flip miroir)
Sami Gazzah 2009 188
IV Cisaillement
Cisaillement (glissement shearing) on eacutetire suivant un ou plusieurs axes
Sami Gazzah 2009 189
Transformations inverses
Sami Gazzah 2009 190
Repreacutesentation Matricielle
IV Autres (reacuteflexions miroirs et flips)
Sami Gazzah 2009 191
Interpolation Directe
Sami Gazzah 2009 192
oDifficile de distribuer le niveau de gris sur les pixels voisins
oOn n‟a pas la certitude que tous les pixels de l‟image
transformeacutee recevront une valeur =gt ldquotrousrdquo
15122010
33
Interpolation Inverse
Sami Gazzah 2009 193
o Interpolation de la valeur du pixel agrave partir des voisins plus
facile
oAucun ldquotrourdquo car on parcourt tous les pixels de l‟image
transformeacutee Sami Gazzah 2009 194
V Objet vectoriel - Objet bitmap
Objet vectoriel
Essentiellement on transforme
les sommets (ou points de
controcircle) et on retracehellip
Objet ldquobitmaprdquo
On doit calculer la nouvelle
position de chaque pixel De plus on
doit geacuteneacuteralement interpoler les
niveaux de gris (couleurs)hellip
Sami Gazzah 2009 195
IV Assignation des niveaux de gris
Neacutecessaire car la position d‟un pixel transformeacute n‟est pas entiegraverehellip
Plusieurs meacutethodes
Interpolation au plus proche voisin
Interpolation bilineacuteaire
Interpolation bicubique
Autres types d‟interpolation
Sami Gazzah 2009 196
IV Assignation des niveaux de gris
Linterpolation de limage cest ce qui arrive lorsquon redimensionne
une image numeacuterique ou quon la redimensionne avec une distorsion
quon change la perspective etc
Exemple 1
Image originale (sans interpolation)
Image agrandie et donc interpoleacutee
Perte de netteteacute due agrave linterpolation
Sami Gazzah 2009
197
IV Assignation des niveaux de gris
Exemple 2 recadrage dimage
Nous allons agrandir cette image agrave 180
Il va donc nous manquer des informations lagrave ougrave lon va creacuteer des
pixels pour agrandir limage
Reacutesultat sans interpolation le logiciel agrandit simplement les pixels
Reacutesultat avec interpolation le logiciel calcule une couleur intermeacutediaire
pour chaque nouveau pixel
Sami Gazzah 2009
198
IV Assignation des niveaux de gris
Image originale
Interpolation au plus
proche voisin
Interpolation
bilineacuteaireInterpolation
bicubique
15122010
34
Sami Gazzah 2009 199
IIV Interpolation au plus proche voisin
Cest lalgorithme le plus rapide agrave calculer
Prend en compte dans le calcul que le pixel le plus proche du point
agrave interpoler
Consiste tout simplement agrave agrandir chaque pixel
Exemple Interpolation du plus proche voisin par copie des pixels
Copie de chaque colonne et de chaque rang
23 20
25 28
23 23
23 23
20 20
20 20
25 25
25 25
28 28
28 28
Sami Gazzah 2009 200
IIV Interpolation bilineacuteaire
Fonction bilineacuteaire de 4 pixels voisins ( en 2 D )
i-1 i i+1
i-1 i-12 i i+12 i+1 i+32
yi=xiYi+12=(xi+xi+1)2
Problegraveme pour le dernier point
Extrapolation lineacuteaire de
2 xn-xn-1
Principe 1D
attribuer agrave chaque point cible une
combinaison lineacuteaire des quatre
points sources les plus proches par
la transformation inverse
Sami Gazzah 2009 201
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 202
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 203 Sami Gazzah 2009 204
IIV Interpolation bilineacuteaire
15122010
35
Sami Gazzah 2009 205
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 206
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 207
IIV Interpolation bilineacuteaire exemple
Sami Gazzah 2009 208
IIV Interpolation bicubique
Sami Gazzah 2009 209
exemple
Sami Gazzah 2009 210
Chapitre 8
Geacuteneacuteration de segments de
droite et de cercles en 2D
15122010
36
Sami Gazzah 2009 211
Infographie 2D besoin de dessiner des primitives de
base (segments cercles hellip)
Espace discreacutetiseacute (pixels) il faut trouver un moyen pour
afficher des segments ou des cercles
I Segments 2D cercles1 Introduction
Comment trouver les pixels agrave allumer pour approximer au mieux une
droite ou un cercle
Algorithme rapide et preacutecisSami Gazzah 2009 212
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=ax+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ya
Sami Gazzah 2009 213
Rappelhellip
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=mx+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ym
Sami Gazzah 2009 214
Exemple
Sami Gazzah 2009 215
Agrave partir des coordonneacutees des 2 extreacutemiteacutes d‟un segmenthellip
Un algorithme simple
Boucle de x1 agrave x2 dx=1
ALLUME (x Arrondir(y))
Avec x2gtx1
Arrondir(y) = Arrondir(ax+b)
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Sami Gazzah 2009 216
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Choix de lrsquoaxehellip
Peu efficace
bullagrave chaque iteacuteration 1 multiplication (ou division) + 1 addition
+ 1 arrondi
15122010
37
Sami Gazzah 2009 217
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
DDA (Digital Differential Analyzer)
y et m doivent ecirctre des reacuteelsSami Gazzah 2009 218
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Calcul en entier (donc plus rapide)
Baseacute sur le choix entre deux points discrets deacutependant de leur
distance respective avec le point reacuteel ideacuteal
On simplifie le problegraveme en traitant drsquoabord le traceacute drsquoun segment
dans le 1er octant m infeacuterieur agrave1 et positif (0ltmlt 1)
Facilement geacuteneacuteralisable aux autres octants
Sami Gazzah 2009 219
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Traceacute d‟un segment dans le premier octant mlt1
On part d‟un point (xi yi) allumeacute
Sami Gazzah 2009 220
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
On ne calcule pas reacuteellement les distances rArr on veacuterifie si la diffeacuterence
entre les deux distances est positive ou neacutegative
Le signe de la longueur (d1-d2) deacutetermine s‟il faut allumer le pixel L ou H
L
H
Sami Gazzah 2009 221
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Comme m=ΔyΔx on multiplie cette diffeacuterence par Δx pour eacuteviter la
division
Mais que vaut p1
Sami Gazzah 2009 222
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
15122010
38
Sami Gazzah 2009 223
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Pour eacuteviter de calculer cette diffeacuterence pour chaque point on cherche
une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
Sami Gazzah 2009 224
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009 225
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009
Exercice
Tracer le segment de droite
pi xi yi
2 0 0
-6 1 1
6 2 1
-2 3 2
10 4 2
2 5 3
-6 6 4
6 7 4
-2 8 5
10 9 5
2 10 6
6
10
y
x
Sami Gazzah 2009 227
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
Sami Gazzah 2009 228
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
hellip interchanger les points hellip
Si |Δx| lt | Δy| on interchange le rocircle de x et y
15122010
39
Sami Gazzah 2009 229
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (1)
Sami Gazzah 2009 230
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (2)
Sami Gazzah 2009 231
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (3)
Sami Gazzah 2009 232
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Toujours baseacute sur le choix entre deux
points discrets deacutependant de leur
distance respective avec le point reacuteel
On travaille dans le 2e octant agrave partir
de (0r) ainsi pour un point (xi yi) le
prochain point sera
(xi+1 yi) ou (xi+1 yi-1)
Sami Gazzah 2009 233
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On calcule le prochain y et les diffeacuterences respectives avec les points
discrets de la faccedilon suivante
Le signe de pi nous dira si nous devons choisir le point lateacuteral ou le diagonal
Sami Gazzah 2009 234
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Encore une fois pour eacuteviter de calculer cette diffeacuterence pour chaque point on
cherche une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
15122010
40
Sami Gazzah 2009 235
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On considegravere 2 cas
Valeur initiale
Sami Gazzah 2009 236
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Sami Gazzah 2009 237
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Exemple centre = (00) et r = 3
Sami Gazzah 2009 238
Livres
Diane Lingrand Introduction au Traitement d‟Images Paris Editions Vuibert 2e
eacutedition 2008
Steven k Feiner James D Foley John F Hughes Richard l Phillips Andries
Vanam Introduction agrave l‟infographie Paris Editions Vuibert 2000
William K Pratt Digital Image Processing Willy-Inter-sciences 4th edition 2007
Eacuteric Incerti Compression dimage ndash Algorithmes et standards Vuibert 2003
Gilles Burel Introduction au traitement dimages ndash Simulation sous Matlab
Hermegraves 2001
Sites web
Cours de C Rougier (U Montreacuteal)
httpwww-etudiroumontrealca~rougiercift2730courshtml (cf chapitre 3)
Page wikipeacutedia sur JPEG (en anglais plus complegravete que celle en franccedilais)
httpenwikipediaorgwikiJPEG
Cours de P Courtellemont (Campus numeacuterique Espdon)
httppersouniv-lrfrpcourtelespadonsite_web
Applet de deacutemo par C G Jennings
httpcgjenningscatoyboxhjpegindexhtml
Cours de D Marshall (U Cardiff)
httpwwwcscfacukDaveMultimediaPDF
Reacutefeacuterences
Sami Gazzah 2009 239
Chapitre 9
introduction au
traitement
dimages avec OpenGL
Sami Gazzah 2009 240
OpenGL est une librairie graphique Elle a eacuteteacute creacutee par Silicon
Graphics et beacuteneacuteficie sur ces machines de lacceacuteleacuteration mateacuterielle
Elle est constitueacute d‟environ 200 fonctions graphiques
OpenGL est une bibliothegraveque de fonctions
Les fonctions sont de bas niveaux
La version actuelle est l‟ laquo OpenGL 41 raquo (deacutecembre 2010)
Principale caracteacuteristique indeacutependant du mateacuteriel et du systegraveme
d‟exploitation
Une impleacutementation libre de droits dOpenGL tregraves performante a eacuteteacute
eacutecrite par Brian Paul httpwwwmesa3dorg Et tout son code source
est accessible
Preacutesentation geacuteneacuterale
15122010
41
Sami Gazzah 2009 241
OpenGL propose des fonctions de bas niveaux
Primitives geacuteomeacutetriques points segments polygones
Les fonctions de haut niveaux sont deacuteveloppeacutees par l‟utilisateur ou
importeacutees par la librairie en amont d‟OpenGL
Primitives geacuteomeacutetriques complexes Sphegravere splines etc
Toutes les commandes et fonctions utilisent le preacutefixe gl
Exemple glColor2f()
Sami Gazzah 2009 242
Les Bibliothegraveques co-existant avec OpenGL
GLU OpenGL Utility Library contient les routines de bas niveau pour
geacuterer les matrices de transformation et de projection la facettisation des
polygones et le rendu de surface Les bibliothegraveques dextension du
systegraveme de fenecirctres permettent lutilisation du rendu OpenGL Il sagit de
GLX pour X Windows (fonctions ayant pour preacutefixe glX) et de WGL
pour Microsoft Windows (fonctions ayant pour preacutefixe wgl)
GLUT OpenGL Utility Toolkit est une boite agrave outils indeacutependante du
systegraveme de fenecirctrage eacutecrite par Mark
Kilgard pour simplifier la tacircche dutiliser des systegravemes diffeacuterents (fonctions
ayant pour preacutefixe glut)
Sami Gazzah 2009 243
Les primitives geacuteomeacutetriques d rsquoOpenGL
Les primitives sont deacutecrites par un bloc d‟instructions deacutelimiteacute par glBegin et glEnd
Ce bloc contient geacuteneacuteralement une liste de vertex Exemple
glBegin(GL_LINE_LOOP)
glVertex2f(-05 -05)
glVertex2f(05 -05)
glVertex2f(05 05)
glVertex2f(-05 05)
glEnd()
D‟autres attributs peuvent ecirctre speacutecifieacutes en chaque sommet
couleur normale coordonneacutee de texture etcSami Gazzah 2009 244
OpenGL est une machine agrave eacutetats
En modifiant les variables d‟eacutetats on peut changer le style de rendu
Sami Gazzah 2009 245
Exemple Honda Hippo (3dRendercom)
Placage de textures
bullL‟apparence et le toucher ( feel ) d‟une surface
bullUne image utiliseacutee pour deacutefinir les caracteacuteristiques d‟une surface
bullUne image multi-dimensionnelle qui est plaqueacutee sur un espace multi-
dimensionnel
Sami Gazzah 2009 246
15122010
42
Sami Gazzah 2009 247
Reacutefeacuterences openGL
Sami Gazzah 2009 248
Chapitre 10
introduction au
traitement
dimages avec OpenCV
Sami Gazzah 2009 249
Preacutesentation geacuteneacuterale
Quest-ce
Open Source Computer Vision Library
Bibliothegraveque open source de traitement des images numeacuteriques
Projet initieacute par Intel (en 1999)
Teacuteleacutechargeable sur httpsourceforgenetprojectsopencvlibrary
Fortement orienteacutee temps reacuteel
eacutecrite en C et C++
optimiseacutee pour les processeurs multi-cœurs
Multi-plateformes disponible pour Linux Windows et Mac OS X
Que contient-elle
Des fonctionnaliteacutes (structures et routines gt350 algos) de base et
avanceacutees pour bacirctir rapidement des applications autour de la vision par
ordinateur
Exemples dutilisation traitements de bas niveau (filtrage ) deacutetection
de visages reconnaissance et suivi dobjets en mouvement Sami Gazzah 2009 250
Fonctionnaliteacutes
Lectureeacutecriture dimages statiques et de seacutequences videacuteo
APIs de bas et moyen niveaux
Traitement des images binaires
Manipulations dimage (eacutechantillonnage (sampling) reacutegion dinteacuterecirct (ROI)
redimensionnement (resizing) rotation deacuteformation (warping) )
Deacutetection de contours de lignes de coins (edge detection)
Traitements multi-eacutechelles (multiscale processing)
Transformeacutees (Fourier cosinus discregravete )
Modules de haut niveau
Deacutetection reconnaissance et suivi (tracking) de visages
Flot optique (estimation du mouvement) (optical flow)
Calibrage (calibration) de la cameacutera
Mise en correspondance steacutereacuteoscopique (stereo matching)
IA et apprentissage par ordinateur (machine learning)
3D mise en correspondance (registration)
Sami Gazzah 2009 251
Modules principaux
CxCore
Types de base pour manip dimages (ex struct image point isin cxtypesh)
Structures dynamiques (listes files graphes arbres) et persistantes (LE)
Manipulations de matrices meacutethodes de lalgegravebre lineacuteaire et statistiques
Dessin en surimpression (overlay) (ex eacutetiquetage)
Cv
Traitement dimage calibrage cameacutera
Geacuteomeacutetrie algorithmique (triangulation )
Cvaux
Reconnaissance de visage
Code expeacuterimental et obsolegravete
Autres (dans otherlibs)
HighGUI ES videacuteos curseurs fenecirctrage
ML classification regroupement (clustering)Sami Gazzah 2009 252
OpenCV premiers programmesBibliothegraveque OpenCV
15122010
43
Sami Gazzah 2009 253
Livre
G Bradski amp A Kaehler laquo Learning OpenCV raquo OReilly Press (2008)
codes sources httpexamplesoreillycom9780596516130
Ressources en ligne
Reacutefeacuterence complegravete httpopencvwillowgaragecomdocumentation
Wiki httpopencvwillowgaragecomwikiFullOpenCVWiki
bullPreacutesentation teacuteleacutechargement installation
bullavec CodeBlocks httpopencvwillowgaragecomwikiCodeBlocks
bullDeacutebuter avec OpenCV FAQ
Tutoriels
httpnchcdlsourceforgenetsourceforgeopencvlibraryippocvpdf
httpdaslmemdrexeledu~noahKuntzopenCVTut1html agrave Tut11html
httpwwwcognoticscomopencvservo_2007_series
Tutoriel sur la vision utilisant OpenCV (en franccedilais)
httpwwwsiteduzerocomtutoriel-3-8631-vision-par-ordinateurhtml
Reacutefeacuterences openCV
15122010
27
VI Eacuterosion drsquoune image en niveaux de gris
min
68 90 91 95 151
( f Ө B ) (P) = 68
n
115 91 77
95 68 90
55 151 210
exemple
m
Image de reacutefeacuterence
ӨӨ
Eacuteleacutement structurant
(4-connexiteacute)
liste ordonneacutee des valeurs du voisinage
-
-
-
-
Exemples de filtrages morphologiques(eacuteleacutement structurant 33 complet)
Image eacuterodeacutee
Lrsquoeacuterosion en niveaux de gris reacuteduit la luminance des pixels
qui sont entoureacutes de voisins de moindre intensiteacute
Image de reacutefeacuterence
Observation
Sami Gazzah 2009 159
Eacuteleacutement structurant (a)
(4-connexiteacute)
-
-
-
-
Eacuteleacutement structurant (b)
(8-connexiteacute)
- - -
-
-
-
-
-
Exercice 1 Sur la mecircme image de deacutepart on reacutealise deux opeacuterations
de dilatations avec deux eacuteleacutements structurant diffeacuterents
Dilatation avec (a) Dilatation avec (b)
image de deacutepart
cas a L‟eacuteleacutement structurant est agrave 4-connexiteacute Chaque pixel
du support qui est eacutegal agrave la valeur 1 ou qui a l‟un de ses 4
voisins agrave la valeur 1 est mis agrave la valeur 1 apregraves filtrage
cas b L‟eacuteleacutement structurant est agrave 8-connexiteacute Chaque pixel
du support qui est eacutegal agrave la valeur 1 ou qui a l‟un de ses 8
voisins agrave la valeur 1 est mis agrave la valeur 1 apregraves filtrage
Dans les deux cas on observe qu‟une dilatation eacutelimine les
trous isoleacutes dans les objets et dilate le contour des objets en
tenant compte de l‟eacuteleacutement structurant
Sami Gazzah 2009 160
Exercice 1
Sami Gazzah 2009 161
Eacuteleacutement structurant (a)
(4-connexiteacute)
-
-
-
-
Eacuteleacutement structurant (b)
(8-connexiteacute)
- - -
-
-
-
-
-
Exercice 2 Sur la mecircme image de deacutepart on reacutealise deux opeacuterations
d‟eacuterosions avec deux eacuteleacutements structurant diffeacuterents
Erosion avec (a) Erosion avec (b)
image de deacutepart
cas a L‟eacuteleacutement structurant est agrave 4-connexiteacute (origine agrave 4 voisins)
Chaque pixel du support qui a la valeur 0 ou qui a l‟un de ses 4
voisins agrave la valeur 0 est mis agrave la valeur 0 apregraves filtrage
cas b L‟eacuteleacutement structurant est agrave 8-connexiteacute Chaque pixel du
support qui a la valeur 0 ou qui a l‟un de ses 8 voisins agrave la valeur 0
est mis agrave la valeur 0 apregraves filtrage
Dans les deux cas on observe qu‟une eacuterosion eacutelimine les pixels
isoleacutes sur le fond et eacuterode le contour des objets
Sami Gazzah 2009 162
Exercice 2
15122010
28
ConclusionsConclusions
Erosion
les objets relieacutes entre eux vont ecirctre seacutepareacutes
Une eacuterosion de taille n peut se reacutealiser en reacutepeacutetant une
eacuterosion n fois avec un eacuteleacutement structurant de taille 1 ou en
appliquant une seule eacuterosion avec un eacuteleacutement structurant
de taille n
Dilatation
des objets sont situeacutes agrave une distance moins grande que la taille
de leacuteleacutement structurant il vont fusionner
Sami Gazzah 2009 163 Sami Gazzah 2009 164
Sami Gazzah 2009 165
Elimine pixels isoleacutes sans inteacuterecirct
L‟ouverture (opening) consiste agrave une eacuterosion suivi d‟une dilatation
Les petites structures et deacutetail fins disparaissent et ne sont pas recreacuteeacutees
lors de la dilation Une opeacuteration d‟ouverture est ainsi inteacuteressante pour
eacuteliminer les petits morceaux de contours bruiteacutes dans une image de
contours
V Ouverture et fermeture1 Ouverture
BBABAC )(
Sami Gazzah 2009 166
V Ouverture et fermetureII Fermeture
La fermeture (closing) consiste agrave une dilatation suivi d‟une eacuterosion
Les structures proches fusionnent lors de la dilation mais seules les
fusions ponctuelles disparaissent agrave nouveau lors de l‟eacuterosion Une
opeacuteration de fermeture est ainsi inteacuteressante pour boucher les petits
trous
Sami Gazzah 2009 167 Sami Gazzah 2009 168
Exercice 3 Sur l‟image de deacutepart on reacutealise une opeacuteration de
fermeture binaire par l‟eacuteleacutement structurant 4-connexiteacute Conclusions
Eacuteleacutement structurant
(4-connexiteacute)
-
-
-
-Fermeture = dilatation puis eacuterosion
Image de deacutepart Image dilateacutee Image dilateacutee puis eacuterodeacutee
Combler les trous
Reacutetablir les jonctions
tout en preacuteservant la taille
15122010
29
Sami Gazzah 2009 169
Exercice 4 Sur l‟image de deacutepart on reacutealise une opeacuteration
d‟ouverture binaire par l‟eacuteleacutement structurant 4-connexiteacute Conclusions
Eacuteleacutement structurant
(4-connexiteacute)
-
-
-
-Ouverture = eacuterosion puis dilatation
Image de deacutepart Image eacuterodeacutee Image eacuterodeacutee puis dilateacutee
Supprimer les fausses alarmes
Seacuteparer les objets accoleacutes
tout en preacuteservant la tailleSami Gazzah 2009 170
Appliquer les filtres suivants sur limage donneacutee Quelles sont les valeurs choisies
aux bords de limage et quelles sont les modifications visuelles
a) filtre moyenneur M3acute3(19)
b) eacuterosion
c) dilatation
d) meacutedian
e) fermeture
f) ouverture
Exercice 5
Sami Gazzah 2009 171
IV Amincissement et Squelettisation
La squelette (skeleton) d‟une forme est l‟axe meacutedian L‟inteacuterecirct de cette
opeacuteration est dans
La reconnaissance de caractegraveres
Deacutetection des reacuteseaux routiers
La planification de trajectoirehellip
Une meacutethode couramment employeacutee est une amincissement reacutepeacuteteacute
jusqu‟agrave le convergence (n‟apporte aucune modification)
Sami Gazzah 2009 172
IV Amincissement et Squelettisation1 Opeacuteration Tout Ou Rien laquoHit or Missraquo
Cette transformation est deacutefinie par
leacuteleacutement structurant eacutetendu est centreacute sur chaque pixel de limage
comme pour les opeacuterations ensemblistes
la question poseacutee est est ce que le contenu de limage est identique au
contenu de leacuteleacutement structurant
si la reacuteponse est oui le pixel reacutesultant vaut 1 si non il vaut 0
Une application permet de deacutetecter des configurations locales
particuliegraveres dans une image
plusieurs masques peuvent ecirctre utiliseacutes indeacutependamment les images
reacutesultat eacutetant ensuite combineacutees par une opeacuteration ou
)()( cc BABABA
Bc-
est le compleacutementaire
local de B
Sami Gazzah 2009 173
IV Amincissement et Squelettisation1 Opeacuteration laquoHit or Missraquo
Exemple dopeacuteration Hit or Miss deacutetection des coinsSami Gazzah 2009 174
IV Amincissement et Squelettisation1 Amincissement (thinning)
bull La transformation TOR nous permet eacutegalement de deacutefinir
l‟amincissement
bullL‟amincissement consiste agrave soustraire limage reacutesultat dun hit or miss de
limage initiale
bull des amincissements successifs conduisent au squelettisation
)()( BAAAthin
15122010
30
Sami Gazzah 2009 175
IV Amincissement et Squelettisation1I Squelettisation
Appliquer des amincissements successifs puis s‟arrecircter lorsque l‟amincissement
n‟apporte plus de modification C‟est une eacuterosion particuliegravere ougrave les pixels sont
supprimeacutes agrave la condition quils ne provoquent pas la seacuteparation dune reacutegion en
deux
Sami Gazzah 2009 176
IV Amincissement et Squelettisation1I Squelettisation
Sami Gazzah 2009 177
Chapitre 7
Transformations
geacuteomeacutetriques 2D
Sami Gazzah 2009 178
I Introduction
On entend par transformation 2D l‟ensemble des transformations du
plan pouvant ecirctre appliqueacutees aux pixels de l‟image sans consideacuteration
de l‟intensiteacute
Par exemples
Reacuteduction agrandissement
Deacuteformation d‟image
Recalage d‟une photo scanneacutee
Recaler des images que l‟on veut comparer
Mosaiumlque d‟images
Sami Gazzah 2009 179
I Transformations euclidiennes
Elles preacuteservent les distances et les angles
Elles sont les compositions de translations et de rotations
1) Translation
Ougrave Tx et Ty sont les deacuteplacements en x et en y de la translation
y
x
Tyy
Txx
Sami Gazzah 2009 180
2) Rotation
15122010
31
Sami Gazzah 2009 181 Sami Gazzah 2009 182
3) Remarques (1)
Sami Gazzah 2009 183
3) Remarques (2)
Sami Gazzah 2009 184
II Homotheacuteties
Changement deacutechelle par rapport agrave lorigine (scaling zoom)
Ougrave Sx et Sy sont les facteurs dagrandissement ( gt1) ou de
reacuteduction ( lt1) en x et en y
ySy
xSx
y
x
Sami Gazzah 2009 185
II Homotheacuteties
Sami Gazzah 2009 186
II Homotheacuteties
15122010
32
Sami Gazzah 2009 187
III Reacuteflexions
Reacuteflexions par rapport aux axes (flip miroir)
Sami Gazzah 2009 188
IV Cisaillement
Cisaillement (glissement shearing) on eacutetire suivant un ou plusieurs axes
Sami Gazzah 2009 189
Transformations inverses
Sami Gazzah 2009 190
Repreacutesentation Matricielle
IV Autres (reacuteflexions miroirs et flips)
Sami Gazzah 2009 191
Interpolation Directe
Sami Gazzah 2009 192
oDifficile de distribuer le niveau de gris sur les pixels voisins
oOn n‟a pas la certitude que tous les pixels de l‟image
transformeacutee recevront une valeur =gt ldquotrousrdquo
15122010
33
Interpolation Inverse
Sami Gazzah 2009 193
o Interpolation de la valeur du pixel agrave partir des voisins plus
facile
oAucun ldquotrourdquo car on parcourt tous les pixels de l‟image
transformeacutee Sami Gazzah 2009 194
V Objet vectoriel - Objet bitmap
Objet vectoriel
Essentiellement on transforme
les sommets (ou points de
controcircle) et on retracehellip
Objet ldquobitmaprdquo
On doit calculer la nouvelle
position de chaque pixel De plus on
doit geacuteneacuteralement interpoler les
niveaux de gris (couleurs)hellip
Sami Gazzah 2009 195
IV Assignation des niveaux de gris
Neacutecessaire car la position d‟un pixel transformeacute n‟est pas entiegraverehellip
Plusieurs meacutethodes
Interpolation au plus proche voisin
Interpolation bilineacuteaire
Interpolation bicubique
Autres types d‟interpolation
Sami Gazzah 2009 196
IV Assignation des niveaux de gris
Linterpolation de limage cest ce qui arrive lorsquon redimensionne
une image numeacuterique ou quon la redimensionne avec une distorsion
quon change la perspective etc
Exemple 1
Image originale (sans interpolation)
Image agrandie et donc interpoleacutee
Perte de netteteacute due agrave linterpolation
Sami Gazzah 2009
197
IV Assignation des niveaux de gris
Exemple 2 recadrage dimage
Nous allons agrandir cette image agrave 180
Il va donc nous manquer des informations lagrave ougrave lon va creacuteer des
pixels pour agrandir limage
Reacutesultat sans interpolation le logiciel agrandit simplement les pixels
Reacutesultat avec interpolation le logiciel calcule une couleur intermeacutediaire
pour chaque nouveau pixel
Sami Gazzah 2009
198
IV Assignation des niveaux de gris
Image originale
Interpolation au plus
proche voisin
Interpolation
bilineacuteaireInterpolation
bicubique
15122010
34
Sami Gazzah 2009 199
IIV Interpolation au plus proche voisin
Cest lalgorithme le plus rapide agrave calculer
Prend en compte dans le calcul que le pixel le plus proche du point
agrave interpoler
Consiste tout simplement agrave agrandir chaque pixel
Exemple Interpolation du plus proche voisin par copie des pixels
Copie de chaque colonne et de chaque rang
23 20
25 28
23 23
23 23
20 20
20 20
25 25
25 25
28 28
28 28
Sami Gazzah 2009 200
IIV Interpolation bilineacuteaire
Fonction bilineacuteaire de 4 pixels voisins ( en 2 D )
i-1 i i+1
i-1 i-12 i i+12 i+1 i+32
yi=xiYi+12=(xi+xi+1)2
Problegraveme pour le dernier point
Extrapolation lineacuteaire de
2 xn-xn-1
Principe 1D
attribuer agrave chaque point cible une
combinaison lineacuteaire des quatre
points sources les plus proches par
la transformation inverse
Sami Gazzah 2009 201
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 202
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 203 Sami Gazzah 2009 204
IIV Interpolation bilineacuteaire
15122010
35
Sami Gazzah 2009 205
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 206
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 207
IIV Interpolation bilineacuteaire exemple
Sami Gazzah 2009 208
IIV Interpolation bicubique
Sami Gazzah 2009 209
exemple
Sami Gazzah 2009 210
Chapitre 8
Geacuteneacuteration de segments de
droite et de cercles en 2D
15122010
36
Sami Gazzah 2009 211
Infographie 2D besoin de dessiner des primitives de
base (segments cercles hellip)
Espace discreacutetiseacute (pixels) il faut trouver un moyen pour
afficher des segments ou des cercles
I Segments 2D cercles1 Introduction
Comment trouver les pixels agrave allumer pour approximer au mieux une
droite ou un cercle
Algorithme rapide et preacutecisSami Gazzah 2009 212
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=ax+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ya
Sami Gazzah 2009 213
Rappelhellip
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=mx+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ym
Sami Gazzah 2009 214
Exemple
Sami Gazzah 2009 215
Agrave partir des coordonneacutees des 2 extreacutemiteacutes d‟un segmenthellip
Un algorithme simple
Boucle de x1 agrave x2 dx=1
ALLUME (x Arrondir(y))
Avec x2gtx1
Arrondir(y) = Arrondir(ax+b)
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Sami Gazzah 2009 216
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Choix de lrsquoaxehellip
Peu efficace
bullagrave chaque iteacuteration 1 multiplication (ou division) + 1 addition
+ 1 arrondi
15122010
37
Sami Gazzah 2009 217
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
DDA (Digital Differential Analyzer)
y et m doivent ecirctre des reacuteelsSami Gazzah 2009 218
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Calcul en entier (donc plus rapide)
Baseacute sur le choix entre deux points discrets deacutependant de leur
distance respective avec le point reacuteel ideacuteal
On simplifie le problegraveme en traitant drsquoabord le traceacute drsquoun segment
dans le 1er octant m infeacuterieur agrave1 et positif (0ltmlt 1)
Facilement geacuteneacuteralisable aux autres octants
Sami Gazzah 2009 219
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Traceacute d‟un segment dans le premier octant mlt1
On part d‟un point (xi yi) allumeacute
Sami Gazzah 2009 220
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
On ne calcule pas reacuteellement les distances rArr on veacuterifie si la diffeacuterence
entre les deux distances est positive ou neacutegative
Le signe de la longueur (d1-d2) deacutetermine s‟il faut allumer le pixel L ou H
L
H
Sami Gazzah 2009 221
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Comme m=ΔyΔx on multiplie cette diffeacuterence par Δx pour eacuteviter la
division
Mais que vaut p1
Sami Gazzah 2009 222
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
15122010
38
Sami Gazzah 2009 223
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Pour eacuteviter de calculer cette diffeacuterence pour chaque point on cherche
une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
Sami Gazzah 2009 224
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009 225
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009
Exercice
Tracer le segment de droite
pi xi yi
2 0 0
-6 1 1
6 2 1
-2 3 2
10 4 2
2 5 3
-6 6 4
6 7 4
-2 8 5
10 9 5
2 10 6
6
10
y
x
Sami Gazzah 2009 227
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
Sami Gazzah 2009 228
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
hellip interchanger les points hellip
Si |Δx| lt | Δy| on interchange le rocircle de x et y
15122010
39
Sami Gazzah 2009 229
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (1)
Sami Gazzah 2009 230
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (2)
Sami Gazzah 2009 231
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (3)
Sami Gazzah 2009 232
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Toujours baseacute sur le choix entre deux
points discrets deacutependant de leur
distance respective avec le point reacuteel
On travaille dans le 2e octant agrave partir
de (0r) ainsi pour un point (xi yi) le
prochain point sera
(xi+1 yi) ou (xi+1 yi-1)
Sami Gazzah 2009 233
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On calcule le prochain y et les diffeacuterences respectives avec les points
discrets de la faccedilon suivante
Le signe de pi nous dira si nous devons choisir le point lateacuteral ou le diagonal
Sami Gazzah 2009 234
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Encore une fois pour eacuteviter de calculer cette diffeacuterence pour chaque point on
cherche une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
15122010
40
Sami Gazzah 2009 235
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On considegravere 2 cas
Valeur initiale
Sami Gazzah 2009 236
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Sami Gazzah 2009 237
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Exemple centre = (00) et r = 3
Sami Gazzah 2009 238
Livres
Diane Lingrand Introduction au Traitement d‟Images Paris Editions Vuibert 2e
eacutedition 2008
Steven k Feiner James D Foley John F Hughes Richard l Phillips Andries
Vanam Introduction agrave l‟infographie Paris Editions Vuibert 2000
William K Pratt Digital Image Processing Willy-Inter-sciences 4th edition 2007
Eacuteric Incerti Compression dimage ndash Algorithmes et standards Vuibert 2003
Gilles Burel Introduction au traitement dimages ndash Simulation sous Matlab
Hermegraves 2001
Sites web
Cours de C Rougier (U Montreacuteal)
httpwww-etudiroumontrealca~rougiercift2730courshtml (cf chapitre 3)
Page wikipeacutedia sur JPEG (en anglais plus complegravete que celle en franccedilais)
httpenwikipediaorgwikiJPEG
Cours de P Courtellemont (Campus numeacuterique Espdon)
httppersouniv-lrfrpcourtelespadonsite_web
Applet de deacutemo par C G Jennings
httpcgjenningscatoyboxhjpegindexhtml
Cours de D Marshall (U Cardiff)
httpwwwcscfacukDaveMultimediaPDF
Reacutefeacuterences
Sami Gazzah 2009 239
Chapitre 9
introduction au
traitement
dimages avec OpenGL
Sami Gazzah 2009 240
OpenGL est une librairie graphique Elle a eacuteteacute creacutee par Silicon
Graphics et beacuteneacuteficie sur ces machines de lacceacuteleacuteration mateacuterielle
Elle est constitueacute d‟environ 200 fonctions graphiques
OpenGL est une bibliothegraveque de fonctions
Les fonctions sont de bas niveaux
La version actuelle est l‟ laquo OpenGL 41 raquo (deacutecembre 2010)
Principale caracteacuteristique indeacutependant du mateacuteriel et du systegraveme
d‟exploitation
Une impleacutementation libre de droits dOpenGL tregraves performante a eacuteteacute
eacutecrite par Brian Paul httpwwwmesa3dorg Et tout son code source
est accessible
Preacutesentation geacuteneacuterale
15122010
41
Sami Gazzah 2009 241
OpenGL propose des fonctions de bas niveaux
Primitives geacuteomeacutetriques points segments polygones
Les fonctions de haut niveaux sont deacuteveloppeacutees par l‟utilisateur ou
importeacutees par la librairie en amont d‟OpenGL
Primitives geacuteomeacutetriques complexes Sphegravere splines etc
Toutes les commandes et fonctions utilisent le preacutefixe gl
Exemple glColor2f()
Sami Gazzah 2009 242
Les Bibliothegraveques co-existant avec OpenGL
GLU OpenGL Utility Library contient les routines de bas niveau pour
geacuterer les matrices de transformation et de projection la facettisation des
polygones et le rendu de surface Les bibliothegraveques dextension du
systegraveme de fenecirctres permettent lutilisation du rendu OpenGL Il sagit de
GLX pour X Windows (fonctions ayant pour preacutefixe glX) et de WGL
pour Microsoft Windows (fonctions ayant pour preacutefixe wgl)
GLUT OpenGL Utility Toolkit est une boite agrave outils indeacutependante du
systegraveme de fenecirctrage eacutecrite par Mark
Kilgard pour simplifier la tacircche dutiliser des systegravemes diffeacuterents (fonctions
ayant pour preacutefixe glut)
Sami Gazzah 2009 243
Les primitives geacuteomeacutetriques d rsquoOpenGL
Les primitives sont deacutecrites par un bloc d‟instructions deacutelimiteacute par glBegin et glEnd
Ce bloc contient geacuteneacuteralement une liste de vertex Exemple
glBegin(GL_LINE_LOOP)
glVertex2f(-05 -05)
glVertex2f(05 -05)
glVertex2f(05 05)
glVertex2f(-05 05)
glEnd()
D‟autres attributs peuvent ecirctre speacutecifieacutes en chaque sommet
couleur normale coordonneacutee de texture etcSami Gazzah 2009 244
OpenGL est une machine agrave eacutetats
En modifiant les variables d‟eacutetats on peut changer le style de rendu
Sami Gazzah 2009 245
Exemple Honda Hippo (3dRendercom)
Placage de textures
bullL‟apparence et le toucher ( feel ) d‟une surface
bullUne image utiliseacutee pour deacutefinir les caracteacuteristiques d‟une surface
bullUne image multi-dimensionnelle qui est plaqueacutee sur un espace multi-
dimensionnel
Sami Gazzah 2009 246
15122010
42
Sami Gazzah 2009 247
Reacutefeacuterences openGL
Sami Gazzah 2009 248
Chapitre 10
introduction au
traitement
dimages avec OpenCV
Sami Gazzah 2009 249
Preacutesentation geacuteneacuterale
Quest-ce
Open Source Computer Vision Library
Bibliothegraveque open source de traitement des images numeacuteriques
Projet initieacute par Intel (en 1999)
Teacuteleacutechargeable sur httpsourceforgenetprojectsopencvlibrary
Fortement orienteacutee temps reacuteel
eacutecrite en C et C++
optimiseacutee pour les processeurs multi-cœurs
Multi-plateformes disponible pour Linux Windows et Mac OS X
Que contient-elle
Des fonctionnaliteacutes (structures et routines gt350 algos) de base et
avanceacutees pour bacirctir rapidement des applications autour de la vision par
ordinateur
Exemples dutilisation traitements de bas niveau (filtrage ) deacutetection
de visages reconnaissance et suivi dobjets en mouvement Sami Gazzah 2009 250
Fonctionnaliteacutes
Lectureeacutecriture dimages statiques et de seacutequences videacuteo
APIs de bas et moyen niveaux
Traitement des images binaires
Manipulations dimage (eacutechantillonnage (sampling) reacutegion dinteacuterecirct (ROI)
redimensionnement (resizing) rotation deacuteformation (warping) )
Deacutetection de contours de lignes de coins (edge detection)
Traitements multi-eacutechelles (multiscale processing)
Transformeacutees (Fourier cosinus discregravete )
Modules de haut niveau
Deacutetection reconnaissance et suivi (tracking) de visages
Flot optique (estimation du mouvement) (optical flow)
Calibrage (calibration) de la cameacutera
Mise en correspondance steacutereacuteoscopique (stereo matching)
IA et apprentissage par ordinateur (machine learning)
3D mise en correspondance (registration)
Sami Gazzah 2009 251
Modules principaux
CxCore
Types de base pour manip dimages (ex struct image point isin cxtypesh)
Structures dynamiques (listes files graphes arbres) et persistantes (LE)
Manipulations de matrices meacutethodes de lalgegravebre lineacuteaire et statistiques
Dessin en surimpression (overlay) (ex eacutetiquetage)
Cv
Traitement dimage calibrage cameacutera
Geacuteomeacutetrie algorithmique (triangulation )
Cvaux
Reconnaissance de visage
Code expeacuterimental et obsolegravete
Autres (dans otherlibs)
HighGUI ES videacuteos curseurs fenecirctrage
ML classification regroupement (clustering)Sami Gazzah 2009 252
OpenCV premiers programmesBibliothegraveque OpenCV
15122010
43
Sami Gazzah 2009 253
Livre
G Bradski amp A Kaehler laquo Learning OpenCV raquo OReilly Press (2008)
codes sources httpexamplesoreillycom9780596516130
Ressources en ligne
Reacutefeacuterence complegravete httpopencvwillowgaragecomdocumentation
Wiki httpopencvwillowgaragecomwikiFullOpenCVWiki
bullPreacutesentation teacuteleacutechargement installation
bullavec CodeBlocks httpopencvwillowgaragecomwikiCodeBlocks
bullDeacutebuter avec OpenCV FAQ
Tutoriels
httpnchcdlsourceforgenetsourceforgeopencvlibraryippocvpdf
httpdaslmemdrexeledu~noahKuntzopenCVTut1html agrave Tut11html
httpwwwcognoticscomopencvservo_2007_series
Tutoriel sur la vision utilisant OpenCV (en franccedilais)
httpwwwsiteduzerocomtutoriel-3-8631-vision-par-ordinateurhtml
Reacutefeacuterences openCV
15122010
28
ConclusionsConclusions
Erosion
les objets relieacutes entre eux vont ecirctre seacutepareacutes
Une eacuterosion de taille n peut se reacutealiser en reacutepeacutetant une
eacuterosion n fois avec un eacuteleacutement structurant de taille 1 ou en
appliquant une seule eacuterosion avec un eacuteleacutement structurant
de taille n
Dilatation
des objets sont situeacutes agrave une distance moins grande que la taille
de leacuteleacutement structurant il vont fusionner
Sami Gazzah 2009 163 Sami Gazzah 2009 164
Sami Gazzah 2009 165
Elimine pixels isoleacutes sans inteacuterecirct
L‟ouverture (opening) consiste agrave une eacuterosion suivi d‟une dilatation
Les petites structures et deacutetail fins disparaissent et ne sont pas recreacuteeacutees
lors de la dilation Une opeacuteration d‟ouverture est ainsi inteacuteressante pour
eacuteliminer les petits morceaux de contours bruiteacutes dans une image de
contours
V Ouverture et fermeture1 Ouverture
BBABAC )(
Sami Gazzah 2009 166
V Ouverture et fermetureII Fermeture
La fermeture (closing) consiste agrave une dilatation suivi d‟une eacuterosion
Les structures proches fusionnent lors de la dilation mais seules les
fusions ponctuelles disparaissent agrave nouveau lors de l‟eacuterosion Une
opeacuteration de fermeture est ainsi inteacuteressante pour boucher les petits
trous
Sami Gazzah 2009 167 Sami Gazzah 2009 168
Exercice 3 Sur l‟image de deacutepart on reacutealise une opeacuteration de
fermeture binaire par l‟eacuteleacutement structurant 4-connexiteacute Conclusions
Eacuteleacutement structurant
(4-connexiteacute)
-
-
-
-Fermeture = dilatation puis eacuterosion
Image de deacutepart Image dilateacutee Image dilateacutee puis eacuterodeacutee
Combler les trous
Reacutetablir les jonctions
tout en preacuteservant la taille
15122010
29
Sami Gazzah 2009 169
Exercice 4 Sur l‟image de deacutepart on reacutealise une opeacuteration
d‟ouverture binaire par l‟eacuteleacutement structurant 4-connexiteacute Conclusions
Eacuteleacutement structurant
(4-connexiteacute)
-
-
-
-Ouverture = eacuterosion puis dilatation
Image de deacutepart Image eacuterodeacutee Image eacuterodeacutee puis dilateacutee
Supprimer les fausses alarmes
Seacuteparer les objets accoleacutes
tout en preacuteservant la tailleSami Gazzah 2009 170
Appliquer les filtres suivants sur limage donneacutee Quelles sont les valeurs choisies
aux bords de limage et quelles sont les modifications visuelles
a) filtre moyenneur M3acute3(19)
b) eacuterosion
c) dilatation
d) meacutedian
e) fermeture
f) ouverture
Exercice 5
Sami Gazzah 2009 171
IV Amincissement et Squelettisation
La squelette (skeleton) d‟une forme est l‟axe meacutedian L‟inteacuterecirct de cette
opeacuteration est dans
La reconnaissance de caractegraveres
Deacutetection des reacuteseaux routiers
La planification de trajectoirehellip
Une meacutethode couramment employeacutee est une amincissement reacutepeacuteteacute
jusqu‟agrave le convergence (n‟apporte aucune modification)
Sami Gazzah 2009 172
IV Amincissement et Squelettisation1 Opeacuteration Tout Ou Rien laquoHit or Missraquo
Cette transformation est deacutefinie par
leacuteleacutement structurant eacutetendu est centreacute sur chaque pixel de limage
comme pour les opeacuterations ensemblistes
la question poseacutee est est ce que le contenu de limage est identique au
contenu de leacuteleacutement structurant
si la reacuteponse est oui le pixel reacutesultant vaut 1 si non il vaut 0
Une application permet de deacutetecter des configurations locales
particuliegraveres dans une image
plusieurs masques peuvent ecirctre utiliseacutes indeacutependamment les images
reacutesultat eacutetant ensuite combineacutees par une opeacuteration ou
)()( cc BABABA
Bc-
est le compleacutementaire
local de B
Sami Gazzah 2009 173
IV Amincissement et Squelettisation1 Opeacuteration laquoHit or Missraquo
Exemple dopeacuteration Hit or Miss deacutetection des coinsSami Gazzah 2009 174
IV Amincissement et Squelettisation1 Amincissement (thinning)
bull La transformation TOR nous permet eacutegalement de deacutefinir
l‟amincissement
bullL‟amincissement consiste agrave soustraire limage reacutesultat dun hit or miss de
limage initiale
bull des amincissements successifs conduisent au squelettisation
)()( BAAAthin
15122010
30
Sami Gazzah 2009 175
IV Amincissement et Squelettisation1I Squelettisation
Appliquer des amincissements successifs puis s‟arrecircter lorsque l‟amincissement
n‟apporte plus de modification C‟est une eacuterosion particuliegravere ougrave les pixels sont
supprimeacutes agrave la condition quils ne provoquent pas la seacuteparation dune reacutegion en
deux
Sami Gazzah 2009 176
IV Amincissement et Squelettisation1I Squelettisation
Sami Gazzah 2009 177
Chapitre 7
Transformations
geacuteomeacutetriques 2D
Sami Gazzah 2009 178
I Introduction
On entend par transformation 2D l‟ensemble des transformations du
plan pouvant ecirctre appliqueacutees aux pixels de l‟image sans consideacuteration
de l‟intensiteacute
Par exemples
Reacuteduction agrandissement
Deacuteformation d‟image
Recalage d‟une photo scanneacutee
Recaler des images que l‟on veut comparer
Mosaiumlque d‟images
Sami Gazzah 2009 179
I Transformations euclidiennes
Elles preacuteservent les distances et les angles
Elles sont les compositions de translations et de rotations
1) Translation
Ougrave Tx et Ty sont les deacuteplacements en x et en y de la translation
y
x
Tyy
Txx
Sami Gazzah 2009 180
2) Rotation
15122010
31
Sami Gazzah 2009 181 Sami Gazzah 2009 182
3) Remarques (1)
Sami Gazzah 2009 183
3) Remarques (2)
Sami Gazzah 2009 184
II Homotheacuteties
Changement deacutechelle par rapport agrave lorigine (scaling zoom)
Ougrave Sx et Sy sont les facteurs dagrandissement ( gt1) ou de
reacuteduction ( lt1) en x et en y
ySy
xSx
y
x
Sami Gazzah 2009 185
II Homotheacuteties
Sami Gazzah 2009 186
II Homotheacuteties
15122010
32
Sami Gazzah 2009 187
III Reacuteflexions
Reacuteflexions par rapport aux axes (flip miroir)
Sami Gazzah 2009 188
IV Cisaillement
Cisaillement (glissement shearing) on eacutetire suivant un ou plusieurs axes
Sami Gazzah 2009 189
Transformations inverses
Sami Gazzah 2009 190
Repreacutesentation Matricielle
IV Autres (reacuteflexions miroirs et flips)
Sami Gazzah 2009 191
Interpolation Directe
Sami Gazzah 2009 192
oDifficile de distribuer le niveau de gris sur les pixels voisins
oOn n‟a pas la certitude que tous les pixels de l‟image
transformeacutee recevront une valeur =gt ldquotrousrdquo
15122010
33
Interpolation Inverse
Sami Gazzah 2009 193
o Interpolation de la valeur du pixel agrave partir des voisins plus
facile
oAucun ldquotrourdquo car on parcourt tous les pixels de l‟image
transformeacutee Sami Gazzah 2009 194
V Objet vectoriel - Objet bitmap
Objet vectoriel
Essentiellement on transforme
les sommets (ou points de
controcircle) et on retracehellip
Objet ldquobitmaprdquo
On doit calculer la nouvelle
position de chaque pixel De plus on
doit geacuteneacuteralement interpoler les
niveaux de gris (couleurs)hellip
Sami Gazzah 2009 195
IV Assignation des niveaux de gris
Neacutecessaire car la position d‟un pixel transformeacute n‟est pas entiegraverehellip
Plusieurs meacutethodes
Interpolation au plus proche voisin
Interpolation bilineacuteaire
Interpolation bicubique
Autres types d‟interpolation
Sami Gazzah 2009 196
IV Assignation des niveaux de gris
Linterpolation de limage cest ce qui arrive lorsquon redimensionne
une image numeacuterique ou quon la redimensionne avec une distorsion
quon change la perspective etc
Exemple 1
Image originale (sans interpolation)
Image agrandie et donc interpoleacutee
Perte de netteteacute due agrave linterpolation
Sami Gazzah 2009
197
IV Assignation des niveaux de gris
Exemple 2 recadrage dimage
Nous allons agrandir cette image agrave 180
Il va donc nous manquer des informations lagrave ougrave lon va creacuteer des
pixels pour agrandir limage
Reacutesultat sans interpolation le logiciel agrandit simplement les pixels
Reacutesultat avec interpolation le logiciel calcule une couleur intermeacutediaire
pour chaque nouveau pixel
Sami Gazzah 2009
198
IV Assignation des niveaux de gris
Image originale
Interpolation au plus
proche voisin
Interpolation
bilineacuteaireInterpolation
bicubique
15122010
34
Sami Gazzah 2009 199
IIV Interpolation au plus proche voisin
Cest lalgorithme le plus rapide agrave calculer
Prend en compte dans le calcul que le pixel le plus proche du point
agrave interpoler
Consiste tout simplement agrave agrandir chaque pixel
Exemple Interpolation du plus proche voisin par copie des pixels
Copie de chaque colonne et de chaque rang
23 20
25 28
23 23
23 23
20 20
20 20
25 25
25 25
28 28
28 28
Sami Gazzah 2009 200
IIV Interpolation bilineacuteaire
Fonction bilineacuteaire de 4 pixels voisins ( en 2 D )
i-1 i i+1
i-1 i-12 i i+12 i+1 i+32
yi=xiYi+12=(xi+xi+1)2
Problegraveme pour le dernier point
Extrapolation lineacuteaire de
2 xn-xn-1
Principe 1D
attribuer agrave chaque point cible une
combinaison lineacuteaire des quatre
points sources les plus proches par
la transformation inverse
Sami Gazzah 2009 201
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 202
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 203 Sami Gazzah 2009 204
IIV Interpolation bilineacuteaire
15122010
35
Sami Gazzah 2009 205
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 206
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 207
IIV Interpolation bilineacuteaire exemple
Sami Gazzah 2009 208
IIV Interpolation bicubique
Sami Gazzah 2009 209
exemple
Sami Gazzah 2009 210
Chapitre 8
Geacuteneacuteration de segments de
droite et de cercles en 2D
15122010
36
Sami Gazzah 2009 211
Infographie 2D besoin de dessiner des primitives de
base (segments cercles hellip)
Espace discreacutetiseacute (pixels) il faut trouver un moyen pour
afficher des segments ou des cercles
I Segments 2D cercles1 Introduction
Comment trouver les pixels agrave allumer pour approximer au mieux une
droite ou un cercle
Algorithme rapide et preacutecisSami Gazzah 2009 212
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=ax+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ya
Sami Gazzah 2009 213
Rappelhellip
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=mx+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ym
Sami Gazzah 2009 214
Exemple
Sami Gazzah 2009 215
Agrave partir des coordonneacutees des 2 extreacutemiteacutes d‟un segmenthellip
Un algorithme simple
Boucle de x1 agrave x2 dx=1
ALLUME (x Arrondir(y))
Avec x2gtx1
Arrondir(y) = Arrondir(ax+b)
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Sami Gazzah 2009 216
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Choix de lrsquoaxehellip
Peu efficace
bullagrave chaque iteacuteration 1 multiplication (ou division) + 1 addition
+ 1 arrondi
15122010
37
Sami Gazzah 2009 217
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
DDA (Digital Differential Analyzer)
y et m doivent ecirctre des reacuteelsSami Gazzah 2009 218
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Calcul en entier (donc plus rapide)
Baseacute sur le choix entre deux points discrets deacutependant de leur
distance respective avec le point reacuteel ideacuteal
On simplifie le problegraveme en traitant drsquoabord le traceacute drsquoun segment
dans le 1er octant m infeacuterieur agrave1 et positif (0ltmlt 1)
Facilement geacuteneacuteralisable aux autres octants
Sami Gazzah 2009 219
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Traceacute d‟un segment dans le premier octant mlt1
On part d‟un point (xi yi) allumeacute
Sami Gazzah 2009 220
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
On ne calcule pas reacuteellement les distances rArr on veacuterifie si la diffeacuterence
entre les deux distances est positive ou neacutegative
Le signe de la longueur (d1-d2) deacutetermine s‟il faut allumer le pixel L ou H
L
H
Sami Gazzah 2009 221
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Comme m=ΔyΔx on multiplie cette diffeacuterence par Δx pour eacuteviter la
division
Mais que vaut p1
Sami Gazzah 2009 222
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
15122010
38
Sami Gazzah 2009 223
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Pour eacuteviter de calculer cette diffeacuterence pour chaque point on cherche
une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
Sami Gazzah 2009 224
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009 225
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009
Exercice
Tracer le segment de droite
pi xi yi
2 0 0
-6 1 1
6 2 1
-2 3 2
10 4 2
2 5 3
-6 6 4
6 7 4
-2 8 5
10 9 5
2 10 6
6
10
y
x
Sami Gazzah 2009 227
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
Sami Gazzah 2009 228
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
hellip interchanger les points hellip
Si |Δx| lt | Δy| on interchange le rocircle de x et y
15122010
39
Sami Gazzah 2009 229
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (1)
Sami Gazzah 2009 230
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (2)
Sami Gazzah 2009 231
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (3)
Sami Gazzah 2009 232
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Toujours baseacute sur le choix entre deux
points discrets deacutependant de leur
distance respective avec le point reacuteel
On travaille dans le 2e octant agrave partir
de (0r) ainsi pour un point (xi yi) le
prochain point sera
(xi+1 yi) ou (xi+1 yi-1)
Sami Gazzah 2009 233
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On calcule le prochain y et les diffeacuterences respectives avec les points
discrets de la faccedilon suivante
Le signe de pi nous dira si nous devons choisir le point lateacuteral ou le diagonal
Sami Gazzah 2009 234
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Encore une fois pour eacuteviter de calculer cette diffeacuterence pour chaque point on
cherche une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
15122010
40
Sami Gazzah 2009 235
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On considegravere 2 cas
Valeur initiale
Sami Gazzah 2009 236
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Sami Gazzah 2009 237
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Exemple centre = (00) et r = 3
Sami Gazzah 2009 238
Livres
Diane Lingrand Introduction au Traitement d‟Images Paris Editions Vuibert 2e
eacutedition 2008
Steven k Feiner James D Foley John F Hughes Richard l Phillips Andries
Vanam Introduction agrave l‟infographie Paris Editions Vuibert 2000
William K Pratt Digital Image Processing Willy-Inter-sciences 4th edition 2007
Eacuteric Incerti Compression dimage ndash Algorithmes et standards Vuibert 2003
Gilles Burel Introduction au traitement dimages ndash Simulation sous Matlab
Hermegraves 2001
Sites web
Cours de C Rougier (U Montreacuteal)
httpwww-etudiroumontrealca~rougiercift2730courshtml (cf chapitre 3)
Page wikipeacutedia sur JPEG (en anglais plus complegravete que celle en franccedilais)
httpenwikipediaorgwikiJPEG
Cours de P Courtellemont (Campus numeacuterique Espdon)
httppersouniv-lrfrpcourtelespadonsite_web
Applet de deacutemo par C G Jennings
httpcgjenningscatoyboxhjpegindexhtml
Cours de D Marshall (U Cardiff)
httpwwwcscfacukDaveMultimediaPDF
Reacutefeacuterences
Sami Gazzah 2009 239
Chapitre 9
introduction au
traitement
dimages avec OpenGL
Sami Gazzah 2009 240
OpenGL est une librairie graphique Elle a eacuteteacute creacutee par Silicon
Graphics et beacuteneacuteficie sur ces machines de lacceacuteleacuteration mateacuterielle
Elle est constitueacute d‟environ 200 fonctions graphiques
OpenGL est une bibliothegraveque de fonctions
Les fonctions sont de bas niveaux
La version actuelle est l‟ laquo OpenGL 41 raquo (deacutecembre 2010)
Principale caracteacuteristique indeacutependant du mateacuteriel et du systegraveme
d‟exploitation
Une impleacutementation libre de droits dOpenGL tregraves performante a eacuteteacute
eacutecrite par Brian Paul httpwwwmesa3dorg Et tout son code source
est accessible
Preacutesentation geacuteneacuterale
15122010
41
Sami Gazzah 2009 241
OpenGL propose des fonctions de bas niveaux
Primitives geacuteomeacutetriques points segments polygones
Les fonctions de haut niveaux sont deacuteveloppeacutees par l‟utilisateur ou
importeacutees par la librairie en amont d‟OpenGL
Primitives geacuteomeacutetriques complexes Sphegravere splines etc
Toutes les commandes et fonctions utilisent le preacutefixe gl
Exemple glColor2f()
Sami Gazzah 2009 242
Les Bibliothegraveques co-existant avec OpenGL
GLU OpenGL Utility Library contient les routines de bas niveau pour
geacuterer les matrices de transformation et de projection la facettisation des
polygones et le rendu de surface Les bibliothegraveques dextension du
systegraveme de fenecirctres permettent lutilisation du rendu OpenGL Il sagit de
GLX pour X Windows (fonctions ayant pour preacutefixe glX) et de WGL
pour Microsoft Windows (fonctions ayant pour preacutefixe wgl)
GLUT OpenGL Utility Toolkit est une boite agrave outils indeacutependante du
systegraveme de fenecirctrage eacutecrite par Mark
Kilgard pour simplifier la tacircche dutiliser des systegravemes diffeacuterents (fonctions
ayant pour preacutefixe glut)
Sami Gazzah 2009 243
Les primitives geacuteomeacutetriques d rsquoOpenGL
Les primitives sont deacutecrites par un bloc d‟instructions deacutelimiteacute par glBegin et glEnd
Ce bloc contient geacuteneacuteralement une liste de vertex Exemple
glBegin(GL_LINE_LOOP)
glVertex2f(-05 -05)
glVertex2f(05 -05)
glVertex2f(05 05)
glVertex2f(-05 05)
glEnd()
D‟autres attributs peuvent ecirctre speacutecifieacutes en chaque sommet
couleur normale coordonneacutee de texture etcSami Gazzah 2009 244
OpenGL est une machine agrave eacutetats
En modifiant les variables d‟eacutetats on peut changer le style de rendu
Sami Gazzah 2009 245
Exemple Honda Hippo (3dRendercom)
Placage de textures
bullL‟apparence et le toucher ( feel ) d‟une surface
bullUne image utiliseacutee pour deacutefinir les caracteacuteristiques d‟une surface
bullUne image multi-dimensionnelle qui est plaqueacutee sur un espace multi-
dimensionnel
Sami Gazzah 2009 246
15122010
42
Sami Gazzah 2009 247
Reacutefeacuterences openGL
Sami Gazzah 2009 248
Chapitre 10
introduction au
traitement
dimages avec OpenCV
Sami Gazzah 2009 249
Preacutesentation geacuteneacuterale
Quest-ce
Open Source Computer Vision Library
Bibliothegraveque open source de traitement des images numeacuteriques
Projet initieacute par Intel (en 1999)
Teacuteleacutechargeable sur httpsourceforgenetprojectsopencvlibrary
Fortement orienteacutee temps reacuteel
eacutecrite en C et C++
optimiseacutee pour les processeurs multi-cœurs
Multi-plateformes disponible pour Linux Windows et Mac OS X
Que contient-elle
Des fonctionnaliteacutes (structures et routines gt350 algos) de base et
avanceacutees pour bacirctir rapidement des applications autour de la vision par
ordinateur
Exemples dutilisation traitements de bas niveau (filtrage ) deacutetection
de visages reconnaissance et suivi dobjets en mouvement Sami Gazzah 2009 250
Fonctionnaliteacutes
Lectureeacutecriture dimages statiques et de seacutequences videacuteo
APIs de bas et moyen niveaux
Traitement des images binaires
Manipulations dimage (eacutechantillonnage (sampling) reacutegion dinteacuterecirct (ROI)
redimensionnement (resizing) rotation deacuteformation (warping) )
Deacutetection de contours de lignes de coins (edge detection)
Traitements multi-eacutechelles (multiscale processing)
Transformeacutees (Fourier cosinus discregravete )
Modules de haut niveau
Deacutetection reconnaissance et suivi (tracking) de visages
Flot optique (estimation du mouvement) (optical flow)
Calibrage (calibration) de la cameacutera
Mise en correspondance steacutereacuteoscopique (stereo matching)
IA et apprentissage par ordinateur (machine learning)
3D mise en correspondance (registration)
Sami Gazzah 2009 251
Modules principaux
CxCore
Types de base pour manip dimages (ex struct image point isin cxtypesh)
Structures dynamiques (listes files graphes arbres) et persistantes (LE)
Manipulations de matrices meacutethodes de lalgegravebre lineacuteaire et statistiques
Dessin en surimpression (overlay) (ex eacutetiquetage)
Cv
Traitement dimage calibrage cameacutera
Geacuteomeacutetrie algorithmique (triangulation )
Cvaux
Reconnaissance de visage
Code expeacuterimental et obsolegravete
Autres (dans otherlibs)
HighGUI ES videacuteos curseurs fenecirctrage
ML classification regroupement (clustering)Sami Gazzah 2009 252
OpenCV premiers programmesBibliothegraveque OpenCV
15122010
43
Sami Gazzah 2009 253
Livre
G Bradski amp A Kaehler laquo Learning OpenCV raquo OReilly Press (2008)
codes sources httpexamplesoreillycom9780596516130
Ressources en ligne
Reacutefeacuterence complegravete httpopencvwillowgaragecomdocumentation
Wiki httpopencvwillowgaragecomwikiFullOpenCVWiki
bullPreacutesentation teacuteleacutechargement installation
bullavec CodeBlocks httpopencvwillowgaragecomwikiCodeBlocks
bullDeacutebuter avec OpenCV FAQ
Tutoriels
httpnchcdlsourceforgenetsourceforgeopencvlibraryippocvpdf
httpdaslmemdrexeledu~noahKuntzopenCVTut1html agrave Tut11html
httpwwwcognoticscomopencvservo_2007_series
Tutoriel sur la vision utilisant OpenCV (en franccedilais)
httpwwwsiteduzerocomtutoriel-3-8631-vision-par-ordinateurhtml
Reacutefeacuterences openCV
15122010
29
Sami Gazzah 2009 169
Exercice 4 Sur l‟image de deacutepart on reacutealise une opeacuteration
d‟ouverture binaire par l‟eacuteleacutement structurant 4-connexiteacute Conclusions
Eacuteleacutement structurant
(4-connexiteacute)
-
-
-
-Ouverture = eacuterosion puis dilatation
Image de deacutepart Image eacuterodeacutee Image eacuterodeacutee puis dilateacutee
Supprimer les fausses alarmes
Seacuteparer les objets accoleacutes
tout en preacuteservant la tailleSami Gazzah 2009 170
Appliquer les filtres suivants sur limage donneacutee Quelles sont les valeurs choisies
aux bords de limage et quelles sont les modifications visuelles
a) filtre moyenneur M3acute3(19)
b) eacuterosion
c) dilatation
d) meacutedian
e) fermeture
f) ouverture
Exercice 5
Sami Gazzah 2009 171
IV Amincissement et Squelettisation
La squelette (skeleton) d‟une forme est l‟axe meacutedian L‟inteacuterecirct de cette
opeacuteration est dans
La reconnaissance de caractegraveres
Deacutetection des reacuteseaux routiers
La planification de trajectoirehellip
Une meacutethode couramment employeacutee est une amincissement reacutepeacuteteacute
jusqu‟agrave le convergence (n‟apporte aucune modification)
Sami Gazzah 2009 172
IV Amincissement et Squelettisation1 Opeacuteration Tout Ou Rien laquoHit or Missraquo
Cette transformation est deacutefinie par
leacuteleacutement structurant eacutetendu est centreacute sur chaque pixel de limage
comme pour les opeacuterations ensemblistes
la question poseacutee est est ce que le contenu de limage est identique au
contenu de leacuteleacutement structurant
si la reacuteponse est oui le pixel reacutesultant vaut 1 si non il vaut 0
Une application permet de deacutetecter des configurations locales
particuliegraveres dans une image
plusieurs masques peuvent ecirctre utiliseacutes indeacutependamment les images
reacutesultat eacutetant ensuite combineacutees par une opeacuteration ou
)()( cc BABABA
Bc-
est le compleacutementaire
local de B
Sami Gazzah 2009 173
IV Amincissement et Squelettisation1 Opeacuteration laquoHit or Missraquo
Exemple dopeacuteration Hit or Miss deacutetection des coinsSami Gazzah 2009 174
IV Amincissement et Squelettisation1 Amincissement (thinning)
bull La transformation TOR nous permet eacutegalement de deacutefinir
l‟amincissement
bullL‟amincissement consiste agrave soustraire limage reacutesultat dun hit or miss de
limage initiale
bull des amincissements successifs conduisent au squelettisation
)()( BAAAthin
15122010
30
Sami Gazzah 2009 175
IV Amincissement et Squelettisation1I Squelettisation
Appliquer des amincissements successifs puis s‟arrecircter lorsque l‟amincissement
n‟apporte plus de modification C‟est une eacuterosion particuliegravere ougrave les pixels sont
supprimeacutes agrave la condition quils ne provoquent pas la seacuteparation dune reacutegion en
deux
Sami Gazzah 2009 176
IV Amincissement et Squelettisation1I Squelettisation
Sami Gazzah 2009 177
Chapitre 7
Transformations
geacuteomeacutetriques 2D
Sami Gazzah 2009 178
I Introduction
On entend par transformation 2D l‟ensemble des transformations du
plan pouvant ecirctre appliqueacutees aux pixels de l‟image sans consideacuteration
de l‟intensiteacute
Par exemples
Reacuteduction agrandissement
Deacuteformation d‟image
Recalage d‟une photo scanneacutee
Recaler des images que l‟on veut comparer
Mosaiumlque d‟images
Sami Gazzah 2009 179
I Transformations euclidiennes
Elles preacuteservent les distances et les angles
Elles sont les compositions de translations et de rotations
1) Translation
Ougrave Tx et Ty sont les deacuteplacements en x et en y de la translation
y
x
Tyy
Txx
Sami Gazzah 2009 180
2) Rotation
15122010
31
Sami Gazzah 2009 181 Sami Gazzah 2009 182
3) Remarques (1)
Sami Gazzah 2009 183
3) Remarques (2)
Sami Gazzah 2009 184
II Homotheacuteties
Changement deacutechelle par rapport agrave lorigine (scaling zoom)
Ougrave Sx et Sy sont les facteurs dagrandissement ( gt1) ou de
reacuteduction ( lt1) en x et en y
ySy
xSx
y
x
Sami Gazzah 2009 185
II Homotheacuteties
Sami Gazzah 2009 186
II Homotheacuteties
15122010
32
Sami Gazzah 2009 187
III Reacuteflexions
Reacuteflexions par rapport aux axes (flip miroir)
Sami Gazzah 2009 188
IV Cisaillement
Cisaillement (glissement shearing) on eacutetire suivant un ou plusieurs axes
Sami Gazzah 2009 189
Transformations inverses
Sami Gazzah 2009 190
Repreacutesentation Matricielle
IV Autres (reacuteflexions miroirs et flips)
Sami Gazzah 2009 191
Interpolation Directe
Sami Gazzah 2009 192
oDifficile de distribuer le niveau de gris sur les pixels voisins
oOn n‟a pas la certitude que tous les pixels de l‟image
transformeacutee recevront une valeur =gt ldquotrousrdquo
15122010
33
Interpolation Inverse
Sami Gazzah 2009 193
o Interpolation de la valeur du pixel agrave partir des voisins plus
facile
oAucun ldquotrourdquo car on parcourt tous les pixels de l‟image
transformeacutee Sami Gazzah 2009 194
V Objet vectoriel - Objet bitmap
Objet vectoriel
Essentiellement on transforme
les sommets (ou points de
controcircle) et on retracehellip
Objet ldquobitmaprdquo
On doit calculer la nouvelle
position de chaque pixel De plus on
doit geacuteneacuteralement interpoler les
niveaux de gris (couleurs)hellip
Sami Gazzah 2009 195
IV Assignation des niveaux de gris
Neacutecessaire car la position d‟un pixel transformeacute n‟est pas entiegraverehellip
Plusieurs meacutethodes
Interpolation au plus proche voisin
Interpolation bilineacuteaire
Interpolation bicubique
Autres types d‟interpolation
Sami Gazzah 2009 196
IV Assignation des niveaux de gris
Linterpolation de limage cest ce qui arrive lorsquon redimensionne
une image numeacuterique ou quon la redimensionne avec une distorsion
quon change la perspective etc
Exemple 1
Image originale (sans interpolation)
Image agrandie et donc interpoleacutee
Perte de netteteacute due agrave linterpolation
Sami Gazzah 2009
197
IV Assignation des niveaux de gris
Exemple 2 recadrage dimage
Nous allons agrandir cette image agrave 180
Il va donc nous manquer des informations lagrave ougrave lon va creacuteer des
pixels pour agrandir limage
Reacutesultat sans interpolation le logiciel agrandit simplement les pixels
Reacutesultat avec interpolation le logiciel calcule une couleur intermeacutediaire
pour chaque nouveau pixel
Sami Gazzah 2009
198
IV Assignation des niveaux de gris
Image originale
Interpolation au plus
proche voisin
Interpolation
bilineacuteaireInterpolation
bicubique
15122010
34
Sami Gazzah 2009 199
IIV Interpolation au plus proche voisin
Cest lalgorithme le plus rapide agrave calculer
Prend en compte dans le calcul que le pixel le plus proche du point
agrave interpoler
Consiste tout simplement agrave agrandir chaque pixel
Exemple Interpolation du plus proche voisin par copie des pixels
Copie de chaque colonne et de chaque rang
23 20
25 28
23 23
23 23
20 20
20 20
25 25
25 25
28 28
28 28
Sami Gazzah 2009 200
IIV Interpolation bilineacuteaire
Fonction bilineacuteaire de 4 pixels voisins ( en 2 D )
i-1 i i+1
i-1 i-12 i i+12 i+1 i+32
yi=xiYi+12=(xi+xi+1)2
Problegraveme pour le dernier point
Extrapolation lineacuteaire de
2 xn-xn-1
Principe 1D
attribuer agrave chaque point cible une
combinaison lineacuteaire des quatre
points sources les plus proches par
la transformation inverse
Sami Gazzah 2009 201
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 202
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 203 Sami Gazzah 2009 204
IIV Interpolation bilineacuteaire
15122010
35
Sami Gazzah 2009 205
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 206
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 207
IIV Interpolation bilineacuteaire exemple
Sami Gazzah 2009 208
IIV Interpolation bicubique
Sami Gazzah 2009 209
exemple
Sami Gazzah 2009 210
Chapitre 8
Geacuteneacuteration de segments de
droite et de cercles en 2D
15122010
36
Sami Gazzah 2009 211
Infographie 2D besoin de dessiner des primitives de
base (segments cercles hellip)
Espace discreacutetiseacute (pixels) il faut trouver un moyen pour
afficher des segments ou des cercles
I Segments 2D cercles1 Introduction
Comment trouver les pixels agrave allumer pour approximer au mieux une
droite ou un cercle
Algorithme rapide et preacutecisSami Gazzah 2009 212
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=ax+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ya
Sami Gazzah 2009 213
Rappelhellip
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=mx+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ym
Sami Gazzah 2009 214
Exemple
Sami Gazzah 2009 215
Agrave partir des coordonneacutees des 2 extreacutemiteacutes d‟un segmenthellip
Un algorithme simple
Boucle de x1 agrave x2 dx=1
ALLUME (x Arrondir(y))
Avec x2gtx1
Arrondir(y) = Arrondir(ax+b)
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Sami Gazzah 2009 216
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Choix de lrsquoaxehellip
Peu efficace
bullagrave chaque iteacuteration 1 multiplication (ou division) + 1 addition
+ 1 arrondi
15122010
37
Sami Gazzah 2009 217
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
DDA (Digital Differential Analyzer)
y et m doivent ecirctre des reacuteelsSami Gazzah 2009 218
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Calcul en entier (donc plus rapide)
Baseacute sur le choix entre deux points discrets deacutependant de leur
distance respective avec le point reacuteel ideacuteal
On simplifie le problegraveme en traitant drsquoabord le traceacute drsquoun segment
dans le 1er octant m infeacuterieur agrave1 et positif (0ltmlt 1)
Facilement geacuteneacuteralisable aux autres octants
Sami Gazzah 2009 219
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Traceacute d‟un segment dans le premier octant mlt1
On part d‟un point (xi yi) allumeacute
Sami Gazzah 2009 220
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
On ne calcule pas reacuteellement les distances rArr on veacuterifie si la diffeacuterence
entre les deux distances est positive ou neacutegative
Le signe de la longueur (d1-d2) deacutetermine s‟il faut allumer le pixel L ou H
L
H
Sami Gazzah 2009 221
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Comme m=ΔyΔx on multiplie cette diffeacuterence par Δx pour eacuteviter la
division
Mais que vaut p1
Sami Gazzah 2009 222
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
15122010
38
Sami Gazzah 2009 223
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Pour eacuteviter de calculer cette diffeacuterence pour chaque point on cherche
une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
Sami Gazzah 2009 224
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009 225
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009
Exercice
Tracer le segment de droite
pi xi yi
2 0 0
-6 1 1
6 2 1
-2 3 2
10 4 2
2 5 3
-6 6 4
6 7 4
-2 8 5
10 9 5
2 10 6
6
10
y
x
Sami Gazzah 2009 227
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
Sami Gazzah 2009 228
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
hellip interchanger les points hellip
Si |Δx| lt | Δy| on interchange le rocircle de x et y
15122010
39
Sami Gazzah 2009 229
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (1)
Sami Gazzah 2009 230
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (2)
Sami Gazzah 2009 231
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (3)
Sami Gazzah 2009 232
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Toujours baseacute sur le choix entre deux
points discrets deacutependant de leur
distance respective avec le point reacuteel
On travaille dans le 2e octant agrave partir
de (0r) ainsi pour un point (xi yi) le
prochain point sera
(xi+1 yi) ou (xi+1 yi-1)
Sami Gazzah 2009 233
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On calcule le prochain y et les diffeacuterences respectives avec les points
discrets de la faccedilon suivante
Le signe de pi nous dira si nous devons choisir le point lateacuteral ou le diagonal
Sami Gazzah 2009 234
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Encore une fois pour eacuteviter de calculer cette diffeacuterence pour chaque point on
cherche une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
15122010
40
Sami Gazzah 2009 235
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On considegravere 2 cas
Valeur initiale
Sami Gazzah 2009 236
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Sami Gazzah 2009 237
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Exemple centre = (00) et r = 3
Sami Gazzah 2009 238
Livres
Diane Lingrand Introduction au Traitement d‟Images Paris Editions Vuibert 2e
eacutedition 2008
Steven k Feiner James D Foley John F Hughes Richard l Phillips Andries
Vanam Introduction agrave l‟infographie Paris Editions Vuibert 2000
William K Pratt Digital Image Processing Willy-Inter-sciences 4th edition 2007
Eacuteric Incerti Compression dimage ndash Algorithmes et standards Vuibert 2003
Gilles Burel Introduction au traitement dimages ndash Simulation sous Matlab
Hermegraves 2001
Sites web
Cours de C Rougier (U Montreacuteal)
httpwww-etudiroumontrealca~rougiercift2730courshtml (cf chapitre 3)
Page wikipeacutedia sur JPEG (en anglais plus complegravete que celle en franccedilais)
httpenwikipediaorgwikiJPEG
Cours de P Courtellemont (Campus numeacuterique Espdon)
httppersouniv-lrfrpcourtelespadonsite_web
Applet de deacutemo par C G Jennings
httpcgjenningscatoyboxhjpegindexhtml
Cours de D Marshall (U Cardiff)
httpwwwcscfacukDaveMultimediaPDF
Reacutefeacuterences
Sami Gazzah 2009 239
Chapitre 9
introduction au
traitement
dimages avec OpenGL
Sami Gazzah 2009 240
OpenGL est une librairie graphique Elle a eacuteteacute creacutee par Silicon
Graphics et beacuteneacuteficie sur ces machines de lacceacuteleacuteration mateacuterielle
Elle est constitueacute d‟environ 200 fonctions graphiques
OpenGL est une bibliothegraveque de fonctions
Les fonctions sont de bas niveaux
La version actuelle est l‟ laquo OpenGL 41 raquo (deacutecembre 2010)
Principale caracteacuteristique indeacutependant du mateacuteriel et du systegraveme
d‟exploitation
Une impleacutementation libre de droits dOpenGL tregraves performante a eacuteteacute
eacutecrite par Brian Paul httpwwwmesa3dorg Et tout son code source
est accessible
Preacutesentation geacuteneacuterale
15122010
41
Sami Gazzah 2009 241
OpenGL propose des fonctions de bas niveaux
Primitives geacuteomeacutetriques points segments polygones
Les fonctions de haut niveaux sont deacuteveloppeacutees par l‟utilisateur ou
importeacutees par la librairie en amont d‟OpenGL
Primitives geacuteomeacutetriques complexes Sphegravere splines etc
Toutes les commandes et fonctions utilisent le preacutefixe gl
Exemple glColor2f()
Sami Gazzah 2009 242
Les Bibliothegraveques co-existant avec OpenGL
GLU OpenGL Utility Library contient les routines de bas niveau pour
geacuterer les matrices de transformation et de projection la facettisation des
polygones et le rendu de surface Les bibliothegraveques dextension du
systegraveme de fenecirctres permettent lutilisation du rendu OpenGL Il sagit de
GLX pour X Windows (fonctions ayant pour preacutefixe glX) et de WGL
pour Microsoft Windows (fonctions ayant pour preacutefixe wgl)
GLUT OpenGL Utility Toolkit est une boite agrave outils indeacutependante du
systegraveme de fenecirctrage eacutecrite par Mark
Kilgard pour simplifier la tacircche dutiliser des systegravemes diffeacuterents (fonctions
ayant pour preacutefixe glut)
Sami Gazzah 2009 243
Les primitives geacuteomeacutetriques d rsquoOpenGL
Les primitives sont deacutecrites par un bloc d‟instructions deacutelimiteacute par glBegin et glEnd
Ce bloc contient geacuteneacuteralement une liste de vertex Exemple
glBegin(GL_LINE_LOOP)
glVertex2f(-05 -05)
glVertex2f(05 -05)
glVertex2f(05 05)
glVertex2f(-05 05)
glEnd()
D‟autres attributs peuvent ecirctre speacutecifieacutes en chaque sommet
couleur normale coordonneacutee de texture etcSami Gazzah 2009 244
OpenGL est une machine agrave eacutetats
En modifiant les variables d‟eacutetats on peut changer le style de rendu
Sami Gazzah 2009 245
Exemple Honda Hippo (3dRendercom)
Placage de textures
bullL‟apparence et le toucher ( feel ) d‟une surface
bullUne image utiliseacutee pour deacutefinir les caracteacuteristiques d‟une surface
bullUne image multi-dimensionnelle qui est plaqueacutee sur un espace multi-
dimensionnel
Sami Gazzah 2009 246
15122010
42
Sami Gazzah 2009 247
Reacutefeacuterences openGL
Sami Gazzah 2009 248
Chapitre 10
introduction au
traitement
dimages avec OpenCV
Sami Gazzah 2009 249
Preacutesentation geacuteneacuterale
Quest-ce
Open Source Computer Vision Library
Bibliothegraveque open source de traitement des images numeacuteriques
Projet initieacute par Intel (en 1999)
Teacuteleacutechargeable sur httpsourceforgenetprojectsopencvlibrary
Fortement orienteacutee temps reacuteel
eacutecrite en C et C++
optimiseacutee pour les processeurs multi-cœurs
Multi-plateformes disponible pour Linux Windows et Mac OS X
Que contient-elle
Des fonctionnaliteacutes (structures et routines gt350 algos) de base et
avanceacutees pour bacirctir rapidement des applications autour de la vision par
ordinateur
Exemples dutilisation traitements de bas niveau (filtrage ) deacutetection
de visages reconnaissance et suivi dobjets en mouvement Sami Gazzah 2009 250
Fonctionnaliteacutes
Lectureeacutecriture dimages statiques et de seacutequences videacuteo
APIs de bas et moyen niveaux
Traitement des images binaires
Manipulations dimage (eacutechantillonnage (sampling) reacutegion dinteacuterecirct (ROI)
redimensionnement (resizing) rotation deacuteformation (warping) )
Deacutetection de contours de lignes de coins (edge detection)
Traitements multi-eacutechelles (multiscale processing)
Transformeacutees (Fourier cosinus discregravete )
Modules de haut niveau
Deacutetection reconnaissance et suivi (tracking) de visages
Flot optique (estimation du mouvement) (optical flow)
Calibrage (calibration) de la cameacutera
Mise en correspondance steacutereacuteoscopique (stereo matching)
IA et apprentissage par ordinateur (machine learning)
3D mise en correspondance (registration)
Sami Gazzah 2009 251
Modules principaux
CxCore
Types de base pour manip dimages (ex struct image point isin cxtypesh)
Structures dynamiques (listes files graphes arbres) et persistantes (LE)
Manipulations de matrices meacutethodes de lalgegravebre lineacuteaire et statistiques
Dessin en surimpression (overlay) (ex eacutetiquetage)
Cv
Traitement dimage calibrage cameacutera
Geacuteomeacutetrie algorithmique (triangulation )
Cvaux
Reconnaissance de visage
Code expeacuterimental et obsolegravete
Autres (dans otherlibs)
HighGUI ES videacuteos curseurs fenecirctrage
ML classification regroupement (clustering)Sami Gazzah 2009 252
OpenCV premiers programmesBibliothegraveque OpenCV
15122010
43
Sami Gazzah 2009 253
Livre
G Bradski amp A Kaehler laquo Learning OpenCV raquo OReilly Press (2008)
codes sources httpexamplesoreillycom9780596516130
Ressources en ligne
Reacutefeacuterence complegravete httpopencvwillowgaragecomdocumentation
Wiki httpopencvwillowgaragecomwikiFullOpenCVWiki
bullPreacutesentation teacuteleacutechargement installation
bullavec CodeBlocks httpopencvwillowgaragecomwikiCodeBlocks
bullDeacutebuter avec OpenCV FAQ
Tutoriels
httpnchcdlsourceforgenetsourceforgeopencvlibraryippocvpdf
httpdaslmemdrexeledu~noahKuntzopenCVTut1html agrave Tut11html
httpwwwcognoticscomopencvservo_2007_series
Tutoriel sur la vision utilisant OpenCV (en franccedilais)
httpwwwsiteduzerocomtutoriel-3-8631-vision-par-ordinateurhtml
Reacutefeacuterences openCV
15122010
30
Sami Gazzah 2009 175
IV Amincissement et Squelettisation1I Squelettisation
Appliquer des amincissements successifs puis s‟arrecircter lorsque l‟amincissement
n‟apporte plus de modification C‟est une eacuterosion particuliegravere ougrave les pixels sont
supprimeacutes agrave la condition quils ne provoquent pas la seacuteparation dune reacutegion en
deux
Sami Gazzah 2009 176
IV Amincissement et Squelettisation1I Squelettisation
Sami Gazzah 2009 177
Chapitre 7
Transformations
geacuteomeacutetriques 2D
Sami Gazzah 2009 178
I Introduction
On entend par transformation 2D l‟ensemble des transformations du
plan pouvant ecirctre appliqueacutees aux pixels de l‟image sans consideacuteration
de l‟intensiteacute
Par exemples
Reacuteduction agrandissement
Deacuteformation d‟image
Recalage d‟une photo scanneacutee
Recaler des images que l‟on veut comparer
Mosaiumlque d‟images
Sami Gazzah 2009 179
I Transformations euclidiennes
Elles preacuteservent les distances et les angles
Elles sont les compositions de translations et de rotations
1) Translation
Ougrave Tx et Ty sont les deacuteplacements en x et en y de la translation
y
x
Tyy
Txx
Sami Gazzah 2009 180
2) Rotation
15122010
31
Sami Gazzah 2009 181 Sami Gazzah 2009 182
3) Remarques (1)
Sami Gazzah 2009 183
3) Remarques (2)
Sami Gazzah 2009 184
II Homotheacuteties
Changement deacutechelle par rapport agrave lorigine (scaling zoom)
Ougrave Sx et Sy sont les facteurs dagrandissement ( gt1) ou de
reacuteduction ( lt1) en x et en y
ySy
xSx
y
x
Sami Gazzah 2009 185
II Homotheacuteties
Sami Gazzah 2009 186
II Homotheacuteties
15122010
32
Sami Gazzah 2009 187
III Reacuteflexions
Reacuteflexions par rapport aux axes (flip miroir)
Sami Gazzah 2009 188
IV Cisaillement
Cisaillement (glissement shearing) on eacutetire suivant un ou plusieurs axes
Sami Gazzah 2009 189
Transformations inverses
Sami Gazzah 2009 190
Repreacutesentation Matricielle
IV Autres (reacuteflexions miroirs et flips)
Sami Gazzah 2009 191
Interpolation Directe
Sami Gazzah 2009 192
oDifficile de distribuer le niveau de gris sur les pixels voisins
oOn n‟a pas la certitude que tous les pixels de l‟image
transformeacutee recevront une valeur =gt ldquotrousrdquo
15122010
33
Interpolation Inverse
Sami Gazzah 2009 193
o Interpolation de la valeur du pixel agrave partir des voisins plus
facile
oAucun ldquotrourdquo car on parcourt tous les pixels de l‟image
transformeacutee Sami Gazzah 2009 194
V Objet vectoriel - Objet bitmap
Objet vectoriel
Essentiellement on transforme
les sommets (ou points de
controcircle) et on retracehellip
Objet ldquobitmaprdquo
On doit calculer la nouvelle
position de chaque pixel De plus on
doit geacuteneacuteralement interpoler les
niveaux de gris (couleurs)hellip
Sami Gazzah 2009 195
IV Assignation des niveaux de gris
Neacutecessaire car la position d‟un pixel transformeacute n‟est pas entiegraverehellip
Plusieurs meacutethodes
Interpolation au plus proche voisin
Interpolation bilineacuteaire
Interpolation bicubique
Autres types d‟interpolation
Sami Gazzah 2009 196
IV Assignation des niveaux de gris
Linterpolation de limage cest ce qui arrive lorsquon redimensionne
une image numeacuterique ou quon la redimensionne avec une distorsion
quon change la perspective etc
Exemple 1
Image originale (sans interpolation)
Image agrandie et donc interpoleacutee
Perte de netteteacute due agrave linterpolation
Sami Gazzah 2009
197
IV Assignation des niveaux de gris
Exemple 2 recadrage dimage
Nous allons agrandir cette image agrave 180
Il va donc nous manquer des informations lagrave ougrave lon va creacuteer des
pixels pour agrandir limage
Reacutesultat sans interpolation le logiciel agrandit simplement les pixels
Reacutesultat avec interpolation le logiciel calcule une couleur intermeacutediaire
pour chaque nouveau pixel
Sami Gazzah 2009
198
IV Assignation des niveaux de gris
Image originale
Interpolation au plus
proche voisin
Interpolation
bilineacuteaireInterpolation
bicubique
15122010
34
Sami Gazzah 2009 199
IIV Interpolation au plus proche voisin
Cest lalgorithme le plus rapide agrave calculer
Prend en compte dans le calcul que le pixel le plus proche du point
agrave interpoler
Consiste tout simplement agrave agrandir chaque pixel
Exemple Interpolation du plus proche voisin par copie des pixels
Copie de chaque colonne et de chaque rang
23 20
25 28
23 23
23 23
20 20
20 20
25 25
25 25
28 28
28 28
Sami Gazzah 2009 200
IIV Interpolation bilineacuteaire
Fonction bilineacuteaire de 4 pixels voisins ( en 2 D )
i-1 i i+1
i-1 i-12 i i+12 i+1 i+32
yi=xiYi+12=(xi+xi+1)2
Problegraveme pour le dernier point
Extrapolation lineacuteaire de
2 xn-xn-1
Principe 1D
attribuer agrave chaque point cible une
combinaison lineacuteaire des quatre
points sources les plus proches par
la transformation inverse
Sami Gazzah 2009 201
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 202
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 203 Sami Gazzah 2009 204
IIV Interpolation bilineacuteaire
15122010
35
Sami Gazzah 2009 205
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 206
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 207
IIV Interpolation bilineacuteaire exemple
Sami Gazzah 2009 208
IIV Interpolation bicubique
Sami Gazzah 2009 209
exemple
Sami Gazzah 2009 210
Chapitre 8
Geacuteneacuteration de segments de
droite et de cercles en 2D
15122010
36
Sami Gazzah 2009 211
Infographie 2D besoin de dessiner des primitives de
base (segments cercles hellip)
Espace discreacutetiseacute (pixels) il faut trouver un moyen pour
afficher des segments ou des cercles
I Segments 2D cercles1 Introduction
Comment trouver les pixels agrave allumer pour approximer au mieux une
droite ou un cercle
Algorithme rapide et preacutecisSami Gazzah 2009 212
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=ax+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ya
Sami Gazzah 2009 213
Rappelhellip
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=mx+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ym
Sami Gazzah 2009 214
Exemple
Sami Gazzah 2009 215
Agrave partir des coordonneacutees des 2 extreacutemiteacutes d‟un segmenthellip
Un algorithme simple
Boucle de x1 agrave x2 dx=1
ALLUME (x Arrondir(y))
Avec x2gtx1
Arrondir(y) = Arrondir(ax+b)
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Sami Gazzah 2009 216
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Choix de lrsquoaxehellip
Peu efficace
bullagrave chaque iteacuteration 1 multiplication (ou division) + 1 addition
+ 1 arrondi
15122010
37
Sami Gazzah 2009 217
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
DDA (Digital Differential Analyzer)
y et m doivent ecirctre des reacuteelsSami Gazzah 2009 218
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Calcul en entier (donc plus rapide)
Baseacute sur le choix entre deux points discrets deacutependant de leur
distance respective avec le point reacuteel ideacuteal
On simplifie le problegraveme en traitant drsquoabord le traceacute drsquoun segment
dans le 1er octant m infeacuterieur agrave1 et positif (0ltmlt 1)
Facilement geacuteneacuteralisable aux autres octants
Sami Gazzah 2009 219
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Traceacute d‟un segment dans le premier octant mlt1
On part d‟un point (xi yi) allumeacute
Sami Gazzah 2009 220
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
On ne calcule pas reacuteellement les distances rArr on veacuterifie si la diffeacuterence
entre les deux distances est positive ou neacutegative
Le signe de la longueur (d1-d2) deacutetermine s‟il faut allumer le pixel L ou H
L
H
Sami Gazzah 2009 221
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Comme m=ΔyΔx on multiplie cette diffeacuterence par Δx pour eacuteviter la
division
Mais que vaut p1
Sami Gazzah 2009 222
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
15122010
38
Sami Gazzah 2009 223
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Pour eacuteviter de calculer cette diffeacuterence pour chaque point on cherche
une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
Sami Gazzah 2009 224
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009 225
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009
Exercice
Tracer le segment de droite
pi xi yi
2 0 0
-6 1 1
6 2 1
-2 3 2
10 4 2
2 5 3
-6 6 4
6 7 4
-2 8 5
10 9 5
2 10 6
6
10
y
x
Sami Gazzah 2009 227
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
Sami Gazzah 2009 228
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
hellip interchanger les points hellip
Si |Δx| lt | Δy| on interchange le rocircle de x et y
15122010
39
Sami Gazzah 2009 229
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (1)
Sami Gazzah 2009 230
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (2)
Sami Gazzah 2009 231
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (3)
Sami Gazzah 2009 232
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Toujours baseacute sur le choix entre deux
points discrets deacutependant de leur
distance respective avec le point reacuteel
On travaille dans le 2e octant agrave partir
de (0r) ainsi pour un point (xi yi) le
prochain point sera
(xi+1 yi) ou (xi+1 yi-1)
Sami Gazzah 2009 233
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On calcule le prochain y et les diffeacuterences respectives avec les points
discrets de la faccedilon suivante
Le signe de pi nous dira si nous devons choisir le point lateacuteral ou le diagonal
Sami Gazzah 2009 234
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Encore une fois pour eacuteviter de calculer cette diffeacuterence pour chaque point on
cherche une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
15122010
40
Sami Gazzah 2009 235
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On considegravere 2 cas
Valeur initiale
Sami Gazzah 2009 236
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Sami Gazzah 2009 237
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Exemple centre = (00) et r = 3
Sami Gazzah 2009 238
Livres
Diane Lingrand Introduction au Traitement d‟Images Paris Editions Vuibert 2e
eacutedition 2008
Steven k Feiner James D Foley John F Hughes Richard l Phillips Andries
Vanam Introduction agrave l‟infographie Paris Editions Vuibert 2000
William K Pratt Digital Image Processing Willy-Inter-sciences 4th edition 2007
Eacuteric Incerti Compression dimage ndash Algorithmes et standards Vuibert 2003
Gilles Burel Introduction au traitement dimages ndash Simulation sous Matlab
Hermegraves 2001
Sites web
Cours de C Rougier (U Montreacuteal)
httpwww-etudiroumontrealca~rougiercift2730courshtml (cf chapitre 3)
Page wikipeacutedia sur JPEG (en anglais plus complegravete que celle en franccedilais)
httpenwikipediaorgwikiJPEG
Cours de P Courtellemont (Campus numeacuterique Espdon)
httppersouniv-lrfrpcourtelespadonsite_web
Applet de deacutemo par C G Jennings
httpcgjenningscatoyboxhjpegindexhtml
Cours de D Marshall (U Cardiff)
httpwwwcscfacukDaveMultimediaPDF
Reacutefeacuterences
Sami Gazzah 2009 239
Chapitre 9
introduction au
traitement
dimages avec OpenGL
Sami Gazzah 2009 240
OpenGL est une librairie graphique Elle a eacuteteacute creacutee par Silicon
Graphics et beacuteneacuteficie sur ces machines de lacceacuteleacuteration mateacuterielle
Elle est constitueacute d‟environ 200 fonctions graphiques
OpenGL est une bibliothegraveque de fonctions
Les fonctions sont de bas niveaux
La version actuelle est l‟ laquo OpenGL 41 raquo (deacutecembre 2010)
Principale caracteacuteristique indeacutependant du mateacuteriel et du systegraveme
d‟exploitation
Une impleacutementation libre de droits dOpenGL tregraves performante a eacuteteacute
eacutecrite par Brian Paul httpwwwmesa3dorg Et tout son code source
est accessible
Preacutesentation geacuteneacuterale
15122010
41
Sami Gazzah 2009 241
OpenGL propose des fonctions de bas niveaux
Primitives geacuteomeacutetriques points segments polygones
Les fonctions de haut niveaux sont deacuteveloppeacutees par l‟utilisateur ou
importeacutees par la librairie en amont d‟OpenGL
Primitives geacuteomeacutetriques complexes Sphegravere splines etc
Toutes les commandes et fonctions utilisent le preacutefixe gl
Exemple glColor2f()
Sami Gazzah 2009 242
Les Bibliothegraveques co-existant avec OpenGL
GLU OpenGL Utility Library contient les routines de bas niveau pour
geacuterer les matrices de transformation et de projection la facettisation des
polygones et le rendu de surface Les bibliothegraveques dextension du
systegraveme de fenecirctres permettent lutilisation du rendu OpenGL Il sagit de
GLX pour X Windows (fonctions ayant pour preacutefixe glX) et de WGL
pour Microsoft Windows (fonctions ayant pour preacutefixe wgl)
GLUT OpenGL Utility Toolkit est une boite agrave outils indeacutependante du
systegraveme de fenecirctrage eacutecrite par Mark
Kilgard pour simplifier la tacircche dutiliser des systegravemes diffeacuterents (fonctions
ayant pour preacutefixe glut)
Sami Gazzah 2009 243
Les primitives geacuteomeacutetriques d rsquoOpenGL
Les primitives sont deacutecrites par un bloc d‟instructions deacutelimiteacute par glBegin et glEnd
Ce bloc contient geacuteneacuteralement une liste de vertex Exemple
glBegin(GL_LINE_LOOP)
glVertex2f(-05 -05)
glVertex2f(05 -05)
glVertex2f(05 05)
glVertex2f(-05 05)
glEnd()
D‟autres attributs peuvent ecirctre speacutecifieacutes en chaque sommet
couleur normale coordonneacutee de texture etcSami Gazzah 2009 244
OpenGL est une machine agrave eacutetats
En modifiant les variables d‟eacutetats on peut changer le style de rendu
Sami Gazzah 2009 245
Exemple Honda Hippo (3dRendercom)
Placage de textures
bullL‟apparence et le toucher ( feel ) d‟une surface
bullUne image utiliseacutee pour deacutefinir les caracteacuteristiques d‟une surface
bullUne image multi-dimensionnelle qui est plaqueacutee sur un espace multi-
dimensionnel
Sami Gazzah 2009 246
15122010
42
Sami Gazzah 2009 247
Reacutefeacuterences openGL
Sami Gazzah 2009 248
Chapitre 10
introduction au
traitement
dimages avec OpenCV
Sami Gazzah 2009 249
Preacutesentation geacuteneacuterale
Quest-ce
Open Source Computer Vision Library
Bibliothegraveque open source de traitement des images numeacuteriques
Projet initieacute par Intel (en 1999)
Teacuteleacutechargeable sur httpsourceforgenetprojectsopencvlibrary
Fortement orienteacutee temps reacuteel
eacutecrite en C et C++
optimiseacutee pour les processeurs multi-cœurs
Multi-plateformes disponible pour Linux Windows et Mac OS X
Que contient-elle
Des fonctionnaliteacutes (structures et routines gt350 algos) de base et
avanceacutees pour bacirctir rapidement des applications autour de la vision par
ordinateur
Exemples dutilisation traitements de bas niveau (filtrage ) deacutetection
de visages reconnaissance et suivi dobjets en mouvement Sami Gazzah 2009 250
Fonctionnaliteacutes
Lectureeacutecriture dimages statiques et de seacutequences videacuteo
APIs de bas et moyen niveaux
Traitement des images binaires
Manipulations dimage (eacutechantillonnage (sampling) reacutegion dinteacuterecirct (ROI)
redimensionnement (resizing) rotation deacuteformation (warping) )
Deacutetection de contours de lignes de coins (edge detection)
Traitements multi-eacutechelles (multiscale processing)
Transformeacutees (Fourier cosinus discregravete )
Modules de haut niveau
Deacutetection reconnaissance et suivi (tracking) de visages
Flot optique (estimation du mouvement) (optical flow)
Calibrage (calibration) de la cameacutera
Mise en correspondance steacutereacuteoscopique (stereo matching)
IA et apprentissage par ordinateur (machine learning)
3D mise en correspondance (registration)
Sami Gazzah 2009 251
Modules principaux
CxCore
Types de base pour manip dimages (ex struct image point isin cxtypesh)
Structures dynamiques (listes files graphes arbres) et persistantes (LE)
Manipulations de matrices meacutethodes de lalgegravebre lineacuteaire et statistiques
Dessin en surimpression (overlay) (ex eacutetiquetage)
Cv
Traitement dimage calibrage cameacutera
Geacuteomeacutetrie algorithmique (triangulation )
Cvaux
Reconnaissance de visage
Code expeacuterimental et obsolegravete
Autres (dans otherlibs)
HighGUI ES videacuteos curseurs fenecirctrage
ML classification regroupement (clustering)Sami Gazzah 2009 252
OpenCV premiers programmesBibliothegraveque OpenCV
15122010
43
Sami Gazzah 2009 253
Livre
G Bradski amp A Kaehler laquo Learning OpenCV raquo OReilly Press (2008)
codes sources httpexamplesoreillycom9780596516130
Ressources en ligne
Reacutefeacuterence complegravete httpopencvwillowgaragecomdocumentation
Wiki httpopencvwillowgaragecomwikiFullOpenCVWiki
bullPreacutesentation teacuteleacutechargement installation
bullavec CodeBlocks httpopencvwillowgaragecomwikiCodeBlocks
bullDeacutebuter avec OpenCV FAQ
Tutoriels
httpnchcdlsourceforgenetsourceforgeopencvlibraryippocvpdf
httpdaslmemdrexeledu~noahKuntzopenCVTut1html agrave Tut11html
httpwwwcognoticscomopencvservo_2007_series
Tutoriel sur la vision utilisant OpenCV (en franccedilais)
httpwwwsiteduzerocomtutoriel-3-8631-vision-par-ordinateurhtml
Reacutefeacuterences openCV
15122010
31
Sami Gazzah 2009 181 Sami Gazzah 2009 182
3) Remarques (1)
Sami Gazzah 2009 183
3) Remarques (2)
Sami Gazzah 2009 184
II Homotheacuteties
Changement deacutechelle par rapport agrave lorigine (scaling zoom)
Ougrave Sx et Sy sont les facteurs dagrandissement ( gt1) ou de
reacuteduction ( lt1) en x et en y
ySy
xSx
y
x
Sami Gazzah 2009 185
II Homotheacuteties
Sami Gazzah 2009 186
II Homotheacuteties
15122010
32
Sami Gazzah 2009 187
III Reacuteflexions
Reacuteflexions par rapport aux axes (flip miroir)
Sami Gazzah 2009 188
IV Cisaillement
Cisaillement (glissement shearing) on eacutetire suivant un ou plusieurs axes
Sami Gazzah 2009 189
Transformations inverses
Sami Gazzah 2009 190
Repreacutesentation Matricielle
IV Autres (reacuteflexions miroirs et flips)
Sami Gazzah 2009 191
Interpolation Directe
Sami Gazzah 2009 192
oDifficile de distribuer le niveau de gris sur les pixels voisins
oOn n‟a pas la certitude que tous les pixels de l‟image
transformeacutee recevront une valeur =gt ldquotrousrdquo
15122010
33
Interpolation Inverse
Sami Gazzah 2009 193
o Interpolation de la valeur du pixel agrave partir des voisins plus
facile
oAucun ldquotrourdquo car on parcourt tous les pixels de l‟image
transformeacutee Sami Gazzah 2009 194
V Objet vectoriel - Objet bitmap
Objet vectoriel
Essentiellement on transforme
les sommets (ou points de
controcircle) et on retracehellip
Objet ldquobitmaprdquo
On doit calculer la nouvelle
position de chaque pixel De plus on
doit geacuteneacuteralement interpoler les
niveaux de gris (couleurs)hellip
Sami Gazzah 2009 195
IV Assignation des niveaux de gris
Neacutecessaire car la position d‟un pixel transformeacute n‟est pas entiegraverehellip
Plusieurs meacutethodes
Interpolation au plus proche voisin
Interpolation bilineacuteaire
Interpolation bicubique
Autres types d‟interpolation
Sami Gazzah 2009 196
IV Assignation des niveaux de gris
Linterpolation de limage cest ce qui arrive lorsquon redimensionne
une image numeacuterique ou quon la redimensionne avec une distorsion
quon change la perspective etc
Exemple 1
Image originale (sans interpolation)
Image agrandie et donc interpoleacutee
Perte de netteteacute due agrave linterpolation
Sami Gazzah 2009
197
IV Assignation des niveaux de gris
Exemple 2 recadrage dimage
Nous allons agrandir cette image agrave 180
Il va donc nous manquer des informations lagrave ougrave lon va creacuteer des
pixels pour agrandir limage
Reacutesultat sans interpolation le logiciel agrandit simplement les pixels
Reacutesultat avec interpolation le logiciel calcule une couleur intermeacutediaire
pour chaque nouveau pixel
Sami Gazzah 2009
198
IV Assignation des niveaux de gris
Image originale
Interpolation au plus
proche voisin
Interpolation
bilineacuteaireInterpolation
bicubique
15122010
34
Sami Gazzah 2009 199
IIV Interpolation au plus proche voisin
Cest lalgorithme le plus rapide agrave calculer
Prend en compte dans le calcul que le pixel le plus proche du point
agrave interpoler
Consiste tout simplement agrave agrandir chaque pixel
Exemple Interpolation du plus proche voisin par copie des pixels
Copie de chaque colonne et de chaque rang
23 20
25 28
23 23
23 23
20 20
20 20
25 25
25 25
28 28
28 28
Sami Gazzah 2009 200
IIV Interpolation bilineacuteaire
Fonction bilineacuteaire de 4 pixels voisins ( en 2 D )
i-1 i i+1
i-1 i-12 i i+12 i+1 i+32
yi=xiYi+12=(xi+xi+1)2
Problegraveme pour le dernier point
Extrapolation lineacuteaire de
2 xn-xn-1
Principe 1D
attribuer agrave chaque point cible une
combinaison lineacuteaire des quatre
points sources les plus proches par
la transformation inverse
Sami Gazzah 2009 201
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 202
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 203 Sami Gazzah 2009 204
IIV Interpolation bilineacuteaire
15122010
35
Sami Gazzah 2009 205
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 206
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 207
IIV Interpolation bilineacuteaire exemple
Sami Gazzah 2009 208
IIV Interpolation bicubique
Sami Gazzah 2009 209
exemple
Sami Gazzah 2009 210
Chapitre 8
Geacuteneacuteration de segments de
droite et de cercles en 2D
15122010
36
Sami Gazzah 2009 211
Infographie 2D besoin de dessiner des primitives de
base (segments cercles hellip)
Espace discreacutetiseacute (pixels) il faut trouver un moyen pour
afficher des segments ou des cercles
I Segments 2D cercles1 Introduction
Comment trouver les pixels agrave allumer pour approximer au mieux une
droite ou un cercle
Algorithme rapide et preacutecisSami Gazzah 2009 212
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=ax+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ya
Sami Gazzah 2009 213
Rappelhellip
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=mx+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ym
Sami Gazzah 2009 214
Exemple
Sami Gazzah 2009 215
Agrave partir des coordonneacutees des 2 extreacutemiteacutes d‟un segmenthellip
Un algorithme simple
Boucle de x1 agrave x2 dx=1
ALLUME (x Arrondir(y))
Avec x2gtx1
Arrondir(y) = Arrondir(ax+b)
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Sami Gazzah 2009 216
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Choix de lrsquoaxehellip
Peu efficace
bullagrave chaque iteacuteration 1 multiplication (ou division) + 1 addition
+ 1 arrondi
15122010
37
Sami Gazzah 2009 217
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
DDA (Digital Differential Analyzer)
y et m doivent ecirctre des reacuteelsSami Gazzah 2009 218
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Calcul en entier (donc plus rapide)
Baseacute sur le choix entre deux points discrets deacutependant de leur
distance respective avec le point reacuteel ideacuteal
On simplifie le problegraveme en traitant drsquoabord le traceacute drsquoun segment
dans le 1er octant m infeacuterieur agrave1 et positif (0ltmlt 1)
Facilement geacuteneacuteralisable aux autres octants
Sami Gazzah 2009 219
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Traceacute d‟un segment dans le premier octant mlt1
On part d‟un point (xi yi) allumeacute
Sami Gazzah 2009 220
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
On ne calcule pas reacuteellement les distances rArr on veacuterifie si la diffeacuterence
entre les deux distances est positive ou neacutegative
Le signe de la longueur (d1-d2) deacutetermine s‟il faut allumer le pixel L ou H
L
H
Sami Gazzah 2009 221
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Comme m=ΔyΔx on multiplie cette diffeacuterence par Δx pour eacuteviter la
division
Mais que vaut p1
Sami Gazzah 2009 222
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
15122010
38
Sami Gazzah 2009 223
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Pour eacuteviter de calculer cette diffeacuterence pour chaque point on cherche
une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
Sami Gazzah 2009 224
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009 225
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009
Exercice
Tracer le segment de droite
pi xi yi
2 0 0
-6 1 1
6 2 1
-2 3 2
10 4 2
2 5 3
-6 6 4
6 7 4
-2 8 5
10 9 5
2 10 6
6
10
y
x
Sami Gazzah 2009 227
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
Sami Gazzah 2009 228
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
hellip interchanger les points hellip
Si |Δx| lt | Δy| on interchange le rocircle de x et y
15122010
39
Sami Gazzah 2009 229
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (1)
Sami Gazzah 2009 230
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (2)
Sami Gazzah 2009 231
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (3)
Sami Gazzah 2009 232
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Toujours baseacute sur le choix entre deux
points discrets deacutependant de leur
distance respective avec le point reacuteel
On travaille dans le 2e octant agrave partir
de (0r) ainsi pour un point (xi yi) le
prochain point sera
(xi+1 yi) ou (xi+1 yi-1)
Sami Gazzah 2009 233
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On calcule le prochain y et les diffeacuterences respectives avec les points
discrets de la faccedilon suivante
Le signe de pi nous dira si nous devons choisir le point lateacuteral ou le diagonal
Sami Gazzah 2009 234
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Encore une fois pour eacuteviter de calculer cette diffeacuterence pour chaque point on
cherche une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
15122010
40
Sami Gazzah 2009 235
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On considegravere 2 cas
Valeur initiale
Sami Gazzah 2009 236
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Sami Gazzah 2009 237
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Exemple centre = (00) et r = 3
Sami Gazzah 2009 238
Livres
Diane Lingrand Introduction au Traitement d‟Images Paris Editions Vuibert 2e
eacutedition 2008
Steven k Feiner James D Foley John F Hughes Richard l Phillips Andries
Vanam Introduction agrave l‟infographie Paris Editions Vuibert 2000
William K Pratt Digital Image Processing Willy-Inter-sciences 4th edition 2007
Eacuteric Incerti Compression dimage ndash Algorithmes et standards Vuibert 2003
Gilles Burel Introduction au traitement dimages ndash Simulation sous Matlab
Hermegraves 2001
Sites web
Cours de C Rougier (U Montreacuteal)
httpwww-etudiroumontrealca~rougiercift2730courshtml (cf chapitre 3)
Page wikipeacutedia sur JPEG (en anglais plus complegravete que celle en franccedilais)
httpenwikipediaorgwikiJPEG
Cours de P Courtellemont (Campus numeacuterique Espdon)
httppersouniv-lrfrpcourtelespadonsite_web
Applet de deacutemo par C G Jennings
httpcgjenningscatoyboxhjpegindexhtml
Cours de D Marshall (U Cardiff)
httpwwwcscfacukDaveMultimediaPDF
Reacutefeacuterences
Sami Gazzah 2009 239
Chapitre 9
introduction au
traitement
dimages avec OpenGL
Sami Gazzah 2009 240
OpenGL est une librairie graphique Elle a eacuteteacute creacutee par Silicon
Graphics et beacuteneacuteficie sur ces machines de lacceacuteleacuteration mateacuterielle
Elle est constitueacute d‟environ 200 fonctions graphiques
OpenGL est une bibliothegraveque de fonctions
Les fonctions sont de bas niveaux
La version actuelle est l‟ laquo OpenGL 41 raquo (deacutecembre 2010)
Principale caracteacuteristique indeacutependant du mateacuteriel et du systegraveme
d‟exploitation
Une impleacutementation libre de droits dOpenGL tregraves performante a eacuteteacute
eacutecrite par Brian Paul httpwwwmesa3dorg Et tout son code source
est accessible
Preacutesentation geacuteneacuterale
15122010
41
Sami Gazzah 2009 241
OpenGL propose des fonctions de bas niveaux
Primitives geacuteomeacutetriques points segments polygones
Les fonctions de haut niveaux sont deacuteveloppeacutees par l‟utilisateur ou
importeacutees par la librairie en amont d‟OpenGL
Primitives geacuteomeacutetriques complexes Sphegravere splines etc
Toutes les commandes et fonctions utilisent le preacutefixe gl
Exemple glColor2f()
Sami Gazzah 2009 242
Les Bibliothegraveques co-existant avec OpenGL
GLU OpenGL Utility Library contient les routines de bas niveau pour
geacuterer les matrices de transformation et de projection la facettisation des
polygones et le rendu de surface Les bibliothegraveques dextension du
systegraveme de fenecirctres permettent lutilisation du rendu OpenGL Il sagit de
GLX pour X Windows (fonctions ayant pour preacutefixe glX) et de WGL
pour Microsoft Windows (fonctions ayant pour preacutefixe wgl)
GLUT OpenGL Utility Toolkit est une boite agrave outils indeacutependante du
systegraveme de fenecirctrage eacutecrite par Mark
Kilgard pour simplifier la tacircche dutiliser des systegravemes diffeacuterents (fonctions
ayant pour preacutefixe glut)
Sami Gazzah 2009 243
Les primitives geacuteomeacutetriques d rsquoOpenGL
Les primitives sont deacutecrites par un bloc d‟instructions deacutelimiteacute par glBegin et glEnd
Ce bloc contient geacuteneacuteralement une liste de vertex Exemple
glBegin(GL_LINE_LOOP)
glVertex2f(-05 -05)
glVertex2f(05 -05)
glVertex2f(05 05)
glVertex2f(-05 05)
glEnd()
D‟autres attributs peuvent ecirctre speacutecifieacutes en chaque sommet
couleur normale coordonneacutee de texture etcSami Gazzah 2009 244
OpenGL est une machine agrave eacutetats
En modifiant les variables d‟eacutetats on peut changer le style de rendu
Sami Gazzah 2009 245
Exemple Honda Hippo (3dRendercom)
Placage de textures
bullL‟apparence et le toucher ( feel ) d‟une surface
bullUne image utiliseacutee pour deacutefinir les caracteacuteristiques d‟une surface
bullUne image multi-dimensionnelle qui est plaqueacutee sur un espace multi-
dimensionnel
Sami Gazzah 2009 246
15122010
42
Sami Gazzah 2009 247
Reacutefeacuterences openGL
Sami Gazzah 2009 248
Chapitre 10
introduction au
traitement
dimages avec OpenCV
Sami Gazzah 2009 249
Preacutesentation geacuteneacuterale
Quest-ce
Open Source Computer Vision Library
Bibliothegraveque open source de traitement des images numeacuteriques
Projet initieacute par Intel (en 1999)
Teacuteleacutechargeable sur httpsourceforgenetprojectsopencvlibrary
Fortement orienteacutee temps reacuteel
eacutecrite en C et C++
optimiseacutee pour les processeurs multi-cœurs
Multi-plateformes disponible pour Linux Windows et Mac OS X
Que contient-elle
Des fonctionnaliteacutes (structures et routines gt350 algos) de base et
avanceacutees pour bacirctir rapidement des applications autour de la vision par
ordinateur
Exemples dutilisation traitements de bas niveau (filtrage ) deacutetection
de visages reconnaissance et suivi dobjets en mouvement Sami Gazzah 2009 250
Fonctionnaliteacutes
Lectureeacutecriture dimages statiques et de seacutequences videacuteo
APIs de bas et moyen niveaux
Traitement des images binaires
Manipulations dimage (eacutechantillonnage (sampling) reacutegion dinteacuterecirct (ROI)
redimensionnement (resizing) rotation deacuteformation (warping) )
Deacutetection de contours de lignes de coins (edge detection)
Traitements multi-eacutechelles (multiscale processing)
Transformeacutees (Fourier cosinus discregravete )
Modules de haut niveau
Deacutetection reconnaissance et suivi (tracking) de visages
Flot optique (estimation du mouvement) (optical flow)
Calibrage (calibration) de la cameacutera
Mise en correspondance steacutereacuteoscopique (stereo matching)
IA et apprentissage par ordinateur (machine learning)
3D mise en correspondance (registration)
Sami Gazzah 2009 251
Modules principaux
CxCore
Types de base pour manip dimages (ex struct image point isin cxtypesh)
Structures dynamiques (listes files graphes arbres) et persistantes (LE)
Manipulations de matrices meacutethodes de lalgegravebre lineacuteaire et statistiques
Dessin en surimpression (overlay) (ex eacutetiquetage)
Cv
Traitement dimage calibrage cameacutera
Geacuteomeacutetrie algorithmique (triangulation )
Cvaux
Reconnaissance de visage
Code expeacuterimental et obsolegravete
Autres (dans otherlibs)
HighGUI ES videacuteos curseurs fenecirctrage
ML classification regroupement (clustering)Sami Gazzah 2009 252
OpenCV premiers programmesBibliothegraveque OpenCV
15122010
43
Sami Gazzah 2009 253
Livre
G Bradski amp A Kaehler laquo Learning OpenCV raquo OReilly Press (2008)
codes sources httpexamplesoreillycom9780596516130
Ressources en ligne
Reacutefeacuterence complegravete httpopencvwillowgaragecomdocumentation
Wiki httpopencvwillowgaragecomwikiFullOpenCVWiki
bullPreacutesentation teacuteleacutechargement installation
bullavec CodeBlocks httpopencvwillowgaragecomwikiCodeBlocks
bullDeacutebuter avec OpenCV FAQ
Tutoriels
httpnchcdlsourceforgenetsourceforgeopencvlibraryippocvpdf
httpdaslmemdrexeledu~noahKuntzopenCVTut1html agrave Tut11html
httpwwwcognoticscomopencvservo_2007_series
Tutoriel sur la vision utilisant OpenCV (en franccedilais)
httpwwwsiteduzerocomtutoriel-3-8631-vision-par-ordinateurhtml
Reacutefeacuterences openCV
15122010
32
Sami Gazzah 2009 187
III Reacuteflexions
Reacuteflexions par rapport aux axes (flip miroir)
Sami Gazzah 2009 188
IV Cisaillement
Cisaillement (glissement shearing) on eacutetire suivant un ou plusieurs axes
Sami Gazzah 2009 189
Transformations inverses
Sami Gazzah 2009 190
Repreacutesentation Matricielle
IV Autres (reacuteflexions miroirs et flips)
Sami Gazzah 2009 191
Interpolation Directe
Sami Gazzah 2009 192
oDifficile de distribuer le niveau de gris sur les pixels voisins
oOn n‟a pas la certitude que tous les pixels de l‟image
transformeacutee recevront une valeur =gt ldquotrousrdquo
15122010
33
Interpolation Inverse
Sami Gazzah 2009 193
o Interpolation de la valeur du pixel agrave partir des voisins plus
facile
oAucun ldquotrourdquo car on parcourt tous les pixels de l‟image
transformeacutee Sami Gazzah 2009 194
V Objet vectoriel - Objet bitmap
Objet vectoriel
Essentiellement on transforme
les sommets (ou points de
controcircle) et on retracehellip
Objet ldquobitmaprdquo
On doit calculer la nouvelle
position de chaque pixel De plus on
doit geacuteneacuteralement interpoler les
niveaux de gris (couleurs)hellip
Sami Gazzah 2009 195
IV Assignation des niveaux de gris
Neacutecessaire car la position d‟un pixel transformeacute n‟est pas entiegraverehellip
Plusieurs meacutethodes
Interpolation au plus proche voisin
Interpolation bilineacuteaire
Interpolation bicubique
Autres types d‟interpolation
Sami Gazzah 2009 196
IV Assignation des niveaux de gris
Linterpolation de limage cest ce qui arrive lorsquon redimensionne
une image numeacuterique ou quon la redimensionne avec une distorsion
quon change la perspective etc
Exemple 1
Image originale (sans interpolation)
Image agrandie et donc interpoleacutee
Perte de netteteacute due agrave linterpolation
Sami Gazzah 2009
197
IV Assignation des niveaux de gris
Exemple 2 recadrage dimage
Nous allons agrandir cette image agrave 180
Il va donc nous manquer des informations lagrave ougrave lon va creacuteer des
pixels pour agrandir limage
Reacutesultat sans interpolation le logiciel agrandit simplement les pixels
Reacutesultat avec interpolation le logiciel calcule une couleur intermeacutediaire
pour chaque nouveau pixel
Sami Gazzah 2009
198
IV Assignation des niveaux de gris
Image originale
Interpolation au plus
proche voisin
Interpolation
bilineacuteaireInterpolation
bicubique
15122010
34
Sami Gazzah 2009 199
IIV Interpolation au plus proche voisin
Cest lalgorithme le plus rapide agrave calculer
Prend en compte dans le calcul que le pixel le plus proche du point
agrave interpoler
Consiste tout simplement agrave agrandir chaque pixel
Exemple Interpolation du plus proche voisin par copie des pixels
Copie de chaque colonne et de chaque rang
23 20
25 28
23 23
23 23
20 20
20 20
25 25
25 25
28 28
28 28
Sami Gazzah 2009 200
IIV Interpolation bilineacuteaire
Fonction bilineacuteaire de 4 pixels voisins ( en 2 D )
i-1 i i+1
i-1 i-12 i i+12 i+1 i+32
yi=xiYi+12=(xi+xi+1)2
Problegraveme pour le dernier point
Extrapolation lineacuteaire de
2 xn-xn-1
Principe 1D
attribuer agrave chaque point cible une
combinaison lineacuteaire des quatre
points sources les plus proches par
la transformation inverse
Sami Gazzah 2009 201
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 202
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 203 Sami Gazzah 2009 204
IIV Interpolation bilineacuteaire
15122010
35
Sami Gazzah 2009 205
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 206
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 207
IIV Interpolation bilineacuteaire exemple
Sami Gazzah 2009 208
IIV Interpolation bicubique
Sami Gazzah 2009 209
exemple
Sami Gazzah 2009 210
Chapitre 8
Geacuteneacuteration de segments de
droite et de cercles en 2D
15122010
36
Sami Gazzah 2009 211
Infographie 2D besoin de dessiner des primitives de
base (segments cercles hellip)
Espace discreacutetiseacute (pixels) il faut trouver un moyen pour
afficher des segments ou des cercles
I Segments 2D cercles1 Introduction
Comment trouver les pixels agrave allumer pour approximer au mieux une
droite ou un cercle
Algorithme rapide et preacutecisSami Gazzah 2009 212
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=ax+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ya
Sami Gazzah 2009 213
Rappelhellip
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=mx+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ym
Sami Gazzah 2009 214
Exemple
Sami Gazzah 2009 215
Agrave partir des coordonneacutees des 2 extreacutemiteacutes d‟un segmenthellip
Un algorithme simple
Boucle de x1 agrave x2 dx=1
ALLUME (x Arrondir(y))
Avec x2gtx1
Arrondir(y) = Arrondir(ax+b)
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Sami Gazzah 2009 216
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Choix de lrsquoaxehellip
Peu efficace
bullagrave chaque iteacuteration 1 multiplication (ou division) + 1 addition
+ 1 arrondi
15122010
37
Sami Gazzah 2009 217
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
DDA (Digital Differential Analyzer)
y et m doivent ecirctre des reacuteelsSami Gazzah 2009 218
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Calcul en entier (donc plus rapide)
Baseacute sur le choix entre deux points discrets deacutependant de leur
distance respective avec le point reacuteel ideacuteal
On simplifie le problegraveme en traitant drsquoabord le traceacute drsquoun segment
dans le 1er octant m infeacuterieur agrave1 et positif (0ltmlt 1)
Facilement geacuteneacuteralisable aux autres octants
Sami Gazzah 2009 219
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Traceacute d‟un segment dans le premier octant mlt1
On part d‟un point (xi yi) allumeacute
Sami Gazzah 2009 220
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
On ne calcule pas reacuteellement les distances rArr on veacuterifie si la diffeacuterence
entre les deux distances est positive ou neacutegative
Le signe de la longueur (d1-d2) deacutetermine s‟il faut allumer le pixel L ou H
L
H
Sami Gazzah 2009 221
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Comme m=ΔyΔx on multiplie cette diffeacuterence par Δx pour eacuteviter la
division
Mais que vaut p1
Sami Gazzah 2009 222
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
15122010
38
Sami Gazzah 2009 223
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Pour eacuteviter de calculer cette diffeacuterence pour chaque point on cherche
une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
Sami Gazzah 2009 224
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009 225
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009
Exercice
Tracer le segment de droite
pi xi yi
2 0 0
-6 1 1
6 2 1
-2 3 2
10 4 2
2 5 3
-6 6 4
6 7 4
-2 8 5
10 9 5
2 10 6
6
10
y
x
Sami Gazzah 2009 227
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
Sami Gazzah 2009 228
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
hellip interchanger les points hellip
Si |Δx| lt | Δy| on interchange le rocircle de x et y
15122010
39
Sami Gazzah 2009 229
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (1)
Sami Gazzah 2009 230
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (2)
Sami Gazzah 2009 231
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (3)
Sami Gazzah 2009 232
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Toujours baseacute sur le choix entre deux
points discrets deacutependant de leur
distance respective avec le point reacuteel
On travaille dans le 2e octant agrave partir
de (0r) ainsi pour un point (xi yi) le
prochain point sera
(xi+1 yi) ou (xi+1 yi-1)
Sami Gazzah 2009 233
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On calcule le prochain y et les diffeacuterences respectives avec les points
discrets de la faccedilon suivante
Le signe de pi nous dira si nous devons choisir le point lateacuteral ou le diagonal
Sami Gazzah 2009 234
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Encore une fois pour eacuteviter de calculer cette diffeacuterence pour chaque point on
cherche une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
15122010
40
Sami Gazzah 2009 235
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On considegravere 2 cas
Valeur initiale
Sami Gazzah 2009 236
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Sami Gazzah 2009 237
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Exemple centre = (00) et r = 3
Sami Gazzah 2009 238
Livres
Diane Lingrand Introduction au Traitement d‟Images Paris Editions Vuibert 2e
eacutedition 2008
Steven k Feiner James D Foley John F Hughes Richard l Phillips Andries
Vanam Introduction agrave l‟infographie Paris Editions Vuibert 2000
William K Pratt Digital Image Processing Willy-Inter-sciences 4th edition 2007
Eacuteric Incerti Compression dimage ndash Algorithmes et standards Vuibert 2003
Gilles Burel Introduction au traitement dimages ndash Simulation sous Matlab
Hermegraves 2001
Sites web
Cours de C Rougier (U Montreacuteal)
httpwww-etudiroumontrealca~rougiercift2730courshtml (cf chapitre 3)
Page wikipeacutedia sur JPEG (en anglais plus complegravete que celle en franccedilais)
httpenwikipediaorgwikiJPEG
Cours de P Courtellemont (Campus numeacuterique Espdon)
httppersouniv-lrfrpcourtelespadonsite_web
Applet de deacutemo par C G Jennings
httpcgjenningscatoyboxhjpegindexhtml
Cours de D Marshall (U Cardiff)
httpwwwcscfacukDaveMultimediaPDF
Reacutefeacuterences
Sami Gazzah 2009 239
Chapitre 9
introduction au
traitement
dimages avec OpenGL
Sami Gazzah 2009 240
OpenGL est une librairie graphique Elle a eacuteteacute creacutee par Silicon
Graphics et beacuteneacuteficie sur ces machines de lacceacuteleacuteration mateacuterielle
Elle est constitueacute d‟environ 200 fonctions graphiques
OpenGL est une bibliothegraveque de fonctions
Les fonctions sont de bas niveaux
La version actuelle est l‟ laquo OpenGL 41 raquo (deacutecembre 2010)
Principale caracteacuteristique indeacutependant du mateacuteriel et du systegraveme
d‟exploitation
Une impleacutementation libre de droits dOpenGL tregraves performante a eacuteteacute
eacutecrite par Brian Paul httpwwwmesa3dorg Et tout son code source
est accessible
Preacutesentation geacuteneacuterale
15122010
41
Sami Gazzah 2009 241
OpenGL propose des fonctions de bas niveaux
Primitives geacuteomeacutetriques points segments polygones
Les fonctions de haut niveaux sont deacuteveloppeacutees par l‟utilisateur ou
importeacutees par la librairie en amont d‟OpenGL
Primitives geacuteomeacutetriques complexes Sphegravere splines etc
Toutes les commandes et fonctions utilisent le preacutefixe gl
Exemple glColor2f()
Sami Gazzah 2009 242
Les Bibliothegraveques co-existant avec OpenGL
GLU OpenGL Utility Library contient les routines de bas niveau pour
geacuterer les matrices de transformation et de projection la facettisation des
polygones et le rendu de surface Les bibliothegraveques dextension du
systegraveme de fenecirctres permettent lutilisation du rendu OpenGL Il sagit de
GLX pour X Windows (fonctions ayant pour preacutefixe glX) et de WGL
pour Microsoft Windows (fonctions ayant pour preacutefixe wgl)
GLUT OpenGL Utility Toolkit est une boite agrave outils indeacutependante du
systegraveme de fenecirctrage eacutecrite par Mark
Kilgard pour simplifier la tacircche dutiliser des systegravemes diffeacuterents (fonctions
ayant pour preacutefixe glut)
Sami Gazzah 2009 243
Les primitives geacuteomeacutetriques d rsquoOpenGL
Les primitives sont deacutecrites par un bloc d‟instructions deacutelimiteacute par glBegin et glEnd
Ce bloc contient geacuteneacuteralement une liste de vertex Exemple
glBegin(GL_LINE_LOOP)
glVertex2f(-05 -05)
glVertex2f(05 -05)
glVertex2f(05 05)
glVertex2f(-05 05)
glEnd()
D‟autres attributs peuvent ecirctre speacutecifieacutes en chaque sommet
couleur normale coordonneacutee de texture etcSami Gazzah 2009 244
OpenGL est une machine agrave eacutetats
En modifiant les variables d‟eacutetats on peut changer le style de rendu
Sami Gazzah 2009 245
Exemple Honda Hippo (3dRendercom)
Placage de textures
bullL‟apparence et le toucher ( feel ) d‟une surface
bullUne image utiliseacutee pour deacutefinir les caracteacuteristiques d‟une surface
bullUne image multi-dimensionnelle qui est plaqueacutee sur un espace multi-
dimensionnel
Sami Gazzah 2009 246
15122010
42
Sami Gazzah 2009 247
Reacutefeacuterences openGL
Sami Gazzah 2009 248
Chapitre 10
introduction au
traitement
dimages avec OpenCV
Sami Gazzah 2009 249
Preacutesentation geacuteneacuterale
Quest-ce
Open Source Computer Vision Library
Bibliothegraveque open source de traitement des images numeacuteriques
Projet initieacute par Intel (en 1999)
Teacuteleacutechargeable sur httpsourceforgenetprojectsopencvlibrary
Fortement orienteacutee temps reacuteel
eacutecrite en C et C++
optimiseacutee pour les processeurs multi-cœurs
Multi-plateformes disponible pour Linux Windows et Mac OS X
Que contient-elle
Des fonctionnaliteacutes (structures et routines gt350 algos) de base et
avanceacutees pour bacirctir rapidement des applications autour de la vision par
ordinateur
Exemples dutilisation traitements de bas niveau (filtrage ) deacutetection
de visages reconnaissance et suivi dobjets en mouvement Sami Gazzah 2009 250
Fonctionnaliteacutes
Lectureeacutecriture dimages statiques et de seacutequences videacuteo
APIs de bas et moyen niveaux
Traitement des images binaires
Manipulations dimage (eacutechantillonnage (sampling) reacutegion dinteacuterecirct (ROI)
redimensionnement (resizing) rotation deacuteformation (warping) )
Deacutetection de contours de lignes de coins (edge detection)
Traitements multi-eacutechelles (multiscale processing)
Transformeacutees (Fourier cosinus discregravete )
Modules de haut niveau
Deacutetection reconnaissance et suivi (tracking) de visages
Flot optique (estimation du mouvement) (optical flow)
Calibrage (calibration) de la cameacutera
Mise en correspondance steacutereacuteoscopique (stereo matching)
IA et apprentissage par ordinateur (machine learning)
3D mise en correspondance (registration)
Sami Gazzah 2009 251
Modules principaux
CxCore
Types de base pour manip dimages (ex struct image point isin cxtypesh)
Structures dynamiques (listes files graphes arbres) et persistantes (LE)
Manipulations de matrices meacutethodes de lalgegravebre lineacuteaire et statistiques
Dessin en surimpression (overlay) (ex eacutetiquetage)
Cv
Traitement dimage calibrage cameacutera
Geacuteomeacutetrie algorithmique (triangulation )
Cvaux
Reconnaissance de visage
Code expeacuterimental et obsolegravete
Autres (dans otherlibs)
HighGUI ES videacuteos curseurs fenecirctrage
ML classification regroupement (clustering)Sami Gazzah 2009 252
OpenCV premiers programmesBibliothegraveque OpenCV
15122010
43
Sami Gazzah 2009 253
Livre
G Bradski amp A Kaehler laquo Learning OpenCV raquo OReilly Press (2008)
codes sources httpexamplesoreillycom9780596516130
Ressources en ligne
Reacutefeacuterence complegravete httpopencvwillowgaragecomdocumentation
Wiki httpopencvwillowgaragecomwikiFullOpenCVWiki
bullPreacutesentation teacuteleacutechargement installation
bullavec CodeBlocks httpopencvwillowgaragecomwikiCodeBlocks
bullDeacutebuter avec OpenCV FAQ
Tutoriels
httpnchcdlsourceforgenetsourceforgeopencvlibraryippocvpdf
httpdaslmemdrexeledu~noahKuntzopenCVTut1html agrave Tut11html
httpwwwcognoticscomopencvservo_2007_series
Tutoriel sur la vision utilisant OpenCV (en franccedilais)
httpwwwsiteduzerocomtutoriel-3-8631-vision-par-ordinateurhtml
Reacutefeacuterences openCV
15122010
33
Interpolation Inverse
Sami Gazzah 2009 193
o Interpolation de la valeur du pixel agrave partir des voisins plus
facile
oAucun ldquotrourdquo car on parcourt tous les pixels de l‟image
transformeacutee Sami Gazzah 2009 194
V Objet vectoriel - Objet bitmap
Objet vectoriel
Essentiellement on transforme
les sommets (ou points de
controcircle) et on retracehellip
Objet ldquobitmaprdquo
On doit calculer la nouvelle
position de chaque pixel De plus on
doit geacuteneacuteralement interpoler les
niveaux de gris (couleurs)hellip
Sami Gazzah 2009 195
IV Assignation des niveaux de gris
Neacutecessaire car la position d‟un pixel transformeacute n‟est pas entiegraverehellip
Plusieurs meacutethodes
Interpolation au plus proche voisin
Interpolation bilineacuteaire
Interpolation bicubique
Autres types d‟interpolation
Sami Gazzah 2009 196
IV Assignation des niveaux de gris
Linterpolation de limage cest ce qui arrive lorsquon redimensionne
une image numeacuterique ou quon la redimensionne avec une distorsion
quon change la perspective etc
Exemple 1
Image originale (sans interpolation)
Image agrandie et donc interpoleacutee
Perte de netteteacute due agrave linterpolation
Sami Gazzah 2009
197
IV Assignation des niveaux de gris
Exemple 2 recadrage dimage
Nous allons agrandir cette image agrave 180
Il va donc nous manquer des informations lagrave ougrave lon va creacuteer des
pixels pour agrandir limage
Reacutesultat sans interpolation le logiciel agrandit simplement les pixels
Reacutesultat avec interpolation le logiciel calcule une couleur intermeacutediaire
pour chaque nouveau pixel
Sami Gazzah 2009
198
IV Assignation des niveaux de gris
Image originale
Interpolation au plus
proche voisin
Interpolation
bilineacuteaireInterpolation
bicubique
15122010
34
Sami Gazzah 2009 199
IIV Interpolation au plus proche voisin
Cest lalgorithme le plus rapide agrave calculer
Prend en compte dans le calcul que le pixel le plus proche du point
agrave interpoler
Consiste tout simplement agrave agrandir chaque pixel
Exemple Interpolation du plus proche voisin par copie des pixels
Copie de chaque colonne et de chaque rang
23 20
25 28
23 23
23 23
20 20
20 20
25 25
25 25
28 28
28 28
Sami Gazzah 2009 200
IIV Interpolation bilineacuteaire
Fonction bilineacuteaire de 4 pixels voisins ( en 2 D )
i-1 i i+1
i-1 i-12 i i+12 i+1 i+32
yi=xiYi+12=(xi+xi+1)2
Problegraveme pour le dernier point
Extrapolation lineacuteaire de
2 xn-xn-1
Principe 1D
attribuer agrave chaque point cible une
combinaison lineacuteaire des quatre
points sources les plus proches par
la transformation inverse
Sami Gazzah 2009 201
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 202
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 203 Sami Gazzah 2009 204
IIV Interpolation bilineacuteaire
15122010
35
Sami Gazzah 2009 205
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 206
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 207
IIV Interpolation bilineacuteaire exemple
Sami Gazzah 2009 208
IIV Interpolation bicubique
Sami Gazzah 2009 209
exemple
Sami Gazzah 2009 210
Chapitre 8
Geacuteneacuteration de segments de
droite et de cercles en 2D
15122010
36
Sami Gazzah 2009 211
Infographie 2D besoin de dessiner des primitives de
base (segments cercles hellip)
Espace discreacutetiseacute (pixels) il faut trouver un moyen pour
afficher des segments ou des cercles
I Segments 2D cercles1 Introduction
Comment trouver les pixels agrave allumer pour approximer au mieux une
droite ou un cercle
Algorithme rapide et preacutecisSami Gazzah 2009 212
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=ax+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ya
Sami Gazzah 2009 213
Rappelhellip
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=mx+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ym
Sami Gazzah 2009 214
Exemple
Sami Gazzah 2009 215
Agrave partir des coordonneacutees des 2 extreacutemiteacutes d‟un segmenthellip
Un algorithme simple
Boucle de x1 agrave x2 dx=1
ALLUME (x Arrondir(y))
Avec x2gtx1
Arrondir(y) = Arrondir(ax+b)
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Sami Gazzah 2009 216
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Choix de lrsquoaxehellip
Peu efficace
bullagrave chaque iteacuteration 1 multiplication (ou division) + 1 addition
+ 1 arrondi
15122010
37
Sami Gazzah 2009 217
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
DDA (Digital Differential Analyzer)
y et m doivent ecirctre des reacuteelsSami Gazzah 2009 218
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Calcul en entier (donc plus rapide)
Baseacute sur le choix entre deux points discrets deacutependant de leur
distance respective avec le point reacuteel ideacuteal
On simplifie le problegraveme en traitant drsquoabord le traceacute drsquoun segment
dans le 1er octant m infeacuterieur agrave1 et positif (0ltmlt 1)
Facilement geacuteneacuteralisable aux autres octants
Sami Gazzah 2009 219
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Traceacute d‟un segment dans le premier octant mlt1
On part d‟un point (xi yi) allumeacute
Sami Gazzah 2009 220
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
On ne calcule pas reacuteellement les distances rArr on veacuterifie si la diffeacuterence
entre les deux distances est positive ou neacutegative
Le signe de la longueur (d1-d2) deacutetermine s‟il faut allumer le pixel L ou H
L
H
Sami Gazzah 2009 221
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Comme m=ΔyΔx on multiplie cette diffeacuterence par Δx pour eacuteviter la
division
Mais que vaut p1
Sami Gazzah 2009 222
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
15122010
38
Sami Gazzah 2009 223
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Pour eacuteviter de calculer cette diffeacuterence pour chaque point on cherche
une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
Sami Gazzah 2009 224
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009 225
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009
Exercice
Tracer le segment de droite
pi xi yi
2 0 0
-6 1 1
6 2 1
-2 3 2
10 4 2
2 5 3
-6 6 4
6 7 4
-2 8 5
10 9 5
2 10 6
6
10
y
x
Sami Gazzah 2009 227
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
Sami Gazzah 2009 228
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
hellip interchanger les points hellip
Si |Δx| lt | Δy| on interchange le rocircle de x et y
15122010
39
Sami Gazzah 2009 229
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (1)
Sami Gazzah 2009 230
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (2)
Sami Gazzah 2009 231
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (3)
Sami Gazzah 2009 232
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Toujours baseacute sur le choix entre deux
points discrets deacutependant de leur
distance respective avec le point reacuteel
On travaille dans le 2e octant agrave partir
de (0r) ainsi pour un point (xi yi) le
prochain point sera
(xi+1 yi) ou (xi+1 yi-1)
Sami Gazzah 2009 233
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On calcule le prochain y et les diffeacuterences respectives avec les points
discrets de la faccedilon suivante
Le signe de pi nous dira si nous devons choisir le point lateacuteral ou le diagonal
Sami Gazzah 2009 234
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Encore une fois pour eacuteviter de calculer cette diffeacuterence pour chaque point on
cherche une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
15122010
40
Sami Gazzah 2009 235
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On considegravere 2 cas
Valeur initiale
Sami Gazzah 2009 236
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Sami Gazzah 2009 237
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Exemple centre = (00) et r = 3
Sami Gazzah 2009 238
Livres
Diane Lingrand Introduction au Traitement d‟Images Paris Editions Vuibert 2e
eacutedition 2008
Steven k Feiner James D Foley John F Hughes Richard l Phillips Andries
Vanam Introduction agrave l‟infographie Paris Editions Vuibert 2000
William K Pratt Digital Image Processing Willy-Inter-sciences 4th edition 2007
Eacuteric Incerti Compression dimage ndash Algorithmes et standards Vuibert 2003
Gilles Burel Introduction au traitement dimages ndash Simulation sous Matlab
Hermegraves 2001
Sites web
Cours de C Rougier (U Montreacuteal)
httpwww-etudiroumontrealca~rougiercift2730courshtml (cf chapitre 3)
Page wikipeacutedia sur JPEG (en anglais plus complegravete que celle en franccedilais)
httpenwikipediaorgwikiJPEG
Cours de P Courtellemont (Campus numeacuterique Espdon)
httppersouniv-lrfrpcourtelespadonsite_web
Applet de deacutemo par C G Jennings
httpcgjenningscatoyboxhjpegindexhtml
Cours de D Marshall (U Cardiff)
httpwwwcscfacukDaveMultimediaPDF
Reacutefeacuterences
Sami Gazzah 2009 239
Chapitre 9
introduction au
traitement
dimages avec OpenGL
Sami Gazzah 2009 240
OpenGL est une librairie graphique Elle a eacuteteacute creacutee par Silicon
Graphics et beacuteneacuteficie sur ces machines de lacceacuteleacuteration mateacuterielle
Elle est constitueacute d‟environ 200 fonctions graphiques
OpenGL est une bibliothegraveque de fonctions
Les fonctions sont de bas niveaux
La version actuelle est l‟ laquo OpenGL 41 raquo (deacutecembre 2010)
Principale caracteacuteristique indeacutependant du mateacuteriel et du systegraveme
d‟exploitation
Une impleacutementation libre de droits dOpenGL tregraves performante a eacuteteacute
eacutecrite par Brian Paul httpwwwmesa3dorg Et tout son code source
est accessible
Preacutesentation geacuteneacuterale
15122010
41
Sami Gazzah 2009 241
OpenGL propose des fonctions de bas niveaux
Primitives geacuteomeacutetriques points segments polygones
Les fonctions de haut niveaux sont deacuteveloppeacutees par l‟utilisateur ou
importeacutees par la librairie en amont d‟OpenGL
Primitives geacuteomeacutetriques complexes Sphegravere splines etc
Toutes les commandes et fonctions utilisent le preacutefixe gl
Exemple glColor2f()
Sami Gazzah 2009 242
Les Bibliothegraveques co-existant avec OpenGL
GLU OpenGL Utility Library contient les routines de bas niveau pour
geacuterer les matrices de transformation et de projection la facettisation des
polygones et le rendu de surface Les bibliothegraveques dextension du
systegraveme de fenecirctres permettent lutilisation du rendu OpenGL Il sagit de
GLX pour X Windows (fonctions ayant pour preacutefixe glX) et de WGL
pour Microsoft Windows (fonctions ayant pour preacutefixe wgl)
GLUT OpenGL Utility Toolkit est une boite agrave outils indeacutependante du
systegraveme de fenecirctrage eacutecrite par Mark
Kilgard pour simplifier la tacircche dutiliser des systegravemes diffeacuterents (fonctions
ayant pour preacutefixe glut)
Sami Gazzah 2009 243
Les primitives geacuteomeacutetriques d rsquoOpenGL
Les primitives sont deacutecrites par un bloc d‟instructions deacutelimiteacute par glBegin et glEnd
Ce bloc contient geacuteneacuteralement une liste de vertex Exemple
glBegin(GL_LINE_LOOP)
glVertex2f(-05 -05)
glVertex2f(05 -05)
glVertex2f(05 05)
glVertex2f(-05 05)
glEnd()
D‟autres attributs peuvent ecirctre speacutecifieacutes en chaque sommet
couleur normale coordonneacutee de texture etcSami Gazzah 2009 244
OpenGL est une machine agrave eacutetats
En modifiant les variables d‟eacutetats on peut changer le style de rendu
Sami Gazzah 2009 245
Exemple Honda Hippo (3dRendercom)
Placage de textures
bullL‟apparence et le toucher ( feel ) d‟une surface
bullUne image utiliseacutee pour deacutefinir les caracteacuteristiques d‟une surface
bullUne image multi-dimensionnelle qui est plaqueacutee sur un espace multi-
dimensionnel
Sami Gazzah 2009 246
15122010
42
Sami Gazzah 2009 247
Reacutefeacuterences openGL
Sami Gazzah 2009 248
Chapitre 10
introduction au
traitement
dimages avec OpenCV
Sami Gazzah 2009 249
Preacutesentation geacuteneacuterale
Quest-ce
Open Source Computer Vision Library
Bibliothegraveque open source de traitement des images numeacuteriques
Projet initieacute par Intel (en 1999)
Teacuteleacutechargeable sur httpsourceforgenetprojectsopencvlibrary
Fortement orienteacutee temps reacuteel
eacutecrite en C et C++
optimiseacutee pour les processeurs multi-cœurs
Multi-plateformes disponible pour Linux Windows et Mac OS X
Que contient-elle
Des fonctionnaliteacutes (structures et routines gt350 algos) de base et
avanceacutees pour bacirctir rapidement des applications autour de la vision par
ordinateur
Exemples dutilisation traitements de bas niveau (filtrage ) deacutetection
de visages reconnaissance et suivi dobjets en mouvement Sami Gazzah 2009 250
Fonctionnaliteacutes
Lectureeacutecriture dimages statiques et de seacutequences videacuteo
APIs de bas et moyen niveaux
Traitement des images binaires
Manipulations dimage (eacutechantillonnage (sampling) reacutegion dinteacuterecirct (ROI)
redimensionnement (resizing) rotation deacuteformation (warping) )
Deacutetection de contours de lignes de coins (edge detection)
Traitements multi-eacutechelles (multiscale processing)
Transformeacutees (Fourier cosinus discregravete )
Modules de haut niveau
Deacutetection reconnaissance et suivi (tracking) de visages
Flot optique (estimation du mouvement) (optical flow)
Calibrage (calibration) de la cameacutera
Mise en correspondance steacutereacuteoscopique (stereo matching)
IA et apprentissage par ordinateur (machine learning)
3D mise en correspondance (registration)
Sami Gazzah 2009 251
Modules principaux
CxCore
Types de base pour manip dimages (ex struct image point isin cxtypesh)
Structures dynamiques (listes files graphes arbres) et persistantes (LE)
Manipulations de matrices meacutethodes de lalgegravebre lineacuteaire et statistiques
Dessin en surimpression (overlay) (ex eacutetiquetage)
Cv
Traitement dimage calibrage cameacutera
Geacuteomeacutetrie algorithmique (triangulation )
Cvaux
Reconnaissance de visage
Code expeacuterimental et obsolegravete
Autres (dans otherlibs)
HighGUI ES videacuteos curseurs fenecirctrage
ML classification regroupement (clustering)Sami Gazzah 2009 252
OpenCV premiers programmesBibliothegraveque OpenCV
15122010
43
Sami Gazzah 2009 253
Livre
G Bradski amp A Kaehler laquo Learning OpenCV raquo OReilly Press (2008)
codes sources httpexamplesoreillycom9780596516130
Ressources en ligne
Reacutefeacuterence complegravete httpopencvwillowgaragecomdocumentation
Wiki httpopencvwillowgaragecomwikiFullOpenCVWiki
bullPreacutesentation teacuteleacutechargement installation
bullavec CodeBlocks httpopencvwillowgaragecomwikiCodeBlocks
bullDeacutebuter avec OpenCV FAQ
Tutoriels
httpnchcdlsourceforgenetsourceforgeopencvlibraryippocvpdf
httpdaslmemdrexeledu~noahKuntzopenCVTut1html agrave Tut11html
httpwwwcognoticscomopencvservo_2007_series
Tutoriel sur la vision utilisant OpenCV (en franccedilais)
httpwwwsiteduzerocomtutoriel-3-8631-vision-par-ordinateurhtml
Reacutefeacuterences openCV
15122010
34
Sami Gazzah 2009 199
IIV Interpolation au plus proche voisin
Cest lalgorithme le plus rapide agrave calculer
Prend en compte dans le calcul que le pixel le plus proche du point
agrave interpoler
Consiste tout simplement agrave agrandir chaque pixel
Exemple Interpolation du plus proche voisin par copie des pixels
Copie de chaque colonne et de chaque rang
23 20
25 28
23 23
23 23
20 20
20 20
25 25
25 25
28 28
28 28
Sami Gazzah 2009 200
IIV Interpolation bilineacuteaire
Fonction bilineacuteaire de 4 pixels voisins ( en 2 D )
i-1 i i+1
i-1 i-12 i i+12 i+1 i+32
yi=xiYi+12=(xi+xi+1)2
Problegraveme pour le dernier point
Extrapolation lineacuteaire de
2 xn-xn-1
Principe 1D
attribuer agrave chaque point cible une
combinaison lineacuteaire des quatre
points sources les plus proches par
la transformation inverse
Sami Gazzah 2009 201
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 202
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 203 Sami Gazzah 2009 204
IIV Interpolation bilineacuteaire
15122010
35
Sami Gazzah 2009 205
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 206
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 207
IIV Interpolation bilineacuteaire exemple
Sami Gazzah 2009 208
IIV Interpolation bicubique
Sami Gazzah 2009 209
exemple
Sami Gazzah 2009 210
Chapitre 8
Geacuteneacuteration de segments de
droite et de cercles en 2D
15122010
36
Sami Gazzah 2009 211
Infographie 2D besoin de dessiner des primitives de
base (segments cercles hellip)
Espace discreacutetiseacute (pixels) il faut trouver un moyen pour
afficher des segments ou des cercles
I Segments 2D cercles1 Introduction
Comment trouver les pixels agrave allumer pour approximer au mieux une
droite ou un cercle
Algorithme rapide et preacutecisSami Gazzah 2009 212
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=ax+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ya
Sami Gazzah 2009 213
Rappelhellip
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=mx+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ym
Sami Gazzah 2009 214
Exemple
Sami Gazzah 2009 215
Agrave partir des coordonneacutees des 2 extreacutemiteacutes d‟un segmenthellip
Un algorithme simple
Boucle de x1 agrave x2 dx=1
ALLUME (x Arrondir(y))
Avec x2gtx1
Arrondir(y) = Arrondir(ax+b)
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Sami Gazzah 2009 216
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Choix de lrsquoaxehellip
Peu efficace
bullagrave chaque iteacuteration 1 multiplication (ou division) + 1 addition
+ 1 arrondi
15122010
37
Sami Gazzah 2009 217
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
DDA (Digital Differential Analyzer)
y et m doivent ecirctre des reacuteelsSami Gazzah 2009 218
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Calcul en entier (donc plus rapide)
Baseacute sur le choix entre deux points discrets deacutependant de leur
distance respective avec le point reacuteel ideacuteal
On simplifie le problegraveme en traitant drsquoabord le traceacute drsquoun segment
dans le 1er octant m infeacuterieur agrave1 et positif (0ltmlt 1)
Facilement geacuteneacuteralisable aux autres octants
Sami Gazzah 2009 219
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Traceacute d‟un segment dans le premier octant mlt1
On part d‟un point (xi yi) allumeacute
Sami Gazzah 2009 220
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
On ne calcule pas reacuteellement les distances rArr on veacuterifie si la diffeacuterence
entre les deux distances est positive ou neacutegative
Le signe de la longueur (d1-d2) deacutetermine s‟il faut allumer le pixel L ou H
L
H
Sami Gazzah 2009 221
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Comme m=ΔyΔx on multiplie cette diffeacuterence par Δx pour eacuteviter la
division
Mais que vaut p1
Sami Gazzah 2009 222
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
15122010
38
Sami Gazzah 2009 223
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Pour eacuteviter de calculer cette diffeacuterence pour chaque point on cherche
une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
Sami Gazzah 2009 224
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009 225
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009
Exercice
Tracer le segment de droite
pi xi yi
2 0 0
-6 1 1
6 2 1
-2 3 2
10 4 2
2 5 3
-6 6 4
6 7 4
-2 8 5
10 9 5
2 10 6
6
10
y
x
Sami Gazzah 2009 227
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
Sami Gazzah 2009 228
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
hellip interchanger les points hellip
Si |Δx| lt | Δy| on interchange le rocircle de x et y
15122010
39
Sami Gazzah 2009 229
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (1)
Sami Gazzah 2009 230
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (2)
Sami Gazzah 2009 231
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (3)
Sami Gazzah 2009 232
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Toujours baseacute sur le choix entre deux
points discrets deacutependant de leur
distance respective avec le point reacuteel
On travaille dans le 2e octant agrave partir
de (0r) ainsi pour un point (xi yi) le
prochain point sera
(xi+1 yi) ou (xi+1 yi-1)
Sami Gazzah 2009 233
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On calcule le prochain y et les diffeacuterences respectives avec les points
discrets de la faccedilon suivante
Le signe de pi nous dira si nous devons choisir le point lateacuteral ou le diagonal
Sami Gazzah 2009 234
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Encore une fois pour eacuteviter de calculer cette diffeacuterence pour chaque point on
cherche une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
15122010
40
Sami Gazzah 2009 235
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On considegravere 2 cas
Valeur initiale
Sami Gazzah 2009 236
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Sami Gazzah 2009 237
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Exemple centre = (00) et r = 3
Sami Gazzah 2009 238
Livres
Diane Lingrand Introduction au Traitement d‟Images Paris Editions Vuibert 2e
eacutedition 2008
Steven k Feiner James D Foley John F Hughes Richard l Phillips Andries
Vanam Introduction agrave l‟infographie Paris Editions Vuibert 2000
William K Pratt Digital Image Processing Willy-Inter-sciences 4th edition 2007
Eacuteric Incerti Compression dimage ndash Algorithmes et standards Vuibert 2003
Gilles Burel Introduction au traitement dimages ndash Simulation sous Matlab
Hermegraves 2001
Sites web
Cours de C Rougier (U Montreacuteal)
httpwww-etudiroumontrealca~rougiercift2730courshtml (cf chapitre 3)
Page wikipeacutedia sur JPEG (en anglais plus complegravete que celle en franccedilais)
httpenwikipediaorgwikiJPEG
Cours de P Courtellemont (Campus numeacuterique Espdon)
httppersouniv-lrfrpcourtelespadonsite_web
Applet de deacutemo par C G Jennings
httpcgjenningscatoyboxhjpegindexhtml
Cours de D Marshall (U Cardiff)
httpwwwcscfacukDaveMultimediaPDF
Reacutefeacuterences
Sami Gazzah 2009 239
Chapitre 9
introduction au
traitement
dimages avec OpenGL
Sami Gazzah 2009 240
OpenGL est une librairie graphique Elle a eacuteteacute creacutee par Silicon
Graphics et beacuteneacuteficie sur ces machines de lacceacuteleacuteration mateacuterielle
Elle est constitueacute d‟environ 200 fonctions graphiques
OpenGL est une bibliothegraveque de fonctions
Les fonctions sont de bas niveaux
La version actuelle est l‟ laquo OpenGL 41 raquo (deacutecembre 2010)
Principale caracteacuteristique indeacutependant du mateacuteriel et du systegraveme
d‟exploitation
Une impleacutementation libre de droits dOpenGL tregraves performante a eacuteteacute
eacutecrite par Brian Paul httpwwwmesa3dorg Et tout son code source
est accessible
Preacutesentation geacuteneacuterale
15122010
41
Sami Gazzah 2009 241
OpenGL propose des fonctions de bas niveaux
Primitives geacuteomeacutetriques points segments polygones
Les fonctions de haut niveaux sont deacuteveloppeacutees par l‟utilisateur ou
importeacutees par la librairie en amont d‟OpenGL
Primitives geacuteomeacutetriques complexes Sphegravere splines etc
Toutes les commandes et fonctions utilisent le preacutefixe gl
Exemple glColor2f()
Sami Gazzah 2009 242
Les Bibliothegraveques co-existant avec OpenGL
GLU OpenGL Utility Library contient les routines de bas niveau pour
geacuterer les matrices de transformation et de projection la facettisation des
polygones et le rendu de surface Les bibliothegraveques dextension du
systegraveme de fenecirctres permettent lutilisation du rendu OpenGL Il sagit de
GLX pour X Windows (fonctions ayant pour preacutefixe glX) et de WGL
pour Microsoft Windows (fonctions ayant pour preacutefixe wgl)
GLUT OpenGL Utility Toolkit est une boite agrave outils indeacutependante du
systegraveme de fenecirctrage eacutecrite par Mark
Kilgard pour simplifier la tacircche dutiliser des systegravemes diffeacuterents (fonctions
ayant pour preacutefixe glut)
Sami Gazzah 2009 243
Les primitives geacuteomeacutetriques d rsquoOpenGL
Les primitives sont deacutecrites par un bloc d‟instructions deacutelimiteacute par glBegin et glEnd
Ce bloc contient geacuteneacuteralement une liste de vertex Exemple
glBegin(GL_LINE_LOOP)
glVertex2f(-05 -05)
glVertex2f(05 -05)
glVertex2f(05 05)
glVertex2f(-05 05)
glEnd()
D‟autres attributs peuvent ecirctre speacutecifieacutes en chaque sommet
couleur normale coordonneacutee de texture etcSami Gazzah 2009 244
OpenGL est une machine agrave eacutetats
En modifiant les variables d‟eacutetats on peut changer le style de rendu
Sami Gazzah 2009 245
Exemple Honda Hippo (3dRendercom)
Placage de textures
bullL‟apparence et le toucher ( feel ) d‟une surface
bullUne image utiliseacutee pour deacutefinir les caracteacuteristiques d‟une surface
bullUne image multi-dimensionnelle qui est plaqueacutee sur un espace multi-
dimensionnel
Sami Gazzah 2009 246
15122010
42
Sami Gazzah 2009 247
Reacutefeacuterences openGL
Sami Gazzah 2009 248
Chapitre 10
introduction au
traitement
dimages avec OpenCV
Sami Gazzah 2009 249
Preacutesentation geacuteneacuterale
Quest-ce
Open Source Computer Vision Library
Bibliothegraveque open source de traitement des images numeacuteriques
Projet initieacute par Intel (en 1999)
Teacuteleacutechargeable sur httpsourceforgenetprojectsopencvlibrary
Fortement orienteacutee temps reacuteel
eacutecrite en C et C++
optimiseacutee pour les processeurs multi-cœurs
Multi-plateformes disponible pour Linux Windows et Mac OS X
Que contient-elle
Des fonctionnaliteacutes (structures et routines gt350 algos) de base et
avanceacutees pour bacirctir rapidement des applications autour de la vision par
ordinateur
Exemples dutilisation traitements de bas niveau (filtrage ) deacutetection
de visages reconnaissance et suivi dobjets en mouvement Sami Gazzah 2009 250
Fonctionnaliteacutes
Lectureeacutecriture dimages statiques et de seacutequences videacuteo
APIs de bas et moyen niveaux
Traitement des images binaires
Manipulations dimage (eacutechantillonnage (sampling) reacutegion dinteacuterecirct (ROI)
redimensionnement (resizing) rotation deacuteformation (warping) )
Deacutetection de contours de lignes de coins (edge detection)
Traitements multi-eacutechelles (multiscale processing)
Transformeacutees (Fourier cosinus discregravete )
Modules de haut niveau
Deacutetection reconnaissance et suivi (tracking) de visages
Flot optique (estimation du mouvement) (optical flow)
Calibrage (calibration) de la cameacutera
Mise en correspondance steacutereacuteoscopique (stereo matching)
IA et apprentissage par ordinateur (machine learning)
3D mise en correspondance (registration)
Sami Gazzah 2009 251
Modules principaux
CxCore
Types de base pour manip dimages (ex struct image point isin cxtypesh)
Structures dynamiques (listes files graphes arbres) et persistantes (LE)
Manipulations de matrices meacutethodes de lalgegravebre lineacuteaire et statistiques
Dessin en surimpression (overlay) (ex eacutetiquetage)
Cv
Traitement dimage calibrage cameacutera
Geacuteomeacutetrie algorithmique (triangulation )
Cvaux
Reconnaissance de visage
Code expeacuterimental et obsolegravete
Autres (dans otherlibs)
HighGUI ES videacuteos curseurs fenecirctrage
ML classification regroupement (clustering)Sami Gazzah 2009 252
OpenCV premiers programmesBibliothegraveque OpenCV
15122010
43
Sami Gazzah 2009 253
Livre
G Bradski amp A Kaehler laquo Learning OpenCV raquo OReilly Press (2008)
codes sources httpexamplesoreillycom9780596516130
Ressources en ligne
Reacutefeacuterence complegravete httpopencvwillowgaragecomdocumentation
Wiki httpopencvwillowgaragecomwikiFullOpenCVWiki
bullPreacutesentation teacuteleacutechargement installation
bullavec CodeBlocks httpopencvwillowgaragecomwikiCodeBlocks
bullDeacutebuter avec OpenCV FAQ
Tutoriels
httpnchcdlsourceforgenetsourceforgeopencvlibraryippocvpdf
httpdaslmemdrexeledu~noahKuntzopenCVTut1html agrave Tut11html
httpwwwcognoticscomopencvservo_2007_series
Tutoriel sur la vision utilisant OpenCV (en franccedilais)
httpwwwsiteduzerocomtutoriel-3-8631-vision-par-ordinateurhtml
Reacutefeacuterences openCV
15122010
35
Sami Gazzah 2009 205
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 206
IIV Interpolation bilineacuteaire
Sami Gazzah 2009 207
IIV Interpolation bilineacuteaire exemple
Sami Gazzah 2009 208
IIV Interpolation bicubique
Sami Gazzah 2009 209
exemple
Sami Gazzah 2009 210
Chapitre 8
Geacuteneacuteration de segments de
droite et de cercles en 2D
15122010
36
Sami Gazzah 2009 211
Infographie 2D besoin de dessiner des primitives de
base (segments cercles hellip)
Espace discreacutetiseacute (pixels) il faut trouver un moyen pour
afficher des segments ou des cercles
I Segments 2D cercles1 Introduction
Comment trouver les pixels agrave allumer pour approximer au mieux une
droite ou un cercle
Algorithme rapide et preacutecisSami Gazzah 2009 212
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=ax+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ya
Sami Gazzah 2009 213
Rappelhellip
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=mx+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ym
Sami Gazzah 2009 214
Exemple
Sami Gazzah 2009 215
Agrave partir des coordonneacutees des 2 extreacutemiteacutes d‟un segmenthellip
Un algorithme simple
Boucle de x1 agrave x2 dx=1
ALLUME (x Arrondir(y))
Avec x2gtx1
Arrondir(y) = Arrondir(ax+b)
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Sami Gazzah 2009 216
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Choix de lrsquoaxehellip
Peu efficace
bullagrave chaque iteacuteration 1 multiplication (ou division) + 1 addition
+ 1 arrondi
15122010
37
Sami Gazzah 2009 217
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
DDA (Digital Differential Analyzer)
y et m doivent ecirctre des reacuteelsSami Gazzah 2009 218
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Calcul en entier (donc plus rapide)
Baseacute sur le choix entre deux points discrets deacutependant de leur
distance respective avec le point reacuteel ideacuteal
On simplifie le problegraveme en traitant drsquoabord le traceacute drsquoun segment
dans le 1er octant m infeacuterieur agrave1 et positif (0ltmlt 1)
Facilement geacuteneacuteralisable aux autres octants
Sami Gazzah 2009 219
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Traceacute d‟un segment dans le premier octant mlt1
On part d‟un point (xi yi) allumeacute
Sami Gazzah 2009 220
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
On ne calcule pas reacuteellement les distances rArr on veacuterifie si la diffeacuterence
entre les deux distances est positive ou neacutegative
Le signe de la longueur (d1-d2) deacutetermine s‟il faut allumer le pixel L ou H
L
H
Sami Gazzah 2009 221
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Comme m=ΔyΔx on multiplie cette diffeacuterence par Δx pour eacuteviter la
division
Mais que vaut p1
Sami Gazzah 2009 222
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
15122010
38
Sami Gazzah 2009 223
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Pour eacuteviter de calculer cette diffeacuterence pour chaque point on cherche
une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
Sami Gazzah 2009 224
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009 225
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009
Exercice
Tracer le segment de droite
pi xi yi
2 0 0
-6 1 1
6 2 1
-2 3 2
10 4 2
2 5 3
-6 6 4
6 7 4
-2 8 5
10 9 5
2 10 6
6
10
y
x
Sami Gazzah 2009 227
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
Sami Gazzah 2009 228
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
hellip interchanger les points hellip
Si |Δx| lt | Δy| on interchange le rocircle de x et y
15122010
39
Sami Gazzah 2009 229
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (1)
Sami Gazzah 2009 230
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (2)
Sami Gazzah 2009 231
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (3)
Sami Gazzah 2009 232
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Toujours baseacute sur le choix entre deux
points discrets deacutependant de leur
distance respective avec le point reacuteel
On travaille dans le 2e octant agrave partir
de (0r) ainsi pour un point (xi yi) le
prochain point sera
(xi+1 yi) ou (xi+1 yi-1)
Sami Gazzah 2009 233
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On calcule le prochain y et les diffeacuterences respectives avec les points
discrets de la faccedilon suivante
Le signe de pi nous dira si nous devons choisir le point lateacuteral ou le diagonal
Sami Gazzah 2009 234
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Encore une fois pour eacuteviter de calculer cette diffeacuterence pour chaque point on
cherche une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
15122010
40
Sami Gazzah 2009 235
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On considegravere 2 cas
Valeur initiale
Sami Gazzah 2009 236
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Sami Gazzah 2009 237
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Exemple centre = (00) et r = 3
Sami Gazzah 2009 238
Livres
Diane Lingrand Introduction au Traitement d‟Images Paris Editions Vuibert 2e
eacutedition 2008
Steven k Feiner James D Foley John F Hughes Richard l Phillips Andries
Vanam Introduction agrave l‟infographie Paris Editions Vuibert 2000
William K Pratt Digital Image Processing Willy-Inter-sciences 4th edition 2007
Eacuteric Incerti Compression dimage ndash Algorithmes et standards Vuibert 2003
Gilles Burel Introduction au traitement dimages ndash Simulation sous Matlab
Hermegraves 2001
Sites web
Cours de C Rougier (U Montreacuteal)
httpwww-etudiroumontrealca~rougiercift2730courshtml (cf chapitre 3)
Page wikipeacutedia sur JPEG (en anglais plus complegravete que celle en franccedilais)
httpenwikipediaorgwikiJPEG
Cours de P Courtellemont (Campus numeacuterique Espdon)
httppersouniv-lrfrpcourtelespadonsite_web
Applet de deacutemo par C G Jennings
httpcgjenningscatoyboxhjpegindexhtml
Cours de D Marshall (U Cardiff)
httpwwwcscfacukDaveMultimediaPDF
Reacutefeacuterences
Sami Gazzah 2009 239
Chapitre 9
introduction au
traitement
dimages avec OpenGL
Sami Gazzah 2009 240
OpenGL est une librairie graphique Elle a eacuteteacute creacutee par Silicon
Graphics et beacuteneacuteficie sur ces machines de lacceacuteleacuteration mateacuterielle
Elle est constitueacute d‟environ 200 fonctions graphiques
OpenGL est une bibliothegraveque de fonctions
Les fonctions sont de bas niveaux
La version actuelle est l‟ laquo OpenGL 41 raquo (deacutecembre 2010)
Principale caracteacuteristique indeacutependant du mateacuteriel et du systegraveme
d‟exploitation
Une impleacutementation libre de droits dOpenGL tregraves performante a eacuteteacute
eacutecrite par Brian Paul httpwwwmesa3dorg Et tout son code source
est accessible
Preacutesentation geacuteneacuterale
15122010
41
Sami Gazzah 2009 241
OpenGL propose des fonctions de bas niveaux
Primitives geacuteomeacutetriques points segments polygones
Les fonctions de haut niveaux sont deacuteveloppeacutees par l‟utilisateur ou
importeacutees par la librairie en amont d‟OpenGL
Primitives geacuteomeacutetriques complexes Sphegravere splines etc
Toutes les commandes et fonctions utilisent le preacutefixe gl
Exemple glColor2f()
Sami Gazzah 2009 242
Les Bibliothegraveques co-existant avec OpenGL
GLU OpenGL Utility Library contient les routines de bas niveau pour
geacuterer les matrices de transformation et de projection la facettisation des
polygones et le rendu de surface Les bibliothegraveques dextension du
systegraveme de fenecirctres permettent lutilisation du rendu OpenGL Il sagit de
GLX pour X Windows (fonctions ayant pour preacutefixe glX) et de WGL
pour Microsoft Windows (fonctions ayant pour preacutefixe wgl)
GLUT OpenGL Utility Toolkit est une boite agrave outils indeacutependante du
systegraveme de fenecirctrage eacutecrite par Mark
Kilgard pour simplifier la tacircche dutiliser des systegravemes diffeacuterents (fonctions
ayant pour preacutefixe glut)
Sami Gazzah 2009 243
Les primitives geacuteomeacutetriques d rsquoOpenGL
Les primitives sont deacutecrites par un bloc d‟instructions deacutelimiteacute par glBegin et glEnd
Ce bloc contient geacuteneacuteralement une liste de vertex Exemple
glBegin(GL_LINE_LOOP)
glVertex2f(-05 -05)
glVertex2f(05 -05)
glVertex2f(05 05)
glVertex2f(-05 05)
glEnd()
D‟autres attributs peuvent ecirctre speacutecifieacutes en chaque sommet
couleur normale coordonneacutee de texture etcSami Gazzah 2009 244
OpenGL est une machine agrave eacutetats
En modifiant les variables d‟eacutetats on peut changer le style de rendu
Sami Gazzah 2009 245
Exemple Honda Hippo (3dRendercom)
Placage de textures
bullL‟apparence et le toucher ( feel ) d‟une surface
bullUne image utiliseacutee pour deacutefinir les caracteacuteristiques d‟une surface
bullUne image multi-dimensionnelle qui est plaqueacutee sur un espace multi-
dimensionnel
Sami Gazzah 2009 246
15122010
42
Sami Gazzah 2009 247
Reacutefeacuterences openGL
Sami Gazzah 2009 248
Chapitre 10
introduction au
traitement
dimages avec OpenCV
Sami Gazzah 2009 249
Preacutesentation geacuteneacuterale
Quest-ce
Open Source Computer Vision Library
Bibliothegraveque open source de traitement des images numeacuteriques
Projet initieacute par Intel (en 1999)
Teacuteleacutechargeable sur httpsourceforgenetprojectsopencvlibrary
Fortement orienteacutee temps reacuteel
eacutecrite en C et C++
optimiseacutee pour les processeurs multi-cœurs
Multi-plateformes disponible pour Linux Windows et Mac OS X
Que contient-elle
Des fonctionnaliteacutes (structures et routines gt350 algos) de base et
avanceacutees pour bacirctir rapidement des applications autour de la vision par
ordinateur
Exemples dutilisation traitements de bas niveau (filtrage ) deacutetection
de visages reconnaissance et suivi dobjets en mouvement Sami Gazzah 2009 250
Fonctionnaliteacutes
Lectureeacutecriture dimages statiques et de seacutequences videacuteo
APIs de bas et moyen niveaux
Traitement des images binaires
Manipulations dimage (eacutechantillonnage (sampling) reacutegion dinteacuterecirct (ROI)
redimensionnement (resizing) rotation deacuteformation (warping) )
Deacutetection de contours de lignes de coins (edge detection)
Traitements multi-eacutechelles (multiscale processing)
Transformeacutees (Fourier cosinus discregravete )
Modules de haut niveau
Deacutetection reconnaissance et suivi (tracking) de visages
Flot optique (estimation du mouvement) (optical flow)
Calibrage (calibration) de la cameacutera
Mise en correspondance steacutereacuteoscopique (stereo matching)
IA et apprentissage par ordinateur (machine learning)
3D mise en correspondance (registration)
Sami Gazzah 2009 251
Modules principaux
CxCore
Types de base pour manip dimages (ex struct image point isin cxtypesh)
Structures dynamiques (listes files graphes arbres) et persistantes (LE)
Manipulations de matrices meacutethodes de lalgegravebre lineacuteaire et statistiques
Dessin en surimpression (overlay) (ex eacutetiquetage)
Cv
Traitement dimage calibrage cameacutera
Geacuteomeacutetrie algorithmique (triangulation )
Cvaux
Reconnaissance de visage
Code expeacuterimental et obsolegravete
Autres (dans otherlibs)
HighGUI ES videacuteos curseurs fenecirctrage
ML classification regroupement (clustering)Sami Gazzah 2009 252
OpenCV premiers programmesBibliothegraveque OpenCV
15122010
43
Sami Gazzah 2009 253
Livre
G Bradski amp A Kaehler laquo Learning OpenCV raquo OReilly Press (2008)
codes sources httpexamplesoreillycom9780596516130
Ressources en ligne
Reacutefeacuterence complegravete httpopencvwillowgaragecomdocumentation
Wiki httpopencvwillowgaragecomwikiFullOpenCVWiki
bullPreacutesentation teacuteleacutechargement installation
bullavec CodeBlocks httpopencvwillowgaragecomwikiCodeBlocks
bullDeacutebuter avec OpenCV FAQ
Tutoriels
httpnchcdlsourceforgenetsourceforgeopencvlibraryippocvpdf
httpdaslmemdrexeledu~noahKuntzopenCVTut1html agrave Tut11html
httpwwwcognoticscomopencvservo_2007_series
Tutoriel sur la vision utilisant OpenCV (en franccedilais)
httpwwwsiteduzerocomtutoriel-3-8631-vision-par-ordinateurhtml
Reacutefeacuterences openCV
15122010
36
Sami Gazzah 2009 211
Infographie 2D besoin de dessiner des primitives de
base (segments cercles hellip)
Espace discreacutetiseacute (pixels) il faut trouver un moyen pour
afficher des segments ou des cercles
I Segments 2D cercles1 Introduction
Comment trouver les pixels agrave allumer pour approximer au mieux une
droite ou un cercle
Algorithme rapide et preacutecisSami Gazzah 2009 212
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=ax+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ya
Sami Gazzah 2009 213
Rappelhellip
Agrave partir des coordonneacutees des 2
extreacutemiteacutes d‟un segmenthellip
Eacutequation d‟une droite y=mx+b
Calcul de la pente
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
12
12
xx
yy
x
ym
Sami Gazzah 2009 214
Exemple
Sami Gazzah 2009 215
Agrave partir des coordonneacutees des 2 extreacutemiteacutes d‟un segmenthellip
Un algorithme simple
Boucle de x1 agrave x2 dx=1
ALLUME (x Arrondir(y))
Avec x2gtx1
Arrondir(y) = Arrondir(ax+b)
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Sami Gazzah 2009 216
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Choix de lrsquoaxehellip
Peu efficace
bullagrave chaque iteacuteration 1 multiplication (ou division) + 1 addition
+ 1 arrondi
15122010
37
Sami Gazzah 2009 217
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
DDA (Digital Differential Analyzer)
y et m doivent ecirctre des reacuteelsSami Gazzah 2009 218
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Calcul en entier (donc plus rapide)
Baseacute sur le choix entre deux points discrets deacutependant de leur
distance respective avec le point reacuteel ideacuteal
On simplifie le problegraveme en traitant drsquoabord le traceacute drsquoun segment
dans le 1er octant m infeacuterieur agrave1 et positif (0ltmlt 1)
Facilement geacuteneacuteralisable aux autres octants
Sami Gazzah 2009 219
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Traceacute d‟un segment dans le premier octant mlt1
On part d‟un point (xi yi) allumeacute
Sami Gazzah 2009 220
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
On ne calcule pas reacuteellement les distances rArr on veacuterifie si la diffeacuterence
entre les deux distances est positive ou neacutegative
Le signe de la longueur (d1-d2) deacutetermine s‟il faut allumer le pixel L ou H
L
H
Sami Gazzah 2009 221
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Comme m=ΔyΔx on multiplie cette diffeacuterence par Δx pour eacuteviter la
division
Mais que vaut p1
Sami Gazzah 2009 222
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
15122010
38
Sami Gazzah 2009 223
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Pour eacuteviter de calculer cette diffeacuterence pour chaque point on cherche
une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
Sami Gazzah 2009 224
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009 225
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009
Exercice
Tracer le segment de droite
pi xi yi
2 0 0
-6 1 1
6 2 1
-2 3 2
10 4 2
2 5 3
-6 6 4
6 7 4
-2 8 5
10 9 5
2 10 6
6
10
y
x
Sami Gazzah 2009 227
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
Sami Gazzah 2009 228
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
hellip interchanger les points hellip
Si |Δx| lt | Δy| on interchange le rocircle de x et y
15122010
39
Sami Gazzah 2009 229
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (1)
Sami Gazzah 2009 230
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (2)
Sami Gazzah 2009 231
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (3)
Sami Gazzah 2009 232
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Toujours baseacute sur le choix entre deux
points discrets deacutependant de leur
distance respective avec le point reacuteel
On travaille dans le 2e octant agrave partir
de (0r) ainsi pour un point (xi yi) le
prochain point sera
(xi+1 yi) ou (xi+1 yi-1)
Sami Gazzah 2009 233
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On calcule le prochain y et les diffeacuterences respectives avec les points
discrets de la faccedilon suivante
Le signe de pi nous dira si nous devons choisir le point lateacuteral ou le diagonal
Sami Gazzah 2009 234
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Encore une fois pour eacuteviter de calculer cette diffeacuterence pour chaque point on
cherche une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
15122010
40
Sami Gazzah 2009 235
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On considegravere 2 cas
Valeur initiale
Sami Gazzah 2009 236
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Sami Gazzah 2009 237
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Exemple centre = (00) et r = 3
Sami Gazzah 2009 238
Livres
Diane Lingrand Introduction au Traitement d‟Images Paris Editions Vuibert 2e
eacutedition 2008
Steven k Feiner James D Foley John F Hughes Richard l Phillips Andries
Vanam Introduction agrave l‟infographie Paris Editions Vuibert 2000
William K Pratt Digital Image Processing Willy-Inter-sciences 4th edition 2007
Eacuteric Incerti Compression dimage ndash Algorithmes et standards Vuibert 2003
Gilles Burel Introduction au traitement dimages ndash Simulation sous Matlab
Hermegraves 2001
Sites web
Cours de C Rougier (U Montreacuteal)
httpwww-etudiroumontrealca~rougiercift2730courshtml (cf chapitre 3)
Page wikipeacutedia sur JPEG (en anglais plus complegravete que celle en franccedilais)
httpenwikipediaorgwikiJPEG
Cours de P Courtellemont (Campus numeacuterique Espdon)
httppersouniv-lrfrpcourtelespadonsite_web
Applet de deacutemo par C G Jennings
httpcgjenningscatoyboxhjpegindexhtml
Cours de D Marshall (U Cardiff)
httpwwwcscfacukDaveMultimediaPDF
Reacutefeacuterences
Sami Gazzah 2009 239
Chapitre 9
introduction au
traitement
dimages avec OpenGL
Sami Gazzah 2009 240
OpenGL est une librairie graphique Elle a eacuteteacute creacutee par Silicon
Graphics et beacuteneacuteficie sur ces machines de lacceacuteleacuteration mateacuterielle
Elle est constitueacute d‟environ 200 fonctions graphiques
OpenGL est une bibliothegraveque de fonctions
Les fonctions sont de bas niveaux
La version actuelle est l‟ laquo OpenGL 41 raquo (deacutecembre 2010)
Principale caracteacuteristique indeacutependant du mateacuteriel et du systegraveme
d‟exploitation
Une impleacutementation libre de droits dOpenGL tregraves performante a eacuteteacute
eacutecrite par Brian Paul httpwwwmesa3dorg Et tout son code source
est accessible
Preacutesentation geacuteneacuterale
15122010
41
Sami Gazzah 2009 241
OpenGL propose des fonctions de bas niveaux
Primitives geacuteomeacutetriques points segments polygones
Les fonctions de haut niveaux sont deacuteveloppeacutees par l‟utilisateur ou
importeacutees par la librairie en amont d‟OpenGL
Primitives geacuteomeacutetriques complexes Sphegravere splines etc
Toutes les commandes et fonctions utilisent le preacutefixe gl
Exemple glColor2f()
Sami Gazzah 2009 242
Les Bibliothegraveques co-existant avec OpenGL
GLU OpenGL Utility Library contient les routines de bas niveau pour
geacuterer les matrices de transformation et de projection la facettisation des
polygones et le rendu de surface Les bibliothegraveques dextension du
systegraveme de fenecirctres permettent lutilisation du rendu OpenGL Il sagit de
GLX pour X Windows (fonctions ayant pour preacutefixe glX) et de WGL
pour Microsoft Windows (fonctions ayant pour preacutefixe wgl)
GLUT OpenGL Utility Toolkit est une boite agrave outils indeacutependante du
systegraveme de fenecirctrage eacutecrite par Mark
Kilgard pour simplifier la tacircche dutiliser des systegravemes diffeacuterents (fonctions
ayant pour preacutefixe glut)
Sami Gazzah 2009 243
Les primitives geacuteomeacutetriques d rsquoOpenGL
Les primitives sont deacutecrites par un bloc d‟instructions deacutelimiteacute par glBegin et glEnd
Ce bloc contient geacuteneacuteralement une liste de vertex Exemple
glBegin(GL_LINE_LOOP)
glVertex2f(-05 -05)
glVertex2f(05 -05)
glVertex2f(05 05)
glVertex2f(-05 05)
glEnd()
D‟autres attributs peuvent ecirctre speacutecifieacutes en chaque sommet
couleur normale coordonneacutee de texture etcSami Gazzah 2009 244
OpenGL est une machine agrave eacutetats
En modifiant les variables d‟eacutetats on peut changer le style de rendu
Sami Gazzah 2009 245
Exemple Honda Hippo (3dRendercom)
Placage de textures
bullL‟apparence et le toucher ( feel ) d‟une surface
bullUne image utiliseacutee pour deacutefinir les caracteacuteristiques d‟une surface
bullUne image multi-dimensionnelle qui est plaqueacutee sur un espace multi-
dimensionnel
Sami Gazzah 2009 246
15122010
42
Sami Gazzah 2009 247
Reacutefeacuterences openGL
Sami Gazzah 2009 248
Chapitre 10
introduction au
traitement
dimages avec OpenCV
Sami Gazzah 2009 249
Preacutesentation geacuteneacuterale
Quest-ce
Open Source Computer Vision Library
Bibliothegraveque open source de traitement des images numeacuteriques
Projet initieacute par Intel (en 1999)
Teacuteleacutechargeable sur httpsourceforgenetprojectsopencvlibrary
Fortement orienteacutee temps reacuteel
eacutecrite en C et C++
optimiseacutee pour les processeurs multi-cœurs
Multi-plateformes disponible pour Linux Windows et Mac OS X
Que contient-elle
Des fonctionnaliteacutes (structures et routines gt350 algos) de base et
avanceacutees pour bacirctir rapidement des applications autour de la vision par
ordinateur
Exemples dutilisation traitements de bas niveau (filtrage ) deacutetection
de visages reconnaissance et suivi dobjets en mouvement Sami Gazzah 2009 250
Fonctionnaliteacutes
Lectureeacutecriture dimages statiques et de seacutequences videacuteo
APIs de bas et moyen niveaux
Traitement des images binaires
Manipulations dimage (eacutechantillonnage (sampling) reacutegion dinteacuterecirct (ROI)
redimensionnement (resizing) rotation deacuteformation (warping) )
Deacutetection de contours de lignes de coins (edge detection)
Traitements multi-eacutechelles (multiscale processing)
Transformeacutees (Fourier cosinus discregravete )
Modules de haut niveau
Deacutetection reconnaissance et suivi (tracking) de visages
Flot optique (estimation du mouvement) (optical flow)
Calibrage (calibration) de la cameacutera
Mise en correspondance steacutereacuteoscopique (stereo matching)
IA et apprentissage par ordinateur (machine learning)
3D mise en correspondance (registration)
Sami Gazzah 2009 251
Modules principaux
CxCore
Types de base pour manip dimages (ex struct image point isin cxtypesh)
Structures dynamiques (listes files graphes arbres) et persistantes (LE)
Manipulations de matrices meacutethodes de lalgegravebre lineacuteaire et statistiques
Dessin en surimpression (overlay) (ex eacutetiquetage)
Cv
Traitement dimage calibrage cameacutera
Geacuteomeacutetrie algorithmique (triangulation )
Cvaux
Reconnaissance de visage
Code expeacuterimental et obsolegravete
Autres (dans otherlibs)
HighGUI ES videacuteos curseurs fenecirctrage
ML classification regroupement (clustering)Sami Gazzah 2009 252
OpenCV premiers programmesBibliothegraveque OpenCV
15122010
43
Sami Gazzah 2009 253
Livre
G Bradski amp A Kaehler laquo Learning OpenCV raquo OReilly Press (2008)
codes sources httpexamplesoreillycom9780596516130
Ressources en ligne
Reacutefeacuterence complegravete httpopencvwillowgaragecomdocumentation
Wiki httpopencvwillowgaragecomwikiFullOpenCVWiki
bullPreacutesentation teacuteleacutechargement installation
bullavec CodeBlocks httpopencvwillowgaragecomwikiCodeBlocks
bullDeacutebuter avec OpenCV FAQ
Tutoriels
httpnchcdlsourceforgenetsourceforgeopencvlibraryippocvpdf
httpdaslmemdrexeledu~noahKuntzopenCVTut1html agrave Tut11html
httpwwwcognoticscomopencvservo_2007_series
Tutoriel sur la vision utilisant OpenCV (en franccedilais)
httpwwwsiteduzerocomtutoriel-3-8631-vision-par-ordinateurhtml
Reacutefeacuterences openCV
15122010
37
Sami Gazzah 2009 217
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
DDA (Digital Differential Analyzer)
y et m doivent ecirctre des reacuteelsSami Gazzah 2009 218
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Calcul en entier (donc plus rapide)
Baseacute sur le choix entre deux points discrets deacutependant de leur
distance respective avec le point reacuteel ideacuteal
On simplifie le problegraveme en traitant drsquoabord le traceacute drsquoun segment
dans le 1er octant m infeacuterieur agrave1 et positif (0ltmlt 1)
Facilement geacuteneacuteralisable aux autres octants
Sami Gazzah 2009 219
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Traceacute d‟un segment dans le premier octant mlt1
On part d‟un point (xi yi) allumeacute
Sami Gazzah 2009 220
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
On ne calcule pas reacuteellement les distances rArr on veacuterifie si la diffeacuterence
entre les deux distances est positive ou neacutegative
Le signe de la longueur (d1-d2) deacutetermine s‟il faut allumer le pixel L ou H
L
H
Sami Gazzah 2009 221
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Comme m=ΔyΔx on multiplie cette diffeacuterence par Δx pour eacuteviter la
division
Mais que vaut p1
Sami Gazzah 2009 222
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
15122010
38
Sami Gazzah 2009 223
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Pour eacuteviter de calculer cette diffeacuterence pour chaque point on cherche
une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
Sami Gazzah 2009 224
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009 225
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009
Exercice
Tracer le segment de droite
pi xi yi
2 0 0
-6 1 1
6 2 1
-2 3 2
10 4 2
2 5 3
-6 6 4
6 7 4
-2 8 5
10 9 5
2 10 6
6
10
y
x
Sami Gazzah 2009 227
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
Sami Gazzah 2009 228
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
hellip interchanger les points hellip
Si |Δx| lt | Δy| on interchange le rocircle de x et y
15122010
39
Sami Gazzah 2009 229
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (1)
Sami Gazzah 2009 230
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (2)
Sami Gazzah 2009 231
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (3)
Sami Gazzah 2009 232
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Toujours baseacute sur le choix entre deux
points discrets deacutependant de leur
distance respective avec le point reacuteel
On travaille dans le 2e octant agrave partir
de (0r) ainsi pour un point (xi yi) le
prochain point sera
(xi+1 yi) ou (xi+1 yi-1)
Sami Gazzah 2009 233
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On calcule le prochain y et les diffeacuterences respectives avec les points
discrets de la faccedilon suivante
Le signe de pi nous dira si nous devons choisir le point lateacuteral ou le diagonal
Sami Gazzah 2009 234
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Encore une fois pour eacuteviter de calculer cette diffeacuterence pour chaque point on
cherche une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
15122010
40
Sami Gazzah 2009 235
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On considegravere 2 cas
Valeur initiale
Sami Gazzah 2009 236
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Sami Gazzah 2009 237
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Exemple centre = (00) et r = 3
Sami Gazzah 2009 238
Livres
Diane Lingrand Introduction au Traitement d‟Images Paris Editions Vuibert 2e
eacutedition 2008
Steven k Feiner James D Foley John F Hughes Richard l Phillips Andries
Vanam Introduction agrave l‟infographie Paris Editions Vuibert 2000
William K Pratt Digital Image Processing Willy-Inter-sciences 4th edition 2007
Eacuteric Incerti Compression dimage ndash Algorithmes et standards Vuibert 2003
Gilles Burel Introduction au traitement dimages ndash Simulation sous Matlab
Hermegraves 2001
Sites web
Cours de C Rougier (U Montreacuteal)
httpwww-etudiroumontrealca~rougiercift2730courshtml (cf chapitre 3)
Page wikipeacutedia sur JPEG (en anglais plus complegravete que celle en franccedilais)
httpenwikipediaorgwikiJPEG
Cours de P Courtellemont (Campus numeacuterique Espdon)
httppersouniv-lrfrpcourtelespadonsite_web
Applet de deacutemo par C G Jennings
httpcgjenningscatoyboxhjpegindexhtml
Cours de D Marshall (U Cardiff)
httpwwwcscfacukDaveMultimediaPDF
Reacutefeacuterences
Sami Gazzah 2009 239
Chapitre 9
introduction au
traitement
dimages avec OpenGL
Sami Gazzah 2009 240
OpenGL est une librairie graphique Elle a eacuteteacute creacutee par Silicon
Graphics et beacuteneacuteficie sur ces machines de lacceacuteleacuteration mateacuterielle
Elle est constitueacute d‟environ 200 fonctions graphiques
OpenGL est une bibliothegraveque de fonctions
Les fonctions sont de bas niveaux
La version actuelle est l‟ laquo OpenGL 41 raquo (deacutecembre 2010)
Principale caracteacuteristique indeacutependant du mateacuteriel et du systegraveme
d‟exploitation
Une impleacutementation libre de droits dOpenGL tregraves performante a eacuteteacute
eacutecrite par Brian Paul httpwwwmesa3dorg Et tout son code source
est accessible
Preacutesentation geacuteneacuterale
15122010
41
Sami Gazzah 2009 241
OpenGL propose des fonctions de bas niveaux
Primitives geacuteomeacutetriques points segments polygones
Les fonctions de haut niveaux sont deacuteveloppeacutees par l‟utilisateur ou
importeacutees par la librairie en amont d‟OpenGL
Primitives geacuteomeacutetriques complexes Sphegravere splines etc
Toutes les commandes et fonctions utilisent le preacutefixe gl
Exemple glColor2f()
Sami Gazzah 2009 242
Les Bibliothegraveques co-existant avec OpenGL
GLU OpenGL Utility Library contient les routines de bas niveau pour
geacuterer les matrices de transformation et de projection la facettisation des
polygones et le rendu de surface Les bibliothegraveques dextension du
systegraveme de fenecirctres permettent lutilisation du rendu OpenGL Il sagit de
GLX pour X Windows (fonctions ayant pour preacutefixe glX) et de WGL
pour Microsoft Windows (fonctions ayant pour preacutefixe wgl)
GLUT OpenGL Utility Toolkit est une boite agrave outils indeacutependante du
systegraveme de fenecirctrage eacutecrite par Mark
Kilgard pour simplifier la tacircche dutiliser des systegravemes diffeacuterents (fonctions
ayant pour preacutefixe glut)
Sami Gazzah 2009 243
Les primitives geacuteomeacutetriques d rsquoOpenGL
Les primitives sont deacutecrites par un bloc d‟instructions deacutelimiteacute par glBegin et glEnd
Ce bloc contient geacuteneacuteralement une liste de vertex Exemple
glBegin(GL_LINE_LOOP)
glVertex2f(-05 -05)
glVertex2f(05 -05)
glVertex2f(05 05)
glVertex2f(-05 05)
glEnd()
D‟autres attributs peuvent ecirctre speacutecifieacutes en chaque sommet
couleur normale coordonneacutee de texture etcSami Gazzah 2009 244
OpenGL est une machine agrave eacutetats
En modifiant les variables d‟eacutetats on peut changer le style de rendu
Sami Gazzah 2009 245
Exemple Honda Hippo (3dRendercom)
Placage de textures
bullL‟apparence et le toucher ( feel ) d‟une surface
bullUne image utiliseacutee pour deacutefinir les caracteacuteristiques d‟une surface
bullUne image multi-dimensionnelle qui est plaqueacutee sur un espace multi-
dimensionnel
Sami Gazzah 2009 246
15122010
42
Sami Gazzah 2009 247
Reacutefeacuterences openGL
Sami Gazzah 2009 248
Chapitre 10
introduction au
traitement
dimages avec OpenCV
Sami Gazzah 2009 249
Preacutesentation geacuteneacuterale
Quest-ce
Open Source Computer Vision Library
Bibliothegraveque open source de traitement des images numeacuteriques
Projet initieacute par Intel (en 1999)
Teacuteleacutechargeable sur httpsourceforgenetprojectsopencvlibrary
Fortement orienteacutee temps reacuteel
eacutecrite en C et C++
optimiseacutee pour les processeurs multi-cœurs
Multi-plateformes disponible pour Linux Windows et Mac OS X
Que contient-elle
Des fonctionnaliteacutes (structures et routines gt350 algos) de base et
avanceacutees pour bacirctir rapidement des applications autour de la vision par
ordinateur
Exemples dutilisation traitements de bas niveau (filtrage ) deacutetection
de visages reconnaissance et suivi dobjets en mouvement Sami Gazzah 2009 250
Fonctionnaliteacutes
Lectureeacutecriture dimages statiques et de seacutequences videacuteo
APIs de bas et moyen niveaux
Traitement des images binaires
Manipulations dimage (eacutechantillonnage (sampling) reacutegion dinteacuterecirct (ROI)
redimensionnement (resizing) rotation deacuteformation (warping) )
Deacutetection de contours de lignes de coins (edge detection)
Traitements multi-eacutechelles (multiscale processing)
Transformeacutees (Fourier cosinus discregravete )
Modules de haut niveau
Deacutetection reconnaissance et suivi (tracking) de visages
Flot optique (estimation du mouvement) (optical flow)
Calibrage (calibration) de la cameacutera
Mise en correspondance steacutereacuteoscopique (stereo matching)
IA et apprentissage par ordinateur (machine learning)
3D mise en correspondance (registration)
Sami Gazzah 2009 251
Modules principaux
CxCore
Types de base pour manip dimages (ex struct image point isin cxtypesh)
Structures dynamiques (listes files graphes arbres) et persistantes (LE)
Manipulations de matrices meacutethodes de lalgegravebre lineacuteaire et statistiques
Dessin en surimpression (overlay) (ex eacutetiquetage)
Cv
Traitement dimage calibrage cameacutera
Geacuteomeacutetrie algorithmique (triangulation )
Cvaux
Reconnaissance de visage
Code expeacuterimental et obsolegravete
Autres (dans otherlibs)
HighGUI ES videacuteos curseurs fenecirctrage
ML classification regroupement (clustering)Sami Gazzah 2009 252
OpenCV premiers programmesBibliothegraveque OpenCV
15122010
43
Sami Gazzah 2009 253
Livre
G Bradski amp A Kaehler laquo Learning OpenCV raquo OReilly Press (2008)
codes sources httpexamplesoreillycom9780596516130
Ressources en ligne
Reacutefeacuterence complegravete httpopencvwillowgaragecomdocumentation
Wiki httpopencvwillowgaragecomwikiFullOpenCVWiki
bullPreacutesentation teacuteleacutechargement installation
bullavec CodeBlocks httpopencvwillowgaragecomwikiCodeBlocks
bullDeacutebuter avec OpenCV FAQ
Tutoriels
httpnchcdlsourceforgenetsourceforgeopencvlibraryippocvpdf
httpdaslmemdrexeledu~noahKuntzopenCVTut1html agrave Tut11html
httpwwwcognoticscomopencvservo_2007_series
Tutoriel sur la vision utilisant OpenCV (en franccedilais)
httpwwwsiteduzerocomtutoriel-3-8631-vision-par-ordinateurhtml
Reacutefeacuterences openCV
15122010
38
Sami Gazzah 2009 223
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Pour eacuteviter de calculer cette diffeacuterence pour chaque point on cherche
une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
Sami Gazzah 2009 224
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009 225
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Sami Gazzah 2009
Exercice
Tracer le segment de droite
pi xi yi
2 0 0
-6 1 1
6 2 1
-2 3 2
10 4 2
2 5 3
-6 6 4
6 7 4
-2 8 5
10 9 5
2 10 6
6
10
y
x
Sami Gazzah 2009 227
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
Sami Gazzah 2009 228
I Segments 2D cercles2 Geacuteneacuteration de segments de droite 2D
Algorithme de Bresenham
Techniques de geacuteneacuteralisation aux autres octants
hellip interchanger les points hellip
Si |Δx| lt | Δy| on interchange le rocircle de x et y
15122010
39
Sami Gazzah 2009 229
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (1)
Sami Gazzah 2009 230
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (2)
Sami Gazzah 2009 231
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (3)
Sami Gazzah 2009 232
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Toujours baseacute sur le choix entre deux
points discrets deacutependant de leur
distance respective avec le point reacuteel
On travaille dans le 2e octant agrave partir
de (0r) ainsi pour un point (xi yi) le
prochain point sera
(xi+1 yi) ou (xi+1 yi-1)
Sami Gazzah 2009 233
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On calcule le prochain y et les diffeacuterences respectives avec les points
discrets de la faccedilon suivante
Le signe de pi nous dira si nous devons choisir le point lateacuteral ou le diagonal
Sami Gazzah 2009 234
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Encore une fois pour eacuteviter de calculer cette diffeacuterence pour chaque point on
cherche une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
15122010
40
Sami Gazzah 2009 235
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On considegravere 2 cas
Valeur initiale
Sami Gazzah 2009 236
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Sami Gazzah 2009 237
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Exemple centre = (00) et r = 3
Sami Gazzah 2009 238
Livres
Diane Lingrand Introduction au Traitement d‟Images Paris Editions Vuibert 2e
eacutedition 2008
Steven k Feiner James D Foley John F Hughes Richard l Phillips Andries
Vanam Introduction agrave l‟infographie Paris Editions Vuibert 2000
William K Pratt Digital Image Processing Willy-Inter-sciences 4th edition 2007
Eacuteric Incerti Compression dimage ndash Algorithmes et standards Vuibert 2003
Gilles Burel Introduction au traitement dimages ndash Simulation sous Matlab
Hermegraves 2001
Sites web
Cours de C Rougier (U Montreacuteal)
httpwww-etudiroumontrealca~rougiercift2730courshtml (cf chapitre 3)
Page wikipeacutedia sur JPEG (en anglais plus complegravete que celle en franccedilais)
httpenwikipediaorgwikiJPEG
Cours de P Courtellemont (Campus numeacuterique Espdon)
httppersouniv-lrfrpcourtelespadonsite_web
Applet de deacutemo par C G Jennings
httpcgjenningscatoyboxhjpegindexhtml
Cours de D Marshall (U Cardiff)
httpwwwcscfacukDaveMultimediaPDF
Reacutefeacuterences
Sami Gazzah 2009 239
Chapitre 9
introduction au
traitement
dimages avec OpenGL
Sami Gazzah 2009 240
OpenGL est une librairie graphique Elle a eacuteteacute creacutee par Silicon
Graphics et beacuteneacuteficie sur ces machines de lacceacuteleacuteration mateacuterielle
Elle est constitueacute d‟environ 200 fonctions graphiques
OpenGL est une bibliothegraveque de fonctions
Les fonctions sont de bas niveaux
La version actuelle est l‟ laquo OpenGL 41 raquo (deacutecembre 2010)
Principale caracteacuteristique indeacutependant du mateacuteriel et du systegraveme
d‟exploitation
Une impleacutementation libre de droits dOpenGL tregraves performante a eacuteteacute
eacutecrite par Brian Paul httpwwwmesa3dorg Et tout son code source
est accessible
Preacutesentation geacuteneacuterale
15122010
41
Sami Gazzah 2009 241
OpenGL propose des fonctions de bas niveaux
Primitives geacuteomeacutetriques points segments polygones
Les fonctions de haut niveaux sont deacuteveloppeacutees par l‟utilisateur ou
importeacutees par la librairie en amont d‟OpenGL
Primitives geacuteomeacutetriques complexes Sphegravere splines etc
Toutes les commandes et fonctions utilisent le preacutefixe gl
Exemple glColor2f()
Sami Gazzah 2009 242
Les Bibliothegraveques co-existant avec OpenGL
GLU OpenGL Utility Library contient les routines de bas niveau pour
geacuterer les matrices de transformation et de projection la facettisation des
polygones et le rendu de surface Les bibliothegraveques dextension du
systegraveme de fenecirctres permettent lutilisation du rendu OpenGL Il sagit de
GLX pour X Windows (fonctions ayant pour preacutefixe glX) et de WGL
pour Microsoft Windows (fonctions ayant pour preacutefixe wgl)
GLUT OpenGL Utility Toolkit est une boite agrave outils indeacutependante du
systegraveme de fenecirctrage eacutecrite par Mark
Kilgard pour simplifier la tacircche dutiliser des systegravemes diffeacuterents (fonctions
ayant pour preacutefixe glut)
Sami Gazzah 2009 243
Les primitives geacuteomeacutetriques d rsquoOpenGL
Les primitives sont deacutecrites par un bloc d‟instructions deacutelimiteacute par glBegin et glEnd
Ce bloc contient geacuteneacuteralement une liste de vertex Exemple
glBegin(GL_LINE_LOOP)
glVertex2f(-05 -05)
glVertex2f(05 -05)
glVertex2f(05 05)
glVertex2f(-05 05)
glEnd()
D‟autres attributs peuvent ecirctre speacutecifieacutes en chaque sommet
couleur normale coordonneacutee de texture etcSami Gazzah 2009 244
OpenGL est une machine agrave eacutetats
En modifiant les variables d‟eacutetats on peut changer le style de rendu
Sami Gazzah 2009 245
Exemple Honda Hippo (3dRendercom)
Placage de textures
bullL‟apparence et le toucher ( feel ) d‟une surface
bullUne image utiliseacutee pour deacutefinir les caracteacuteristiques d‟une surface
bullUne image multi-dimensionnelle qui est plaqueacutee sur un espace multi-
dimensionnel
Sami Gazzah 2009 246
15122010
42
Sami Gazzah 2009 247
Reacutefeacuterences openGL
Sami Gazzah 2009 248
Chapitre 10
introduction au
traitement
dimages avec OpenCV
Sami Gazzah 2009 249
Preacutesentation geacuteneacuterale
Quest-ce
Open Source Computer Vision Library
Bibliothegraveque open source de traitement des images numeacuteriques
Projet initieacute par Intel (en 1999)
Teacuteleacutechargeable sur httpsourceforgenetprojectsopencvlibrary
Fortement orienteacutee temps reacuteel
eacutecrite en C et C++
optimiseacutee pour les processeurs multi-cœurs
Multi-plateformes disponible pour Linux Windows et Mac OS X
Que contient-elle
Des fonctionnaliteacutes (structures et routines gt350 algos) de base et
avanceacutees pour bacirctir rapidement des applications autour de la vision par
ordinateur
Exemples dutilisation traitements de bas niveau (filtrage ) deacutetection
de visages reconnaissance et suivi dobjets en mouvement Sami Gazzah 2009 250
Fonctionnaliteacutes
Lectureeacutecriture dimages statiques et de seacutequences videacuteo
APIs de bas et moyen niveaux
Traitement des images binaires
Manipulations dimage (eacutechantillonnage (sampling) reacutegion dinteacuterecirct (ROI)
redimensionnement (resizing) rotation deacuteformation (warping) )
Deacutetection de contours de lignes de coins (edge detection)
Traitements multi-eacutechelles (multiscale processing)
Transformeacutees (Fourier cosinus discregravete )
Modules de haut niveau
Deacutetection reconnaissance et suivi (tracking) de visages
Flot optique (estimation du mouvement) (optical flow)
Calibrage (calibration) de la cameacutera
Mise en correspondance steacutereacuteoscopique (stereo matching)
IA et apprentissage par ordinateur (machine learning)
3D mise en correspondance (registration)
Sami Gazzah 2009 251
Modules principaux
CxCore
Types de base pour manip dimages (ex struct image point isin cxtypesh)
Structures dynamiques (listes files graphes arbres) et persistantes (LE)
Manipulations de matrices meacutethodes de lalgegravebre lineacuteaire et statistiques
Dessin en surimpression (overlay) (ex eacutetiquetage)
Cv
Traitement dimage calibrage cameacutera
Geacuteomeacutetrie algorithmique (triangulation )
Cvaux
Reconnaissance de visage
Code expeacuterimental et obsolegravete
Autres (dans otherlibs)
HighGUI ES videacuteos curseurs fenecirctrage
ML classification regroupement (clustering)Sami Gazzah 2009 252
OpenCV premiers programmesBibliothegraveque OpenCV
15122010
43
Sami Gazzah 2009 253
Livre
G Bradski amp A Kaehler laquo Learning OpenCV raquo OReilly Press (2008)
codes sources httpexamplesoreillycom9780596516130
Ressources en ligne
Reacutefeacuterence complegravete httpopencvwillowgaragecomdocumentation
Wiki httpopencvwillowgaragecomwikiFullOpenCVWiki
bullPreacutesentation teacuteleacutechargement installation
bullavec CodeBlocks httpopencvwillowgaragecomwikiCodeBlocks
bullDeacutebuter avec OpenCV FAQ
Tutoriels
httpnchcdlsourceforgenetsourceforgeopencvlibraryippocvpdf
httpdaslmemdrexeledu~noahKuntzopenCVTut1html agrave Tut11html
httpwwwcognoticscomopencvservo_2007_series
Tutoriel sur la vision utilisant OpenCV (en franccedilais)
httpwwwsiteduzerocomtutoriel-3-8631-vision-par-ordinateurhtml
Reacutefeacuterences openCV
15122010
39
Sami Gazzah 2009 229
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (1)
Sami Gazzah 2009 230
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (2)
Sami Gazzah 2009 231
I Segments 2D cercles3 Geacuteneacuteration de cercles
Rappels (3)
Sami Gazzah 2009 232
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Toujours baseacute sur le choix entre deux
points discrets deacutependant de leur
distance respective avec le point reacuteel
On travaille dans le 2e octant agrave partir
de (0r) ainsi pour un point (xi yi) le
prochain point sera
(xi+1 yi) ou (xi+1 yi-1)
Sami Gazzah 2009 233
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On calcule le prochain y et les diffeacuterences respectives avec les points
discrets de la faccedilon suivante
Le signe de pi nous dira si nous devons choisir le point lateacuteral ou le diagonal
Sami Gazzah 2009 234
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Encore une fois pour eacuteviter de calculer cette diffeacuterence pour chaque point on
cherche une faccedilon de calculer les diffeacuterences subseacutequentes par increacutementation
15122010
40
Sami Gazzah 2009 235
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On considegravere 2 cas
Valeur initiale
Sami Gazzah 2009 236
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Sami Gazzah 2009 237
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Exemple centre = (00) et r = 3
Sami Gazzah 2009 238
Livres
Diane Lingrand Introduction au Traitement d‟Images Paris Editions Vuibert 2e
eacutedition 2008
Steven k Feiner James D Foley John F Hughes Richard l Phillips Andries
Vanam Introduction agrave l‟infographie Paris Editions Vuibert 2000
William K Pratt Digital Image Processing Willy-Inter-sciences 4th edition 2007
Eacuteric Incerti Compression dimage ndash Algorithmes et standards Vuibert 2003
Gilles Burel Introduction au traitement dimages ndash Simulation sous Matlab
Hermegraves 2001
Sites web
Cours de C Rougier (U Montreacuteal)
httpwww-etudiroumontrealca~rougiercift2730courshtml (cf chapitre 3)
Page wikipeacutedia sur JPEG (en anglais plus complegravete que celle en franccedilais)
httpenwikipediaorgwikiJPEG
Cours de P Courtellemont (Campus numeacuterique Espdon)
httppersouniv-lrfrpcourtelespadonsite_web
Applet de deacutemo par C G Jennings
httpcgjenningscatoyboxhjpegindexhtml
Cours de D Marshall (U Cardiff)
httpwwwcscfacukDaveMultimediaPDF
Reacutefeacuterences
Sami Gazzah 2009 239
Chapitre 9
introduction au
traitement
dimages avec OpenGL
Sami Gazzah 2009 240
OpenGL est une librairie graphique Elle a eacuteteacute creacutee par Silicon
Graphics et beacuteneacuteficie sur ces machines de lacceacuteleacuteration mateacuterielle
Elle est constitueacute d‟environ 200 fonctions graphiques
OpenGL est une bibliothegraveque de fonctions
Les fonctions sont de bas niveaux
La version actuelle est l‟ laquo OpenGL 41 raquo (deacutecembre 2010)
Principale caracteacuteristique indeacutependant du mateacuteriel et du systegraveme
d‟exploitation
Une impleacutementation libre de droits dOpenGL tregraves performante a eacuteteacute
eacutecrite par Brian Paul httpwwwmesa3dorg Et tout son code source
est accessible
Preacutesentation geacuteneacuterale
15122010
41
Sami Gazzah 2009 241
OpenGL propose des fonctions de bas niveaux
Primitives geacuteomeacutetriques points segments polygones
Les fonctions de haut niveaux sont deacuteveloppeacutees par l‟utilisateur ou
importeacutees par la librairie en amont d‟OpenGL
Primitives geacuteomeacutetriques complexes Sphegravere splines etc
Toutes les commandes et fonctions utilisent le preacutefixe gl
Exemple glColor2f()
Sami Gazzah 2009 242
Les Bibliothegraveques co-existant avec OpenGL
GLU OpenGL Utility Library contient les routines de bas niveau pour
geacuterer les matrices de transformation et de projection la facettisation des
polygones et le rendu de surface Les bibliothegraveques dextension du
systegraveme de fenecirctres permettent lutilisation du rendu OpenGL Il sagit de
GLX pour X Windows (fonctions ayant pour preacutefixe glX) et de WGL
pour Microsoft Windows (fonctions ayant pour preacutefixe wgl)
GLUT OpenGL Utility Toolkit est une boite agrave outils indeacutependante du
systegraveme de fenecirctrage eacutecrite par Mark
Kilgard pour simplifier la tacircche dutiliser des systegravemes diffeacuterents (fonctions
ayant pour preacutefixe glut)
Sami Gazzah 2009 243
Les primitives geacuteomeacutetriques d rsquoOpenGL
Les primitives sont deacutecrites par un bloc d‟instructions deacutelimiteacute par glBegin et glEnd
Ce bloc contient geacuteneacuteralement une liste de vertex Exemple
glBegin(GL_LINE_LOOP)
glVertex2f(-05 -05)
glVertex2f(05 -05)
glVertex2f(05 05)
glVertex2f(-05 05)
glEnd()
D‟autres attributs peuvent ecirctre speacutecifieacutes en chaque sommet
couleur normale coordonneacutee de texture etcSami Gazzah 2009 244
OpenGL est une machine agrave eacutetats
En modifiant les variables d‟eacutetats on peut changer le style de rendu
Sami Gazzah 2009 245
Exemple Honda Hippo (3dRendercom)
Placage de textures
bullL‟apparence et le toucher ( feel ) d‟une surface
bullUne image utiliseacutee pour deacutefinir les caracteacuteristiques d‟une surface
bullUne image multi-dimensionnelle qui est plaqueacutee sur un espace multi-
dimensionnel
Sami Gazzah 2009 246
15122010
42
Sami Gazzah 2009 247
Reacutefeacuterences openGL
Sami Gazzah 2009 248
Chapitre 10
introduction au
traitement
dimages avec OpenCV
Sami Gazzah 2009 249
Preacutesentation geacuteneacuterale
Quest-ce
Open Source Computer Vision Library
Bibliothegraveque open source de traitement des images numeacuteriques
Projet initieacute par Intel (en 1999)
Teacuteleacutechargeable sur httpsourceforgenetprojectsopencvlibrary
Fortement orienteacutee temps reacuteel
eacutecrite en C et C++
optimiseacutee pour les processeurs multi-cœurs
Multi-plateformes disponible pour Linux Windows et Mac OS X
Que contient-elle
Des fonctionnaliteacutes (structures et routines gt350 algos) de base et
avanceacutees pour bacirctir rapidement des applications autour de la vision par
ordinateur
Exemples dutilisation traitements de bas niveau (filtrage ) deacutetection
de visages reconnaissance et suivi dobjets en mouvement Sami Gazzah 2009 250
Fonctionnaliteacutes
Lectureeacutecriture dimages statiques et de seacutequences videacuteo
APIs de bas et moyen niveaux
Traitement des images binaires
Manipulations dimage (eacutechantillonnage (sampling) reacutegion dinteacuterecirct (ROI)
redimensionnement (resizing) rotation deacuteformation (warping) )
Deacutetection de contours de lignes de coins (edge detection)
Traitements multi-eacutechelles (multiscale processing)
Transformeacutees (Fourier cosinus discregravete )
Modules de haut niveau
Deacutetection reconnaissance et suivi (tracking) de visages
Flot optique (estimation du mouvement) (optical flow)
Calibrage (calibration) de la cameacutera
Mise en correspondance steacutereacuteoscopique (stereo matching)
IA et apprentissage par ordinateur (machine learning)
3D mise en correspondance (registration)
Sami Gazzah 2009 251
Modules principaux
CxCore
Types de base pour manip dimages (ex struct image point isin cxtypesh)
Structures dynamiques (listes files graphes arbres) et persistantes (LE)
Manipulations de matrices meacutethodes de lalgegravebre lineacuteaire et statistiques
Dessin en surimpression (overlay) (ex eacutetiquetage)
Cv
Traitement dimage calibrage cameacutera
Geacuteomeacutetrie algorithmique (triangulation )
Cvaux
Reconnaissance de visage
Code expeacuterimental et obsolegravete
Autres (dans otherlibs)
HighGUI ES videacuteos curseurs fenecirctrage
ML classification regroupement (clustering)Sami Gazzah 2009 252
OpenCV premiers programmesBibliothegraveque OpenCV
15122010
43
Sami Gazzah 2009 253
Livre
G Bradski amp A Kaehler laquo Learning OpenCV raquo OReilly Press (2008)
codes sources httpexamplesoreillycom9780596516130
Ressources en ligne
Reacutefeacuterence complegravete httpopencvwillowgaragecomdocumentation
Wiki httpopencvwillowgaragecomwikiFullOpenCVWiki
bullPreacutesentation teacuteleacutechargement installation
bullavec CodeBlocks httpopencvwillowgaragecomwikiCodeBlocks
bullDeacutebuter avec OpenCV FAQ
Tutoriels
httpnchcdlsourceforgenetsourceforgeopencvlibraryippocvpdf
httpdaslmemdrexeledu~noahKuntzopenCVTut1html agrave Tut11html
httpwwwcognoticscomopencvservo_2007_series
Tutoriel sur la vision utilisant OpenCV (en franccedilais)
httpwwwsiteduzerocomtutoriel-3-8631-vision-par-ordinateurhtml
Reacutefeacuterences openCV
15122010
40
Sami Gazzah 2009 235
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
On considegravere 2 cas
Valeur initiale
Sami Gazzah 2009 236
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Sami Gazzah 2009 237
I Segments 2D cercles3 Geacuteneacuteration de cercles
Algorithme de Bresenham
Exemple centre = (00) et r = 3
Sami Gazzah 2009 238
Livres
Diane Lingrand Introduction au Traitement d‟Images Paris Editions Vuibert 2e
eacutedition 2008
Steven k Feiner James D Foley John F Hughes Richard l Phillips Andries
Vanam Introduction agrave l‟infographie Paris Editions Vuibert 2000
William K Pratt Digital Image Processing Willy-Inter-sciences 4th edition 2007
Eacuteric Incerti Compression dimage ndash Algorithmes et standards Vuibert 2003
Gilles Burel Introduction au traitement dimages ndash Simulation sous Matlab
Hermegraves 2001
Sites web
Cours de C Rougier (U Montreacuteal)
httpwww-etudiroumontrealca~rougiercift2730courshtml (cf chapitre 3)
Page wikipeacutedia sur JPEG (en anglais plus complegravete que celle en franccedilais)
httpenwikipediaorgwikiJPEG
Cours de P Courtellemont (Campus numeacuterique Espdon)
httppersouniv-lrfrpcourtelespadonsite_web
Applet de deacutemo par C G Jennings
httpcgjenningscatoyboxhjpegindexhtml
Cours de D Marshall (U Cardiff)
httpwwwcscfacukDaveMultimediaPDF
Reacutefeacuterences
Sami Gazzah 2009 239
Chapitre 9
introduction au
traitement
dimages avec OpenGL
Sami Gazzah 2009 240
OpenGL est une librairie graphique Elle a eacuteteacute creacutee par Silicon
Graphics et beacuteneacuteficie sur ces machines de lacceacuteleacuteration mateacuterielle
Elle est constitueacute d‟environ 200 fonctions graphiques
OpenGL est une bibliothegraveque de fonctions
Les fonctions sont de bas niveaux
La version actuelle est l‟ laquo OpenGL 41 raquo (deacutecembre 2010)
Principale caracteacuteristique indeacutependant du mateacuteriel et du systegraveme
d‟exploitation
Une impleacutementation libre de droits dOpenGL tregraves performante a eacuteteacute
eacutecrite par Brian Paul httpwwwmesa3dorg Et tout son code source
est accessible
Preacutesentation geacuteneacuterale
15122010
41
Sami Gazzah 2009 241
OpenGL propose des fonctions de bas niveaux
Primitives geacuteomeacutetriques points segments polygones
Les fonctions de haut niveaux sont deacuteveloppeacutees par l‟utilisateur ou
importeacutees par la librairie en amont d‟OpenGL
Primitives geacuteomeacutetriques complexes Sphegravere splines etc
Toutes les commandes et fonctions utilisent le preacutefixe gl
Exemple glColor2f()
Sami Gazzah 2009 242
Les Bibliothegraveques co-existant avec OpenGL
GLU OpenGL Utility Library contient les routines de bas niveau pour
geacuterer les matrices de transformation et de projection la facettisation des
polygones et le rendu de surface Les bibliothegraveques dextension du
systegraveme de fenecirctres permettent lutilisation du rendu OpenGL Il sagit de
GLX pour X Windows (fonctions ayant pour preacutefixe glX) et de WGL
pour Microsoft Windows (fonctions ayant pour preacutefixe wgl)
GLUT OpenGL Utility Toolkit est une boite agrave outils indeacutependante du
systegraveme de fenecirctrage eacutecrite par Mark
Kilgard pour simplifier la tacircche dutiliser des systegravemes diffeacuterents (fonctions
ayant pour preacutefixe glut)
Sami Gazzah 2009 243
Les primitives geacuteomeacutetriques d rsquoOpenGL
Les primitives sont deacutecrites par un bloc d‟instructions deacutelimiteacute par glBegin et glEnd
Ce bloc contient geacuteneacuteralement une liste de vertex Exemple
glBegin(GL_LINE_LOOP)
glVertex2f(-05 -05)
glVertex2f(05 -05)
glVertex2f(05 05)
glVertex2f(-05 05)
glEnd()
D‟autres attributs peuvent ecirctre speacutecifieacutes en chaque sommet
couleur normale coordonneacutee de texture etcSami Gazzah 2009 244
OpenGL est une machine agrave eacutetats
En modifiant les variables d‟eacutetats on peut changer le style de rendu
Sami Gazzah 2009 245
Exemple Honda Hippo (3dRendercom)
Placage de textures
bullL‟apparence et le toucher ( feel ) d‟une surface
bullUne image utiliseacutee pour deacutefinir les caracteacuteristiques d‟une surface
bullUne image multi-dimensionnelle qui est plaqueacutee sur un espace multi-
dimensionnel
Sami Gazzah 2009 246
15122010
42
Sami Gazzah 2009 247
Reacutefeacuterences openGL
Sami Gazzah 2009 248
Chapitre 10
introduction au
traitement
dimages avec OpenCV
Sami Gazzah 2009 249
Preacutesentation geacuteneacuterale
Quest-ce
Open Source Computer Vision Library
Bibliothegraveque open source de traitement des images numeacuteriques
Projet initieacute par Intel (en 1999)
Teacuteleacutechargeable sur httpsourceforgenetprojectsopencvlibrary
Fortement orienteacutee temps reacuteel
eacutecrite en C et C++
optimiseacutee pour les processeurs multi-cœurs
Multi-plateformes disponible pour Linux Windows et Mac OS X
Que contient-elle
Des fonctionnaliteacutes (structures et routines gt350 algos) de base et
avanceacutees pour bacirctir rapidement des applications autour de la vision par
ordinateur
Exemples dutilisation traitements de bas niveau (filtrage ) deacutetection
de visages reconnaissance et suivi dobjets en mouvement Sami Gazzah 2009 250
Fonctionnaliteacutes
Lectureeacutecriture dimages statiques et de seacutequences videacuteo
APIs de bas et moyen niveaux
Traitement des images binaires
Manipulations dimage (eacutechantillonnage (sampling) reacutegion dinteacuterecirct (ROI)
redimensionnement (resizing) rotation deacuteformation (warping) )
Deacutetection de contours de lignes de coins (edge detection)
Traitements multi-eacutechelles (multiscale processing)
Transformeacutees (Fourier cosinus discregravete )
Modules de haut niveau
Deacutetection reconnaissance et suivi (tracking) de visages
Flot optique (estimation du mouvement) (optical flow)
Calibrage (calibration) de la cameacutera
Mise en correspondance steacutereacuteoscopique (stereo matching)
IA et apprentissage par ordinateur (machine learning)
3D mise en correspondance (registration)
Sami Gazzah 2009 251
Modules principaux
CxCore
Types de base pour manip dimages (ex struct image point isin cxtypesh)
Structures dynamiques (listes files graphes arbres) et persistantes (LE)
Manipulations de matrices meacutethodes de lalgegravebre lineacuteaire et statistiques
Dessin en surimpression (overlay) (ex eacutetiquetage)
Cv
Traitement dimage calibrage cameacutera
Geacuteomeacutetrie algorithmique (triangulation )
Cvaux
Reconnaissance de visage
Code expeacuterimental et obsolegravete
Autres (dans otherlibs)
HighGUI ES videacuteos curseurs fenecirctrage
ML classification regroupement (clustering)Sami Gazzah 2009 252
OpenCV premiers programmesBibliothegraveque OpenCV
15122010
43
Sami Gazzah 2009 253
Livre
G Bradski amp A Kaehler laquo Learning OpenCV raquo OReilly Press (2008)
codes sources httpexamplesoreillycom9780596516130
Ressources en ligne
Reacutefeacuterence complegravete httpopencvwillowgaragecomdocumentation
Wiki httpopencvwillowgaragecomwikiFullOpenCVWiki
bullPreacutesentation teacuteleacutechargement installation
bullavec CodeBlocks httpopencvwillowgaragecomwikiCodeBlocks
bullDeacutebuter avec OpenCV FAQ
Tutoriels
httpnchcdlsourceforgenetsourceforgeopencvlibraryippocvpdf
httpdaslmemdrexeledu~noahKuntzopenCVTut1html agrave Tut11html
httpwwwcognoticscomopencvservo_2007_series
Tutoriel sur la vision utilisant OpenCV (en franccedilais)
httpwwwsiteduzerocomtutoriel-3-8631-vision-par-ordinateurhtml
Reacutefeacuterences openCV
15122010
41
Sami Gazzah 2009 241
OpenGL propose des fonctions de bas niveaux
Primitives geacuteomeacutetriques points segments polygones
Les fonctions de haut niveaux sont deacuteveloppeacutees par l‟utilisateur ou
importeacutees par la librairie en amont d‟OpenGL
Primitives geacuteomeacutetriques complexes Sphegravere splines etc
Toutes les commandes et fonctions utilisent le preacutefixe gl
Exemple glColor2f()
Sami Gazzah 2009 242
Les Bibliothegraveques co-existant avec OpenGL
GLU OpenGL Utility Library contient les routines de bas niveau pour
geacuterer les matrices de transformation et de projection la facettisation des
polygones et le rendu de surface Les bibliothegraveques dextension du
systegraveme de fenecirctres permettent lutilisation du rendu OpenGL Il sagit de
GLX pour X Windows (fonctions ayant pour preacutefixe glX) et de WGL
pour Microsoft Windows (fonctions ayant pour preacutefixe wgl)
GLUT OpenGL Utility Toolkit est une boite agrave outils indeacutependante du
systegraveme de fenecirctrage eacutecrite par Mark
Kilgard pour simplifier la tacircche dutiliser des systegravemes diffeacuterents (fonctions
ayant pour preacutefixe glut)
Sami Gazzah 2009 243
Les primitives geacuteomeacutetriques d rsquoOpenGL
Les primitives sont deacutecrites par un bloc d‟instructions deacutelimiteacute par glBegin et glEnd
Ce bloc contient geacuteneacuteralement une liste de vertex Exemple
glBegin(GL_LINE_LOOP)
glVertex2f(-05 -05)
glVertex2f(05 -05)
glVertex2f(05 05)
glVertex2f(-05 05)
glEnd()
D‟autres attributs peuvent ecirctre speacutecifieacutes en chaque sommet
couleur normale coordonneacutee de texture etcSami Gazzah 2009 244
OpenGL est une machine agrave eacutetats
En modifiant les variables d‟eacutetats on peut changer le style de rendu
Sami Gazzah 2009 245
Exemple Honda Hippo (3dRendercom)
Placage de textures
bullL‟apparence et le toucher ( feel ) d‟une surface
bullUne image utiliseacutee pour deacutefinir les caracteacuteristiques d‟une surface
bullUne image multi-dimensionnelle qui est plaqueacutee sur un espace multi-
dimensionnel
Sami Gazzah 2009 246
15122010
42
Sami Gazzah 2009 247
Reacutefeacuterences openGL
Sami Gazzah 2009 248
Chapitre 10
introduction au
traitement
dimages avec OpenCV
Sami Gazzah 2009 249
Preacutesentation geacuteneacuterale
Quest-ce
Open Source Computer Vision Library
Bibliothegraveque open source de traitement des images numeacuteriques
Projet initieacute par Intel (en 1999)
Teacuteleacutechargeable sur httpsourceforgenetprojectsopencvlibrary
Fortement orienteacutee temps reacuteel
eacutecrite en C et C++
optimiseacutee pour les processeurs multi-cœurs
Multi-plateformes disponible pour Linux Windows et Mac OS X
Que contient-elle
Des fonctionnaliteacutes (structures et routines gt350 algos) de base et
avanceacutees pour bacirctir rapidement des applications autour de la vision par
ordinateur
Exemples dutilisation traitements de bas niveau (filtrage ) deacutetection
de visages reconnaissance et suivi dobjets en mouvement Sami Gazzah 2009 250
Fonctionnaliteacutes
Lectureeacutecriture dimages statiques et de seacutequences videacuteo
APIs de bas et moyen niveaux
Traitement des images binaires
Manipulations dimage (eacutechantillonnage (sampling) reacutegion dinteacuterecirct (ROI)
redimensionnement (resizing) rotation deacuteformation (warping) )
Deacutetection de contours de lignes de coins (edge detection)
Traitements multi-eacutechelles (multiscale processing)
Transformeacutees (Fourier cosinus discregravete )
Modules de haut niveau
Deacutetection reconnaissance et suivi (tracking) de visages
Flot optique (estimation du mouvement) (optical flow)
Calibrage (calibration) de la cameacutera
Mise en correspondance steacutereacuteoscopique (stereo matching)
IA et apprentissage par ordinateur (machine learning)
3D mise en correspondance (registration)
Sami Gazzah 2009 251
Modules principaux
CxCore
Types de base pour manip dimages (ex struct image point isin cxtypesh)
Structures dynamiques (listes files graphes arbres) et persistantes (LE)
Manipulations de matrices meacutethodes de lalgegravebre lineacuteaire et statistiques
Dessin en surimpression (overlay) (ex eacutetiquetage)
Cv
Traitement dimage calibrage cameacutera
Geacuteomeacutetrie algorithmique (triangulation )
Cvaux
Reconnaissance de visage
Code expeacuterimental et obsolegravete
Autres (dans otherlibs)
HighGUI ES videacuteos curseurs fenecirctrage
ML classification regroupement (clustering)Sami Gazzah 2009 252
OpenCV premiers programmesBibliothegraveque OpenCV
15122010
43
Sami Gazzah 2009 253
Livre
G Bradski amp A Kaehler laquo Learning OpenCV raquo OReilly Press (2008)
codes sources httpexamplesoreillycom9780596516130
Ressources en ligne
Reacutefeacuterence complegravete httpopencvwillowgaragecomdocumentation
Wiki httpopencvwillowgaragecomwikiFullOpenCVWiki
bullPreacutesentation teacuteleacutechargement installation
bullavec CodeBlocks httpopencvwillowgaragecomwikiCodeBlocks
bullDeacutebuter avec OpenCV FAQ
Tutoriels
httpnchcdlsourceforgenetsourceforgeopencvlibraryippocvpdf
httpdaslmemdrexeledu~noahKuntzopenCVTut1html agrave Tut11html
httpwwwcognoticscomopencvservo_2007_series
Tutoriel sur la vision utilisant OpenCV (en franccedilais)
httpwwwsiteduzerocomtutoriel-3-8631-vision-par-ordinateurhtml
Reacutefeacuterences openCV
15122010
42
Sami Gazzah 2009 247
Reacutefeacuterences openGL
Sami Gazzah 2009 248
Chapitre 10
introduction au
traitement
dimages avec OpenCV
Sami Gazzah 2009 249
Preacutesentation geacuteneacuterale
Quest-ce
Open Source Computer Vision Library
Bibliothegraveque open source de traitement des images numeacuteriques
Projet initieacute par Intel (en 1999)
Teacuteleacutechargeable sur httpsourceforgenetprojectsopencvlibrary
Fortement orienteacutee temps reacuteel
eacutecrite en C et C++
optimiseacutee pour les processeurs multi-cœurs
Multi-plateformes disponible pour Linux Windows et Mac OS X
Que contient-elle
Des fonctionnaliteacutes (structures et routines gt350 algos) de base et
avanceacutees pour bacirctir rapidement des applications autour de la vision par
ordinateur
Exemples dutilisation traitements de bas niveau (filtrage ) deacutetection
de visages reconnaissance et suivi dobjets en mouvement Sami Gazzah 2009 250
Fonctionnaliteacutes
Lectureeacutecriture dimages statiques et de seacutequences videacuteo
APIs de bas et moyen niveaux
Traitement des images binaires
Manipulations dimage (eacutechantillonnage (sampling) reacutegion dinteacuterecirct (ROI)
redimensionnement (resizing) rotation deacuteformation (warping) )
Deacutetection de contours de lignes de coins (edge detection)
Traitements multi-eacutechelles (multiscale processing)
Transformeacutees (Fourier cosinus discregravete )
Modules de haut niveau
Deacutetection reconnaissance et suivi (tracking) de visages
Flot optique (estimation du mouvement) (optical flow)
Calibrage (calibration) de la cameacutera
Mise en correspondance steacutereacuteoscopique (stereo matching)
IA et apprentissage par ordinateur (machine learning)
3D mise en correspondance (registration)
Sami Gazzah 2009 251
Modules principaux
CxCore
Types de base pour manip dimages (ex struct image point isin cxtypesh)
Structures dynamiques (listes files graphes arbres) et persistantes (LE)
Manipulations de matrices meacutethodes de lalgegravebre lineacuteaire et statistiques
Dessin en surimpression (overlay) (ex eacutetiquetage)
Cv
Traitement dimage calibrage cameacutera
Geacuteomeacutetrie algorithmique (triangulation )
Cvaux
Reconnaissance de visage
Code expeacuterimental et obsolegravete
Autres (dans otherlibs)
HighGUI ES videacuteos curseurs fenecirctrage
ML classification regroupement (clustering)Sami Gazzah 2009 252
OpenCV premiers programmesBibliothegraveque OpenCV
15122010
43
Sami Gazzah 2009 253
Livre
G Bradski amp A Kaehler laquo Learning OpenCV raquo OReilly Press (2008)
codes sources httpexamplesoreillycom9780596516130
Ressources en ligne
Reacutefeacuterence complegravete httpopencvwillowgaragecomdocumentation
Wiki httpopencvwillowgaragecomwikiFullOpenCVWiki
bullPreacutesentation teacuteleacutechargement installation
bullavec CodeBlocks httpopencvwillowgaragecomwikiCodeBlocks
bullDeacutebuter avec OpenCV FAQ
Tutoriels
httpnchcdlsourceforgenetsourceforgeopencvlibraryippocvpdf
httpdaslmemdrexeledu~noahKuntzopenCVTut1html agrave Tut11html
httpwwwcognoticscomopencvservo_2007_series
Tutoriel sur la vision utilisant OpenCV (en franccedilais)
httpwwwsiteduzerocomtutoriel-3-8631-vision-par-ordinateurhtml
Reacutefeacuterences openCV
15122010
43
Sami Gazzah 2009 253
Livre
G Bradski amp A Kaehler laquo Learning OpenCV raquo OReilly Press (2008)
codes sources httpexamplesoreillycom9780596516130
Ressources en ligne
Reacutefeacuterence complegravete httpopencvwillowgaragecomdocumentation
Wiki httpopencvwillowgaragecomwikiFullOpenCVWiki
bullPreacutesentation teacuteleacutechargement installation
bullavec CodeBlocks httpopencvwillowgaragecomwikiCodeBlocks
bullDeacutebuter avec OpenCV FAQ
Tutoriels
httpnchcdlsourceforgenetsourceforgeopencvlibraryippocvpdf
httpdaslmemdrexeledu~noahKuntzopenCVTut1html agrave Tut11html
httpwwwcognoticscomopencvservo_2007_series
Tutoriel sur la vision utilisant OpenCV (en franccedilais)
httpwwwsiteduzerocomtutoriel-3-8631-vision-par-ordinateurhtml
Reacutefeacuterences openCV