raport ti

39
1

Upload: lofygone

Post on 25-Jun-2015

424 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: raport TI

1

Page 2: raport TI

2

Page 3: raport TI

3

Avant-propos

L'extraction de contours dans les images a débute de façon extrêmement empirique par des operateurs locaux

qui, soit estimaient un gradient, soit convolaient l’image par des masques caractéristiques des contours

[Haralick et Shapiro, 1985]. Dans les années 80, des approches plus systématiques ont été mises en place par

Marr [Marr et Hildreth, 1980], puis Canny [Canny, 1986], pour obtenir des contours plus significatifs. Ces

travaux ont abouti à une bonne compréhension de ce qu’il faut faire pour détecter les contours, mais la

définition même des contours demeure très vague, ce qui rend ces techniques encore peu efficaces sur un

problème concret. De plus, on a pu montrer que le problème de L'extraction de contours est généralement mal

pose (au sens de la résolution des systèmes) [Torre et Poggio, 1986]. Les seuls modèles de contours utilisables

sont ceux de contours idéalises; ils sont bien loin de la réalité. C’est pourquoi, même si de très gros progrès ont

été accomplis dans ce domaine, les techniques empiriques d’estimation du gradient proposées dans les années

70-80 restent souvent encore employées en concurrence de techniques plus modernes. Une excellente référence

à ce problème est l’ouvrage collectif [Cocquerez et Philipp, 1996]. Plusieurs articles existent sur la comparaison

des performances de L'extraction de contours, en particulier [Palmer et al., 1996, Heath et al., 1997].

Page 4: raport TI

4

Sommaire

Avant-propos ..................................................................................................................................................................... 3

Sommaire ............................................................................................................................................................................ 4

Introduction ……………………………………………………………………………………………………………………….. 6

Parite I :les méthodes lieés à l’éxtraction des contours ............................................................................... 7

I) Notion du contour ......................................................................................................................................... 7

II) les approches classiques d’extraction des contours……………..……..……………………...…………..7

1) Méthode de Gradient par filtrage ............................................................................................................................ 7

2) les detecteurs de Gradient par masques…………………………………………………………..……………………………………………10

3) Méthode de laplacien ............................................................................................................................................. 11

4) Méthode d’Hystérisis………… …..………………………………………………………………………………………………………………………12

5) les détecteurs par masquage adapté(Kirsch) ........................................................................................................ 14

III) Les approches analytiques …………………………………………………………………………… 15

1) Les critès de Canny ............................................................................................................................................... 15

2) Deriche…………………………………………………………………………………………………………………………………………………………17

IV) Les contours actifs :Les Snaks ........................................................................................................................... 18

V) Morphologie Mathimatique……...………………………………………………………………………20

1) Opération élementaire ........................................................................................................................................... 20

2) Ouverture & Fermeture…………………………………………………………………………………………………………………………………21

3) Influence de l’élement structurant ....................................................................................................................... 21

4) Fonctions Matlab……………………………………………………………………………………………………………………………………………..21

Partie II : Domaines d’application d’extraction des contours ................................................................ 23

I) Les codes Data Matrix…………………………………………………………………………………………………………..…………………23

II) La Biologie ......................................................................................................................................................... 24

III) LaRobotique……………………………………………………………………………………… …. 25

Page 5: raport TI

5

Partie III : Exemple d’Application :Imagerie medicale………………………………….26.

1) Les contours classiques ......................................................................................................................................... 27

2) Les contours lisses ................................................................................................................................................. 28

3) Le filtre de kirsch ................................................................................................................................................... 29

4) Le filtre de Deriche ................................................................................................................................................ 30

5) Morphologie Mathimatique .................................................................................................................................. 31

Annexe………………………………………………………………………………………..33

CONCLISION………………………………………………………………………………….38

Bibliographie…………………………………………………………………………………………………………………..39

Page 6: raport TI

6

Introduction

L'extraction de contours est un problème auquel s'est récemment intéressé le monde du traitement

d'image, on situe ses débuts vers les années 1970 - 1980, lorsqu'on a voulu effectuer les premiers

traitements plus complexes sur les images numériques. C'est avec le développement des puissances de

calcul des ordinateurs qu'on a cherché des méthodes systématiques d'analyse d'images.

La détection de contour est un champ de la recherche qui appartient au traitement d'image et à la vision

par ordinateur, particulièrement dans le domaine de l'extraction de caractéristiques. De nombreux

problèmes d'application nécessitent un traitement préalable de l'image afin d'en détecter les contours, on

les retrouvera notamment dans le domaine de l'imagerie satellite, la reconnaissance faciale ou plus

généralement la création d'effets visuels.

Les contours constituent en effet des indices riches pour certaines interprétations. Par exemple, en

astrologie on désire à partir d'un cliché pris par un télescope, pouvoir détecter de nouveaux corps

