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

IMAGES BINAIRES 1. TOPOLOGIE 2. METRIQUE 3. TRAITEMENTS BINAIRES

Présentations similaires


Présentation au sujet: "IMAGES BINAIRES 1. TOPOLOGIE 2. METRIQUE 3. TRAITEMENTS BINAIRES"— Transcription de la présentation:

1 IMAGES BINAIRES 1. TOPOLOGIE 2. METRIQUE 3. TRAITEMENTS BINAIRES
Connexité Composantes connexes : étiquetage 2. METRIQUE Norme, courbure et orientation Transformée de Hough Distance à une référence Paramètres morphométriques 3. TRAITEMENTS BINAIRES Traitements locaux par LUT Morphologie mathématique Squelettisation 4. EXTENSIONS MULTI-NIVEAUX Morphologie en niveaux de gris FIN DE PRESENTATION Voir  Prétraitement des images : Binarisation

2 NOTIONS DE TOPOLOGIE : CONNEXITE
Topologie  structure : connexité, dénombrement, nombre de connexité ( ou d’Euler ) Métrique  mesure : distance, périmètre, surface toutes notions sans ambiguïté dans R2, mais problèmes dans N2 NOTIONS DE TOPOLOGIE : CONNEXITE Maillage carré : 4 voisins ( 4-connexité )  invariance en rotation de k.p/2 8 voisins ( 8-connexité )  invariance en rotation de k.p/4 connexité de 2 points : invariance : conservation de la connexité = homotopie Maillage hexagonal : 6 voisins, en pratique approché par translation ½ pixel, ou interpolation d’un réseau carré Nombre de connexité : C = Nbre de composantes connexes – Nbre de trous C = Nbre de sommets + Nbre de faces – Nbre d’arêtes Relation d’Euler : C {X} + C {X} = 1

3 TOPOLOGIE ( 2 ) NOMBRE DE CONNEXITE
Calcul en 4-connexité : analyse de la maille élémentaire 2x2, sommet = élément bas / gauche 1 sommet : 1 face : - 2 arêtes : En tenant compte des symétries ( 4 sommets / maille )  4 x C4 = Nbre - Nbre une analyse similaire mène au calcul de C8 + Nbre x x 1 x 1 1 0 0 1 0 0 1 Enumération des configurations puis élimination des redondances  C4 = Nbre Nbre Nbre 0 0 1 0 0 1 1 1 0 0 1 0 0 1 1 1 U

4 TOPOLOGIE ( 3 ) 8– ET 4–CONNEXITE
Vérification de la relation d’Euler sur une image binaire C {X} + C {X} = 1 : Calcul de C Calcul de C8 {X} {X} {X} C4 {X} = 4 – 0 = 4 C8 {X} = 1 – 1 = 0 Pixels à 1 {X} {X} C4 {X} = 2 – 1 = 1 C8 {X} = 1 – 4 = -3 Liens de connexité Somme = 5 ! Somme = -3 ! Pour conserver la relation d’Euler il faut utiliser la 4-connexité pour {X} ( les régions à 1 ) la 8-connexité pour {X} ( le fond ) alors C4 {X} + C8 {X} = 1

5 COMPOSANTES CONNEXES ETIQUETAGE
C4 ne permet pas directement le dénombrement des composantes connexes ( les régions ) d’une image binaire. De plus il faut pouvoir les différencier  attribution d’un identificateur ou étiquette. Etiquette = numéro identique attribué à chaque pixel d’une même composante connexe. La visualisation de l’image des étiquettes attribue donc une couleur par région.  procédure d’étiquetage ou de coloriage des régions Principe : balayage de l’image par un motif 3 pixels ( A,B,C ) = 1 = 2 = 3 Si C ≠ 0 : les étiquettes de A et B déjà fixées imposent l’étiquette du pixel C Si C = 0 : pixel du fond, il reste invariant NB : initialiser bordures haute / gauche à 0 A B C C1 C2 C6 C3 C5 C4 C7 C1 A=0,B=0 N=N+1 C=N=1 C2 A=0,B=1 C=B=1 C3 A=1,B=0 C=A=1 C4 A=B=1 C=A=1 C5 A=0,B=0 N=N+1 C=N=2 C6 A=1,B=2 C=min(A,B)=1 et équivalence max(A,B) ~ C 2 ~ 1 C7 A=0,B=0 N=N+1 C=N=3 N = Nbre étiquettes ( initialisé à 0 )

6 COMPOSANTES CONNEXES ( 2 )
GESTION DES EQUIVALENCES En cas d’équivalence ( exemple 2 ~ 1 ) :  retour en arrière et ré-écriture de tous les « 2 » … lent !  mémorisation dans table puis second balayage global étiquette  équivalent ( étiquette ) Chaque ligne de la table d’équivalence est initialisée par son numéro : EQ EQ 1 2 3 1 3 re-étiquetage 2 ~ 1 pix = EQ( pix ) Avant re-étiquetage : renumérotation pour numéros consécutifs 1 2 re-étiquetage pix = EQ( pix ) Pbs : pour une image Nx colonnes x Ny lignes nombres maximum d’étiquettes créées ? nombre maximum d’équivalences à résoudre ?

