La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Traitement d’images : concepts fondamentaux

Copies: 1
Traitement d’images : concepts fondamentaux

Présentations similaires


Présentation au sujet: "Traitement d’images : concepts fondamentaux"— Transcription de la présentation:

1 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.

2 Détection de contours : approche générale
Contour = là où réside l’information au sens entropique 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 f(x) f’(x) f’’(x)

3 Principe des méthodes dérivatives
Utilisation du gradient Calcul 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 laplacien Calcul 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

4 par filtrage linéaire passe-haut
Gradient Sobel c=2 Prewitt c=1 Opérateur MDIF Filtres de Kirsch : 8 masques Rq : les filtres sont donnés pour des directions lignes – colonnes  cas de directions diagonales : La direction du gradient est l’argument du masque qui maximise la norme du gradient  à p/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

5 par filtrage linéaire passe-haut
Laplacien 4-connexité 8-connexité 1 filtre passe haut extrait l’information ‘complémentaire’ d’un filtre passe-bas : Id = MPB+MPH Ex : Coef. généralemt omis pour amplifier le résultat

6 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 Maximiser le rapport signal à bruit Minimiser la variance de l’erreur en distance Solution de Canny : RIF y(x) = a1eaxcoswx + a2eaxsinwx + a3e-axcoswx +a4e-axsinwx Filtre de lissage puis application d’un opérateur différentiel Solution de Deriche : RII y(x) = Cst/w.ea|x|.sinwx Soit m / m.w=a, alors m>>1  y(x)  h(x) = -a2.x.e-a|x| Lissage dans la direction perpendiculaire à celle de h par le filtre intégrateur de h : f(y) = b.(a.|y|+1).e-a|y| (f’(y) = b.a.signe(y).e-a|y|+b.(a.|y|+1).(-a.signe(y)).e-a|y| = b.h(y)) Solution de Shen et Castan : RII f(x) = be-b|x|, f1(x) = b.e-bx.u(x), f2(x) = b.e-b(-x).u(-x)

7 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-a.I[i-1]+2.e-a.R[i-1]-e-2a.R[i-2] R2[i]=-c.e-a.I[i+1]+2.e-a.R[i+1]-e-2a.R[i+2] R[i]=R1[i]+ R2[i] Implantation du filtre de lissage de Deriche R1[i]= b.I[i]+ b.e-a.(a-1).I[i-1]+2.e-a.R[i-1]-e-2a.R[i-2] R2[i]= b.e-a.(a+1).I[i+1]-b.e-2a.I[i+2]+2.e-a.R[i+1]-e-2a.R[i+2] Partie causale : f-(i)=b.(a.i+1).e-ia.u(i) TZ[f-(i)] = b.a.e-az-1/(1-e-az-1)2+ b/(1-e-az-1) Partie anti-causale : f+(i)=[ba.(-i).e(-i)(-a)+ b.e(-i)(-a)-bd(-i)].u(-i) TZ[f-(i)] = b.a.e-az/(1-e-az)2+ b/(1-e-az)-b Partie causale : h-(i)=c.i.e-ia.u(i) TZ[u(i)] = 1/(1-z-1) |z|>1 TZ[ai.x(i)] = X(z/a)  TZ[e-iau(i)] = 1/(1-e-az-1) TZ[ik.x(i)] = (z.d/dz)X(z)  TZ[ie-iau(i)] = e-az-1/(1-e-az-1)2 Partie anti-causale : h+(i)=(-c).(-i).e(-i)(-a).u(-i)

8 Exemples de et . B1 B2 || MM (B1) || MM (B2) || Prewitt || Sobel
|| MDIF D masque D MM (B1) D MM (B2) Deriche a=1 Deriche a=2 Deriche a=3 Shen b=0.5 Shen b=1

9 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 : initialisation de l’image des contours ImaCont à 0 Initialisation de la pile P avec les pixels / ≥ sh Tant que |P|>0 Extraire M(xM,yM) de la pile ImaCont(xM,yM)  1 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

10 Détection de contours (II)
Détection des maxima locaux de la norme du gradient dans la direction du gradient q Cas soit A0=(i,j), A1=(i,j+1), A2(i-1,j+1) on cherche zM = a1A1+a2A2 avec a1+a2=1, (a1,a2)[0,1]2 alors a2=tanq et a1=1-tanq donc Autres cas : (i,j-1) (i,j) (i,j+1) (i+1,j-1) (i-1,j+1)

11 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]=1 T[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 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 1 2 3 4 7 6 5 1 2 3 4 7 6 5 1 2 3 4 7 6 5 i.e. pixel / T[i][0] =1 3p chemins

12 Après fermeture de contours
Exemple D masque Prewitt Sobel MDIF Après fermeture de contours Deriche a=1 Deriche a=2 Deriche a=3 Shen b=0.5 Shen b=1

13 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

14 Transformée de Hough : cas de la recherche de droites (I)
Hors cas x = Cst 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 Algo : calculer, pour chaque point du contour dans I, la droite lui correspondant dans P ; Incrémenter les valeurs le long de cette droite ; déterminer le ‘point d’accumulation’ dans P P Q x y I DP DQ a b P

15 Transformée de Hough : cas de la recherche de droites (II)
Représentation d’une droite : x.cosj + y.sinj = r0 avec 0 < r0 < diagonale de l’image, et 0 < j < 2p Espace des paramètres (r0,j) 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 (j-q)| (droite perpendiculaire en M0(r0,j) à la droite radiale q=j  pente j-p/2) Droite de paramètres (r0,j) d’éq. r = r0.sec(q-j)  r0 = r.cos(q).cos(j)+ r.sin(q).sin(j)  r0 = x.cos(j)+ y.sin(j) r0 p-j M(r,q) r q j-q M0(r0,j) j-p/2

16 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

17 Points d’intérêts Points bien définis spatialement, i.e. qui donc peut être localisé précisément, e.g. point brillant, coin, extrêmité de ligne, maximum de courbure

18 Contours : exercices (I)
Pour la norme du gradient, on utilise l’une des trois normes suivantes : Comparer les valeurs obtenues par N1, N2 et N3 si l’on calcule le gradient discret avec D2x=[-1 0 1] et D2y=t[-1 0 1] Même question si le gradient discret est obtenu l’application du filtre de Sobel En déduire que N3 est la norme la mieux adaptée dans le premier cas, et N1 ou N2 dans le deuxième cas. Ecrire les équations aux différences pour les 3 masques utilisés pour estimer le laplacien discret :

19 Contours : exercices (II)
Calculer le gradient et le laplacien morphologique dans les cas d’images suivants : Interpréter et commenter Effectuer un seuillage avec hystérésis sur : Donner les formules d’interpolation des gradients en M1 et M2 pour la détection des maxima locaux de la norme du gradient dans la direction du gradient q, pour les différents cas de q

20 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.


Télécharger ppt "Traitement d’images : concepts fondamentaux"

Présentations similaires


Annonces Google