célestes. Ou encore, en imagerie médicale, on désire déceler des tumeurs cancéreuses à partir d'une

scanographie.

La détection des contours d'une image réduit de manière significative la quantité de données et élimine

les informations qu'on peut juger moins pertinentes, tout en préservant les propriétés structurelles

importantes de l'image. Il existe un grand nombre de méthodes mais la plupart d'entre elles peuvent être

regroupées en deux catégories. La première recherche les extremums de la dérivée première, en général

les maximums locaux de l'intensité du gradient. La seconde recherche les annulations de la dérivée

seconde, en général les annulations du laplacien ou d'une expression différentielle non-linéaire.

Page 7: raport TI

7

Nous présenterons tout d’abord une approche formelle de la détection

des contours, puis les méthodes empiriques encore utilisées.

Une approche plus analytique, proposée par Canny, sera ensuite

présentée, avec ses dérivées qui sont aujourd’hui les plus employées en raison

de leur efficacité. Enfin les techniques fondées sur le principe des contours

actifs de Kass, Witkins et Terzopoulos seront présentées, ainsi que les

approches par ensembles de niveaux (level sets). Nous terminerons par une

brève présentation des méthodes de poursuite et de fermeture des contours.

Partie I I Les méthodes liées à

l'extraction de contours

Page 8: raport TI

8

I - Notion de contour

Soit F(x,y) une image. Un contour de cette image est une courbe du plan (x,y) au travers de laquelle s'opère une

forte variation de l'intensité lumineuse.

Figure 1

II Les approches classiques d’extraction du contour :

1) Méthode de gradient par filtrage

Si f(x,y) est différentiable alors le gradient de f au point (x0,y0) est :

Propriétés :

Le gradient est normal aux courbes iso-niveau de la forme f(x,y)=cste

f croît dans le sens de son gradient. Par ailleurs, plus la norme du gradient est grande et plus la

différence entre f(x+c,y+d) et f(x,y) est importante.

Equation 1

Page 9: raport TI

9

Un point de contour correspond donc à un maximum local de

Et le vecteur gradient donne la normale au contour

Figure 2

On calcule tout d'abord la norme du gradient, puis si cette norme est grande on considère que l'on est sur un

point de contour.

Les approximations numériques du gradient:

Généralement on dispose d'une image numérique échantillonnée : fn,m=f(nL1,mL2) où L1 et L2 sont les pas

d'échantillonnage (rectangulaire) suivant x et y

Suivant les critères, on souhaite approximer :

Obtenir une bonne approximation de la dérivée suivant x.

n,m*ƒn,m= k,l*ƒn-k,m-l

Equation 2

Equation 3

Equation 4

Page 10: raport TI

10

On doit donc avoir:

k,l=-1

Limitation de l'effet du bruit présent dans les images en réalisant un lissage suivant y.

Remarque: Pour le gradient, suivant y,

n,m*ƒn,m où n,m= n,m

2) Les détecteurs de gradient par masques

A côté de ces approches très inspirées du traitement du signal, des filtres de dérivation plus empiriques ont

été proposés à partir d’estimateurs locaux de l’image / ou de ses dérivées -gL. Ces estimées sont obtenues à

l’aide de masques (cf. figure 2.3) appliqués sur des fenêtres de 2 x 2 pixels ou 3 x 3 pixels (exceptionnellement,

en cas d’images très bruitées, sur des fenêtres plus grandes). On note sans surprise que la somme des

coefficients de ces filtres est nulle (fonction de transfert nulle à la fréquence 0), et que les coefficients sont

antisymétriques. Les filtres les plus utilisés sont, dans l’ordre décroissant :

Sobel > Roberts > Gradient > Prewitt

1

-1

1

-1

1 -1 1 -1

1 -1 2 -2

1 -1 1 -1

Gradient Roberts

Figure 3

Prewitt Sobel

Equation 5

k,l=0

k,l=0

Equation 6

Page 11: raport TI

11

Quatre filtres de détection de contours par estimation du gradient. Les filtres représentés

estiment une seule dérivée. Par rotation de π/2, on calcule la seconde dérivée.

Les filtres 3x3 sont un peu moins précis (c’est-à-dire que les contours qu’ils détectent sont

moins bien localisés et souvent épais), mais les images ainsi obtenues sont généralement plus

fiables et permettent des post-traitements plus poussés, ils sont également centrés sur un pixel

et non entre des pixels (filtres à phase nulle).

La réponse de l’un quelconque de ces filtres s’obtient de la façon suivante : le filtre est

centré en chaque pixel successivement (au coin supérieur gauche pour les filtres 2 x 2, au

point central pour les filtres 3 x 3). Le produit du masque par les valeurs des pixels

correspondant étant fait, la valeur absolue de la somme est retenue. Puis le masque est tourné

de 90° autour de son centre et la même mesure est répétée. Les deux mesures sont alors