7 COMPOSANTES CONNEXES ( 3 )
TABLE D’EQUIVALENCE Dimension de la table d’équivalence : nombre maximum d’étiquettes sur une ligne : Nx/2 sur 2 lignes : Nx étiquettes différentes, en damier dans l’image Nx.Ny/2  nombre de bits des étiquette log2( Nx.Ny ) -1 exemple : 512x512 =  218 / 2 soit 17 bits Nombre d’équivalences à résoudre ( fusions ) : nombre maximum d’étiquettes : Nx/2 sur 2 lignes : Nx/2 fusions, en peigne peigne isolé sur 3 lignes  dans l’image ( Nx.Ny ) /6 fusions exemple : 512x512  maximum ~ équivalences Réduction du nombre d’étiquettes et de fusions : création nouvelle étiquette indispensable en C1 inutile en C2  attente avant création ( retard à l’étiquetage ) de 1…N pixels  en C1 aucune équivalence  création et étiquetage a posteriori  en C3 : C2 ~ C1  pas de création, propagation d’étiquette C1 C2 C3

8 COMPOSANTES CONNEXES ( 4 )
RETARD INFINI : SEGMENTS CONNEXES Codage d’une image binaire par segments ( codage RLE « Run Length Encoding » ) : mémorisation de liste : nbres de lignes et colonnes image pour chaque ligne, nbre de segments, colonnes début ( 0↑1 ) et fin ( 1↓0 ) de chaque segment Ny Nx Y1 Ns1 D0 F0 D1 F1 Y2 Ns2 Intérêt  compression, exemple :  taille d’origine : octets  taille de liste : 1768 octets ( 5%, données sur 2 octets ) remarque : le codage RLE peut s’étendre à des images d’étiquettes, début et fin sont remplacés par numéro d’étiquette et nombre de pixel du segment Etiquetage par connexité de segments, analogue à motif 3 pixels : segment sans voisin à ligne précédente  nouvelle étiquette avec 1 voisin connexe à ligne précédente  propagation d’étiquette N voisins connexes  gestion des équivalences comme pour 3 pixels Connexité : ( Dn(Y) ≤ Fk(Y-1) ) ET ( Fn(Y) ≥ Dk(Y-1) )

9 COMPOSANTES CONNEXES ( 5 )
Comparaison : motif 3 points ( avec et sans retard à l’étiquetage ) et segments connexes 1 – Binarisation : image ≤190 2 - Etiquetage Analyse par motif 3 points 362 étiquettes sans retard 80 étiquettes avec 3 attentes 26 régions finales Segments connexes 57 étiquettes temporaires 26 régions finales

10 COMPOSANTES CONNEXES ( 6 )
CHAÎNES D’EQUIVALENCES Equivalences en cascade ( étiquetage sans retard ) : fusions multiples chaînées  renumérotation de la table ( transitivité ) algorithme pour l’étiquette N : k=N; tant que (k ≠ EQ(k) ) k=EQ(k); EQ(N)=k; Accélération de l’étiquetage : en C1 2 ~ 1 puis en C2 3 ~ 2  chaînage : 3 ~ 1 EQ EQ EQ EQ 1 2 3 1 2 1 2 3 ~ 2 2 ~ 1 1 ~ 1 : 3 ~ 1 1 C1 C2 : 2 ~ 1 C1 : 3 ~ 2 C2 si pour la fusion A≠0, B≠0 : C = min(A,B); EQ( max(A,B) ) = C devient  A = EQ(A) C = min( A,B ) B vient d’être calculée donc B = EQ(B) EQ(A) = EQ(B) = C 2 écritures évitent le test du maximum C1 C2 EQ 1 2 3 1 3 1 Moins de cascades d’équivalences car éliminées pour ce type de configuration C1 C2

11 COMPOSANTES CONNEXES ( 7 )
RUPTURE DE CHAÎNE D’EQUIVALENCES Rupture de la chaîne d’équivalence : en C1 : 3 ~ 2 puis en C2 : 3 ~ 1  avec l’algorithme C = min(A,B); EQ( max(A,B) ) = C EQ 1 2 3 1 2 1 2 Pb : « 2 » reste isolé or 2 ~ 1 ! C1 C1 C2 C2 Solution : avec la nouvelle formulation complétée, si fusion A≠0, B≠0  A = EQ(A); C = min( A,B ); EQ(A) = EQ(B) = C EQ 1 2 3 1 2 1 2 La connexité de « 2 » et « 1 » est résolue reste le chaînage 3 ~ 2 sans problème forme finale de l’algorithme C1 C2 A=2, B=3 A=EQ(A)=2 A=3, B=1 A=EQ(A)=2

12 COMPOSANTES CONNEXES ( 8 )
EXEMPLES Les couleurs sont modifiées selon la connexité des régions ( ici selon le seuil ) Les couleurs sont réutilisées modulo le nombre de couleurs distinctes affichables Seuillage : image ≤ 190 362 étiquettes sans retard 80 étiquettes avec 3 attentes 26 régions finales 2 - Etiquetage 1 - Binarisation Seuillage : image ≤ 210 343 étiquettes sans retard 65 étiquettes avec 3 attentes 26 régions finales ( ≠ des précédentes )

