Images binaires

Le traitement des images binaires

Ce chapitre regroupe plusieurs techniques spécifiques aux images binaires, couramment employées suite à des outils de segmentation, soit pour améliorer le résultat de la segmentation, ou pour simplifier la structures des objets visibles dans l'image.

9.1 Carte des distances

La carte des distances (distance map), ou fonction distance, est un outil très employé en traitement d'images. Elle consiste à calculer, pour chaque pixel, quelle est la distance la plus proche à une structure donnée. Par exemple, on peut calculer la distance au bord le plus proche pour les pixels à l'intérieur d'une particule (Figure 9.1).

carte des distance sur une image binaire

Figure 9.1: Carte des distances d'une image binaire

La carte des distances a de nombreuses applications :

  • calcul du squelette d'une particule
  • calcul de l'épaisseur moyenne le long du squelette
  • calcul des zones d'influences de petits objets
  • séparation de particules coalescentes
  • ...

9.2 Nettoyage des résultats de segmentation

De nombreux outils sont disponibles pour nettoyer les résultats obtenus après segmentation.

9.2.1 Suppression des petits objets

L'application d'un seuillage sur une image binaire produit souvent de nombreux faux positifs, correspondant à des variations d'intensité dans le fond de l'image qui sont détectés comme structure d'intérêt

Filtrage morphologique

Une manière simple de supprimer ces artefacts est d'appliquer une ouverture morphologique binaire à l'image seuillée. Les particules dont la taille est inférieure à celle de l'élément structurant seront supprimées, tandis que les particules correspondant aux structures d'intérêt seront globalement préservées.

Si la forme des particules est très altérée par l'ouverture (ce qui peut arriver avec un élément structurant carré de grande taille), une possibilité est de rajouter une reconstruction géodésique, en utilisant comme marqueur l'image après ouverture, et comme masque l'image seuillée avant ouverture.

Ouverture par attribut

Une alternative aux filtres morphologiques est d'utiliser une « ouverture par attribut ». Le principe est de choisir un paramètre descriptif, et une plage de valeurs correspondant aux particules que l'on veut garder. Un choix typique est l'aire, et une valeur minimum correspondant aux particules « suffisamment grandes » (Figure 9.2). On calcule le ou les paramètres choisis pour chacune des particules identifiées, et on ne garde que les particules pour lesquelles les paramètres sont dans la plage de validité.

ouverture par attribut sur une image de labels

Figure 9.2 : Ouverture par attribut sur une image étiquetée. Seules les particules d'une taille supérieure à 15 pixels ont été gardées.

Cette méthode est implémentée dans ImageJ, dans les options de la commande « Analyze Particles... », mais uniquement pour les paramètres de taille et de circularité. Sous Matlab, on peut utiliser la fonction « bwareaopen », ou bien passer par la fonction « regionprops » pour un traitement plus précis.

9.2.2 Suppression des particules touchant les bords

En imagerie microscopique, il arrive couramment que les objets d'intérêt ne soient pas entièrement visibles dans l'image, et qu'une partie soit tronquée. Une pratique courante consiste donc à supprimer les objets qui touchent le bord de l'image (Figure 9.3).

suppression des objets touchant les bords sur une image labels

Figure 9.3 : Suppression des particules touchant les bords. 

En pratique, la suppression s'opère à l'aide d'une reconstruction géodésique, avec comme marqueur l'intersection des objets avec le bord de l'image, et comme masque l'image binaire elle-même. On obtient comme résultat l'image des objets touchant le bord, qu'il suffit ensuite de soustraire de l'image d'origine. Cet outil est souvent implémenté comme une fonction à part entière dans les logiciels (fonction imclearborder sous Matlab, option de la fonction Analyze Particles sous ImageJ, outil « borderKill »...).

Il faut toutefois prendre garde qu'en opérant ainsi, on introduit un biais dans les mesures qui seront faites par la suite, car les paramètres seront mesurés uniquement sur les particules entièrement visibles. Ainsi, plus une particule est petite, plus sa probabilité d'être observée sera importante, et les mesures globales seront biaisées en faveur des petites particules. Une possibilité d'obtenir des mesures plus proches de la réalité est d'appliquer la correction de Miles-Lantuéjoul, qui pondère les mesures sur les particules en fonction de leur probabilité d'échantillonnage.

9.3 Codage des contours

On considère, pour chaque région ou particule de l'image binaire, la succession des pixels qui forment son contour. Au lieu de stocker l'ensemble des coordonnées de chaque pixel, on code la direction du pixel suivant, en utilisant une valeur entre 0 et 7. On obtient ainsi le code de Freeman.

9.4 Séparation de particules se recouvrant

La ligne de partage des eaux est souvent utilisée pour séparer des particules qui se touchent après un seuillage (Figure 9.4-a). On commence par calculer la fonction distance par rapport au complémentaire des particules. Les maximas de l'image résultat sont situés vers le centre des particules. On inverse cette fonction distance, et on filtre un peu : les minimas sont alors les centres des particules (Figure 9.4-b).

séparation de grains coalescents par ligne de partage des eaux

Figure 9.4 : Application de la ligne de partage des eaux pour séparer des particules connectées. (a) Image d'origine (b) fonction distance inversée et ligne de partage des eaux sur la fonction distance (c) séparation des particules.

On applique alors l'algorithme de ligne de partage des eaux. Les lignes de crêtes détectées sont les séparations entre les particules ([fig:Watershed-binaire]-c). En combinant avec l'image binaire d'origine, on arrive à séparer la plupart des particules (Figure 9.4-c).

9.5 Squeletisation

La squeletisation consiste à supprimer certains pixels pour ne garder que ceux situés le long des axes principaux. L'objectif est de garder la forme générale de la particule, afin de pouvoir en extraire des informations de nature topologique : points terminaux (extrémités du squelette), les points multiples (croisements), points formant les branches... Quelques exemples de squelettes sont montrés sur la figure 9.5.

Squeletisation d'une image binaire

Figure 9.5 : Squeletisation d'une image binaire. Image d'origine, résultat de la squeletisation, et superposition du squelette sur l'image d'origine.

On définit le squelette dans un espace continu comme l'ensemble des points de la particule qui sont situés à égale distance d'au moins deux points de la frontière de l'ensemble d'intérêt [2, p. 162]. Une définition plus formelle fait appel à l'ensemble des centres des boules de rayon maximal.

Les algorithmes de squeletisation utilisent la définition du squelette, adaptée à la nature discrète des images, pour calculer une approximation du squelette euclidien. On obtient une image binaire dont les structures ont une épaisseur maximale d'un pixel, et qui reprennent la forme générale des particules.

Un des problèmes souvent rencontrés est que la squeletisation est une opération très sensible au bruit : une petite variation de forme peut engendrer des variations importantes du squelette. Cela se traduit notamment par la présence de nombreuses « barbules », qui relient l'axe du squelette aux petites aspérités du contour (sur les parties courbes du B, par exemple). Des outils dits « d'ébarbulage » (en anglais : pruning) sont parfois disponibles dans les logiciels.

Différences entre plusieurs algorithmes de squeletisation

Figure 9.6 : Résultats de différents algorithmes de squeletisation : résultats obtenus sous Matlab (par squeletisation et par amincissement homotopiques), et sous ImageJ.

Un autre problème est qu'il existe de nombreux algorithmes de squeletisation chacun donnant des résultats différents (voir la figure 9.6). Les algorithmes les plus courants se basent soit sur des cartes de distance, soit sur des amincissements homotopiques (amincissements successifs qui préservent la topologie des particules).