ajoutées et leur somme constitue la mesure du gradient en ce point selon la formule de

l’équation suivante, ou selon la formule approchée, un peu plus rapide à calculer :

On peut également mesurer l’orientation du contour au point donné en faisant le rapport

des réponses des deux filtres comme dans l’équation.

De tels filtres sont particulièrement simples de mise en œuvre, et rapides de calcul,

permettent en particulier d’assurer des calculs en temps réel pour des applications

industrielles.

3) Méthode de laplacien

Cette méthode a été proposée en 1976 [Marr et Hildreth, 1980]. Elle a eu une grande

importance historique, étant considérée comme le prototype du détecteur de contour inspiré

des systèmes biologiques (primai sketch de Marr). Elle utilise le fait que le passage par zéro

du laplacien permet de bien mettre en évidence les extrémums de la dérivée. Nous avons eu

l’occasion de voir (dans l’équation qui suit) qu’en l’absence de forte courbure, le passage par

zéro du laplacien correspond en effet bien au maximum du gradient dans la direction du

gradient. Cette méthode tire en outre profit du fait que les zéros de la dérivée seconde

Equation 7

Page 12: raport TI

12

constituent un réseau de lignes fermées (évitant donc, en principe, les étapes de poursuite et

de fermeture). Il en est de même du réseau des lignes de crête du gradient, mais le premier est

plus aisément détecté à partir d’un simple étiquetage des zones positives et négatives. Mais

l’estimation de la dérivée seconde étant très sensible aux bruits, il convient de filtrer très

fortement l’image avant d’en mesurer le laplacien. Cela conduit au filtrage suivant :

𝜕

𝜕 𝜕

𝜕

On recherche le passage par zéro du laplacien

L1L2∆ƒ(n L1,mL2)= -4 ƒn,m + ƒn,m-1 + ƒn,m+1 + ƒn+1,m + ƒn-1,m

Remarque: Cette méthode est plus sensible au bruit que les méthodes de gradient.

4) Méthode Hystérésis

A – Principe de seuillage

Objectif: Obtenir une image binaire de type:

On applique cette méthode après la détection des contours de l'image. Lorsque la norme du

gradient en un point est supérieure à un seuil S>0, alors on affecte à ce point la valeur 1.

Equation 8

Equation 9

Equation 10

Equation 11

Page 13: raport TI

13

B - Algorithme

L'algorithme du seuillage simple s'appuie sur deux étapes:

Etape 1: Initialisation

On initialise tout d'abord la matrice binaire g à zéro

Etape 2: Seuillage

Chaque point pour lequel la norme de son gradient est supérieure à S, on le met à 1 dans la

matrice binaire g:

C- Qu'est ce que le seuillage par hystérésis ?

Le seuillage par hystérésis propose une méthode de prolongement des contours déjà détectés.

Il permet de corriger les erreurs de l'extraction de contours. En effet, le calcul du gradient n'est

pas toujours fiable, et ne permet d'avoir bien souvent qu'une première approximation des

contours de l'image. Certaines parties des contours convexes de l'image ne pourront pas être

suffisamment mis en valeur pour être effectivement retenus comme convexes par un seuillage

simple, et présenteront donc des vides. Le seuillage par hystérésis propose de combler ces

espacements.

1. Le principe

Le seuillage par hystérésis est réalisé après l'étape de détection des contours. Il s'effectue à

partir d'une image sur laquelle on possède déjà une première estimation des contours. Le

traitement effectué s'appuie donc sur une image binaire qui constitue temporairement les

contours de l'image. On va rechercher les points extrêmes des contours non fermés pour

essayer de les prolonger.

Par exemple : à partir de deux points A et B qui sont deux extrêmes d'un contour, on va

rechercher dans leur voisinage respectif V(A) et V(B) des points qui pourraient faire partie de

ce contour :

Equation 12

Page 14: raport TI

14

Figure4

Remarque : Dans notre cas, le voisinage d'un point est une zone de quelques pixels de

diamètre autours de ce point. En effet, la recherche de prolongements ne peut se faire à une

distance supérieure, sous peine de joindre deux contours totalement indépendants.

Les pixels du voisinage proche de A qui ne sont pas dans le contour n'ont pas été retenus par

le premier seuillage. Il faut donc appliquer un seuillage plus permissif sur cette zone. Ainsi on

est moins exigeant et le contour va se redessiner peu à peu.

2. L'algorithme

L'algorithme de seuillage par hystérésis s'effectue à partir de deux seuils s et s' (s > s’). Soit

une image 2D f échantillonnée avec un pas L1 selon x et L2 selon y. On notera ∇f son

gradient.

Etape 1 : Initialisation

On met à zéros tous les coefficients de la matrice S(n,m), notre matrice binaire de contours.

Etape 2 : Seuillage