13 DISTANCE DE 2 POINTS : NORMES
METRIQUE DISTANCE DE 2 POINTS : NORMES Différentes normes dans le plan : distance (x0,y0)↔(x1,y1) = ( |x0-x1| N + |y0-y1| N ) 1/N N = 2 : distance euclidienne D2 = sqrt( ∆x 2 + ∆y 2 ) Pb : complexité de calcul N = 1 : « city bloc distance » D1 = |∆x| + |∆y| N = ∞ : « chess board distance » D∞ = max( |∆x|, |∆y| ) Simulation numérique dans plan discret ∆x = 0…100, ∆y = 0…100 :  ( % ) erreur relative par rapport à D2   moyenne D1 : 27 D∞ : -10   maximale D1 : 41 D∞ : 0 ( max par excès )   minimale D1 : D∞ : -30 (max par défaut) calculs simples mais erreurs trop importantes  recherche d’une approximation Combinaison de D1 et D∞, par optimisation : Dc = max( |∆x|, |∆y|, C.(|∆x|+|∆y|) ) critère  moy = 0  C =   moy = 0,  max < 4.9, - min < 5.6 critère  max = - min  C =   moy < 0.3,  max < 5.4, - min < 5.4 critère de calcul simple  C = ¾   moy < 0.7,  max < 6.1, - min < 5.2 Pb : précision ?

14 COURBES D’ ISODISTANCES
METRIQUE ( 2 ) COURBES D’ ISODISTANCES Points à distance 100 de l’origine : Autre approche, partition angulaire : D∞ D1 D2 ( référence ) Dc ( C = ¾ ) 3 zones angulaires ( évite « max » ) horizontale : |∆x| > 2.|∆y|  Da = |∆x| verticale : |∆y| > 2.|∆x|  Da = |∆y| oblique  Da = sqrt(2). (|∆x|+|∆y|)/2 ~ ¾ (|∆x|+|∆y|) angles limites : atan(2) et atan(0.5) soit 63.5° et 26.5° D1 ≥ D2 ≥ D∞ vertic.   moy < -0.3,  max < 6.1, - min < 10.4  mais donne information sur la direction par rapport à horizontale oblique horizontale

15 CODAGE DES ORIENTATIONS
Zones angulaires, angles limites 63.5° et 26.5° : limites optimales pour un codage par pas de p/4 : 67.5° et 22.5° horizontale : |∆x| > 2.|∆y| verticale : |∆y| > 2.|∆x| et utilisation du signe pour l’orientation oblique sinon Angle = k.p/4 ( modulo 2.p )  k : code de Freeman ∆y ≥ 0, ∆x ≥ 0 : k = ∆y ≥ 0, ∆x < 0 : k = ∆y < 0, ∆x < 0 : k = 4 …6 ∆y < 0, ∆x ≥ 0 : k = 6 …8 (0) k = 0 ( référence ) k = 1 k = 2 k = 3 k = 4 k = 5 k = 6 k = 7

16 ORIENTATION ( 2 ) CHAINE DE FREEMAN
Chaîne de Freeman = liste des codes de Freeman d’un contour de région origine = coordonnées (x0,y0 ) du 1er point de la région orientation courante présumée Fc = 0 algorithme de suivi point à point du contour (xc,yc) = (x0,y0) :  recherche point suivant en 8-connexité : x0 y0 xc 1 2 1er point non nul dans l’ordre 16, motif tourné de k.p/4 selon Fc création listes de x = xc+∆x, y = yc+∆y, F, ∆F yc 3 6 5 4  mise à jour du point courant : (xc,yc) = (x,y) et Fc = F  si (xc,yc) ≠ (x0,y0) itération, sinon fin de suivi 1 2 3 4 5 6 test : ∆F : F ∆x ∆y 1 2 3 4 5 6 7 Fc Table de recherche du suivant selon Fc -1

17 ORIENTATION ( 3 ) Propriétés de quasi-invariance :
x0 y0 Propriétés de quasi-invariance : invariance stricte en translation à une « N-plication » des codes près en échelle à une constante additive k près, modulo 8, en rotation de k.p/4  descripteur de forme Chaîne dérivée, courbure : liste constituée des ∆F : dérivée de l’orientation, invariante en rotation de k.p/4 F = { 0,7,5,4,4,2,1 } ∆F = { -1,-1,-2,-1,0,-2,-1 } remarques :  longueur de liste = périmètre  ici tous ∆F ≤ 0  aucune concavité  la liste peut être lissée ( moyenne glissante )  élimination des irrégularités locales correction de métrique : si F impair ( diagonale ) longueur associée au code = sqrt(2) si F pair longueur unitaire courbure en fonction de l’abscisse curviligne meilleure invariance en rotation

18 EXEMPLE : ORIENTATION ET COURBURE
Contours extérieurs Pour la visualisation les codes sont : orientation (1) : Fv = 3.F courbure (2) : ∆Fv = 3.∆F soit une résolution de p/12 ( 15° ) La courbure est lissée par une moyenne 7 points puis mise à l’échelle [1…12] + (concave) : 7…12 - (convexe) : 1…6 les 2 courbures sont « comparables »

19 ORIENTATION ( 5 ) TRANSFORMEE DE HOUGH
Transformation globale de l’espace image en un espace paramétrique. But : rechercher des structures rectilignes dans une image binaire Droite de l’espace (x,y) : y = x.tg( p/2 + o ) + ro / sin(o) soit ro = x.cos(o) + y.sin(o) Transformation : (x,y)  (r, ) | r = x.cos() + y.sin() Dans l’espace (r, ) 1 point (x’,y’)  un arc de sinusoïde N points alignés  famille de N sinusoïdes passant par (ro, o) définissant la droite Exemple, soient 3 points de (x,y) : (1,1),(2,0.5),(3,0) Remarque : r est algébrique, donc  varie de 0 à p les axes x et y sont centrés dans l’image tels que x = L – Nl / 2 ; y = C – Nc /2 ainsi  est l’orientation selon Freeman de la droite dans l’image x r o q D y 0.5 1 1.5 2 3 3.5 r q p C o y L x

