Traitement dimages : concepts fondamentaux Définitions fondamentales et prétraitements : –...

17
Traitement d’images : concepts fondamentaux Définitions fondamentales et prétraitements : – Information représentée par un pixel, – Manipulation d’histogrammes : égalisation, – Filtrage passe-bas. Introduction à la morphologie mathématique (cas binaire) : – Erosion, dilatation, ouverture et fermeture binaires, – Reconstruction géodésique, étiquetage en composantes connexes, – Squelette. Détection de contours : – filtrage passe-haut, filtrage optimal, – traitement des contours : fermeture, transformée de Hough. Introduction à la classification (cas pixelique) :

Transcript of Traitement dimages : concepts fondamentaux Définitions fondamentales et prétraitements : –...

Page 1: Traitement dimages : concepts fondamentaux Définitions fondamentales et prétraitements : – Information représentée par un pixel, – Manipulation dhistogrammes.

Traitement d’images : concepts fondamentaux

• Définitions fondamentales et prétraitements : – Information représentée par un pixel,– Manipulation d’histogrammes : égalisation,– Filtrage passe-bas.

• Introduction à la morphologie mathématique (cas binaire) : 

– Erosion, dilatation, ouverture et fermeture binaires,– Reconstruction géodésique, étiquetage en composantes connexes,– Squelette.

• Détection de contours :– filtrage passe-haut, filtrage optimal,– traitement des contours : fermeture, transformée de Hough.

• Introduction à la classification (cas pixelique) :– algorithme des k-ppv, des c-moyennes– critères bayésiens : MV, MAP.

Page 2: Traitement dimages : concepts fondamentaux Définitions fondamentales et prétraitements : – Information représentée par un pixel, – Manipulation dhistogrammes.

Détection de contours :approche générale

• Objectif– Délimitation des objets– Détection de points d’intérêt

• Méthodes dérivatives– À partir du gradient ( vecteur 2D), calcul de sa norme

et de sa direction– Approximation de la dérivée 2nde par le Laplacien

Contour = là où réside l’information au sens entropique

-0,2

0

0,2

0,4

0,6

0,8

1

1,2

0 5 10 15-0,1

0

0,1

0,2

0,3

0,4

0,5

0,6

0 5 10 15-0,4

-0,3

-0,2

-0,1

0

0,1

0,2

0,3

0,4

0,5

0,6

0 5 10 15

f(x) f’(x) f’’(x)

2

2

2

2

y

I

x

I

Page 3: Traitement dimages : concepts fondamentaux Définitions fondamentales et prétraitements : – Information représentée par un pixel, – Manipulation dhistogrammes.

Principe des méthodes dérivatives

Utilisation du gradientCalcul de l’image du gradient

Calcul de l’image de la norme du gradient

Calcul de l’image de la direction du gradient

Seuillage (avec hystérésis) de l’image de la norme du gradient

Elimination des non maxima locaux dans la direction du gradient

Fermeture des contours

Utilisation du laplacienCalcul de l’image du laplacien

Calcul de l’image de la norme du gradient

Calcul de l’image binaire Iz des passages par zéro du laplacien

Application du masque binaire Iz à l’image de la norme du gradient

Seuillage (avec hystérésis) de l’image de la norme du gradient |Iz

Elimination des non maxima locaux dans la direction du gradient

Fermeture des contours

Laplacien trop bruité pour être utilisé seul

Page 4: Traitement dimages : concepts fondamentaux Définitions fondamentales et prétraitements : – Information représentée par un pixel, – Manipulation dhistogrammes.

par filtrage linéaire passe-haut

01010

12021

13031

12021

01010

533

503

533

553

503

333

• Gradient

Sobel c=2Prewitt c=1

Opérateur MDIF

Filtres de Kirsch : 8 masques

11

000

11

c

c

101

0

101

cc

01110

12321

00000

12321

01110

Rq : les filtres sont donnés pour des directions lignes – colonnes cas

de directions diagonales :

01

101

10

c

c

c

c

10