On effectue un premier seuillage simple sur notre image, le résultat étant placé dans la matrice

binaire S(n,m).

Etape 3 : Seuillage local

Pour tout point P(n,m) appartenant à un contour C,

S'il existe un point P'(k,l) appartenant au voisinage de P(n,m) tel que :

S(k,l) = 0 et ||∆ƒ(n L1,mL2)|| > S’

Equation 13

Page 15: raport TI

15

Alors S(P')=1.

On réalise ainsi un seuillage local avec un seuil moins exigeant s'.

Etape 4 : Itération

On itère l'étape 3 jusqu’à convergence.

Etape 5 : Sélection

On supprime les contours de quelques pixels pour ne garder que les contours pertinents

.

5) Les détecteurs par masquage adapté (kirsch)

Dans ces techniques, on recherche en chaque point de l’image la présence d’une configuration

conforme à un gabarit appartenant à un dictionnaire de contours. Pour cela, on définit une

distance entre un contour type et une fenêtre de l’image. C’est par exemple l’inverse du

produit scalaire des deux fenêtres : si l’image est dénotée f(x,y), et le keme

gabarit gk(x, y), on

calcule par exemple :

Equation 14

Pour toutes les valeurs de k. On ne conserve que la meilleure des valeurs et seulement si elle

est suffisamment faible. L’approche par masques adaptés (Template matching), permet de

connaître aisément la direction du contour, elle permet également de soumettre, en parallèle,

ces calculs à des architectures adaptées. Mais la qualité des contours, ainsi que les post-

traitements qu’ils requièrent sont très semblables à ceux que l’on a vus pour les filtres de

maximum du gradient.

Les filtres adaptés les plus utilisés sont le filtre de Kirsch, le filtre de Nevatia et Babu et les

boussoles directionnelles de Prewitt.

Au-delà de ces approches souvent heuristiques, Hueckel a proposé une démarche beaucoup

plus rationnelle, s’appuyant sur la décomposition du signal d’image sur une base de fonctions

orthogonales en coordonnées polaires (polynômes d’Hermite utilisés également pour

l’oscillateur harmonique), tronquée à ses 8 premiers termes

Page 16: raport TI

16

Figure5 Masques de Kirsch : il y a 8 filtres issus de ces 2 fenêtres par rotation de π/4.

III Les approches analytiques

Nous allons voir maintenant une approche qui a permis une bien meilleure compréhension des

conditions d’une bonne détection de contours et qui a ainsi conduit à des détecteurs de très

bonne qualité. On les voit émerger dans les années 85, à partir des travaux : [Torre et Poggio,

1986, Shen et Castan, 1986, Canny, 1986].

1 Les critères de Canny

Canny, dans une approche originale, [Canny, 1986] a proposé un filtre déterminé

analytiquement à partir de 3 critères :

Garantir une bonne détection, c’est-à-dire une réponse forte même à de faibles

contours,

Garantir une bonne localisation,

Assurer que pour un contour il n’y aura qu’une seule détection (éviter les effets de

rebonds dus, par exemple, à la troncature des filtres).

Ces 3 critères s’expriment par l’optimisation conjointe de 3 fonctionnelles qui permettent de

définir le filtre linéaire optimal pour la détection d’une marche d’escalier sous l’hypothèse

d’un bruit additif indépendant du signal1.

Si l’on considère que le filtre a pour réponse impulsionnelle ψ(x), ces fonctionnelles

s’écrivent :

Equation 15

5 5 5

-3 0 -3

-3 -3 -3

-3 5 5

-3 0 5

-3 -3 -3

Page 17: raport TI

17

Equation 16

Figure6 - Masques de boussole directionnelle : il y a 8 filtres issus de ces 2 fenêtres par

rotation.

RÉPONSE UNIQUE :

Equation 17

La résolution du système est assez complexe (on maximise le produit Λ∑ sous la contrainte

du 3eme

terme constant). Par ailleurs, Canny souhaite obtenir un filtre monodimensionnel

(dans la direction orthogonale au contour), à réponse impulsionnelle finie (RIF) ; celui-ci a

alors une expression complexe, composée de 4 termes, chacun combinant des lignes

exponentielles et trigonométriques :

𝜃

𝜃 𝜃

𝜃

Equation 18

Où les coefficients Oj et ui sont déterminés à partir de la taille du filtre. Le paramètre à est un

paramètre de grande importance que nous retrouverons dans tous les autres filtres dérivés de

l’approche de Canny. C’est un paramètre d’échelle qui indique en-deçà de quelle distance

deux contours parallèles seront confondus en un seul. Canny montre que la dérivée d’une

gaussienne est une bonne approximation de son filtre.

Equation 19

1 1 1

1 -2 1

-1 -1 -1

1 1 1

-1 -2 1

-1 -1 1

Page 18: raport TI

18