20 ORIENTATION ( 6 ) Algorithme : q est discrétisé dans [0,p] par pas de Dq r est discrétisé dans [-rmax,rmax] par pas de Dr ( où rmax = ½ diagonale )  le tableau (q, r) est initialisé à 0 pour chaque point p(x,y) à 1 et pour chaque valeur de q dans [0,p]  incrémenter la case ( q, r(q,x,y) ) en fin de traitement chaque case contient le nombre de points alignés selon la droite ( q .. q + Dq, r .. r + Dr) : histogramme bidimensionnel dont les pics représentent des segments rectilignes. Variante : utiliser le code de l’orientation du point p(x,y) et ne « voter » que pour cette case  accélération du calcul. Exemple ci-dessous avec une résolution de p/12 Espace de Hough q Image binaire et son contour 3 orientations : 0,6,9 soit 0,90°,135° 5 droites supports des contours La verticale comporte 2 segments disjoints de même support

21 ORIENTATION ( 7 ) Noter : - la périodicité en q ( 0°  180° )
- la présence des 5 pics 2 à 0°, 2 à 90°, 1 à 135° - les 2 segments verticaux ont été comptabilisés dans la même case de l’histogramme ( même support ) - le bruit de fond autour des pics Des alignements accidentels ( 3 pts sont toujours alignés ! ), ou des erreurs d’orientation ou de localisation, ou encore un défaut de résolution en r ou q provoquent une dispersion des votes  localisation des pics plus complexe ( importance du choix de Dr et Dq ) Des objets rectilignes discontinus du fait du bruit ( lacunes ) pourrons être reconstruits q

22 DISTANCE A UNE REFERENCE
DISTANCE A UN ENSEMBLE DE POINTS Distance d’un point à un ensemble de référence : D( P ↔ { réf } ) = min { D0,D1, … DN } Méthode : le chemin P ↔ Pr Є { réf } est décomposé en chemins élémentaires dont les coûts sont cumulés :  pas horizontal ou vertical coût = 1  pas diagonal coût = sqrt(2) réf P D0 DN C0 =  (4x1h, 3x1v ) CPPr = min( C0,…,CN ) Pr L’ensemble des coûts est ainsi calculé, d’où la distance : D = min { CPPr | Pr Є { réf } } = min ( min { Ci } ) P CN =  (7x1h, 3x1v ) Optimisation : les coûts sont convertis en entiers en multipliant la distance par un coefficient : 1 → 2, sqrt(2) → 2x1.4 ~ 3 : approximation de 2 x distance euclidienne ( 13% par défaut ) 1 → 3, sqrt(2) → 3x1.4 ~ 4 : approximation de 3 x distance ( 8% par excès ) Distances dite de « chamfer » (2-3) ou (3-4)

23 DISTANCE A UNE REFERENCE ( 2 )
CARTE DES DISTANCES Généralisation : distance de chaque point à l’ensemble de référence  carte des distances l’ensemble de référence est l’ensemble des points à 1 de l’image  algorithme, phase 1  complémentation image ( distance Pr ↔ { réf } = 0 ) bordure d’image mise à N ( N >> max coeff x distance ) 1 99  phase 2  balayage de l’image par une fenêtre de 5 points, les coûts des points a,b,c,d sont soit déjà calculés ( sens du balayage ) soit imposés par la valeur de la bordure à une valeur neutre, les surcoûts sont ajoutés : e d c b a e = min(a+C2, b+C1, c+C2, d+C1 ) avec (C1,C2) = (2,3) ou (3,4)

24 DISTANCE A UNE REFERENCE ( 3 )
 phase 2, propagation des distances, les points à N ne sont pas traités : 99 ici (C1,C2) = (2,3) 99 2 4 6 8 10 3 5 7 9 11 La causalité du balayage fait que les points en aval ne sont pas pris en compte D’où phase 3  phase 3  balayage inverse par motif symétrique : propagation inverse, les coûts initiaux sont recalculés a b c d e e = min( e, a+C2, b+C1, c+C2, d+C1 ) 6 5 4 3 2 99 remarque : si (C1,C2) = (1,∞)  distance D1 si (C1,C2) = (1,1)  distance D∞

25 DISTANCE A UNE REFERENCE ( 4 )
EXEMPLES La distance ( chamfer 2-3 ), valeur > 0 est représentée par un niveau de gris : distance croissante gris → blanc Distances des points objets au fond Distance des points du fond à l’objet

26 DISTANCE DANS UN ESPACE CONTRAINT
DISTANCE GEODESIQUE DISTANCE DANS UN ESPACE CONTRAINT Distance d’un point à un ensemble de référence { réf }, avec espace interdit { int } : distance euclidienne ≠ distance dite géodésique, longueur réelle du chemin distance euclidienne distance géodésique ≥ distance euclidienne L’espace interdit ( contrainte par pixel > 1 ) ne doit pas intervenir dans le calcul des coûts cumulés  imposée à valeur N d’initialisation de bordure réf int Exemple : distance de chamfer (3-4) fond ( 0 : noir ) ↔ référence ( 1 : bleue ) avec contrainte ( 2 : rouge ), valeurs > 1 mises à N puis algorithme double balayage : Zones interdites distance ∞ ( N ) Référence, distance = 0