101

01

555

303

333

333

503

553

333

303

555

333

305

355

335

305

335

355

305

333

La direction du gradient est l’argument du masque qui maximise la norme du

gradient à /8 près • Masque MDIF plus grand moins sensible au bruit

mais localisation des contours moins bonne• Il existe aussi des généralisations de Sobel à des tailles

(2d+1)(2d+1) : MX(i,j)=d/(|i|+|j|)(-i)/|i|, (i,j)[-d,d]2

Page 5: Traitement dimages : concepts fondamentaux Définitions fondamentales et prétraitements : – Information représentée par un pixel, – Manipulation dhistogrammes.

par filtrage linéaire passe-haut

111

181

111

010

141

010

• Laplacien

4-connexité 8-connexité

1 filtre passe haut extrait l’information ‘complémentaire’ d’un filtre passe-bas : Id = MPB+MPH

Ex :

111

181

111

9

1

111

111

111

9

1

000

090

000

9

1Coef. généralemt

omis pour amplifier le résultat

Page 6: Traitement dimages : concepts fondamentaux Définitions fondamentales et prétraitements : – Information représentée par un pixel, – Manipulation dhistogrammes.

par filtrage optimal (I)• Critères de Canny

(i) Bonne détection, (ii) bonne localisation, (iii) faible multiplicité des maxima dus au bruit

Filtre impulsionnel à réponse finie (RIF)

• Filtre de Deriche : RII

Dérivée directionnelle en x = Image*h(x)*f(y)Dérivée directionnelle en y = Image*h(y)*f(x)

• Filtre de Shen - Castan

yfxheyexyxf yxX ..1...

4,

3

xfyhexeyyxf xyY ..1...

4,

3

Filtre de lissage puis application d’un opérateur

différentiel

xfxfyfex

xeyxf xy

X 12

2...

2..

2,

yfyfxfey

yeyxf yx

Y 12

2...

2..

2,

Maximiser le rapport signal à bruit

Minimiser la variance de l’erreur en distance

Solution de Canny : RIF(x) = a1excosx + a2exsinx + a3e-xcosx +a4e-xsinx

Solution de Deriche : RII(x) = Cst/.ex|.sinxSoit m / m.=, alors m>>1 (x) h(x) = -2.x.e-|x|

Lissage dans la direction perpendiculaire à celle de h par le filtre intégrateur de h : f(y) = .(.|y|+1).e-|y|

(f’(y) = ..signe(y).e-|y|+.(.|y|+1).(-.signe(y)).e-|y| = h(y))

Solution de Shen et Castan : RIIf(x) = be-x|, f1(x) = e-x.u(x), f2(x) = .e-(-x).u(-x)

Page 7: Traitement dimages : concepts fondamentaux Définitions fondamentales et prétraitements : – Information représentée par un pixel, – Manipulation dhistogrammes.

par filtrage optimal (II)• Implantation du filtre de dérivation de Deriche

Décomposition entre 1 partie causale et 1 anti-causale

R1[i]=c.e-.I[i-1]+2.e-.R[i-1]-e-2.R[i-2]

R2[i]=-c.e-.I[i+1]+2.e-.R[i+1]-e-2.R[i+2]

R[i]=R1[i]+ R2[i]

• Implantation du filtre de lissage de Deriche Décomposition entre 1 partie causale et 1 anti-causale

R1[i]= b.I[i]+ b.e-.(-1).I[i-1]+2.e-.R[i-1]-e-2.R[i-2]

R2[i]= b.e-.(+1).I[i+1]-b.e-2.I[i+2]+2.e-.R[i+1]-e-2.R[i+2]

R[i]=R1[i]+ R2[i]

0 si0

0 si..

i

ieicih

i

0 si..

0 si0

ieic

iih i

221

11

...21

..

zeze

zeczh

22 ...21

..

zeze

zeczh

221

11

...21

.1.1

zeze

zebzf

22

22

...21

..1.

zeze

zezebzf

e

ec

21

2

2

.21

1