C’est donc la réduction à 1 dimension du filtre proposé par Marr à 2 dimensions (le maximum

de la dérivée du gaussien est obtenu pour le passage par zéro du laplacien de gaussienne). Ce

filtre donne des résultats de bonne qualité. Le critère de Canny (critère Λ∑) vaut 1,12 pour le

filtre RIF optimal, 0,97 pour le filtre gaussien. Remarquons cependant que le filtre gaussien

n’est pas RIF.

2- Deriche

Deriche a proposé un filtre à réponse impulsionnelle infinie pour détecter le contour C d'une

image.

Le calcul des contours se fait alors récursivement, avec des conditions initiales nulles aux

bords de l'image. On va construire les contours droit (C-) et gauche (C+) de notre image I(x) :

Equation 20

On obtient alors le contour C(x) de l'image.

Le coefficient alpha peut varier :

- alpha grand : le contour prendra en compte le moindre changement d'intensité de l'image,

- alpha petit : le contour ne prendra en compte que les contours marqués au détriment d'une

mauvaise localisation.

Exemple :

Figure7

Page 19: raport TI

19

IV_ Les contours actifs = les snaks

Une approche très différente des méthodes antérieures de détection de contours a été proposée

en 1987 par Kass, Witkins et Terzopoulos [Kassetal., 1988], appelée contours actifs ou snaks.

Il s’agit d’une méthode semi-interactive dans laquelle l’opérateur place dans l’image, au

voisinage de la forme à détecter, une ligne initiale de contour. Cette ligne sera amenée à se

déformer sous l’action de plusieurs forces :

Une énergie propre, assimilée à l’énergie mécanique de tension et de torsion d’une ligne

matérielle,

Une énergie potentielle imposée par l’image qui vise à plaquer la courbe sur les contours,

Une énergie externe, introduite par l’utilisateur pour traduire les contraintes spécifiques du

problème qu’il se pose.

Sous ces énergies, le contour actif va évoluer pour rechercher la position d’énergie minimale,

qui sera ainsi un compromis entre les diverses contraintes du problème.

L’écriture formelle du problème passe par la définition paramétrique du contour, en fonction

d’une variable s généralement l’abscisse curviligne :

Equation 21

Equation 22

Equation 23

Ou

La première dérivée prend en compte les variations de longueur de la courbe, (c’est donc un

terme de tension (résistance à la rupture), qui est contrôlé par l’élasticité que l’on attribue au

contour),

Tandis que la seconde exprime les variations de la courbure (c’est un terme de flexion

contrôlé par la raideur du contour).

Ces deux termes agiront donc pour produire une courbe régulière.

Le second terme d’énergie : Eimage caractérise les lignes que l’on souhaite suivre. Dans le cas

de détection de contours, ce sont des lignes de fort gradient, il vaut donc généralement :

Page 20: raport TI

20

Eimage= -∇ƒ

Equation 24

Mais il peut être adapté pour suivre les maximums des niveaux de gris (dans ce cas Eimage = f),

ou toute autre fonction définie à partir de ceux-ci.

Enfin le dernier terme d’énergie : Eexterne est choisi par l’utilisateur. Il peut avoir des formes

très variées afin, par exemple, de contraindre le contour à ressembler à un gabarit donné, à

s’approcher d’un contour déjà détecté sur une autre image (suivi de séquences, ou images à

3D).

On notera cependant que, dans le cas de volumes numériques tridimensionnels f{x, y, z), il est

possible d'étendre les contours actifs à des surfaces actives pour lesquelles l'énergie s’exprime

comme pour des plaques minces.

Le principe de la méthode de détection par contour actif ou dite par "snake"

Cette méthode consiste à placer aux alentours de la forme à détecter une ligne initiale de

contour. Cette ligne va se déformer progressivement selon l'action de plusieurs forces qui vont

la tirer ou la pousser vers la forme.

Figure8 :contours actifs(snaks)

On considère que le snake est composé de n points Vi que l'on définit de façon paramétrique

en fonction de l'abscisse curviligne s. Cette méthode se base sur trois énergies associées au

snake:

Son énergie interne qui est due à la forme du contour: Eint

Page 21: raport TI

21

L'énergie potentielle de l'image, qui va attirer la ligne du snake vers les

contours effectifs de l'image: E image

L'énergie de contraintes choisie par l'utilisateur suivant le contour que ce

dernier souhaite obtenir: Econt

Où:

Eint =(a(s)).||V’(s)|| + b(s).||V’’(S)||)

Equation 25

Où a et b poids respectifs de la dérivée V’ et de la dérivée seconde V’’

a et b varient et forment un intermédiaire entre un contour souple mais plutôt irrégulier (pour

se caler sur les coins) et un contour sans s'accrocher sur du bruit.

Où:

Eimage = -grad(i)

Equation 26

Et où:

Econt = Econt(s)

Equation 27