27 PARAMETRES DE COMPOSANTE CONNEXE
CARACTERISATION D’UNE REGION Pour chaque composante connexe, calcul de paramètres morphométriques : paramètres de base  surface S = card { pixel(x,y) = 1 }  périmètre P = card { pixels contour } le contour peut être intérieur ou extérieur à la région  compacité C = 4.p S / P voir [ binarisation ]  centre de gravité G = xG = 1/S. (x | pixel(x,y) = 1 ) yG = 1/S. (y | pixel(x,y) = 1 ) axes d’inertie : vecteurs propres V1 et V2 de la matrice d’inertie M = xx = 1/S. (x – xG)2 = 1/S. (x2) – xG2 avec xy = yx = 1/S. (x – xG).(y – yG) = 1/S. (x.y) – xG.yG yy = 1/S. (y – yG)2 = 1/S. (y2) – yG2 soit : V1 : ( [xx – yy + sqrt( (xx-yy)2 + 4.xy2 )] / 2.xy , 1 ) V2 : ( [xx – yy – sqrt( (xx-yy)2 + 4.xy2 )] / 2.xy , 1 ) NB : si xy = 0 → V1,V2 : (0,1), (1,0) xx xy yx yy V1 ┴ V2 Inertie.mws

28 PARAMETRES DE COMPOSANTE CONNEXE ( 2 )
Paramètres de convexité, rectangle englobant : changement d’axes (x,y) → axes d’inertie V1,V2 rotation d’angle α : tan(2α) = 2.xy / ( xx – yy ) soit  dimensions du rectangle englobant : L = max(xr) – min(xr) l = max(yr) – min(yr)  élongation = L / l  rapport des surfaces = S / (L.l) y x V1 V2 α Convexité, enveloppe convexe d’une région : convexité : pour tous couples de points P1,P2 de la région, Enveloppe convexe = forme englobante convexe  indice de concavité = S / ( aire enveloppe convexe ) non convexe convexe

29 TRAITEMENTS LOCAUX PAR LUT
TRAITEMENTS BINAIRES TRAITEMENTS LOCAUX PAR LUT Analyse du voisinage en 4- ou 8-connexité  calcul d’un descripteur utilisé comme index :  4-connexité, les voisins sont numérotés 0 à 3, le descripteur est : l’index adresse une table de décision ( LUT ) de taille 2 4 = 16  8-connexité, les voisins sont numéroté 0 à 7, la table comporte 2 x 256 positions : LUT P=0 P=1 3 2 1 4 P 5 6 7 Décision 0 / 1 1 .. P = LUT( P, Index ) Adressage de LUT les 2 cas P = 0 et P = 1 sont souvent traités en 2 passes successives sur l’image. les voisinages plus étendus sont difficiles à analyser : 5x5 → table de taille 2 24 ~16.8 M positions ! Application : élimination des lacunes et fausses alarmes isolées lissage ou régularisation des bordures d’objets détection de configurations de voisinage particulières, exemple : enveloppe convexe

30 TRAITEMENTS BINAIRES ( 2 )
Lacunes et fausses alarmes, configurations établies pour P0 = 0/1, toutes les autres config. peuvent en être déduites par rotations de p/2 : Pi  P(i+2)modulo 8 et doivent être ajoutées 3 2 1 4 P 5 6 7 x 1 Lacune : un 0 avec au moins 3 voisins à 1 est mis à 1 P0+P2+P4+P6 >= 3  1 x 1 Fausse alarme : un 1 avec 4 voisins à 0 est mis à 0 P0+P2+P4+P6 ≠ 0  1 ( x = indifférent ) Binarisation : Img < 160  lacunes Img < 210  fausses alarmes

31 TRAITEMENTS BINAIRES ( 3 )
Lacunes comblées par 2 itérations ( vert ) Fausses alarmes éliminées ( orange ) Lissage des bordures, 2 passes successives, lissage des 0 puis des 1 : x 1 x 1 1 x x 1 et rotations de p/2 Concavités : (P0+P2+P4+P6) >= 3  1 Bordure W ( ouest ) aspérités ou pts saillants, notation Matlab : ~(P2 | P3 | P4 | P5 | P6) & (P0| ~P1| ~P3)  0

32 TRAITEMENTS BINAIRES ( 4 )
Génération de LUT Contours lissés ( 0→1 vert, 1→0 orange ) Enveloppe convexe, itérations jusqu’à stabilisation ( invariance ) de l’image, ici convexité 8-C : x 1 x 1 x 1 P0 & P2 & P6  1 P0 & P1 & P7 & P6  1 P0 & P1 & P7 & P2  1 Déficience de convexité = { E(X) – X } Point W, ajouter rotation de p/2

33 MORPHOLOGIE MATHEMATIQUE
OPERATIONS DE BASE Théorie ensembliste basée sur les travaux de Minkowski et Hadwiger, développée par Matheron et Serra. Notations et définitions : X(o) Xs(o) S(o), l’élément structurant est caractérisé par son origine, sa forme et ses dimensions Elément centré, symétrique, de taille minimale en 4-C ou 8-C : Ss(o) X(o)

34 MORPHOLOGIE MATHEMATIQUE ( 2 )
Ss(o) X(o) Itérations d’opérations : S1 puis S2 S

