Cours Vision

63
Cours de traitement d’images – Catherine Achard 1 Cours de Traitement d’images rédigé par Catherine Achard, sur la base des cours de J. Devars et M. Milgram 2002/2003

description

v

Transcript of Cours Vision

  • Cours de traitement dimages Catherine Achard 1

    Cours de Traitement dimages

    rdig par Catherine Achard, sur la base des cours de J. Devars et M. Milgram

    2002/2003

  • Cours de traitement dimages Catherine Achard 2

    Chapitre 0 : Introduction Limagerie est un domaine trs vaste parmi lequel, on peut distinguer plusieurs catgories :

    Capteurs d'images - Vido, thermique - Imagerie X - Imagerie d'cho (radar / sonar) - Imagerie de comptage

    Traitement et interprtation des images - Codage / compression (transmission / archivage)- Amlioration d'images (subjectif / visuel) - Vision par ordinateur

    + Mtrologie (segmentation) + Contrle (binarisation) + Identification (2D / 3D / RdF) + Interprtation (RdF, ...)

    Systmes de traitement

    Image calcule - Graphisme 2D et 3D - Infographie - Ralit virtuelle

    Cest aussi un domaine pluridisciplinaire qui fait appel :

    - Traitement du signal - Analyse numrique - Informatique - Thorie de linformation - Etude statistique - Optique - Electronique

    Les applications sont aussi trs varis et stendent de jour en jour :

    - Compression dimages - Amlioration dimages en vu dun meilleur rendu visuel (tlvision) - Imagerie biomdicale : compter des cellules dans des images microscopiques - Identification de personnes : reconnatre des empreintes digitales, des visages - Authentification (de billets de banque par exemple) - Aide la conduite : guidage latral de vhicule - Surveillance de la qualit dune chane de production, - Reconnaissance de lcriture, - Imagerie satellitaire - Indexation dimages : organiser automatiquement des grandes bases dimages en

    fonction de leur contenu -

    Ci dessous sont prsentes quelques images correspondant ces divers domaines dapplication :

  • Cours de traitement dimages Catherine Achard 3

  • Cours de traitement dimages Catherine Achard 4Cours de traitement dimages Catherine Achard 4

  • Cours de traitement dimages Catherine Achard 5

    Chapitre 1 : Acquisition dimages Tout systme de traitement dimages peut tre vu comme la combinaison de deux tapes : lacquisition et le traitement proprement dit. La qualit des rsultats du systme dpend bien sur de lalgorithme mis en place et de son adquation au problme pos, mais aussi de la qualit initiale des images. I. Camra tubes

    Ces capteurs sont relativement anciens et font appel larchologie lectronique puisquils ont ts invents en 1931 par Vladimir Zworykin. Leur principe est le suivant : la scne est projete sur une cible photosensible qui convertit une quantit de lumire en une quantit de charge. Il se forme ainsi un relief de potentiel correspondant limage analyse sur la cible. Celle-ci est lanode du tube dont la source lectronique est la cathode. Les lectrons issus de la cathode sont attirs par lanode polarise positivement. Ce flux dlectrons est dvi par lensemble des bobines de dviation afin de scruter lensemble de la cible rectangulaire analyser. Le courant issu de la cible correspond limage projete. Lamplitude du courant est fonction de lclairement. Bobine de dviation

    Grillesd'acclration

    Faisceaud'lectrons

    Cathode

    Balayage x, y

    Photons

    Cible

    photosensible Un balayage dans les deux dimensions de la zone photosensible a pour but de remplir tout

    lcran correspondant limage. Il est fait de la manire suivante :

    Retour de ligne

    La dure dacquisition dune ligne (64 s) et le nombre de lignes par image (625) amnent 25 acquisitions dimage par seconde. Cette frquence nest pas suffisante, il apparat un phnomne de scintillement qui donne une srie dimages saccades et discontinues dans le

  • Cours de traitement dimages Catherine Achard 6

    temps. Ce problme peut-tre rsolu sans augmenter le nombre dimages par une technique de balayage entrelac : chaque image est analyse au moyen de deux trames raison de 50 trames par seconde : A ce jour, ces tubes ont t remplacs par des capteurs de type CCD (Charge Couple Devices). En effet, mmes si les tubes vido prsentent certains avantages (bonne sensibilit spectrale de certains tubes dans linfrarouge), ils ont aussi une dure de vie plus courte que les camras CCD, ils produisent des images avec de fortes distorsions gomtriques et ont un encombrement beaucoup plus important que celui des capteurs CCD. II. Camras CCD Cas capteurs sont relativement rcents. Leur principe est le suivant : la scne est projete au moyen dun objectif sur un rseau de capteurs discret, ce qui ralise un chantillonnage spatial de limage. Chaque photo-lment convertit lnergie lumineuse en nergie lectrique. Il existe deux types de capteurs : les photodiodes ou les condensateurs MOS de type P. Dans les deux cas, larrive de photons conduit la formation dune charge lectrique sous la photodiode ou le photomos.

    1. Principe du transfert de charge

    Photons

    Photodiode ou

    Photomos

    Silicium Substrat

    Electrodes

    etHorloge

    1 2

    34

    Pour raliser le transfert de charge, les condensateurs MOS sont associs les uns la suite des autres. Le substrat des semi-conducteurs ainsi que lisolant est commun. Les grilles mtalliques sont indpendantes pour chaque capteur. Le but consiste transfrer successivement les charges lectriques prsentes sous les diffrentes grilles vers la sortie. Plusieurs types de transfert sont possibles, nous allons tudier le plus simple : le transfert biphas. Supposons que des charges lectriques soient prsentes sous la grille 1 (lectrode 1 polarise). Pour les dplacer, on va successivement polariser les lectrodes 2, 3, 4, Pour optimiser le dplacement des charges, une phase intermdiaire o deux lectrodes sont simultanment polarises est mise en place :

  • Cours de traitement dimages Catherine Achard 7

    +V

    +V

    +V/2

    temps

    Electrode 3

    temps

    Electrode 2

    temps

    Electrode 1

    2. Les CCD linaires La zone photosensible est compose dun alignement de photo-lments :

    Zone de transfert

    Zone photosensible

    Sortie

    Les charges de la zone photosensible sont transmises toutes en mme temps en zone de transfert. Elles sont ensuite vacues squentiellement vers la sortie.

    3. Les CCD matricielles

    Zone expose

    Dplacement vertical Zone de transfert Sortie Le capteur possde deux zones : une compose des capteurs photosensibles, lautre est une zone de transfert. Aprs la saisie de limage, elle est transfre par un dplacement vertical en zone de transfert puis vacue ligne par ligne en zone mmoire. Les charges lmentaires sont alors rcupres squentiellement en sortie. Le problme de cette technologie est que lors du transfert en zone mmoire, les cellules photosensibles restent actives. La premire ligne image passe donc devant toutes les autres cellules durant son transfert, ce qui amne des variations.

  • Cours de traitement dimages Catherine Achard 8

    Signal de sortie

    Dplacement horizontal

    Zonemasque

    Zone expose

    Avec cette nouvelle technologie, la zone photosensible est transfre directement en zone masque par un dplacement vertical. Ensuite, les charges sont transfres ligne par ligne en zone mmoire avant dtre vacues squantiellement. Linconvnient ici est que lon aura une mauvaise rsolution spatiale dans limage finale.

  • Cours de traitement dimages Catherine Achard 9

    Chapitre 2 : Prsentation des images I. Introduction : image niveaux de gris Une image est reprsente par une matrice de dimension nombre de lignes x nombre de colonnes . Chaque lment de la matrice, nomm pixel, reprsente lintensit lumineuse comprise entre 0 et 255, soit 256 niveaux de gris. Le niveau de gris 0 correspond au noir tandis que 255 est reprsent en blanc. Ci dessous sont reprsentes une image de chromosome et des zooms dune partie de cette image.

    On peut constater, en zoomant sur ces images leffet de la discrtisation : des pixels carrs apparaissent. On peut galement visualiser les images comme une surface 3D, les axes x et y reprsentant la position spatiale des images tandis que laxe des z reprsente la luminance (par soucis de visibilit, on affiche linverse vido de limage pour cet affichage). NB : Pour lire des images sous Matlab, on utilise la commande imread() :

    I=imread(chromosome.tif); Pour afficher une image en niveau de gris :

    imagesc(I) Pour afficher des images comme des surfaces :

    surf(I)

  • Cours de traitement dimages Catherine Achard 10

    De ces images peuvent tre extraits lhistogramme et lhistogramme cumul.

    1. Histogramme dune image Lhistogramme est un vecteur de dimension 256. Chaque lment du vecteur h(i) reprsente le nombre de pixels de limage possdant le niveau de gris i. On peut donc assimiler lhistogramme la densit de probabilit des intensits lumineuses ( un facteur de normalisation prs). Ci-dessous est reprsent lhistogramme de limage de chromosome.

    0 50 100 150 200 250 3000

    2000

    4000

    6000

    8000

    10000

    12000 On peut observer que cette image est compose en grande partie de pixel de niveaux de gris entre 230 et 256 reprsentants le fond. Les pixels reprsentant lobjet forment un petit amas dans la zone de niveaux de gris autour de 150. Bien sur, ceux-ci sont bien moins important en nombre que les pixels du fond.

    NB : Sous matlab, on calcule lhistogramme avec :

    hist(I( :),[0 :255])

    2. Histogramme cumul dune image Cest galement un vecteur de dimension 256. Chaque lment hc(i) reprsente le nombre de pixels de limage possdant un niveau de gris infrieur ou gal i. Lhistogramme cumul peut donc tre assimil, un facteur de normalisation prs, la fonction de rpartition des niveaux de gris. Celui-ci peut-tre estim partir de lhistogramme en faisant une somme discrte :

    0

    ( ) ( )i

    jhc i h j

    ==

    Ci-dessous est reprsent lhistogramme cumul de la mme image.

    0 50 100 150 200 250 3000

    1

    2

    3

    4

    5

    6

    7

    8

    9x 104

  • Cours de traitement dimages Catherine Achard 11

    II. Image couleur Une image couleur contient 3 plans couleur. La plupart des camras amnent aux trois plans Rouge, Vert, Bleu (R,V,B). Chaque plan est cod comme une image niveaux de gris, avec des valeurs allant de 0 255. Lorsque R=V=B, la couleur associ est un niveau de gris. Dautre part, pour passer dune image couleur une image niveau de gris, on ralise :

    ( , ) ( , ) ( , )( , )3

    R y x V y x B y xI y x + += De la mme manire que prcdemment, on peut calculer lhistogramme couleur de chaque plan. De nombreux autres systmes de reprsentation des couleurs existent parmi lesquels on peut citer le systme HSV (Hue, Saturation, Value) :

    Noir

    Axe des saturations

    Axe des intensits V

    Axe des teintes H

    Blanc

    Bleu

    Vert

    Rouge

    Lintrt de cette reprsentation est quelle permet une interprtation facile des grandeurs :

    - H est la teinte qui varie entre 0 et 2, - S, la saturation varie entre 0 et 1 ainsi, une couleur trs sature qui possde une faible

    proportion de blanc se trouvera loin de laxe des intensits - V reprsente lintensit lumineuse.

    III. Convention Le systme de convention des axes est le suivant : En analogique : En discret : x y

    y

    x Ainsi, la ligne 0 dune image est celle situe en haut. Ceci implique une radaptation de toutes les dfinitions de traitement du signal (exemple : convolution 2D)

  • Cours de traitement dimages Catherine Achard 12

    IV. Notion de topologie Limage est donc reprsente par un ensemble de pixels disposs sous la forme dune grille :

    4-connexits 8-connexits

    x

    y

    Quels sont les pixels voisins du pixel (y,x) ? Selon les applications, on pourra se placer en 4 connexits ou en 8 connexits. Par contre, ds que lon parle de contours et de rgions conjointement, le choix simpose. Dans R2, le degr de connexit ( ou nombre dEuler) est dfini par : C = nombre de composantes connexes nombre total de trous et vrifie : C(E) + C(~E) = 1 (relation dEuler) Dans lespace image N2, notons E lensemble des 1 et ~E lensemble des 0 et considrons limagette suivante : Dans le cas de la 4-connexits,

    C4(E) = 4 - 0 =4 C4(E) + C4(~E) = 5

    C4(~E) = 2 - 1 = 1

    Dans le cas de la 8-connexits, C8(E) = 1 - 1 = 0

    C8(E) + C8(~E) = -3 C8(~E) = 1 - 4 = -3

    1

    1 1 1

    Il faut donc utiliser C4(E) et C8(~E) pour conserver une relation topologique (C4(E)+C8(~E)=1). On conserve donc la 8-connexits des contours pour garder une 4-connexits des rgions lors des traitements.

  • Cours de traitement dimages Catherine Achard 13

    Chapitre 3 : Amlioration dimages Dans ce chapitre, nous allons voir dune part comment modifier lapparence dune image pour quun observateur puisse plus facilement extraire des informations et dautre part, comment supprimer le bruit des images en vue dun traitement ultrieur. Avant cela, nous allons faire quelques rappels de traitement du signal en introduisant le filtrage deux dimensions.

    I. Rappel de traitement du signal La convolution 2D de limage I avec un filtre F est donne par :

    ( )( , ) ( , ) ( , ). ( , )n m

    I F x y IF x y I x n y m F n m+ +

    = = = =

    o F(n,m) est la rponse impulsionnelle du filtre. Cette convolution peut tre reprsente graphiquement par un cumul des produits terme terme, condition toutefois de prendre garde inverser les coefficients du filtre : Supposons que lon veuille filtrer (donc convoluer) une image avec le filtre :

    a b cF d e f

    g h i

    =

    i h gF f e d

    c b a

    =

    o llment central e correspond la position (0,0) dans la matrice. Avant

    de raliser la somme des produits terme terme, il faut inverser les coefficients du filtre :

    i h g f e d c b a En traitement dimage, par abus dcriture, on prsente directement le masque sous forme graphique, dj invers : NB : sous Matlab, la convolution se fait avec : IF=conv2(I,F,same) ; Loption same permet limage IF davoir la mme dimension que limage I

    Pixel dapplication du filtre

    Nouvelle valeur IF(x,y) Somme des produits

    terme terme des coefficients du filtre et des pixels de limage correspondants

  • Cours de traitement dimages Catherine Achard 14

    II. R-haussement dimages 1. Extension de dynamique

    Cette mthode consiste utiliser au mieux la dynamique de niveaux de gris. Ainsi, si une image possde des niveaux de gris entre Gmin et Gmax, on va tendre la plage des niveaux de gris pour ramener une dynamique comprise entre 0 et 255. Cette tendue rduite de niveaux de gris peut survenir suite un temps de pose incorrecte ou un clairage de la scne trop faible. La transformation mise en place est :

    ( , ) min'( , )max min

    I x y GI x yG G

    = NB : sous Matlab, si I est limage de dpart, la transformation se fait avec : mini=min(I(:)) ; maxi=max(I(:)); I1=(I-mini)/(maxi-mini) Cette transformation ne fait quamliorer la qualit visuelle de limage, elle ne change pas linformation prsente dans le signal. Exemple dimage :

    2. Correction dexposition On peut aussi tre amen vouloir renforcer certaine plage de niveaux de gris, au dtriment dautres plages pour mettre certains objets en valeur. Dans ce cas, la transformation des luminances nest plus linaire. Exemple pour renforcer la prsence des lments dun circuit lectrique, on dcide de renforcer la gamme des niveaux de gris clairs :

    Image de dpart Transformation Image darrive des luminances

  • Cours de traitement dimages Catherine Achard 15

    3. Egalisation dhistogramme

    Cette opration pour but de rendre lhistogramme le plus plat possible. On souhaite ainsi que chaque niveau de gris soit galement reprsent dans limage. Soit G, le niveau de gris dun pixel de dpart, le niveau de gris de limage darrive sera :

    255' (G histocumul GNombre de pixel

    = ) Exemple sur une image :

    Image de dpart Image galise

    4. Renforcement de contraste Contrairement aux autres mthodes, cette opration agit grce un traitement local sur les images (traitement prenant en compte les pixels du voisinage). Le problme que nous nous proposons de rsoudre est dessayer de supprimer un effet de flou d par exemple un bouger lors de la prise de vue. On ne veut donc pas toucher aux zones homognes des images mais par contre, essayer de restaurer des contours francs. En effet, le flou est caractris par une transition douce entre deux zones de niveaux de gris diffrents. Il va falloir raliser un traitement qui amne une transition la plus raide possible. Nous allons dans un premier temps expliquer le principe 1D de la mthode.

    En ralisant lopration Signal K*drive seconde, on ne touche pasau signal dans les zones homognes(car la drive seconde est nulle), parcontre, on renforce les zones decontraste. Le signal ainsi obtenupossde une transition plus abrupte.

    Signal Drive premire Drive seconde Signal K* drive seconde

  • Cours de traitement dimages Catherine Achard 16

    Considrons un signal discret monodimensionnel I(x). Sa drive premire sexprime par : ( )

    ( )1' ( ) (21' ( 1)2

    I x I x I xet

    1)

    ( )I x I x I

    = + = + x

    K petit K moyen K grand

    Selon les valeurs du paramtre K, onpeut accentuer plus ou moins lephnomne :

    Sa drive seconde sexprime par : ( ) ( )1 1''( ) ' ' ( 1) 2 ( ) ( 1)2 2I x I x I x I x I x I x= + = + + Dans le cas dun signal deux dimensions, on utilise le Laplacien dfinit par :

    2 22

    2 2( , ) ( 1, ) ( 1, ) ( , 1) ( , 1) 4 ( , )I II x y I x y I x y I x y I x y I x y

    x y = + = + + + + +

    Ce qui correspond une convolution avec le masque : 0 1 01 -4 10 1 0

    Exemple :

    Image originale K=0.5

    K=1 K=2

  • Cours de traitement dimages Catherine Achard 17

    Un des problmes du laplacien est que celui-ci est trs sensible au bruit, ce qui fait apparatre sur les images prcdentes un effet de grain. Pour le remdier, on peut utiliser des masques de plus grande dimension pour son calcul. Lide est dutiliser des zones circulaires de plus grande dimension :

    On aura ainsi une zone externe compose decoefficients positifs et une zone interne compose decoefficients ngatifs. La somme des coefficientspositifs et ngatifs doit tre nulle.

    Exemple de masque :

    ZI

    ZE

    1 1 1 1 11 1 1 1 1 -3 1 11 -8 1 1 -3 -8 -3 11 1 1 1 1 -3 1 1 1 1 1 1 1

    III. Rduction du bruit dans les images

    On peut considrer une image comme tant constitue de plusieurs zones homognes reprsentant les objets. Dans la ralit, des fluctuations des niveaux de gris sont prsentes cause du bruit. On cherchera donc diminuer lamplitude de ces perturbations, sans toucher aux zones de transitions.

    1. Filtre moyenneur Lide est de raliser une moyenne des niveaux de gris autour du pixel central. Pour cela, on peut utiliser un masque du type :

    1 1 11 * 1 1 19

    1 1 1

    La taille du masque est un paramtre variable. Plus le masque sera de grande dimension, plus leffet du filtrage sera fort. De manire gnrale, on essayera de raliser un filtrage isotopique (mme effet dans toutes les directions). Pour cela, le voisinage considr devra avoir une forme circulaire :

    0 0 0 1 0 0 00 1 1 1 1 1 00 1 1 1 1 1 0

    1 * 1 1 1 1 1 1 129

    0 1 1 1 1 1 00 1 1 1 1 1 00 0 0 1 0 0 0

  • Cours de traitement dimages Catherine Achard 18

    On remarque ici le problme li la dfinition dun cercle sur un maillage carr. NB : sous Matlab, IF=conv2(I,ones(3,3)/9,same); Exemple de filtrage :

    Image originale Image filtre avec Image filtre avec

    le masque 3x3 le masque 7x7 Bien que cette mthode soit trs simple mettre en uvre, elle possde un inconvnient majeur : le filtrage introduit un effet de flou, les contours sont dgrads.

    2. Filtrage gaussien Lexpression de la gaussienne en deux dimensions est donne par :

    2 2

    2 2

    1( , ) exp2 2

    x yg x y +=

    Lintrt du filtre gaussien est que lon rgle trs facilement le degr de filtrage travers le paramtre . Exemple de masque gaussien :

    =1 =2 =3

    Tous ces masques ont t calculs sur un voisinage de taille 41x41 mais on voit sur les figures prcdentes que la taille du masque peut-tre rduite ou augmente en fonction de .En thorie, la gaussienne a une tendue infinie, mais en pratique, on limite cette tendue [3,3] car la plupart de la puissance est dans cette zone. Par rapport au filtre moyenneur, le filtre gaussien accorde une grande importance aux pixels proches du pixel central, et diminue cette importance au fur et mesure que lon sloigne de celui-ci.

  • Cours de traitement dimages Catherine Achard 19

    On constate par contre le mme dfaut que le filtre moyenneur : il dgrade les contours en introduisant un flou. Linconvnient des deux filtres linaires prsents prcdemment est que le filtrage saccompagne dun talement des transitions. La dtermination des coefficients du filtre rsulte ainsi dun compromis filtrage/dgradation. Ce problme peut tre contourn en utilisant des filtres non linaires

    3. Filtre mdian Ce filtre tant non linaire, il ne peut pas tre ralis avec une convolution 2D de limage. Considrons un voisinage rectangulaire autour du pixel dintrt. Le filtre mdian consiste prendre la valeur de niveaux de gris sparant la population en deux effectifs gaux. Exemple :

    7 10 12 7 9 9 9 12 12 12 7 9 9 109 9 10 10 7 10 1210 12 9 12 10 12 1212 12 12 10 7 7 1010 7 10 12 12 10 7 10 7 9 12 10 9 12

    7-7-7-7-7-7-7-7-7-9-9-9-9-9-9-9-9-9-9-10-10-10-10-10-10-10-10-10-10-10-10-10-10-12-12-12-12-12-12-12-12-12-12-12-12-12-12-12-12 valeur mdiane : 10 Etude comparative :

    Signal initial Moyenne Mdiane On voit sur cet exemple leffet de la moyenne : des niveaux de gris intermdiaires apparaissent au moment de la transition. Ce nest pas le cas pour le signal filtr grce la mdiane. Ce filtre donne de trs bons rsultats de part son principe sur le bruit impulsionnel (type poivre et sel). Il a par contre linconvnient de supprimer les dtails fins. Nous allons examiner dans la suite dautres types de filtres permettant :

    - de conserver les dtails fins - de rduire les cots en temps de calcul imposs par la mdiane (tri) - de conserver une bonne qualit au niveau des transitions

  • Cours de traitement dimages Catherine Achard 20

    4. Filtre moyenne seuille Le principe consiste raliser un filtrage uniquement en dehors des zones de transitions. Celles-ci sont repres grce leur variance leve. Principe : Autour de chaque pixel, calcul de la variance des niveaux de gris.

    - si elle est infrieure un seuil (on est dans une zone homogne), calcul de la moyenne des niveaux de gris

    - sinon, on garde le niveau de gris dorigine

    5. Filtre moyenne pondre Ce filtre est moins binaire que le prcdent (filtrage/non filtrage) mais ncessite une estimation de la variance du bruit. Cette estimation peut tre ralise en prlevant une portion de limage correspondant une zone homogne et en calculant la variance des niveaux de gris de cette fentre. Une fois la variance du bruit VB estime, les pixels sont modifis laide de la relation :

    G = (1-K). Moyenne + K.Gorigine avec K = (Var-VB)/Var

    6. Filtre de Nagao

    Ce filtre est galement appel filtre slection de voisinage. Chaque fentre 5x5 est divise en 9 domaines :

    D0 D1

    .

    D8

    D2, D4 ,D6 sont dduits de D0 par rotations de 90 degrs. D3, D5, D7 sont dduits de D1 de la mme faon.. Pour chaque domaine Di, on calcule la moyenne et la variance : moy(i) et var(i). On va ensuite rechercher le domaine o la variance est la plus faible (aucun contour ne passe par ce domaine) et on affecte la moyenne des niveaux de gris de ce domaine au pixel central :

    k / Var(k) = Min Var(i) G = Moy(k)

    Ce filtre permet de limiter les pixels hors norme (bruit impulsionnel). Dautre part, il prserve et mme amliore le contraste. Les zones avant et aprs la transition sont plus homognes. Une premire amlioration de ce filtre consiste rgulariser la forme gomtrique des domaines :

    D1D0 D8

  • Cours de traitement dimages Catherine Achard 21

    Deux autres amliorations sont envisageables : - Utiliser ltendue max(Gris)-Min(Gris) comme paramtre de dispersion plutt que la

    variance (gain en temps de calcul) - Utiliser la mdiane comme paramtre de centrage pour une meilleure robustesse vis

    vis du bruit

    7. Etude comparative Sur une zone de transition, nous affichons ci-

    dessous : - la moyenne 5x5 - la mdiane 5x5 - Nagao

    On peut constater que du point de vue raideur de la transition, cest loprateur de Nagao qui donne les meilleurs rsultats

    Ces rsultats sont encore plus visibles en affichant les images sous forme surfacique :

    Image originale Moyenne

    Mdiane Nagao

  • Cours de traitement dimages Catherine Achard 22

    Chapitre 4 : Dtection de contour Une image est gnralement compose de plusieurs zones de niveaux de gris diffrents correspondants aux diffrents objets de la scne. Il nous faut maintenant trouver une manire de reprer ces objets dans limage afin de pouvoir passer leurs caractristiques un ventuel processus de reconnaissance des formes. Deux grandes approches peuvent tre envisages pour extraire les zones pertinentes des images :

    - on recherche des zones de niveaux de gris homognes, cest lapproche rgion - on recherche les discontinuits dans la scne, cest lapproche contour.

    Dans ce chapitre, nous allons nous intresser cette dernire mthode, la segmentation en rgion sera prsente dans le chapitre suivant.

    I. Introduction Les contours correspondent aux lieux gomtriques o le signal prsente une forte discontinuit. Regardons sur un signal une dimension comment retrouver ces discontinuits.

    Elles correspondent une pente leve de la transition recherche des maxima locaux du gradient

    Elles correspondent un changement de concavit recherche des passages par zros de la drive seconde (du laplacien pour les images)

    Elles correspondent une forme particulire du signal adaptation un gabarit

    Les deux premires approches sont des mthodes drivatives tandis que la troisime est une mthode dadaptation un gabarit

  • Cours de traitement dimages Catherine Achard 23

    II. Les approches drivatives 1. Lapproche gradient

    Signal Drive

    La recherche de la transition peut tre ralise en recherchant les maxima locaux du gradient. Dans le cas 2D des images, le vecteur gradient est dfini au point de coordonnes (x,y) par :

    ( , )( , )

    ( , )( , ) ( , )

    I y xIx y xxGrad y x I y x Iy y x

    y

    = =

    JJJJJJJJJJJJG

    Le module du gradient est dfini par : 2 2( , ) ( , ) ( , )G y x Ix y x Iy y x=

    tandis que son orientation est dfinie par : ( , )( , ) arctan( , )

    Iy y xy xIx y x

    = Lorientation du gradient est perpendiculaire au contour et va de la partie claire la partie fonce.

    Image originale Image originale visualise sous forme surfacique

    Image du module du gradient Image du gradient seuill et orientation

  • Cours de traitement dimages Catherine Achard 24

    Le calcul des drives peut tre ralis de plusieurs faons.

    a) calcul direct Il est ralis de la faon la plus simple quil soit :

    Ix(y,x) = I(y,x+1) - I(y,x) = (I*Gx)(y,x) Iy(y,x) = I(y+1,x) - I(y,x) = (I*Gy)(y,x)

    Ce qui correspond une convolution avec les masques :

    [ ]1 1Gx = et 11

    Gy =

    Malheureusement, ces drives sont trs sensibles au bruit, on aura donc faire un filtrage pralable.

    b) Masque de Prewitt Les masques drivateur sont maintenant :

    [ ]1 0 1 11 0 1 1 * 1 0 11 0 1 1

    Gx = =

    et [ ]1 1 1 1

    0 0 0 0 * 1 1 11 1 1 1

    Gy = =

    [ ]1 1 1 ou : filtrage des lignes ou des colonnes 111

    [ ]1 0 1 ou : drive sur les lignes ou les colonnes 1

    01

    Ce type de masque combine donc la fois un filtrage et une drive, il est donc moins sensible au bruit que le calcul direct des drives.

    c) Masque de Sobel Cest le mme principe que le masque prcdent sauf que le filtrage pralable nest pas ralis de la mme manire :

    [ ]1 0 1 12 0 2 2 * 1 0 11 0 1 1

    Gx = =

    et Gy [ ]1 2 1 1

    0 0 0 0 * 1 2 11 2 1 1

    = =

    d) Masque drive de gaussienne Le filtrage prcdent la drivation peut tre ralis grce un masque gaussien G. Dans ce cas, le calcul de la drive en x se fait par :

    ( * ) *I G GIx Ix x

    = = Plutt que de calculer deux produits de convolution sur toute limage (coteux en temps de calcul), on calcul le produit de convolution de limage et de la drive en x du filtre. Le mme raisonnement peut bien sur tre tenu pour la drive en y. On :

    2 2

    2 2

    1( , ) exp2 2

    x yG x y +=

    soit 2 2

    4 2

    ( , ) exp2 2

    G x y x x yx

    +=

    Le paramtre rgle le degr de lissage.

  • Cours de traitement dimages Catherine Achard 25

    La dualit que lon a vue dans le chapitre prcdent (filtrage/raideur de la transition) se retrouve ici :

    Fort lissage Faible lissage

    gradient

    Un faible lissage amne un pic de haute ampcontre, si le signal est bruit, il restera beaucamne lui un pic de plus faible amplitude econtour pais. Par contre, le gradient dune imabruit.

    e) Calcul de la norme du gradient Quel que soit le calcul de Ix et Iy, il faut dtecomparer un seuil et dterminer o sont les cpas obtenir des temps de calcul trop longs (contDe manire gnrale, la norme sexprime par : (grad Ix=JJJJJG

    - N=2 : distance euclidienne, trop long en- N=1 : somme des valeurs absolues - N= : maximum des valeurs absolues

    Ces deux dernires distances sont utilisables dudes approximations importantes. Une autre ide consiste changer de norme seltrouve :

    3 2

    1 Nous appellerons cette distance Nangle litude et troit, donc des contours fins. Par oup de bruit dans la drive. Un fort lissage t beaucoup plus large, ce qui conduira un ge bruit sera beaucoup moins perturb par le

    rminer la norme du gradient pour pouvoir la ontours. Une simplification est exige pour ne rainte temps rel par exemple).

    )1/ NN NIy+ temps de calcul car calcul dune racine carre

    point de vue temps de calcul mais amnent

    on la rpartition angulaire dans laquelle on se

    Zone 1 : |Iy|>2|Ix| norme=Iy

    Zone 3 : |Ix|>2|Iy|

    norme=Ix Zone 2 : le reste

    norme = 2 (|Ix|+|Iy|)/2 ou norme = (|Ix|+|Iy|)

  • Cours de traitement dimages Catherine Achard 26

    La dernire distance prsente, qui est aussi la moins approximative rsulte dune tude de la courbe reprsentant le lieu de toutes les distances depuis lorigine gales 1 :

    On constate que les normes N1 et Ninf sont trs approximatives tandis que la norme Nangle est plus proche de la vrit. De cette courbe, on peut dduire une nouvelle distance rsultant de lapproximation du cercle par trois droites

    N1

    Ninf

    Nangle

    Iy

    N2

    f) Seuillage des distances

    Norme = max(Gx, Gy, 3/4(Gx+Gy) ). On obtient ainsi une meilleure approximation du cercle

    Une fois la norme du gradient calcule en chaque point de limage, il faut seuiller cette norme pour dcider si un pixel fait partie ou non dun contour. La mthode la plus simple consiste considrer un seuil fixe S. Tous les pixels possdant une norme suprieure S sont dclars appartenir un contour. Tout le problme rside alors dans le choix du seuil : un seuil trop bas amne des sur-dtections : on dtecte beaucoup de bruit, tandis quun seuil trop lev amne des contours non ferms.

    Image source Norme du gradient

    Seuil=10

    Contour trs pais Seuil =15

    Encore des contours pais Seuil = 20

    Contours pais par endroits et il manque des contours

    dautres endroits

    IxIy

    Ix0

  • Cours de traitement dimages Catherine Achard 27

    Seuillage par hystrsis Une faon de diminuer limportance du seuil est dutiliser un seuillage par hystrsis. Avant, il y avait un seuil unique qui amenait soit des fausses alarmes, soit des lacunes. Il tait trs difficile, voir impossible, de trouver un seuil adapt toute limage. On introduit maintenant 2 seuils : un seuil haut et un seuil bas.

    - Si norme > seuil haut contour sur 1 - Si norme < seuil bas pas de contour 0 - Si seuil bas < norme < seuil haut contour de fermeture 2

    Les contours hypothtiques de fermeture sont transforms en contours srs sils sont adjacents un contour dj cod 1. Cette recherche dadjacence seffectue partir des points dextrmits des contours srs ( soit par suivi, soit par tiquetage des voisins connexes). Exemple :

    Calcul de la drive : |I(y+1,x)-I(y,x)|

    + |I(y,x+1)-I(y,x)|

    4 2 5 6 4 3 3 13 1 4 1 1 1 2 32 4 2 3 1 1 5 3

    11 9 9 8 9 9 10 74 4 2 4 2 2 4 27 2 3 1 5 6 0 81 4 0 3 5 1 6 1

    Image de dpart Norme du gradient

    0 0 2 2 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 2 01 1 1 1 1 1 1 20 0 0 0 0 0 0 02 0 0 0 2 2 0 10 0 0 0 2 0 2 0

    Seuillage simple S=5 Seuillage par hystrsis, Seuil bas=5, Seuil haut=8 Le seuillage par hystrsis permet de limiter le nombre de fausses alarmes et de lacunes mais il amne aussi des contours pais lorsquun fort filtrage a t ralis. Pour revenir des contours plus fins, on procde une recherche des lignes de crte. Un point est gard comme contour sil est suprieur au seuil et sil est maximum local dans une direction.

    Seuillage classique

    Problme des lignesde crte

    Les lignes de crte ne rsolvent pas tous les problmes. Dune part, elles peuvent amener des contours parasites. Dautre part, elles ne permettent pas de garder des contours ferms, mme si le seuil choisi t tel que les contours ltaient.

  • Cours de traitement dimages Catherine Achard 28

    Exemple de lignes de crte :

    2. Lapproche laplacien

    Signal Drive seconde

    La recherche des contours dans limage peut aussi tre ralise en recherchant les passages par zro du laplacien. Comme nous lavons vu dans le chapitre prcdent, celui-ci peut-tre estim grce une convolution avec le masque :

    0 1 01 -4 10 1 0

    Comme la drive second est trs sensible au bruit, on prfre utilis le laplacien partir de drives de gaussiennes :

    2 22 2

    2 2

    2 2 2 2 2 22

    2 2 4 2 2

    1( ) ( , ) *exp2 2

    1 1( , ) * *exp2 2

    x yIM G IM G avec G x y

    G G x y x yG x yx y

    + = = + = + =

    Comme pour le filtrage, la variance 2 rgle le degr de lissage et fixe la dimension du masque. Exemple : = 1, taille du masque : -4 4

  • Cours de traitement dimages Catherine Achard 29

    Les points de contours sont ensuite extrait comme tant les passages par zro significatifs du laplacien.

    III. Approche drivative prcde dun filtrage non linaire Le filtre de Nagao vu dans le chapitre prcdent se prte trs bien une dtection de contour : il supprime le bruit sans toucher la raideur de la transition. Une faon de dtecter les contours est donc de raliser un filtrage de Nagao, suivi dun calcul de drive simple :

    [ ]1 1Gx = et 11

    Gy =

    Cette mthode amne de trs bons rsultats de dtection.

    IV. Adaptation un gabarit 1. Forme lmentaire

    On dfinit un gabarit de contour dans une fentre danalyse circulaire par pondration des pixels (isotropie) et on recherche, pour chaque pixel de limage, si son voisinage a une forme qui correspond la forme du gabarit. La dcision dacceptation est ralise sur critre(s) de contraste suffisant et/ou de rapport contraste/bruit suffisant. Linformation dorientation est implicite ds que lon a trouv la position du gabarit qui amne lerreur quadratique minimale.

    On dfinit le gabarit du contour M0 et trois rotations de celui-ci par pas de 45. Limage est alors convolue avec ces quatre masques et en chaque pixel, on regarde quel est le masque qui a amen la plus grande rponse en valeur absolue. Si cette rponse est suprieure un seuil (seuil de contraste), le pixel est dclar comme pixel contour. Son orientation est donne par celle du masque qui a le plus rpondu si cette rponse est positive et par lorientation du masque + 180 si la rponse tait ngative.

  • Cours de traitement dimages Catherine Achard 30

    2. Gnralisation

    A lintrieur dune fentre danalyse C, nous dfinissons deux zones complmentaires A et B telles que :

    , ,

    , , ( )

    , ,

    2*

    ij ij ij

    ij iji j A i j B

    ij ij iji j C i j A B

    AU B Ci j a b c

    a b cte

    c a b

    = + =

    = == + =

    cte

    C

    B

    A

    Une fois le modle de transition dfini, on dduit toutes ses rotations possibles, ce qui amne diffrentes fentres Ak, Bk, o k code lorientation. On peut alors rechercher :

    - lorientation k qui amne au contraste maximum :

    kk kMax IA IB ou ( )2k kkMax IA IB

    o IAk et IBk reprsentent la convolution de limage avec les masques Ak et Bk respectivement.

    - lorientation k qui amne lcart quadratique minimum :

    ( ) (2 2, ,

    . / . /k

    ij ij k ij ij kk i j A i j BkMin a I IA cte b I IB cte

    + )On obtient ainsi lorientation qui spare la fentre de limage en deux zones les plus homognes possible. En dveloppant les calculs, on trouve que minimiser cette expression revient minimiser :

    ( ) ( )( )k k k kk kMin IA IB Min IA IC IA=

    Exemple de mise en pratique. On choisit comme fentre circulaire une fentre de taille 5x5 :

    1/8*16=2

    3/4*16=12

    1*16=16

    12

    12

    12

    12 12

    12

    12

    12

    2 2

    2 2

    16

    16

    16

    16

    16

    16 16

    161616 16

    1616

  • Cours de traitement dimages Catherine Achard 31

    On choisit galement de prendre 6 orientations possibles, ce qui amne une rsolution angulaire de 30 :

    Masque A0 A3 dduit par rotation de 90

    Masque A1 A4 dduit par symtrie verticale

    Masque A2 A5 dduit par symtrie verticale

    On calcule ensuite IC et IAk, pour k variant de 0 5. En chaque pixel, on recherche la valeur de k qui amne au minimum de ( ).k kIA IC IA On tiquette ensuite le pixel comme contour si

    2k k kIB IA S IC IA S > > o S est un seuil de contraste donn. Si 2 kIC IA< , lorientation retenue est lorientation k, sinon, on ajoute 180 lorientation.

    V. Transforme de Hough 1. Forme gnrale

    Cette mthode a pour but de dtecter des droites lorsque lon a les points de contour. Considrons une droite dans le plan (x,y). Elle a pour quation :

    y = a x + b ou x sin + y cos = (quation 1)

    b

    0

    y

    x Si [0,], les paramtres de la droite ( , ) sont uniques. La transforme de Hough est une transformation qui permet de passer du plan image (x,y) au plan des paramtres. Le plan image est parfaitement dfini, le plan des paramtres devra tre discrtis en NxM cellules :

  • Cours de traitement dimages Catherine Achard 32

    Par chaque point de contour, on peut en thorie faire passer une infinit de droite. Ici, comme on a discrtis les orientations, on pourra seulement faire passer M droites. Considrons un point contour (xi,yi). Pour chaque orientation , on peut dterminer avec lquation un le (et donc la droite dorientation passant par ce point). On incrmente alors de un la case ( , ) correspondante dans lespace des paramtres. Chaque point de contour vote donc pour M points dans lespace des paramtres (un pour chaque orientation). Si une droite est prsente dans limage, chaque point de contour de cette droite va voter pour la mme case de lespace des paramtres provoquant ainsi une accumulation. En la dtectant, on a les coordonnes de la droite.

    2. Transforme de Hough gnralise Une amlioration peut-tre amene si en plus de connatre les points de contour (image binaire), on connat lorientation de ces points (facile avoir : cest lorientation du gradient). Pour chaque point contour, on calcule uniquement pour lorientation perpendiculaire celle du gradient. Laccumulation dans lespace des paramtres est alors beaucoup plus nette. Cette mthode peut tre tendue des courbes de forme quelconque.

    VI. Codage des orientations codage de Freeman 2

    7 5

    3 1

    4 0 Lorientation code est celle de la tangente au contour, normale lorientation du gradient. Une rsolution angulaire de 45 correspond un codage de Freeman 8 tats.

    6

    Un contour est dcrit par la succession des codes de Freeman de ses pixels (chanes de Freeman). Ce code est invariant :

    - strictement en translation - une constante additive prs, modulo 8, en rotation - la longueur des sous-chanes prs en homothtie.

  • Cours de traitement dimages Catherine Achard 33

    Un autre codage de forme, driv des chanes de Freeman, est lhistogramme des orientations : Eff

    Code Eff

    0 1 2 3 4 5 6 7

    0 1 2 3 4 5 6 7

    Code

  • Cours de traitement dimages Catherine Achard 34

    Chapitre 5 : Segmentation en rgions Nous allons aborder ici le principe de plusieurs mthodes de segmentation en rgions :

    - par agrgation de pixel (fusion) - par division - par division-fusion - par quadtree

    I. Segmentation par agrgation de pixels

    Linitialisation de cette mthode consiste considrer chaque pixel comme une rgion. On va alors essayer de les regrouper entre elles avec un double critre de similarit des niveaux de gris et dadjacence. Le critre de similarit peut par exemple tre : la variance des niveaux de gris de la rgion R est infrieure un seuil. Le principe de lagrgation de pixel est le suivant : on choisit un germe et on fait crotre ce germe tant que des pixels de son voisinage vrifient le test dhomognit. Lorsquil ny a plus de pixel candidat dans le voisinage, on choisit un nouveau germe et on itre le processus.

    II. Segmentation par division Au contraire de la mthode prcdente, celle-ci suppose au dpart que tous les pixels appartiennent la mme rgion. Si la rgion nest pas homogne (critre dhomognit), elle est divise en plusieurs rgions, sinon, le processus se termine. Chaque rgion nouvellement cre est potentiellement redivise en plusieurs rgions si elle nest pas homogne. Le critre dhomognit peut tre le mme que prcdemment (variance des niveaux de gris infrieure un seuil). Lors de la division, on peut rajouter un critre darrt sur la taille des rgions. La division peut tre ralise de plusieurs faons. Une technique consiste dterminer les diffrents modes de lhistogramme des niveaux de gris et affecter une ou plusieurs rgion chaque mode : Rgion

    diviser3 rgions

    Mode 2Mode 1

    Histogramme des niveaux de gris

    III. Segmentation par division-fusion

    Cette mthode consiste reprendre le rsultat de la division et essayer de fusionner des rgions qui ont t malencontreusement spares. Pour ce faire, on utilise un outil trs prcieux : le graphe dadjacence des rgions.

  • Cours de traitement dimages Catherine Achard 35

    IV. Graphe dadjacence

    Le graphe dadjacence est un graphe non orient ou chaque nud reprsente une rgion et chaque branche reprsente ladjacence entre les rgions :

    3

    2 1

    0

    3

    2

    1

    0 Gr

    Cdres D

    Arce au graphe dadjacence, on na pas remonter au pixels de limage pour fusionner les gions.

    V. Quad-tree est une mthode rcursive de dcoupage d une image. Au dpart, limage est constitue un seul rectangle qui est dcoup en 4 quarts s il n est pas jug homogne. Les 4 nouveaux ectangles sont ses fils dans un arbre (quadtree). Chacun des fils est de nouveau dcoup n 4 sil nest pas homogne. Cette mthode peut servir comprimer une image ou la egmenter.

    ans le quad-tree linaire, chaque feuille du quadtree est code de manire pouvoir retrouver sa position. Principe de codage retenu :

    3

    Niveau

    Niveau

    Niveau 128x128

    Niveau 256x256

    Chaque niveau correspond une taille d image

    chaque tape de la division, on code les 4 nouveaux fils avec la mme squence : 0,1,2,3.

  • Cours de traitement dimages Catherine Achard 36

    A partir des coordonnes dun pixel, on pourra alors retrouver trs facilement le numro de la feuille et vice-versa. Il suffit dintercaler les numros des lignes et des colonnes :

    011 et 010 0 0 1 1 1 0 0 3 2

    Exemple sous matlab :

    VI. Etiquetage des rgions La plupart des mthodes cites ci-dessus requirent un algorithme dtiquetage en composantes connexes : tous les pixels connexes possdant le mme attribut doivent tre affects la mme rgion. Exemple :

  • Cours de traitement dimages Catherine Achard 37

    Il existe plusieurs algorithmes permettant de raliser ltiquetage.

    1. Algorithme intuitif Supposons qu chaque pixel de limage est affect un attribut. On veut regrouper tous les pixels connexes possdant le mme attribut (not att dans la suite). Pour cela, on va balayer limage et donner une tiquette chaque nouveau pixel C.

    BA C

    Pixels A et B dj tiquets

    Pixel C tiqueter

    On dplace un masque en L 1. Si att( C ) = att( A) et att( C ) att( B) tiquette( C )= tiquette( A )

    2. Si att( C ) = att( B) et att( C ) att( A) tiquette( C )= tiquette( B )

    3. Si att( C ) att( B) et att( C ) att( A) tiquette( C )= nouvelle tiquette

    4. Si att( C ) = att( B) et att( C ) = att( A) et tiquette( A )= tiquette( B ) tiquette( C )= tiquette( B )

    5. Si att( C ) = att( B) et att( C ) = att( A) et tiquette( A ) tiquette( B ) tiquette( C )= tiquette( B ) et remonte dans limage et change toutes les tiquette( A ) en tiquette( B )

    1 1 2 ?? 2 3 ?? 3

    2 1

    ??

    Cet algorithme amne un tiquetage correct de limage, mais en combien de temps ? A chaque fois quune configuration telles que les prcdentes se prsente, il faut rebalayer toute limage.

  • Cours de traitement dimages Catherine Achard 38

    2. Algorithme volu

    Pour viter ce problme, on fait appel une table de correspondance. Celle-ci est un vecteur ou chaque tiquette, on affecte une autre tiquette qui lui correspond. Par exemple, dans le cas prcdant, on aurait correspondance (2)=1. Initialisation : correspondance (i)=i pour tout i Premier balayage : On dplace un masque en L de la mme faon que prcdemment,

    1. Si att( C ) = att( A) et att( C ) att( B) tiquette( C )= tiquette( A )

    2. Si att( C ) = att( B) et att( C ) att( A) tiquette( C )= correspondance (tiquette( B ))

    3. Si att( C ) att( B) et att( C ) att( A) tiquette( C )= nouvelle tiquette

    4. Si att( C ) = att( B) et att( C ) = att( A) et tiquette( A )= tiquette( B ) tiquette( C )= tiquette( A )

    5. Si att( C ) = att( B) et att( C ) = att( A) et tiquette( A ) tiquette( B ) tiquette( C )= min(correspondance (tiquette( B )), tiquette( A )) correspondance (tiquette( C ))= tiquette( C ) correspondance (tiquette( A ))= tiquette( C ) correspondance (max(correspondance (tiquette(B)), tiquette( A )))= tiquette( C )

    Mise jour de la table de correspondance : Toutes les tiquettes telles que correspondance(i)=i reprsentent de vraies rgions. On leur affecte donc un numro de rgion en numrotant dans lordre croissant. Pour toutes les tiquettes qui ne valident pas lhypothse ci-dessus, on fait correspondance(i)=correspondance(correspondance(i)) Deuxime balayage : A chaque pixel dtiquette i, on lui affecte ltiquette correspondance(i). Cette mthode ne ncessite donc que 2 balayages de limage. Exemple :

    Mise jour de la table

    1 1 1 2 2 1 1 1 1 1 1 1 3 4 5 3 4 4 4 3 3 3 3 3 3 3 3 3 3 3 3 3 3

    Table dquivalence 1 1 2 1 3 3 4 3 5 4

    1 12 13 24 35 4

    1 12 13 24 25 2

    1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2

  • Cours de traitement dimages Catherine Achard 39

    Chapitre 6 : Dtection de points dintrt Les points dintrt sont galement une primitive pertinente que lon peut extraire des images. Ils sont largement utiliss pour faire de lappariement dimages, du calibrage de cameras, des mosaques dimages, de la mise en correspondance, Nous prsentons ci-dessous les coins extraits dune image de maison.

    Harris prcis

    50 100 150 200 250 300 350 400 450 500

    50

    100

    150

    200

    250

    300

    350

    400

    450

    500

    La dtection peut tre ralise de deux faons :

    - partir des contours - partir du signal

    I. Dtection des points dintrt partir des contours Dans un premier temps, une extraction des points de contour est ralise. Ensuite, trois approches peuvent tre considres :

    - Calculer la courbure en chaque point de contour et extraire ceux qui ont une grande courbure

    - Une fois les contours extraits, faire une approximation polygonale de ceux-ci (on remplace les contours par des segments). Toute intersection de segment est alors interprte comme un point dintrt

    - Raliser un chanage des points de contour et coder lorientation des gradients en chaque point. On recherche ensuite des ruptures dans la chane des orientations.

    Le problme de toutes les mthodes bases sur les contours est que le gradient est trs mal dfini prs des coins : 5 10 15 20 25 30 35 40

    5

    10

    15

    20

    25

    30

    35

    40

    5 10 15 20 25 30 35 40

    5

    10

    15

    20

    25

    30

    35

    40

    Image de synthse dun coin Module du gradient

  • Cours de traitement dimages Catherine Achard 40

    Ainsi, les points correspondant langle ne seront bien souvent mme pas dtects lors de la dtection de contour (module du gradient trop faible), ce qui invalide la mthode.

    II. Dtection directe des points dintrt partir du signal

    1. Mthode de Beaudet En chaque point de limage est calcule :

    2DET IxxIyy Ixy= o Ixx, Iyy et Ixy reprsentent les drives secondes de limage par rapport x, y, et xy. La gomtrie diffrentielle montre que cette mesure, en valeur absolue, est grande prs des coins. On recherchera donc les maxima locaux de DET. Le problme qui apparat avec cette mthode est quelle est base sur des calculs de drives secondes, lesquelles sont trs sensibles au bruit.

    2. Dtecteur de Harris Harris nous propose dutiliser comme mesure :

    2 2 2 2( )C Ix Iy IxIy Ix Iy 2=< >< > < > < > + < > o reprsente la convolution de X par un masque gaussien. Il montre que C est grand que si lon est situ sur un coin. La dtection est donc faite en recherchant les maxima locaux de C. Lavantage de cette mthode est que lon nutilise que des drives premires.

    3. Dtecteur bas sur le gradient On considre que prs dun coin, la norme du produit vectoriel entre deux vecteurs gradient est grande, alors quil est petit ailleurs : si on est dans une zone homogne, le module des vecteurs gradient est petit et si on est situ sur un contour rectiligne, langle entre les vecteurs est petit, ce qui amne une faible norme du produit vectoriel. Ainsi, on calcule la moyenne des produits vectoriels entre le gradient du point tudi et celui de ses voisins :

    2

    22. ( ,

    i

    i

    j V

    2

    j V

    k grad Pi grad Pj

    k grad Pi grad Pj sin grad Pi grad Pj

    =

    =

    JJJJJJJJJJJJG JJJJJJJJJJJJG

    JJJJJJJJJJJJG JJJJJJJJJJJJG JJJJJJJJJJJJG J)

    JJJJJJJJJJJG (quation 1)

    Dans cette expression, 2 2grad P Ix Iy= +JJJJJJJJJJJG 2 et

    2 2( ) Iysin grad P

    Ix Iy= +

    JJJJJJJJJJJG

    En dveloppant lexpression prcdente, on arrive : 2 2 2 2 2k Ix Iy Iy Ix IxIy IxIy= < > + < > < >

    o < > dnote la convolution par le masque :

    1 1 11 0 11 1 1

  • Cours de traitement dimages Catherine Achard 41

    k est similaire la norme du gradient puissance 4 multiplie par le carr du sinus de langle entre les gradients (quation 1). Si on souhaite favoriser autant le gradient que langle, il faut diviser k par le carr du gradient :

    2 2 2 2

    2 2

    2Ix Iy Iy Ix IxIy IxIykIx Iy

    < > + < > + < >>

    4.

    De la mme faon que prcdemment, on recherche ensuite les maxima locaux de k.

    Comparaison des mthodes De manire gnrale, le dtecteur de Beaudet est trs sensible au bruit. Le dtecteur de Kitchen , ainsi que la dernire mthode amnent des rsultats plus robustes. Une tude un peu plus fine montre que le dtecteur de Harris tendance ne pas dtecter les angles obtus.

    20 40 60 80 100 120 140 160 180

    20

    40

    60

    80

    100

    120

    140

    160

    20 40 60 80 100 120 140 160 180

    20

    40

    60

    80

    100

    120

    140

    160

    Achard

    20 40 60 80 100 120 140 160 180

    20

    40

    60

    80

    100

    120

    140

    160

    20 40 60 80 100 120

    20

    40

    60

    80

    100

    120

    20 40 60 80 100 120

    20

    40

    60

    80

    100

    120

    AchardDernire mthodeHarris prcisHarris

    Dernire mthodeHarris

    Harris Beaudet

    Beaudet

  • Cours de traitement dimages Catherine Achard 42

    Chapitre 7 : Morphologie mathmatique Il existe deux grands types de morphologie mathmatique : la morphologie binaire et la morphologie multi-niveaux. Nous nous intressons qu la premire dans ce cours. Elle ncessite en entre une image binaire et donc, la premire tape consistera binariser les images. Bien sr, certaines images se prtent mieux que dautres la binarisation (celles possdant deux grandes classes de niveaux de gris).

    I. Binarisation des images Certaines images se prtent trs bien la binarisation, ce sont les images bimodales (voir ci-dessus). Le problme de la binarisation consiste dterminer un seuil pour sparer les diffrents objets de la scne : tous les pixels ayant un niveau de gris infrieur au seuil seront mis 0, les autres seront mis 1. Il nest pas envisageable pour certaines applications, de dterminer le seuil la main, il va donc falloir le trouver de manire automatique.

    1. Binarisation avec lhistogramme

  • Cours de traitement dimages Catherine Achard 43

    Lhistogramme des images bimodales possde deux modes. On calcule donc lhistogramme de limage en excluant les zones frontires (gradient lev). Puis on lisse lhistogramme et on extrait le min entre les deux pics qui correspond au seuil de binarisation.

    2. Binarisation en utilisant un critre baysien Hypothse : On suppose que les niveaux de gris sont rpartis en deux classes C0 et C1. Chaque classe est modlise par une loi gaussienne de moyenne m0 et m1 et dcart type V. Les deux classes possdent la mme variance caractrisant le bruit. Celui-ci est considr stationnaire et affecte donc de la mme faon tous les niveaux de gris. Chaque classe a pour effectif (nombre de pixel appartenant la classe) N0 et N1.On recherche donc le seuil S0 qui minimise la probabilit derreur :

    Pe0

    S0

    C1

    C0

    m1m0

    Cette probabilit derreur est donne par :

    0 0 1. ( ) . ( )Perreur Pe P C Pe P C= + 1 avec :

    20

    00

    ( )1 exp22 S

    S mPe dSVV

    = et 0 2

    11

    1 (exp22

    S S mPe dSVV

    = )

    On minimise cette probabilit derreur par rapport S, soit :

    2 20 0 0 1

    0 1( ) ( )1 ( )exp ( )exp 0

    2 22S m S mdPerreur P C P C

    dS V VV = +

    =

    donc, 2 2

    0 0 1 10 1

    ( ) ( )ln( ( )) ln( ( ))2 2

    S m S mP C P CV V

    = et le seuil S0 :

    0 1 00

    1 0 1

    ( )ln2 (

    m m P CVSm m P C

    += + )

    On peut estimer mi, P(Ci) et S0 par itrations successives. Voici lalgorithme :

    1. On initialise S0=moyenne des ndg de limage. 2. On ralise le seuillage deux classes C0 et C1. 3. On en dduit m0, m1, P(C0),P(C1) et V 4. A partir de ces nouvelles valeurs, on re-calcule S0. 5. Retour en 2 jusqu stabilisation

  • Cours de traitement dimages Catherine Achard 44

    Exemples de binarisation :

    100 200 300 400 500 600

    50

    100

    150

    200

    250

    300

    350

    400

    450

    100 200 300 400 500 600

    50

    100

    150

    200

    250

    300

    350

    400

    450

    50 100 150 200 250

    50

    100

    150

    200

    250

    50 100 150 200 250

    50

    100

    150

    200

    250

    3. Binarisation en utilisant un critre structurel On va rechercher un seuil de manire avoir des rgions stables, avec une bonne rgularit topologique. Cette notion de rgularit est obtenue grce la compacit :

    24SurfaceC

    Primtre=

    Proprits de la compacit:

    - invariante en rotation - Invariante en translation - Invariante au changement dchelle

    Exemple

    - Pour le disque 2

    24 1(2 )RCR

    = =

    - Pour le carr 2

    24 0(4 ) 4ll

    = = = .78C

    - Pour le rectangle (L=2, l=0.5) 2 2x 1 44 4

    4( ) 4(2.5) 25l LCl L

    = = = =+ 0.5 Autrement dit, plus une forme a une allure compacte et plus sa compacit sera grande. La plus grande valeur (1) correspond au cercle (forme la plus compacte qui soit). La binarisation utilisera ce critre : on seuille avec chaque niveau de gris et on retient comme seuil dfinitif celui qui amne la plus grande compacit.

  • Cours de traitement dimages Catherine Achard 45

    Etude de la compacit dans diffrents cas : Forme compacte Pixels isols Fauuses alarmes Lacunes

    Cercle de N pixels V. C=1

    N pixels isols

    24 ( 2 )NC

    N=

    Cercle de rayon R Et N fausses alarmes

    2

    2

    2

    2

    4(2 2 )

    ( )

    R NCfR N

    R NCfR N

    + = + += +

    Cercle de rayon R Et N lacunes

    2

    2

    2

    2

    4(2 2 )

    ( )

    R NClR N

    R NClR N

    = + = +

    Autrement dit, la compacit aura tendance favoriser les formes trs compactes (cercle). Si ce nest pas possible (niveaux de gris entremls cause du bruit), elle privilgiera les fausses alarmes par rapport aux lacunes : Cl < Cf < 1. II. Introduction la morphologie mathmatique binaire

    Cest une thorie ensembliste. 0 0

    1

    Notations et dfinitions : - Objets : X = { x / x = 1 } - Fonds : ~X = { x / x = 0 } - lment structurant : Sx caractris par ses dimensions et sa forme Son centre x est le point dapplication de lopration locale

    Sx Sx

    x III. Dilatation morphologique

    { }( ){ }

    //

    X S x Sx Xx Sx X X

    = = Dilat

    Objet

    Il y a forcement une relation dinclusion : X X S

  • Cours de traitement dimages Catherine Achard 46

    Interprtation avec un lment structurant particulier : Considrons un lment structurant Sx centr en x, de rayon 1. Il peut prendre deux formes : Si on travaille en 8 connexits,

    Si on travaille en 4 connexits,

    La dilatation peut alors tre interprte comme une croissance de 1 pixel : x = 0 , sil existe un point un dans le voisinage, alors x=1.

    On peut programmer trs facilement la dilatation avec une convolution : X S = { x / Sx X } X S = ( S * Image) 0

    Sous matlab, on utilisera les lignes de commande : Dil=conv2(X,ones(3,3),same)>0 si on travaille en huit connexits Dil=conv2(X,[0 1 0 ;1 1 1 ;0 1 0]same)>0 si on travaille en quatre connexits Un exemple :

    100 200 300 400 500 600

    50

    100

    150

    200

    250

    300

    350

    400

    450

    100 200 300 400 500 600

    50

    100

    150

    200

    250

    300

    350

    400

    450

    On voit que la dilatation bouche les trous. IV. Erosion morphologique

    { }( ){ }

    // ~

    X S x Sx Xx Sx X =

    = rod

    Objet initial Il y a forcement une relation dinclusion : X S X Interprtation avec un lment structurant particulier : Lrosion peut tre interprte comme une contraction de 1 pixel :

    x = 1 , sil existe un point 0 dans le voisinage, alors x=0. On peut programmer trs facilement lrosion avec une convolution :

  • Cours de traitement dimages Catherine Achard 47

    { }/X S = ( S * Image) ( )X S x Sx X

    card S = =

    Sous matlab, on utilisera les lignes de commande : Dil=conv2(X,ones(3,3),same)= =9 si on travaille en huit connexits Dil=conv2(X,[0 1 0 ;1 1 1 ;0 1 0]same)= =5 si on travaille en quatre connexits Un exemple :

    100 200 300 400 500 600

    50

    100

    150

    200

    250

    300

    350

    400

    450

    100 200 300 400 500 600

    50

    100

    150

    200

    250

    300

    350

    400

    450

    On voit que lrosion supprime les fausses alarmes.

    V. Cascade doprations A partir de lrosion et de la dilatation, on peut dfinir deux nouvelles oprations : louverture et la fermeture. Ouverture : X S = ( X S ) S Fermeture : X S = ( X S ) S Louverture servira supprimer les fausses alarmes :

    Proportions gardes

    dilatationSuppression des fausses alarmes

    rosion Objets et fausses alarmes

    La fermeture supprimera les trous : Suppression

    des trous dilatation rosion Proportions

    gardes Objets trous

  • Cours de traitement dimages Catherine Achard 48

    Exemple :

    Fermeture : on rajoute tous lespoints rouges (boucheles trous)

    Ouverture : on supprime tous lespoints rouges (faussesalarmes)

    Application : dtection de composants

    rosion de l image L lment structurant est de taille 40x30

    Dilatation avec le

    mme lment structurant

    Report sur limage initiale

  • Cours de traitement dimages Catherine Achard 49

    Autre application : Slection dobjets de petite taille VI. Contours dune image binaire Les contours intrieurs sobtiennent grce :

    X- ( X S ) En effet, lrosion supprime un pixel aux bords de lobjet. En faisant Image-rod, on retrouve donc un contour de 1 pixel de large. On peut aussi dterminer les contours extrieurs avec :

    ( X S ) -X VII. Amincissement Lamincissement est en fait une rosion avec conservation de la connexit. Il peut servir amliorer les contours dobjets fins mais sa grande utilisation sera la squelettisation. Application : amlioration de contours dobjets minces (caractres,)

    X (X S )

    Gris : images source Blanc : 1 puis 2 amincissements Principe : pour un point de bordure nord (avec un zro au dessus), llimination du pixel central, dans les deux configurations donnes ci-dessous, ne modifie pas la connexit. V8 0 0 0

    1 1 1 x 1 1

    x 0 01 1 0x 1 x

    x : tat indiffrent (0 ou 1) Donc, pour tous les pixels 1, de bordure nord, vrifiant une des configurations prcdentes, on pourra mettre le pixel central 0.

  • Cours de traitement dimages Catherine Achard 50

    Les autres configurations (est, sud, ouest) se dduisent de la configuration nord par rotation de 90.

    VIII. Squelettisation Le squelette est un graphe qui caractrise la forme dun objet binaire et qui peut permettre de le reconstituer (transformation rversible). Il sera trs utile pour faire de la reconnaissance dobjets. Il existe deux dfinitions du squelette qui sont similaires dans R2 : Lieu des centres des disques de rayon maximum inscrits dans lobjet. Le rayon en chaque point permet de reconstruire lobjet.

    Axe mdian, ensemble des points quidistants de 2 bords de lobjet. Cette dfinition correspond ltat stable obtenu par amincissements itratifs

    =

    Le squelette est trs sensible aux dtails mais aussi, aux lacunes et lirrgularit des bords. Exemple : gris : image source, blanc : squelette

    Image de dpart Mme image avec un trou Mme image avec un bord irrgulier

    Ainsi, avant de faire la squelettisation, on sera souvent amen raliser un pr-traitement de limage. Exemples dapplication de la squelettisation : Reconnaissance de lcrit Reconnaissance des composantes sans trou

    (rduite 1 pixel) et des composantes avec trou

  • Cours de traitement dimages Catherine Achard 51

    1. Pr-traitement dune image binaire Pour liminer les trous, ou lacunes, on mettra 1 le pixel central dans les configurations suivantes : x x x 1 0 1 x 1 x

    x 1 x 1 0 1 x x x

    x 1 xx 0 1x 1 x

    x 1 x 1 0 x x 1 x

    (Les trois derniers masques se dduisent du premier par rotation de 90). Le lissage des points saillants se fera en mettant 0 le point central dans les configurations suivantes : 0 0 0 0 1 0 x x 0

    0 0 00 1 0x 1 x

    0 0 00 1 00 x x

    2. Algorithme parallle de squelettisation Cet algorithme est qualifi de parallle car le traitement est ralis avec une image source et une image darrive. Lalgorithme consiste raliser des itrations damincissement jusqu stabilisation (plus aucun changement). Lors des itrations damincissement, il faudra prendre garde aux bandes de largeur 2 pixels (0-1-1-0) qui seront supprimes. Une solution consiste les dtecter et ne pas modifier le pixel central dans ces configurations.

    3. Algorithme squentiel de squelettisation Les modifications se font directement dans limage source, ce qui introduit une causalit lors du balayage. Ici aussi, lalgorithme est itratif et se poursuit jusqu stabilisation (le nombre ditrations dpend de lpaisseur de lobjet). Voici, pour un point de bordure est, les seules configurations o il faut conserver le pixel central : x x x 0 1 x 1 0 x

    1 0 x 0 1 x x x x

    x 0 00 1 1x 0 0

    x x x 0 1 0 z z z

    si tous les x et z 0 point isol conserver si tous x 0 et au moins un z 1 point dextrmit si au moins un x 1 llimination du point central rompt la connexit locale si x et y ont au moins un 1 rupture de connexit Les points non essentiels (qui ne correspondent pas une de ces configurations) sont marqus et sont limins en fin ditration. Droulement des itrations : 9 Initialisation : iter=1, 9 Itrations tant que des points sont modifis, 3 sous cycles - test des points bordure E et W, essentiels = iter, non essentiels = Mrk - test des points non modifis N et S, essentiels = iter, non essentiels = Mrk - points detiquette Mrk limins ( 0 ), iter = iter+1 9 en fin ditration, squelette = point > 0

  • Cours de traitement dimages Catherine Achard 52

    9La valeur dun point squelette indique litration laquelle il fut dclar essentiel, donc, lpaisseur locale de lobjet (possibilit de reconstruction)

    4. Squelettisation par recherche des maxima locaux des distances entre les pixels de lobjet et le fond

    Cette mthode consiste calculer, en chaque point de lobjet, sa distance au fond. On recherche ensuite les maxima locaux directionnels (ligne de crte) de limage des distances.

    Cette mthode est trs rapide car le calcul des distances ne ncessite que 2 parcours de limage. Le temps de calcul du squelette est indpendant de la dimension de lobjet, contrairement aux autres algorithmes. Par contre, avec cet algorithme, le squelette nest plus forcment connexe (On peut avoir deux squelettes pour un objet, voir lexemple ci-contre). Ceci ntait pas le cas avec les deux autres mthodes.

    0 0 0 0 0 0 0 00 0 0 1 1 1 0 00 0 0 1 1 0 00 1 1 1 1 1 00 1 2 2 2 2 1 00 1 20 1 2 2 2 2 1 00 1 1 1 1 1 1 00 0 0 0 0 0 0 0

    22

    3 3 2 1 0

    Algorithme de Chamfer pour calculer en deux parcours de limage, la distance des points de lobjet au fond.

    On procde de proche en proche. Lorsque lon se dplace horizontalement ou verticalement, on ajoute 1 et lorsquon se dplace en biais, on ajoute 2

    d= 2

    d=1

    Pour simplifier, on se ramne des valeurs entires : 1 2

    2 fois la distance euclidienne erreur de 13% par dfaut2 3

    1 33 fois la distance euclidienne erreur de 8% par excs

    2 4

    Lalgorithme procde en deux balayages : un en sens vido puis un en inverse vido. Il cumule le chemin de cot minimum de proche en proche : B

    Cd0 Cv1 Cd2 Ch3 p -->

    ( )0...3

    min ( ) ( )i

    Dp D i C i== + avec Cv=Ch=2 ou 3 respectivement Cd=3 ou 4 respectivement

    alayage en sens vido :

    B

  • Cours de traitement dimages Catherine Achard 53

    Exemple : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    1 1 1 1 2 4 6 3 1 1 1 1 2 4 6 6 3 1 1 1 1 2 4 6 9 6 3 1 1 1 1 2 4 6 9 6 3 2 2 2 2 3 5 7 9 6 5 4 4 4 4 5 6 8 9 8 7 6 6 6 6 7 8 9

    9 8 7 6 6 6 6 7 8 9 8 6 5 4 4 4 4 5 6 8 7 5 3 2 2 2 2 3 5 7 6 4 2 1 1 1 1 2 4 6 6 4 2 1 1 1 1 2 4 6 6 4 2 1 1 1 1 2 4 6 6 4 2 1 1 1 1 2 4 6 7 5 3 2 2 2 2 3 5 7 8 6 5 4 4 4 4 5 6 8 9 8 7 6 6 6 6 7 8 9

    Image binaire Balayage sens vido Balayage sens inverse vido

  • Cours de traitement dimages Catherine Achard 54

    Chapitre 8 : Texture

    I. Introduction 1. Introduction

    Dans le but de segmenter une image en rgions, nous ne pouvons pas nous limiter l'utilisation seule des niveaux de gris. En effet, beaucoup d'images, et plus particulirement les images naturelles, possdent des zones textures, non homognes au sens des niveaux de gris. Nous voyons donc la ncessit d'introduire des paramtres de texture dans les algorithmes de segmentation, dans le souci de travailler sur des images les plus gnrales possibles (ne pas se limiter aux images contenant des objets homognes au sens des niveaux de gris). Malheureusement, il n'existe pas de dfinition universelle pour la texture et bien que celle-ci soit visible de faon naturelle pour lil humain, aucune rgle mathmatique gnrale capable de quantifier les diffrentes classes de texture n'a t mise en vidence ce jour. De nombreux travaux ont cependant t raliss sur ce sujet, mettant en avant deux grandes approches d'analyse de texture : l'approche structurale et l'approche statistique.

    L'approche structurale considre que les textures sont formes d'un ou plusieurs motifs se rptant de faon rgulire dans l'espace. A titre d'exemples, nous pouvons considrer un mur de briques ou un tissu. Une description structurale de la texture consistera alors reprer dans l'image les lments de base ou motifs, ainsi que leurs arrangements. Cette mthode exige que l'image soit forme d'une texture rgulire et se heurte de nombreux problmes. Tout d'abord, il est gnralement difficile de reprer les motifs lmentaires, d'autant plus que les proprits de ces motifs ne sont pas ncessairement constantes dans l'image (variation de l'clairement,...). Un autre problme est d la rpartition des primitives qui n'est pas forcment rgulire (un tissu avec des trames plus serres par endroits), ce qui entrane l'introduction d'un lment alatoire. Une certaine souplesse peut cependant tre apporte aux algorithmes, permettant de les rendre moins sensibles au bruit. Jusqu' prsent, l'approche structurale ne semble pas tre en mesure de conduire une reprsentation unifie de la texture, son utilisation se limite des applications trs prcises.

    L'approche statistique s'applique en particulier aux textures ne possdant pas de

    primitives lmentaires autres que le pixel ou des voisinages de pixels. Ces textures prsentent un aspect dsordonn mais sont nanmoins homognes. Cette approche statistique est bien adapte aux textures naturelles. Elle est d'autre part plus facile mettre en oeuvre dans un algorithme de segmentation d'images que l'approche

  • Cours de traitement dimages Catherine Achard 55

    structurale. Les mthodes statistiques sont donc les plus utilises, nous en dtaillons quelques unes, ainsi que les paramtres de texture auxquels elles donnent accs, dans le but de la segmentation d'images.

    De nombreux travaux utilisant des caractristiques de texture existent. Citons, pour illustration, les applications :

    segmentation d'images ariennes (dtection des arbres, des btiments,...) ; segmentation d'images volcaniques ; recherche de fruits dans un arbre ; segmentation de scnes routires pour asservir un vhicule sur la route ; dtection de dfauts sur des tles dcapes ;

    II. Histogramme des diffrences de niveaux de gris

    Pour chaque point (x,y) de la fentre tudie, nous calculons : ( , ) ( , ) ( , )F x y f x y f x x y y= + +

    o f est la fonction luminance. Si l'image possde N niveaux de gris, alors F varie entre 0 et N. Le dcompte du nombre de fois, o F(x,y) prend la valeur i, fournit un vecteur N dimensions duquel des paramtres tels que la valeur maximale, la moyenne, la variance, les moments,... sont extraits. Ceux-ci caractrisent la texture. Un gros inconvnient de cette mthode est qu'elle ncessite le calcul de plusieurs histogrammes (plusieurs directions et plusieurs distances) pour chaque fentre. A titre d'illustration, un exemple de recherche de paramtres de texture sur une image de route sans marquage au sol est prsent. Afin de diminuer les temps de calcul, la gamme des niveaux de gris a t rduite, de manire linaire 64. De plus, comme il est impossible de calculer la texture d'un point, l'image a t divise en fentres de 16x16 pixels. Le paramtre de texture estim pour cette zone lui est affect et est reprsent sur l'image rsultat. On aurait aussi pu affecter ce paramtre au pixel central et ainsi, disposer d'un paramtre de texture pour chaque pixel de l'image. Bien videmment, les temps de calcul seraient alors beaucoup plus longs. Nous avons calcul un seul histogramme avec x =1 et y=0. De plus, le paramtre de texture reprsent est la valeur maximale de l'histogramme.

  • Cours de traitement dimages Catherine Achard 56

    histo des deifferences de ndg

    On voit que les paramtres de texture associs la route ou au ciel sont plus faibles que ceux associs aux bas-cots ou aux arbres, ce qui traduit bien les zones que visuellement, on juge moins textures. III. Mthode fonde sur le calcul du gradient de la fonction luminance De nombreuses mthodes d'extraction de paramtres de texture reposent sur le calcul du gradient de la fonction luminance. En effet, les contours extraits d'une image semblent caractriser la texture de celle-ci :

    Plusieurs mthodes permettent d'obtenir des paramtres de texture partir des contours, nous en prsentons une ici. Dans un premier temps une extraction, puis un chanage des points contours sont raliss. A partir des points ainsi retenus, on caractrise la texture par :

    nombre de petits segments obtenus, longueur moyenne des segments,

  • Cours de traitement dimages Catherine Achard 57

    IV. Filtre de Gabor Un filtre de Gabor h, deux dimensions, peut tre reprsent comme une gaussienne module par une onde plane sinusodale :

    ( ) ( )2 21, exp cos 2 02 22 x yh x y u xx y= + +

    O : u0 et sont respectivement la frquence et la phase de l'onde plane sinusodale. x y caractrisent l'tendue spatiale du filtre.

    En faisant varier les diffrents paramtres, plusieurs filtres de rponse impulsionnelle hj sont obtenus. Une image rsultat fj est dtermine la sortie de chacun de ces filtres :

    ( ) ( ) ( ), , *j jf x y f x y h x y= , Plusieurs paramtres peuvent ensuite tre extraits de ces images comme, par exemple, la moyenne absolue de la dviation :

    V - Les matrices de cooccurrences, ou de transitions Une mthode frquemment utilise en pratique pour la discrimination des textures repose sur l'emploi des matrices de cooccurrences. Celles-ci sont dtermines partir de caractristiques reprsentant les relations spatiales entre paires de niveaux de gris de pixels. Plusieurs dfinitions des matrices de cooccurrences existent dans la littrature, nous considrons ici la dfinition des matrices de cooccurrences symtriques. Elles dterminent la frquence d'apparition de paires de niveaux de gris une distance donne, dans une direction donne :

    ( )12, 0

    1 ,n

    j jx y

    m fn

    == x y

    135 90 45

    0

    La dfinition des matrices de cooccurrences est la suivante. Soit f(x,y) la fonction luminance. La matrice de cooccurrences P, pour une distance donne et une orientation fixe est dfinie par :

    ( ) ( ) ( ), , ,, 1 1f x y i f x y jx yp i j = = =

  • Cours de traitement dimages Catherine Achard 58

    Les directions les plus usites sont 0, 45, 90 et 135 degrs. La somme des matrices de cooccurrences dans les diffrentes directions peut tre effectue :

    ,0 ,45 ,90 ,135P P P P P = + + + Afin d'illustrer le calcul des matrices de cooccurrences, nous prsentons un exemple, et calculons celle-ci pour un secteur cod sur sept niveaux de gris. La matrice de cooccurrences de ce secteur est dtermine pour une distance de un pixel ( =1) et une orientation de zro degr( = 0).

    secteur matrice

    0 0 0 0 0 0 120 0 0 0 0 0 00 0 0 0 0 0 00 0 0 0 0 0 00 0 0 0 0 0 00 0 0 0 0 0 0

    12 0 0 0 0 0 0

    0 6 0 6

    6 0 6 0

    0 6 0 6

    6 0 6 0

    8 0 0 0 0 4 00 0 0 0 0 0 00 0 0 0 0 0 00 0 0 0 0 0 00 0 0 0 0 0 04 0 0 0 0 8 00 0 0 0 0 0 0

    0 0 5 5

    0 0 5 5

    0 0 5 5

    0 0 5 5

    0 2 5 2

    4 2 3 6

    3 0 1 4

    6 4 2 1

    0 1 1 1 0 0 01 0 1 0 1 0 01 1 0 1 2 2 01 0 1 0 0 0 10 1 2 0 0 0 10 0 2 0 0 0 00 0 0 1 1 0 0

    Les matrices de cooccurrences contiennent une grande quantit d'informations, difficilement exploitable dans son intgralit (pour une image 256 niveaux de gris, la matrice a comme dimension 256x256). Il faudra donc rduire cette quantit d'informations pour garder uniquement des donnes pertinentes, relatives la texture de la scne. Haralick a dfini quatorze paramtres reprsentatifs de la texture partir des matrices de cooccurrences. Nous en citons deux :

    - Moment second ou nergie

    ( ) 2,i j

    P i j

  • Cours de traitement dimages Catherine Achard 59

    - Moment des diffrences inverses ou homognit

    ( ) ( )21 ,

    1i jP i j

    i j+ De manire gnrale, ces paramtres sont discriminants et facilement extractibles. Nous reprenons le mme exemple que prcdemment qui est celui de la route sans marquage au sol. L'image est toujours divise en fentres de 16x16 pixels, et nous travaillons sur 64 niveaux de gris. Ceci a pour consquence directe de rduire considrablement la taille des matrices de cooccurrence puisqu'elles passent de 256x256 64x64, soit une rduction de taille d'un facteur 16. Le paramtre que nous reprsentons est le moment des diffrences inverses. On peut considrer qu'il reprsente l'homognit des niveaux de gris de la zone tudie.

    matrice de cooc, homogeneite

    VI - Les matrices de voisinage La matrice de voisinage V une distance d donne est dfinie par :

    Vd(i,j) = nbre de pixels ayant un niveau de gris i et j voisins de niveaux de gris i d. Une fois la matrice obtenue, les mmes paramtres que ceux dfinis par Haralick sur les matrices de cooccurrences peuvent tre extraits. Cette mthode donne des matrices de taille beaucoup plus faible que les matrices de cooccurrences et de plus, prsente une invariance en rotation de par la nature mme du voisinage centr. Par contre, un inconvnient majeur est que les caractristiques extraites de la matrice varient normment en fonction de d. Ceci dnote une certaine instabilit, et oblige calculer plusieurs matrices, pour des distances algbriques diffrentes entre les niveaux de gris. VII - Les matrices de longueur de plage Les matrices de longueur de plage, consistent rechercher les plages (ou segments de droite) de mme niveau de gris. Ainsi, pour diffrentes orientations (principalement 0, 45, 90 et 135 degrs), une matrice de longueur de plage P est dtermine. Celle-ci est caractrise par ses lments : Pq(i,j) = nombre de fois o limage contient une plage de niveaux de gris i,de longueur j dans la direction . Les matrices sont de dimension nombre de niveaux de gris x longueur maximale d'une plage. Une fois la matrice dtermine, les mmes paramtres que ceux dfinis par Haralick partir des matrices de cooccurrences peuvent tre extraits. De nouveaux paramtres peuvent

  • Cours de traitement dimages Catherine Achard 60

    galement tre dfinis comme par exemple

  • Cours de traitement dimages Catherine Achard 61

    d'intensit lumineuse de cet objet l'est aussi. La dimension fractale d'un objet peut donc tre calcule en utilisant les niveaux de gris qui lui correspondent. Trois grandes mthodes, permettant de calculer cette dimension fractale, existent :

    La mthode des botes; La mthode des variations; La mthode du spectre de puissance.

    Nous ne parlerons ici que de la premire mthode, mais avant tout, nous allons introduire ce qu'est une fractale. La fin des annes 1970 a vu se dvelopper la notion de gomtrie fractale dans de nombreux domaines de la physique, et en particulier, en traitement d'images. Elle est le complment qui manquait la gomtrie euclidienne. Comme l'a fait remarquer Benoit Mandelbrot, les nuages ne sont pas des sphres, les montagnes des cnes. Les objets fractals, encore appels fractales, sont dfinis comme tant des objets dont la dimension de Hausdorff-Besicovich est fractionnaire et strictement suprieure leur dimension topologique. Dans le cas d'une courbe, la dimension fractale d est toujours comprise entre un et deux. Si d est proche de un, la courbe est assimilable une droite, tandis que si d est proche de deux, la courbe sera trs dans le sens o elle occupera une large partie du plan et sera donc assimilable une surface. Afin de mieux comprendre la ncessit des dimensions non entires, nous allons mesurer la longueur L d'une cte maritime entre deux points A et B :

    On est rapidement confront une difficult : L dpend de la longueur du pas p choisi et crot infiniment quand p dcrot. En effet, pour un pas p1, la longueur sera Lp1=N1 p1 o N1 est le nombre de pas ncessaire pour parcourir la cte. Pour un pas p2 < p1, on aura Lp2 = N2 p2 > Lp1. La mesure est donc relative la rsolution et, est diffrente de la > longueur LAB. Mais comment calculer cette vraie longueur LAB? En 1910, Richardson tablit la loi empirique reliant la longueur au pas de mesure :

    aL p=o a est un paramtre qui caractrise la cte (-1

  • Cours de traitement dimages Catherine Achard 62

    La notion de gomtrie fractale est troitement lie aux proprits d'invariance par changement d'chelle : une structure fractale est la mme de prs comme de loin. A titre d'exemple, nous prsentons la courbe de Koch (1904). Chaque segment de longueur l est remplac par une ligne brise (gnrateur), forme de quatre segments de longueur l/3. On montre que la courbe ainsi obtenue a une dimension fractale d=ln 4 / ln 3 = 1.2618.

    Les fractales sont maintenant trs utilises en imagerie de synthse. Grce elles, on peut gnrer des formes naturelles comme des montagnes. Suivons cet exemple : on part d'un grand triangle rectangle, dont on prend le ct vertical comme unit. Au milieu de son hypotnuse AB, on porte verticalement la distance ( )2 D.BH 21 C . On procde de mme avec les nouveaux segments AC et BC, mais en dplaant le milieu de AC vers le bas et celui de BC vers le haut. La courbe obtenue au bout de quatre tapes a une allure alpestre : Etudions maintenant la mesure de la dimension fractale pour les images et, plus particulirement, la mthode des botes. Considrons un objet fractal A dans l'espace de dimension n. A est inclus dans une bote de cet espace de taille R. Si on rduit le partitionnement d'un rapport 1/r, alors il faudra N(r)=rd botes de taille rR pour contenir l'objet A. Dans le cas de la dimension fractale d'une image, l'objet A correspond la surface des niveaux de gris et est dans un espace trois dimensions. Si l'image possde ny x nx pixels

    quantifis sur ng niveaux de gris, alors la bote renfermant A est un volume de taille ny x nx x ng. En dcoupant ce paralllpipde en petits cubes d'arrte p, on obtient N(p) cubes qui ont une intersection non vide avec la surface A considre. La dimension fractale est alors :

    ( )( )( )0

    lnlim

    ln 1/pN p

    dp

    =

  • Cours de traitement dimages Catherine Achard 63

    La pente de la droite dans le diagramme bi-logarithmique ln(N(p)) vs ln(1/p) donne la dimension fractale d. XI - Masque de Laws Laws nous propose un ensemble de masques 3x3 ou 5x5 trouvs de manire exprimentale en effectuant des tests sur un ensemble d'images de textures naturelles. L'ide consiste reprsenter les textures par des mesures d'nergie ralises la sortie d'un banc de filtres. L'image originale I est donc convolue par ces filtres, donnant lieu plusieurs images rsultat Ij. Les caractristiques de texture sont ensuite obtenues en sommant en valeur absolue les pixels des images rsultats dans les diffrentes fentres de travail. L'intrt de cette mthode est qu'elle est simple mettre en oeuvre, et qu'elle est directement exploitable pour raliser une segmentation en rgions. Nous pouvons citer titre d'exemples un des masques 3x3 proposs par Laws : 1 2 1

    2 4 2 4 2 4

    Bien que cette mthode repose uniquement sur des tests exprimentaux, elle donne de bons rsultats comme on peut le constater sur l'image ci-dessous

    masque de laws XII - Conclusion Nous venons de voir plusieurs mthodes permettant d'obtenir des paramtres de texture. Il faut retenir qu'aucune d'entre elles ne peut tre a priori considre comme meilleure. En effet, selon les applications certaines seront plus robustes que d'autres. Un critre important prendre en compte pour des applications relles est le temps de calcul. Ce paramtre fait que certaines mthodes, trs lourdes en temps de calcul, sont peu employes dans la pratique. Il est aussi important de rappeler ici qu'il n'existe pas de paramtre universel permettant de dcrire les textures dans leur globalit. Il faut toujours raisonner au cas par cas, avec, qui plus est, des critres de slection assez subjectifs. Pourquoi utiliser un paramtre plutt qu'un autre ? Les paramtres sont ils complmentaires ou redondants ? Autant de questions qui ne seront rsolues que par des tests sur les images de la base d'application.

    I. Camra tubesII. Camras CCDI. Introduction: image niveaux de grisII. Image couleurIII. ConventionNotion de topologie

    Rappel de traitement du signalR-haussement dimagesRduction du bruit dans les imagesIntroductionLes approches drivativesApproche drivative prcde dun filtrage nonAdaptation un gabaritTransforme de HoughCodage des orientations codage de Freeman

    Segmentation par agrgation de pixelsSegmentation par divisionIII. Segmentation par division-fusionIV. Graphe dadjacenceV. Quad-treeVI. Etiquetage des rgionsDtection des points dintrt partir des coDtection directe des points dintrt partiBinarisation des images

    ExempleC=1Introduction la morphologie mathmatique binaiDilatation morphologiqueErosion morphologiqueCascade doprations

    Autre application: Slection dobjets de petiteContours dune image binaireAmincissementSquelettisationIntroductionHistogramme des diffrences de niveaux de grisIII. Mthode fonde sur le calcul du gradient deIV. Filtre de GaborV - Les matrices de cooccurrences, ou de transitionsVI - Les matrices de voisinageVII - Les matrices de longueur de plageVIII - Fonction d'autocorrlationIX - Transforme de FourierX - Approches multi-rsolutionXI - Masque de LawsXII - Conclusion