Celle-ci s'exprime uniquement en fonction de V(s)

Cela nous donne une énergie totale de :

Etotale(Vi-1, Vi , Vi+1)=∑[Eiint((Vi-1, Vi , Vi+1)+Eiimage(Vi)+Eicont(Vi)]

Equation 28

V_ Morphologie mathématique

1 Définition : La morphologie mathématique est une branche des mathématiques présentant des liens forts

avec l'algèbre, la théorie des treillis, la topologie et les probabilités.

Le développement de la morphologie mathématique a été inspiré par des problèmes de

traitement d'images, domaine qui constitue son principal champ d'application. Elle fournit en

particulier des outils de filtrage, segmentation, quantification et modélisation d'images.

La morphologie mathématique a pour racines principales la théorie des treillis et la géométrie

aléatoire. Crée par G. Matheron et J.Serra en 1964, elle a été connue par trois publications de

base de ces derniers, à savoir :

{MAT75}, qui porte sur les ensembles ((cadre topologique, ensembles aléatoires, modèle

Page 22: raport TI

22

booléen, convexité, granulométries, représentation des transformations croissantes) ;

{SER82}, axé sur les transformations invariantes par translation (extension aux fonctions,

morphologie discrète, amincissements, combinaison d'opérateurs) ;

{SER88}, qui étend la démarche au cadre des treillis (dilatation, theorie du filtrage

morphologique, connexité, squelette, fonctions booléennes). Cette démarche a été poursuivie

par H.Heijmans et Ch. Ronse {HEI90} {RON91}.

Définition de la morphologie mathématique :

Techniques non linéaires de traitement du signal reposant sur des opérations de

supremum et d'infimum

(Inf: plus grand minorant ∧ {Xi} Sup: plus petit majorant ∨ {Xi})

2 Opérations élémentaires

Dilatation : Faire un programme qui en entrée prend une image f, et en sortie donne l’image

de sa dilaté. On rappelle que :

D(f,B)(x) = sup {f(x − y)/y B}

Equation 29

Le tester sur des images (constater l’augmentation du niveau de gris, et la propagation des

maxima locaux).

Erosion : Faire un programme qui en entrée prend une image f, et en sortie donne l’image de

son érosion. On rappelle que :

E(f,B)(x) = inf {f(x − y)/y B}

Equation 30

Le tester sur des images (constater la diminution du niveau de gris, et la propagation des

minima locaux).

3 Structure de base

L'analyse d'images peut se diviser en trois grands types de problèmes : Codification,

Extraction de caractéristiques et Segmentation.

La structure de travail est le treillis et les lois fondamentales sont le supremum et l'infimum.

Page 23: raport TI

23

A) Supremum et infimum

Maximum et minimum point à point entre deux fonctions.

Les fonction f et g le supremum et infimum

B) Treillis

La structure fondamentale est le treillis complet, ou ensemble L tel que:

L est muni de l'ordre partiel :

Et pour toute famille d'éléments {Xi} L, il existe, dans L, un supremum et un infimum.

Les transformations premières sont celles qui préservent ces lois de base du treillis.

Préservation de l'ordre: X Y ψ (X) ψ (Y) croissance

Commutativité avec Sup.: ψ (∨Xi ) = ∨ψ (Xi ) dilatation

Commutativité avec Inf.: ψ (∧Xi ) = ∧ψ (Xi ) érosion

Treillis utilisés en imagerie

Le treillis des ensembles :

(P(E), )

Supremum : ∪

Infimum : ∩

Le treillis de l'ensemble des fonctions F : E → T :

(TE , ), (E est l'espace des points, T est l'ensemble ordonné des niveaux de gris).

Relation d'ordre : F1 F2 E, F1(p) F2(p)

Supremum : ∨, ∨i Fi : p → supi Fi(p)

Infimum : ∧, ∧i Fi : p → infi Fi(p)

Page 24: raport TI

24

4 Ouverture et fermeture

Ouverture : Faire un programme qui en entrée prend une image f, et en sortie donne l’image

de son ouverture. On rappelle que :

fB = D(E(f,B),B)

Equation 31

Le tester sur des images (vérifier que les pics plus étroits que l’élément structurant est

écrêtés).

Fermeture : Faire un programme qui en entrée prend une image f, et en sortie donne l’image

de sa fermeture. On rappelle que :

fB = E(D(f,B),B)

Equation 32

Le tester sur des images (vérifier que les vallées plus étroites que l’élément structurant est

comblées).

4 Influence de l’élément structurant :

Modifier les programmes précédents en utilisant cette fois l’élément structurant :

B′ = {y = (y1, y2)/max (|y1|, |y2|) ≤ r}

Equation 33

Page 25: raport TI

25

PARTIE

Lorsque l'on étudie la détection de contours dans

le cas d'une application précise, il devient possible et

même indispensable d'adapter ces méthodes au but

recherché. En effet la connaissance du contexte nous

permet d'extraire des conditions supplémentaires de

sélection des contours.

Par exemple, dans le domaine de la robotique, on peut ne

sélectionner que les éléments structurant des contours

détectés par des capteurs (droites, cercles, etc.) afin

d'améliorer sa localisation dans l'espace.

II Domaines d’Applications

d’extraction des contours

Page 26: raport TI

26

II. Les codes Data Matrix

Les codes Data Matrix sont une nouvelle génération de codes symboliques bidimensionnels,

dérivés des codes à barres, qui utilisent les deux dimensions du plan, à la manière d'un damier

dont les cases constituent les éléments binaires.

Voici ce à quoi ressemble un code Data Matrix :

Figure9

La méthode adoptée pour reconnaître efficacement un code Data Matrix est la suivante :

Détection de contours et assemblage de ces contours en chaînes puis en lignes.

Recherche de couples de lignes ayant les propriétés du motif en L des codes

Data Matrix en utilisant les propriétés géométriques et les propriétés de texture

de la zone délimitée. En effet, le bord gauche et le bord du bas forment un L

noir, tandis que le côté droit et celui du haut alternent les pixels noirs et blancs.

Analyse du bord du symbole pour identifier le nombre de cellules.

Échantillonnage des valeurs de la matrice selon le nombre et la position des

cellules du bord du symbole.

Les codes Data Matrix sont appelés à remplacer un jour nos codes barres actuels.

III. La biologie

Il devient intéressant d'appliquer les recherches en traitement d'images aux domaines de la

médecine, qui s'informatise énormément. En particulier, on peut distinguer plusieurs types de

besoins :

Page 27: raport TI

27

La reconstruction en 3D du corps humain : les techniques actuelles nous

permettent d'obtenir des séries d'images 2D représentant des coupes

successives d'une zone du corps humain. Ces coupes sont le résultat de

scanners médicaux. A partir de ces images 2D, il devient intéressant de

reconstruire un modèle en 3 dimensions de cette même zone. Ces techniques

d'assemblage font appel à des techniques de détection de contours

performantes et adaptées à cet usage.

La détection du noyau cellulaire après analyse par microscope.

La reconstruction du système osseux ou encore des arbres vasculaires du corps

humain.

IV. La robotique

La détection de contours intervient également dans le domaine de la vision par ordinateur.

Initialement motivée par les applications à la robotique, la vision par ordinateur voulait doter

les machines d'une vision semblable à celle de l'homme. En particulier, il semblait

indispensable de disposer d'informations tridimensionnelles sur les objets entourant le robot,

pour éviter les obstacles, pour les reconnaître ou pour les saisir. Les capteurs robotiques

classiques étant trop lents ou trop peu précis, seules des méthodes inspirées de la vision

biologique parurent adaptés. La stéréovision, qui permet de voir en relief avec plusieurs «

yeux », en fut un exemple type.

Aujourd'hui, les applications principales de la vision par ordinateur ne sont plus seulement

robotiques : reconnaissance des formes, télédétection, contrôle industriel, imagerie médicale,

imagerie satellite, etc. Plus surprenant, de nombreuses applications voient le jour en réalité

virtuelle et en trucage vidéo : par exemple, mélanger images de synthèses et images réelles

nécessite l'extraction d'informations 3D à partir du réel.

Page 28: raport TI

28

partie

III Exemple d’Application

Imagerie médicale

Page 29: raport TI

29

1) Les contours classiques