35 MORPHOLOGIE MATHEMATIQUE ( 3 )
EXEMPLE : EROSION ET DILATATION S 4-connexe S 8-connexe Erosion en 4-C et 8-C : Les objets de taille inférieure à S disparaissent → pts oranges éliminés, la connexité n’est pas conservée ( dissociation de régions ). Dilatation en 4-C et 8-C : Les trous de taille inférieure à S disparaissent → pts verts ajoutés, la connexité n’est pas conservée ( fusions de régions voisines ) Pour les éléments structurants de taille minimale 4-C ou 8-C, l’érosion correspond à une élimination d’un pixel de bordure, et la dilatation correspond à une croissance de un pixel en bordure. L’itération de ces opérations conduit donc à des croissances ou contractions de N pixels.

36 MORPHOLOGIE MATHEMATIQUE ( 4 )
CASCADES D’OPERATEURS Erosion et dilation modifient la taille globale des régions, la succession des 2 opérations ramènent les objets à leurs dimensions par compensation. Ci-dessous, exemples pour S = Ss 4-connexe. Ouverture : érosion puis dilatation  Fermeture : dilatation puis érosion 

37 MORPHOLOGIE MATHEMATIQUE ( 5 )
MISE EN OEUVRE ALGORITHMIQUE Nous supposons ci-dessous que S est symétrique : S = Ss Algorithmes basés sur des fonctions booléennes : dilatation : pour tous pixels érosion : pour tous pixels Algorithmes basés sur les cartes des distances, pour S de taille 2.N+1 : dilatation : calcul des distances dans fond à X puis mise à 1 de érosion : calcul des distances dans X au fond puis mise à 1 de Algorithmes basés sur une convolution ( image  S ) : dilatation : érosion :

38 MORPHOLOGIE MATHEMATIQUE ( 6 )
APPLICATIONS Les exemples suivants utilisent S = Ss 4-connexe. En orange pts éliminés, en vert ajoutés Périmètre d’un objet : contour intérieur Ci = X – ( X  S ) ou extérieur Ce = ( X  S ) - X S étant en 4-connexité, le contour est 8-connexe ( et inversement ) Sélection de détails de petite taille face à l’élément structurant : D = X – ( X  S ) « Top Hat Transform »