ee

eb

Partie causale : h-(i)=c.i.e-i.u(i)TZ[u(i)] = 1/(1-z-1) |z|>1TZ[ai.x(i)] = X(z/a) TZ[e-iu(i)] = 1/(1-e-z-1)TZ[ik.x(i)] = (z.d/dz)X(z) TZ[ie-iu(i)] = e-z-1/(1-e-z-1)2

Partie anti-causale : h+(i)=(-c).(-i).e(-i)(-).u(-i)

Partie causale : f-(i)=b.(i+1).e-i.u(i)TZ[f-(i)] = b..e-z-1/(1-e-z-1)2+ b/(1-e-z-1)

Partie anti-causale : f+(i)=[b.(-i).e(-i)(-)+ b.e(-i)(-)-b(-i)].u(-i)TZ[f-(i)] = b..e-z/(1-e-z)2+ b/(1-e-z)-b

Page 8: Traitement dimages : concepts fondamentaux Définitions fondamentales et prétraitements : – Information représentée par un pixel, – Manipulation dhistogrammes.

Exemples de et .

B1

|| MM (B1)

B2

|| MM (B2)|| Prewitt

|| Sobel || MDIF

MM (B1) MM (B2) masque

Deriche =1

Deriche =2

Deriche =3

Shen =0.5 Shen =1

Page 9: Traitement dimages : concepts fondamentaux Définitions fondamentales et prétraitements : – Information représentée par un pixel, – Manipulation dhistogrammes.

Détection de contours (I) Seuillage avec hystérésis

– Détection des pixels de valeur ≥ sh

– Ajout des pixels de valeur ≥ sb et qui 1 composante connexe ayant au moins 1 pixel de valeur ≥ sh

– Programmation avec 1 pile gérant la composante connexe :1. initialisation de l’image des contours ImaCont à 02. Initialisation de la pile P avec les pixels / ≥ sh

3. Tant que |P|>0a. Extraire M(xM,yM) de la pile

b. ImaCont(xM,yM) 1

c. Pour chaque k-connex (k=4 ou 8) voisin de M, noté VM :

Si VM P et si ImaCont(xVM,yVM

) 1 et si ≥ sb,

alors ajouter VM à P

MV

Page 10: Traitement dimages : concepts fondamentaux Définitions fondamentales et prétraitements : – Information représentée par un pixel, – Manipulation dhistogrammes.

Détection de contours (II)Détection des maxima locaux de la norme du

gradient dans la direction du gradient

Cas

soit A0=(i,j), A1=(i,j+1), A2(i-1,j+1)

on cherche zM = 1A1+2A2 avec 1+2=1,

(1,2)[0,1]2

alors 2=tan et 1=1-tan

donc

Autres cas :

2;

4

4;0

0;

4

4;

2

1,1.tan1,.tan11 jijiM

1,1.tan1,.tan12 jijiM

(i,j-1) (i,j) (i,j+1)

(i+1,j-1)

(i-1,j+1)

Page 11: Traitement dimages : concepts fondamentaux Définitions fondamentales et prétraitements : – Information représentée par un pixel, – Manipulation dhistogrammes.

Fermeture de contours• Construction d’1 « look-up table » permettant

d’indexer les pixels candidats à la fermeture pour chaque configuration.Codage configuration : où xi=1 si contour, 0 sinon

Ex. T[16][0]=1 ; T[136 ][0]=0 ; T[8][0]=1T[16][j]={1,0,7} ; T[8][j]={0,7,6}

• Algorithme de fermeture : – Pour chaque extrémité trouvée lors du balayage de

l’image :• Construction du sous-arbre de tous les chemins possibles

de longueur p et du coût associé à chaque nœud : somme des normes des gradients en chaque point du chemin

• Sélection du nœud de coût maximum• Prolongation du contour

12304765

12304765

12304765

7

0

2.i

iixV

T[i][0] =1 si contour à prolonger (i[0,255])T[i][j] avec j[1,3] donne les coordonnées relatives des 3