Filtrage 10 : par Laplacian of Gaussian

Filtrage11 : par Prewitt

Page 30: raport TI

30

Filtrage12 : par Roberts

Filtrage13 : par Sobel

Page 31: raport TI

31

2) Les contours par Morphologie Mathématique :

Figure14 : Erosion de la région par morphologie math

Figure 15 : Bouche les trous par morphologie math

Page 32: raport TI

32

Figure16 : Fermeture les trous par morphologie math

Figure17 :Histogramme colorer

Page 33: raport TI

33

3) Le filtre de Deriche

Figure18

Page 34: raport TI

34

Annexe

Page 35: raport TI

35

1) Code des contours classiques

function extractcnt(x)

f=imread('7.jpg');f=rgb2gray(f);f=double(f)/255.0; PF=edge(f,'prewitt');

RF=edge(f,'roberts'); S=edge(f,'Sobel'); LF=edge(f,'log'); CF=edge(f,'canny');

choice=0;

while (choice~=5)

choice=input('1: Prewitt\n2: Sobel\n3: Roberts\n4: Laplacian of a

Guassian(LoG)\n5: Canny\n6: Exit\n Enter your choice : ');

switch choice

case 1

figure(1)

subplot(1,2,1),subimage(f),title('Original Image')

subplot(1,2,2),subimage(PF),title('Prewitt Filter');

case 2

figure(2)

subplot(1,2,1),subimage(f),title('Original Image')

subplot(1,2,2),subimage(S),title('Sobel Filter');

case 3

figure(3)

subplot(1,2,1),subimage(f),title('Original Image')

subplot(1,2,2),subimage(RF),title('Roberts Filter');

case 4

figure(4)

subplot(1,2,1), subimage(f),title('Original Image')

subplot(1,2,2),subimage(LF),title('Laplacian of Gaussian (LoG) Filter');

case 5

figure(5)

subplot(1,2,1), subimage(f),title('Original Image')

subplot(1,2,2),subimage(CF),title('Canny Filter');

case 6

display('Program Exited');

%otherwise

display('\nWrong Choice\n');

end

end

Page 36: raport TI

36

2) Code d’extraction par Morphologie