39 MORPHOLOGIE MATHEMATIQUE ( 7 )
APPLICATIONS : « Hit or Miss Transform » Transformation par tout ou rien - TTR Les transformations par descripteur de voisinage et LUT peuvent être reformulées : 2 éléments structurants disjoints mais de même origine S0(o) = { 0 } et S1(o) = { 1 } x 1 Sw = {S0,S1} 1 1 1 1 V = (P0 & P1 & P7) & (~P3 & ~P4 & ~P5) ( notation Matlab )  détection des pts de bordure ouest W ( les configurations {S0,S1} ont été répertoriées alphabet de Golay ) Sous la forme de 2 éléments structurants, il n’y a plus de limite de dimension du voisinage ( # LUT ) TTR( X,SW ) NB : contours intérieurs Bordure W : les points oranges sont éliminés Ci = X – ( X  S )

40 MORPHOLOGIE MATHEMATIQUE ( 8 )
APPLICATIONS : AMINCISSEMENT / EPAISSISSEMENT La transformation par tout ou rien ( illustrée ici par Sw ) permet des opérations : d’amincissement d ’épaississement ( amincissement W ) ( épaississement E ) L’application de ces opérations avec les 8 éléments structurants successifs Si selon les 8 orientations de la 8-connexité conduit à des amincissements ou épaississements isotropes. L’itération du cycle d’amincissement par { Si=0,7 } conduit à une invariance ou idempotence : 2 1 X X1 X2 invariante ultérieurement

41 MORPHOLOGIE MATHEMATIQUE ( 9 )
AMELIORATION D’IMAGE BINAIRE Rappel : les points oranges sont éliminés ( 1  0 ), les points verts sont ajoutés ( 0  1 ). Ouverture ( 1 ) : l’érosion élimine les fausses alarmes, la dilatation restitue la taille d’origine Fermeture ( 2 ) : la dilatation « bouche » les lacunes, l’érosion restitue la taille d’origine   X  S = ( X  S )  S X  S = ( X  S )  S  puis opération duale : ( X  S )  S ( X  S )  S

42 SQUELETTISATION NOTION DE SQUELETTE
Graphe (1) caractéristique de la forme d’un objet binaire, qui peut permettre de le reconstituer (2)  1 - c’est un ensemble de points connexes 2 - c’est une transformation réversible Deux définitions similaires dans R2 ( mais non dans N2 ) : - Lieu des centres des disques de rayon maximum inscrits dans l’objet, le rayon en chaque point permet de reconstruire l’objet. - Axe médian, ensemble des points équidistants de 2 bords de l’objet, cette définition correspond à l’état stable obtenu par érosions successives sans perte de connexité. La distance aux bords permet la reconstruction. = =

43 SQUELETTISATION ( 2 ) PROPRIETES - invariance présumée en rotation
- sensibilité aux détails des objets : irrégularité des bordures, lacunes …  éventuel lissage des bordures avant squelettisation ( voir traitements par LUT ) lacune irrégularité locale Nombreux algorithmes et versions multiples, aboutissant à des squelettes légèrement différents : - algorithmes parallèles : érosions conditionnelles sans propagation d’information - algorithmes séquentiels : érosions conditionnelles avec propagation des modifications in situ - algorithmes basés sur la recherche de maxima locaux dans une carte de distance

44 SQUELETTISATION ( 3 ) ALGORITHMES D’ EROSION CONDITIONNELLE
Algorithme parallèle : itération d’amincissements avec conservation de la connexité cas de la bordure W ( configurations similaires pour les autres bordures ), P  0 si : 3 2 1 4 P 5 6 7 1 x Du fait du parallélisme les bandes de largeur paire ( 2 pixels ) disparaissent  configurations de conservation sur 4 points: ~P4 & P & P0 & ~P8  P = 1 ~P2 & P & P6 & ~P9  P = 1 8 1 1 9 x 1 1 1 ( x = indifférent ) 1 1 Algorithme séquentiel : les modifications s’effectuent dans l’image en cours de balayage ce qui introduit une dépendance du sens de balayage configurations essentielles ( sans modification ), cas de la bordure W : 1 x x 1 x 1 - si  x = 0  P est une extrémité - si  x = 1  P est un lien de connexité locale

45 SQUELETTISATION ( 4 ) ALGORITHMES D’ EROSION CONDITIONNELLE
Algorithme séquentiel, dernière configuration ( 4 configurations essentielles ) : y 1 x - si  x,y = 0  P est un point isolé ( à conserver ) - si  x et y = 1  P est un lien de connexité locale - si  x = 0 et  y = 1  P est une extrémité ou un lien de connexité Les points essentiels sont des points du squelette, les numéros des itérations où ils sont déclarés essentiels correspondent aux rayons des disques centrés sur ces points. Les points non essentiels sont marqués, valeur < 0, puis sont éliminés en fin de balayage. Séquencement des itérations : Initialisation : Iter = 1 Itération tant que des points sont éliminés, 2 sous cycles pour symétriser le squelette : 1 - test bordures E,W  si essentiel P = Iter, sinon marqué 2 - test bordures N,S non marquées  si essentiel P = Iter, sinon marqué Points marqués = 0, Iter = Iter +1 Fin d’itérations { P > 0 } = squelette valué

46 SQUELETTISATION ( 5 ) ALGORITHMES BASE SUR LES CRETES DE DISTANCES
Pour les algorithmes précédents, le nombre de passes dépend de la taille des objets, pour l’algorithme basé sur les maximums locaux de la carte des distances il n’y a que 3 passes : 2 passes pour la carte des distances + 1 pour la recherche des lignes de crêtes Principe : calcul des distances des points des objets au fond : chamfer - seuillage éventuel pour éliminer les irrégularités locales - maximums locaux directionnels si maximum strict, sur 3 points a b c : (b > a) & (b > c)  problème de squelette non connexe, exemple avec la norme D, les maximums stricts sont en gras, reste le 2 central :  d’où tests de maximums relatifs sur 4 points a b c d : crête : ((b > a) & (b > c)) | ((b > a) & (b = c) & (c > d)) Profil de crête : ou selon les 4 directions à p/4

47 SQUELETTISATION ( 6 ) RESULTATS : VARIABILITE DU SQUELETTE Algorithmes
Parallèle Séquentiel Crêtes de distances (3-4) Sans régularisation des bordures Avec régularisation des bordures ( seuil = 6 )

48 SQUELETTISATION ( 7 ) QUALITE DU SQUELETTE ? Algorithmes Parallèle
Séquentiel Crêtes de distances (3-4) Sans régularisation des bordures ( seuil 9 ) Avec régularisation des bordures

49 pointillé noir : image binaire
SQUELETTISATION ( 8 ) CAS PARTICULIER : OBJETS MINCES Dans le cas d’objets de faibles épaisseurs ( < 5 pixels par exemple ) une approche par convolution est rapide, 2 passes sur l’image :  axe médian = lignes des crêtes de l’image convoluée par un masque triangulaire IB  k.[ ] max(coeff) > somme(coeff) – max(coeff)  les maximums locaux (non stricts) donnent les axes médians IB  k.[ ]  les 2 zones distinctes ne sont pas résolues Exemple 2D pointillé noir : image binaire

50 SQUELETTISATION ( 9 ) ZONES D’ INFLUENCE
Le squelette du fond { x | x = 0 } donne, après élimination des branches pendantes, les limites des zones d’influence des objets. Branche pendante = partie du squelette ayant une ( ou plus ) extrémité libre, ici le squelette doit être constitué de boucles fermées si le bord de l’image est considéré comme un objet. Bord à 1 Zones d’influence : étiquetage des régions délimitées par le squelette du fond Squelette de ~X ( vert ) La zone d’influence d’un objet est l’ensemble des points à distance de cet objet inférieure aux distances des autres objets.

51 EXTENSIONS MULTI-NIVEAUX
MORPHOLOGIE MULTI-NIVEAUX Bases ensembliste : analogie des opérations 2D binaires d’érosion et dilatation L’image en niveaux de gris ( espace N3 ) est représentée par son sous-graphe : g g(x) x -  Sous-graphe de g(x) : x  N2, g  N  SG( g(x) ) = { (x,g) | g  g(x) } L’élément structurant est aussi représenté par son sous-graphe  élément structurant So(x) 3D centré en o x Les opérations de base se ramènent donc à des unions / intersections / complémentations ensemblistes : Erosion : Y = X  S = { y | Sy  X }  { (y,g) | SG( Sy(x)+g) )  SG( X(x) ) Dilatation par dualité : Y = X  S = ( X  Ss )  { (y,g) | SG(-Sy(-x)+g )  SG( X(x) ) } SG( g(x) ) x g Noter pour Ss la symétrie 3D

52 EXTENSIONS MULTI-NIVEAUX ( 2 )
OPERATIONS DE BASE Erosion : Y = X  S  { (y,g) | SG( Sy(x)+g ) )  SG( X(x) ) } X(x) Analogie avec un palpeur suivant le profil X(x) l’érodé est la trajectoire du point de référence ( ou origine ) du palpeur. La forme 3D du palpeur ( élément structurant ) fixe son comportement dans les pics de X(x)  érosion des pics So(x) g x -x1 x2 g(x) = érodé( X(x) ) Expression analytique pour S centré en xo :  x  [xo-x1…xo+x2] X(x) – ( Sxo(x)+g(xo) )  0  g(xo) = min( X(x) – Sxo(x) ) Il s’agit donc d’une transformation non linéaire contrairement aux filtres classiques La translation de niveaux qui peut amener des g < 0, peut être compensée par une translation de valeur max( So(x) ), sans changer le profil de g(x) :  g(x) = min( X – Sx ) + max( S )

