Eric Lormeau, Mastere IST (98)
Segmenter une image, c'est chercher a cerner les formes des objets constituant cette image, a delimiter des zones, en extrayant des formes de cette image, en la partitionnant en objets disjoints dont l'union couvre toute l'image.
Les contours possedent l'essentiel des caracteristiques de forme d'une region et convoient l'essentiel du message d'une image.
L'un des processus fondamentaux de la chaine de reconnaissance visuelle consiste a diminuer la quantite d'information en ne gardant que les points essentiels de l'image: les points de contour constituent une approche rationnelle. Le systeme visuel humain est un tres bon detecteur de contours.
Qu'est ce qu'un contour?
Par definition, un contour est une brusque variation de niveau de gris dans une image d'une amplitude a et avec une pente p. Un contour peut etre defini comme une "marche d'escalier" si le contour est net, comme une "rampe" si le contour est plus flou ou comme un "toit" s'il s'agit d'une ligne sur un fond uniforme.
![]() |
![]() |
![]() |
|
Marche d'escalier |
Rampe |
Toit |
La mise en evidence des contours peut se faire notamment par differentiation de l'image, grace a des filtres representant des operateurs de differentiation tels les filtres detecteurs de Roberts, Sobel ou Prewitt, ou par des techniques morphologiques telles le gradient morphologique.
Les filtres de Roberts sont une approche discrete de la derivee de pas 1 d'une fonction: le gradient de cette fonction.
Si I(x,y) represente un pixel dans une image, alors les amplitudes des gradients en x et en y peuvent s'ecrire respectivement:
Gx = I(x+1,y) - I(x,y),
Gy = I(x,y+1) - I(x,y).
Cela revient a convoluer l'image avec les deux filtres Rx = [-1 1] et Ry = transpose([-1 1]).
L'amplitude du gradient peut etre alors calculee de plusieurs facons:
G1(x,y) = sqrt(Gx^2 + Gy^2),
G2(x,y)= max(abs(Gx),abs(Gy))
ou G3(x,y) = abs(Gx) + abs(Gy).
et la direction du gradient est donne par:
D(x,y) = Arctan(Gy/Gx).
Or le bruit peut aussi etre une brusque variation locale des niveaux de gris (bruit de Speckle par exemple) : ces filtres sont donc tres sensibles au bruit car ils accentuent, par derivation, le bruit present dans l'image. De plus, ces filtres donneront un contour epais si celui-ci est un contour de type "rampe".
Enfin, si le contour est franc ("marche"), les filtres de Roberts placeront le contour un pixel a gauche ou au-dessus mais son epaisseur sera respectee.
Les filtres de Prewitt et de Sobel sont aussi des operateurs de derivation mais on y a introduit un operateur de lissage.
L'image est convoluee avec les masques suivants (Prewitt c=1, Sobel c=2):
| Gx | Gy | |||||
|---|---|---|---|---|---|---|
| -1 | 0 | 1 | -1 | -c | -1 | |
| -c | 0 | c | 0 | 0 | 0 | |
| -1 | 0 | 1 | 1 | c | 1 | |
L'amplitude peut etre calculee de la meme maniere que pour les filtres de Roberts.
Ces filtres sont moins sensibles au bruit que ceux de Roberts car le fait d'introduire un moyennage local sur le domaine couvert par le masque diminue leur sensibilite. Le filtre de Sobel donne une meilleure estimation que celui de Prewitt car la serie 1 2 1 est approximativement une gaussienne.
Mais les contours rendus peuvent etre larges si les contours sont de type "rampe". De plus, si le contour est franc, les filtres de Prewitt et de Sobel donneront un contour de 2 pixels d'epaisseur mais le placeront a cheval sur la ligne de contour.
Le gradient morphologique consiste effectuer la difference du dilate et de l'erode d'une image I, que ce soit en binaire ou en niveaux de gris:
Grad_morpho(I) = 1/2 (Dilate(I) - Erode(I))
Si le contour est epais, le gradient morphologique donnera un contour epais mais il pourra etre reduit par un amincissement homotopique. Si le contour est franc, celui rendu par l'operateur sera plus large, la largeur dependant de la taille de l'element structurant utilisee: plus l'element structurant est grand, plus le contour sera epais; mais il sera positionne a cheval sur le vrai contour.
Si l'image est bruitee, le operations de dilatation et d'erosion peuvent accentuer le bruit: un filtrage FAS (Filtrage Alterne Sequentiel) diminuera le bruit, lissera l'image.

![]() |
![]() |
|
|
Filtres de Roberts |
Gradient morphologique |
|
![]() |
![]() |
|
|
Filtre de Prewitt |
Filtre de Sobel |
Pour une image naturelle peu bruitee avec des contours reguliers et francs telle l'image du bureau ci-dessus, on voit bien que les filtres de Roberts definissent bien les contours, alors que les filtres de Prewitt et de Sobel ont tendance a les epaissir. Le gradient morphologique quant a lui offre une bonne determination des contours mais ceux-ci sont plus epais.

![]() |
![]() |
|
|
Filtres de Roberts |
Gradient Morphologique |
|
![]() |
![]() |
|
|
Filtre de Prewitt |
Filtre de Sobel |
Pour une image possedant des contours francs mais bruitee comme l'image de circuit integree ci-dessus, les filtres de Roberts donnent des contours assez fins mais en oublient quelques uns, les filtres de Prewitt et de Sobel epaississent toujours les contours et debruitent legerement l'image, le gradient morphologique fournit un resultat tres correct avec des contours assez fins.

![]() |
![]() |
|
|
Filtres de Roberts |
Gradient morphologique |
|
![]() |
![]() |
|
|
Filtre de Prewitt |
Filtre de Sobel |
Pour une image naturelle peu bruitee contenant beaucoup de details comme l'image de la fameuse Lena, les filtres de Roberts conservent les details, les filtres de Prewitt et de Sobel donnent un assez bon apercu de tous les details de l'image de maniere assez equivalente tout en epaississaant toujours les contours, alors que le gradient morphologique rend tous les details et tout les contours tres correctement et sans les epaissir outre mesure: il garde bien les details.
Une fois le gradient effectue, il est necessaire d'isoloer les maximums locaux de l'image derivee pour determiner les points exacts du contour afin de reduire ceux-ci aune courbe d'un pixel d'epaisseur.
Les normes G1, G2, G3 introduisent de la distorsion dans le calcul de l'amplitude car elle dependent de elles dependent de la direction du gradient et non de l'amplitude seule.
En effet, si Gx=0 ou Gy=0 alors G1=G2=G3. Mais si Gx=Gy alors G1=sqrt(2)*Gx, G2=Gx, G3=2*Gx.
Les raisons de ces distorsions sont simples: les masques des operateurs constituent une approximation discrete de la derivee reelle et de ce fait, la norme a appliquer pour le calcul depend des composantes Gx et Gy. Il vaudrait mieux alors utiliser des masques optimaux, tel l'operateur de Kirsh par exemple.
Les effets du bruits peuvent quant a eux etre attenues par convolution de l'image avec un filtre passe-bas: filtrage puis derivation.