pixels candidats à la fermeture

i.e. pixel / T[i][0] =1

3p chemins

Page 12: Traitement dimages : concepts fondamentaux Définitions fondamentales et prétraitements : – Information représentée par un pixel, – Manipulation dhistogrammes.

Exemple

Prewitt Sobel MDIF masque

Deriche =1

Deriche =2

Deriche =3

Shen =0.5 Shen =1

Après fermeture

de contours

Page 13: Traitement dimages : concepts fondamentaux Définitions fondamentales et prétraitements : – Information représentée par un pixel, – Manipulation dhistogrammes.

Transformée de Hough• Utilisation d’information a priori pour

reconnaître le type d’objets recherchés et leur représentation

• Principe : – Les objets recherchés sont décrits à l’aide de

fonctions simples modélisées par leurs paramètres

Ex.: segments de droites, arcs de cercles

– La transformée de Hough permet de passer de l’espace image à l’espace des paramètres pour rechercher dans cet espace les objets d’intérêt

Page 14: Traitement dimages : concepts fondamentaux Définitions fondamentales et prétraitements : – Information représentée par un pixel, – Manipulation dhistogrammes.

Transformée de Hough : cas de la recherche de droites (I)

• Représentation d’une droite : y = ax + b – Dans l’espace image I, x et y sont les variables (colonne et

ligne) et (a,b) est un couple de paramètres fixes pour une droite donnée

– Dans l’espace des paramètres P, a et b sont les variables et (x,y) est un couple de paramètres fixes pour un pixel donné

Par un point de I passe une infinité de droites, représentées par une droite dans P (b=ax–y), et

A chaque point de P correspond une droite de I

P

Q

x

yI

DP

DQ

a

bP

Algo : 1. calculer, pour chaque point du

contour dans I, la droite lui correspondant dans P ;

2. Incrémenter les valeurs le long de cette droite ;

3. déterminer le ‘point d’accumulation’ dans P

Hors cas x = Cst

Page 15: Traitement dimages : concepts fondamentaux Définitions fondamentales et prétraitements : – Information représentée par un pixel, – Manipulation dhistogrammes.

Transformée de Hough : cas de la recherche de droites (II)

• Représentation d’une droite : x.cos + y.sin = r0 avec 0 < r0 < diagonale de l’image, et 0 < < 2

Espace des paramètres (r0,)

A chaque point de I correspond une courbe dans P, et une intersection de courbes dans P correspond à une droite dans I

r0/r = |cos (-)| (droite perpendiculaire en M0(r0,) à la droite radiale = pente -/2)

Droite de paramètres (r0,) d’éq. r = r0.sec(-)

r0 = r.cos().cos()+ r.sin().sin()

r0 = x.cos()+ y.sin()

r0

M(r,)

r

M0(r0,)

-/2

Page 16: Traitement dimages : concepts fondamentaux Définitions fondamentales et prétraitements : – Information représentée par un pixel, – Manipulation dhistogrammes.

Transformée de Hough : cas de la recherche de cercles

• Représentation d’un cercle : (x–a)2 + (y-b)2 = r A un point de I correspond une surface dans P , et P représenté sous forme d’un tableau 3D (a,b,r) Si on se donne un rayon (en pixels) et un % de pixels

devant appartenir à la circonférence du cercle, on peut en déduire le seuil dans P (en nombre de pixels ayant voté pour un cercle (a,b,r) )

a

b

r = r2

r3

r2

r1

Intensité fct du % d’intersection de l’ellipse et du cercle de rayon r

Page 17: Traitement dimages : concepts fondamentaux Définitions fondamentales et prétraitements : – Information représentée par un pixel, – Manipulation dhistogrammes.

Bibliographie

• H. Maître, Le traitement des images, Hermès éditions.

• J.-P. Cocquerez & S. Philipp, Analyse d’images : filtrage et segmentation, Masson éditions.

• S. Bres, J.-M. Jolion & F. Lebourgeois, Traitement et analyse des images numériques, Hermès éditions.