Math

function contactif(x)

% Lecture image

img = imread('7.jpg');

figure(1)

subplot(1,2,2),subimage(img),title('image initial');

img = double(img(:,:,1));

% Selection des pixels correspondant a un

% mode de l’histogramme

e = find(img>118);

mask = zeros(size(img));

mask(e) = 255;

figure(2)

imhist(img);

%subplot(1,2,2),subimage(e),title('histogramme');

% Erosion de la region par morpho math

se = strel('disk',3);

maskErode = imerode(mask,se);

figure(3)

subplot(1,2,2),subimage(maskErode),title('Erosion de la region par morpho

math');

% Seuillage par hysteresis

%maskHyst = hysteresis(mask,maskErode);

%figure(3)

%subplot(1,2,2),subimage(maskHyst),title('Seuillage par hysteresis');

% Bouche les trous par morpho math

maskFill = imfill(maskErode,'holes');

figure (4)

subplot(1,2,2),subimage(maskFill),title('Bouche les trous par morpho

math');

% Fermeture de la region par morpho math

se = strel('disk',1);

final = imclose(maskFill,se);

figure(5)

subplot(1,2,2),subimage(final),title('Fermeture de la region par morpho

math');

end

Page 37: raport TI

37

3) Code d’Histogramme

4) Code de Kirsch

f=imread('7.jpg');f=rgb2gray(f);f=double(f)/255.0;

% Création de la LUT pour afficher en niveau de gris

r=[0 0.5 1];

v=[0 0.5 1];

b=[0 0.5 1];

map=[r, v, b];

% Création de la LUT pour afficher en niveau de gris

imagesc(f);

colormap(f) ;

% Affichage de l’histogramme

imhist(f,3) ;

function [e,t] = kirsch(x,thresh);

f=imread('7.jpg');f=rgb2gray(f);f=double(f)/255.0;

k(:,:,1) = [-3 -3 5; -3 0 5; -3 -3 5];

k(:,:,2) = [-3 5 5; -3 0 5; -3 -3 -3];

for i=3:7

k(:,:,i) = rot90(k(:,:,i-2));

end

f = double(f);

for i=1:7

y(:,:,i) = imfilter(f,k(:,:,i),'symmetric','same');

end

e = max(abs(y),[],3);

if nargin == 2

if (isempty(thresh))

thresh = 2*sqrt(mean(e(:).^2));

end

e = e > thresh;

t = thresh;

elseif nargout == 2

error('Problème dans les valeurs entrées’);

end

Page 38: raport TI

38

Conclusion En conclusion je peux dire que le Mini-projet est terminé et abouti.

Pour moi, ce Mini-projet fût le premier de la sorte, les études que nous avions faites jusqu’à

présent nous

Avaient donné l’occasion de réaliser du traitement d’image et de l’extraction des contours

appliquée dans le domaine d’imagerie médicale.

Pour ce Mini-projet, j’ai dû approfondir toutes mes connaissances dans les domaines vus en

cours, de

Plus, cela nous a obligé à prendre en main d’autres notions qui relèvent d’avantages du

domaine d’extraction des contours(les méthodes classiques et les méthodes a temps réel).

Ce Mini-projet nous a aussi permis d’apprendre à acquérir de nouvelles compétences et de

maitriser de nouveaux outils.

Au final, je suis très satisfait du travail réalisé dans le temps qui j’ai été imparti. J’ai appris

énormément de choses sur les techniques de traitement. De plus j’ai approfondi mes savoirs

concernant el logiciel Matlab.

Pour conclure, je peux dire que ce Mini-projet a été très bénéfique pour moi car il ma aidé à

mieux comprendre le monde de traitement d’image.

Page 39: raport TI

39

Bibliographie

Wikipédia

Cours traitement d’image insa Rouen

Cours Mr Bouikhalene

Introduction au traitement d'images (Diane Lingrand)

Traitement et analyse des images numériques

(BRES Stéphane, JOLION Jean-Michel,

LEBOURGEOIS Frank)

Cite Benjamin Garnier & Benjamin Jaton