53 EXTENSIONS MULTI-NIVEAUX ( 3 )
Dilatation : Y = X  S  { (y,g) | SG( -Sy(-x)+g ) )  SG( X(x) ) } Même analogie avec un palpeur : La forme 3D du palpeur ( élément structurant ) fixe son comportement dans les vallées de X(x)  comblement des vallées So(x) X(x) g x -x1 x2 g(x) = dilaté( X(x) ) Expression analytique pour S centré en xo :  x  [xo-x1…xo+x2] X(x) + Sxo(x)  g(xo)  g(xo) = max( X(x) + Sxo(x) ) La translation de niveaux peut amener des g > gmax, d’où une translation optionnelle de valeur - max( So(x) ), sans changer le profil de g(x) :  g(x) = max( X + Sx ) - max( S ) Remarque, cas particulier de l’élément structurant « plat » :  x  [-x1…x2] So(x) = 0  filtres ‘ inf ’ : érosion = min( X ) et ‘ sup ‘ : dilatation = max( X ) ( voir lissage des bruits – opérateurs de base )

54 EXTENSIONS MULTI-NIVEAUX ( 4 )
OPERATIONS COMBINEES ouverture : X  S = ( X  S )  S ) fermeture : X  S = ( X  S )  S) « top hat » : X – ( X  S ) lissage morphologique ( non linéaire ) : ( X  S )  S ou ( X  S )  S gradient morphologique : ( X  S ) – X ou X - ( X  S ) ou ( X  S ) – ( X  S ) laplacien morphologique : ( X  S) + ( X  S) – 2.X -4 -1 2 3 1 4 Forme 3D Elément structurant 5 x 5

55 EXTENSIONS MULTI-NIVEAUX ( 5 )
EXEMPLES Image originale Ouverture Fermeture fermeture ouverture Gradient morphologique Lissages

56 EXTENSIONS MULTI-NIVEAUX ( 6 )
AMINCISSEMENT / EPAISSISSEMENT Par analogie avec la morphologie binaire, deux éléments structurants multi-niveaux disjoints permettent de définir l’amincissement AMM et l’épaississement EPM multi-niveaux : -N 1 1 -N -N = - « infini », élément neutre de l’opération, les pixels correspondants ne sont pas traités.  Ici exemple de l’élément structurant ouest W S1 = S0 = Amincissement et épaississement isotropes sont obtenus par application successive des {S0,S1} correspondants aux 8 orientations de la 8-connexité ( rotations de 45° ).

57 EXTENSIONS MULTI-NIVEAUX ( 7 )
AMM(X) EPM(X) X image d’origine Intuitivement : amincissement  contraction des plages claires épaississement  extension des plages claires

58 FIN DE PRESENTATION RETOUR AU PLAN FIN DE PRESENTATION

59 GENERATION DE LUT - CODE MATLAB
EXEMPLE : LISSAGE DES BORDURES 2 passes successives, lissage des 0 puis des 1  2 LUTs ( Lut1 et Lut0 ) : x 1 x 1 1 x x 1 ( et rotations de p/2 ) Concavités : (P0+P2+P4+P6) >= 3  1 Bordure W ( ouest ) aspérités, pts saillants, en notation Matlab : ~(P2 | P3 | P4 | P5 | P6) & (P0| ~P1| ~P3)  0 Code Matlab pour établir les LUTs : function [Lut0,Lut1]=lislut V8=[0:255]; P0=bitget(V8,1); P1=bitget(V8,2); P2=bitget(V8,3); P3=bitget(V8,4); P4=bitget(V8,5); P5=bitget(V8,6); P6=bitget(V8,7); P7=bitget(V8,8); Modif=(~P0 & ~(P1|P2|P6|P7) & (~P3|P4|~P5)) | ... (~P2 & ~(P3|P4|P0|P1) & (~P5|P6|~P7)) | ... (~P4 & ~(P5|P6|P2|P3) & (~P7|P0|~P1)) | ... (~P6 & ~(P7|P0|P4|P5) & (~P1|P2|~P3)); Lut1=~Modif; % Pc=1 : si modif -> 0 Lut0=((P0+P2+P4+P6) >= 3);

60 ZOOM – LACUNES

61 ZOOM – FAUSSES ALARMES

62 ZOOM – LISSAGE BORDURES

63 CONTOURS – ORIENTATION

64 CONTOURS – COURBURE


Télécharger ppt "IMAGES BINAIRES 1. TOPOLOGIE 2. METRIQUE 3. TRAITEMENTS BINAIRES"

Présentations similaires


Annonces Google