1/27
Formation ITII Loire
ISTASE
FIP Optique et Vision Industrielles
Projet Image
Maryline Moulin
Sébastien Vallet
Distance de BORGEFORS
Application à la déconnexion de particules
Date : Juin 2005
Professeur : Michel JOURLIN
2/27
Introduction
Dans le cadre de notre projet Image, nous avons choisi de coder l’algorithme de
Borgefors pour calculer des images de distance au fond. Les distances calculées à partir de
cet algorithme ont plusieurs applications, dont la déconnexion de particules et la
construction des cellules de Voronoï.
Pour réaliser cet algorithme ainsi que ses deux applications, de nombreuses
fonctions de traitement d’images préalables sont parfois nécessaires pour segmenter l’image
(seuillage, fonctions de morphologie mathématique…). C’est pour cela que nous avons décidé
de créer un logiciel de traitements d’images, nommé ImProcess. Ce logiciel a été créé pour
s’adapter à un grand nombre d’applications (médicales, industrielles, agroalimentaire), les
images pouvant être en couleurs, binaires ou en niveaux de gris. Ce logiciel constitue un
véritable outil de traitement d’images et a été conçu pour être évolutif.
Ce rapport présente en première partie, toute la théorie sur laquelle nous nous
sommes appu pour réaliser l’algorithme de Borgefors (définition d’une distance, théorie sur
le balayage des images et masques optimisés). La conclusion de cette première partie présente
les résultats obtenus sur une image avec notre logiciel ImProcess.
La deuxième partie traite des algorithmes de déconnexion des particules avec
l’utilisation des cercles inscrits.
La troisième partie présente aussi une application de la distance de Borgefors, à
savoir la construction des cellules de Voronoï.
La partie suivante présente notre logiciel et les nombreuses fonctions qu’il est
capable de réaliser.
Et enfin, quelques exemples sont proposés afin de présenter des applications
envisageables aux algorithmes que nous avons développés pour ce projet.
3/27
Sommaire
Introduction ................................................................................................................................ 2
Sommaire ................................................................................................................................... 3
1. Création de l’algorithme de Borgefors ............................................................................... 4
1.1 « Théorie préliminaire » ............................................................................................... 4
1.1.1 Théorie sur la notion de distance ........................................................................... 4
1.1.2 Conclusion pratique sur la notion de distance ....................................................... 4
1.1.3 Importance de l’ordre de balayage des images ..................................................... 5
1.1.4 Masques de chanfrein antérieur et postérieur ........................................................ 6
1.2 Etapes de l’algorithme de calcul de distance au fond de Borgefors ............................. 7
Etape 1 : Initialisation .................................................................................................... 7
Etape 2 : Balayage dans l'ordre direct ............................................................................ 7
Etape 3 : Balayage dans l'ordre inverse .......................................................................... 7
1.3 Présentation en images du calcul de distance au fond de Borgefors ............................ 8
2. Application à la déconnexion de particules ...................................................................... 10
2.1 A partir de l’image de Borgefors ............................................................................... 10
2.2 Application à la déconnexion de particules ................................................................ 12
3. Application à la construction des cellules de Voronoï ..................................................... 14
3.1 Principe de la méthode ............................................................................................... 14
3.2 Algorithme idéale : « segmentation par ligne de partage des eaux » ......................... 15
3.3 Exemple en images de la construction des cellules de Voronoï ................................ 16
4. Présentation du logiciel de traitements d’images ImProcess ........................................... 17
4.1 Un peu d’informatique : organisation général du logiciel .......................................... 17
4.2 Images traitées par le logiciel ..................................................................................... 18
5. Applications des distances de Borgefors et de ses dérivés (cercles inscrits et cellules de
Voronoï) ............................................................................................................................... 22
5.1 Applications dans le domaine médical ....................................................................... 22
5.2 Une application dans le domaine agroalimentaire ..................................................... 22
5.3 Une application dans le domaine industriel ............................................................... 24
Conclusion ................................................................................................................................ 26
Références ................................................................................................................................ 27
4/27
1. Création de l’algorithme de Borgefors
1.1 « Théorie préliminaire »
1.1.1 Théorie sur la notion de distance
Soit d une distance (euclidienne ou de chanfrein) sur le plan discret Z2. Etant donnés un pixel
p et un ensemble X de pixels de Z2, pour un rayon r > 0, il n'y a qu'un nombre fini de pixels x
de X tels que d(p,x) < r, donc en prenant parmi ceux-ci le plus proche de p, on obtient un pixel
x de X à distance minimum de p. On définit ainsi la distance d(p,X) de p à X comme le
minimum de la distance de p aux pixels de X :
d(p,X) = min { d(p,x) | x dans X }
On a d(p,X) = 0 si et seulement si p appartient à X, et pour tout pixel q, d(p,X) est inférieur ou
égal à d(p,q) + d(q,X).
Soient S une partie de Z2 et R une partie de S. La transformée de distance de R dans S est la
fonction TFDR,S définie sur S et à valeurs non-négatives, donnée par :
TFDR,S(p) = d(p,R) pour tout pixel p de S.
L'ensemble R est appelé marqueur, tandis que l'ensemble S est appelé domaine ou masque.
Notons que certains auteurs définissent la transformée de distance de R comme la fonction
associant à tout pixel p sa distance au complémentaire S \ R de R dans S.
L'approche naïve pour calculer la transformée de distance serait d'évaluer d(p,q) pour tout p
dans S et tout q dans R, et d'en déduire d(p,R), ce qui donnerait une complexité
proportionnelle à |S| × |R|. Lorsque le domaine est une grille rectangulaire et la distance est
une distance de chanfrein satisfaisant les conditions de Montanari, il existe un algorithme
séquentiel calculant la transformée de distance au terme de deux balayages du domaine. Sa
complexité est proportionnelle à |S| × m, m est la taille du masque de chanfrein. Il s'appuie
sur deux concepts, l'ordre de balayage de la grille formant le domaine, et la décomposition du
masque de chanfrein en masque antérieur et masque postérieur.
1.1.2 Conclusion pratique sur la notion de distance
Lorsque l’on calcul une image de distance, on part d’une image binaire (NB) et on veut
obtenir une image de distance chaque pixel du fond prendra la valeur minimale de la
distance au plus proche objet (chaque pixel objet étant à 0). Or un problème se pose puisque
l’on ne connaît pas la résolution de codage du pixel de l’image avant le calcul (et les valeurs
de pixel peuvent facilement dépasser 256 niveaux !). On prendra donc pour représenter
l’image de distance un type Niveau De Gris 32 bits codé en non-signé (NDG32), on obtiendra
ainsi une résolution de distances de 4 294 967 296.
5/27
1.1.3 Importance de l’ordre de balayage des images
Dans un algorithme séquentiel, les pixels de la grille sont visités l'un après l'autre dans un
certain ordre, appelé ordre de balayage. On dira que p est antérieur à q, et on notera p < q, si
p est visité avant q dans le balayage. Donc les pixels sont balayés du premier au dernier. A cet
ordre correspond l'ordre de balayage inverse >, où les pixels sont balayés du dernier au
premier.
L'ordre de balayage ne peut pas être arbitraire, il doit respecter la contrainte de régularité : si p
< q, alors pour tout pixel x on a p + x < q + x, ce qui signifie que le fait que p < q ne dépend
que de l'orientation du vecteur pq.
L'ordre lexicographique donné par (i,j) < (i',j') ssi i < i' ou [i = i' et j < j'], est régulier, il
correspond au balayage de la première ligne à la dernière, et au sein de chaque ligne de la
première colonne à la dernière.
L'ordre lexicographique inverse, correspondant au balayage de la dernière ligne à la première,
et au sein de chaque ligne de la dernière colonne à la première, est également régulier.
Le sont aussi l'ordre lexicographique transposé, la priorité entre lignes et colonnes est
inversée (on balaie de la première colonne à la dernière, et au sein de chaque colonne, de la
première ligne à la dernière), et l'ordre lexicographique transposé inverse (de la dernière
colonne à la première, et au sein de chaque colonne, de la dernière ligne à la première).
Le tableau ci-dessous illustre le balayage la double boucle d'itération, correspondant aux
ordres lexicographique et lexicographique inverse que nous trouvons les plus cohérents pour
réaliser les balayages de l’image nécessaires aux calculs de distance :
ordre lexicographique
ordre lexicographique inverse
pour i allant du premier au dernier faire
pour j allant du premier au dernier faire
pour i allant du dernier au premier faire
pour j allant du dernier au premier faire
Figure 1 : Présentation des ordres de balayages choisis pour le calcul de la distance
1 / 27 100%