1. Reconnaitre des droites ans une image

1.1. Le principe

Voici un résumé du principe de détection de droites par la transformée de Hough.
On commence par une détection de contours. Pour chaque point qui en résulte, on recherche les paramètres de toutes les droites qui peuvent passer par lui. Normalement, il y en a une infinité, mais on se place dans un monde discret pour que ce soit réalisable. On recense donc une liste de paramètres dont certains peuvent apparaître plusieurs fois. Ce sont ceux dont l'occurence est la plus grande qui ont le plus de chance de représenter une droite dans l'image.

1.2. Le paramétrage d'une droite du plan.

Toute droite du plan peut être identifiée de façon unique par deux paramètres :
L'équation de la droite est : R = x Cos(A) + y Sin(A)
En fonction de la précision recherchée, on va découper les domaines de R et de A en un certain nombre de sections. Par exemple, si on veut uniquement des droites verticales, horizontales et diagonales, on aura donc le domaine suivant pour A : {0, 45, 90, 135}. Et on peut donc choisir de la même façon un domaine pour R, dont les valeurs réelles seront comprises entre +/- la longueur de la diagonale de l'image. R peut avoir des valeurs négatives.
Prenons, par exemple, une image de 20x20 (ce n'est pas grand, j'en conviens, mais cela pourrait être issu d'une image que l'on aurait réduite pour ne garder que les points principaux). Dans cet exemple, on recherche des droites avec une résolution de 15° :
xy 15° 30° 45° 60° 75° 90° 105° 120° 135° 150° 165°
14 1 2 2 3 3 4 4 3 2 2 1 0
010 0 2 4 7 8 9 10 9 8 7 4 2
23 2 2 3 3 3 3 3 2 1 0 -1 -2
111 1 3 6 8 10 10 11 10 9 7 4 1
24 2 2 3 4 4 4 4 3 2 1 0 -1
210 2 4 6 8 9 10 10 9 7 5 3 0
45 4 5 5 6 6 5 5 3 2 0 -1 -3
311 3 5 8 9 11 11 11 9 8 5 2 -1
56 5 6 7 7 7 7 6 4 2 0 -2 -4
410 4 6 8 9 10 10 10 8 6 4 1 -2
67 6 7 8 9 9 8 7 5 3 0 -2 -4
511 5 7 9 11 12 11 11 9 7 4 1 -2
78 7 8 10 10 10 9 8 5 3 0 -3 -5
611 6 8 10 12 12 12 11 9 6 3 0 -3
87 8 9 10 10 10 8 7 4 2 -1 -4 -6
710 7 9 11 12 12 11 10 7 5 2 -2 -5
98 9 10 11 12 11 10 8 5 2 -1 -4 -7
810 8 10 11 12 12 11 10 7 4 1 -2 -6
109 10 11 13 13 12 11 9 6 2 -1 -5 -8
911 9 11 13 14 14 12 11 8 5 1 -3 -6
1111 11 13 15 15 15 13 11 7 4 0 -5 -8
1010 10 12 13 14 13 12 10 7 3 0 -4 -8
1211 12 14 15 16 15 13 11 7 3 -1 -5 -9
1110 11 13 14 14 14 12 10 6 3 -1 -5 -9
1211 12 14 15 16 15 13 11 7 3 -1 -5 -9
1211 12 14 15 16 15 13 11 7 3 -1 -5 -9
1312 13 15 17 17 16 14 12 8 3 -1 -6 -10
1311 13 15 16 16 16 13 11 7 3 -2 -6 -10
1413 14 16 18 19 18 16 13 8 4 -1 -6 -11
1411 14 16 17 17 16 14 11 7 2 -3 -7 -11
1513 15 17 19 19 18 16 13 8 3 -2 -7 -12
1510 15 17 17 17 16 13 10 5 1 -4 -8 -12
1614 16 19 20 21 20 17 14 9 4 -2 -7 -12
1611 16 18 19 19 17 14 11 6 1 -4 -9 -13
1714 17 20 21 21 20 17 14 9 3 -3 -8 -13
1710 17 19 19 19 17 14 10 5 0 -5 -10 -14
1816 18 21 23 24 22 20 16 10 4 -2 -8 -14
1811 18 20 21 20 18 15 11 5 0 -5 -11 -15
1917 19 22 24 25 24 21 17 11 5 -2 -8 -14
1910 19 20 21 20 18 14 10 4 -1 -7 -12 -16
2018 20 23 26 26 25 22 18 12 5 -2 -9 -15
2010 20 21 22 21 18 14 10 4 -2 -8 -13 -17

Les droites les plus probables sont :

  • (11, 90) qui apparaît 13 fois.
  • (3, 120) qui apparaît 11 fois.
  • (10, 90) qui apparaît 11 fois.
  • (-1, 135) qui apparaît 9 fois.
  • (7, 105) qui apparaît 9 fois.
  • (2, 120) qui apparaît 8 fois.
  • (0, 135) qui apparaît 7 fois.
  • (9, 105) qui apparaît 7 fois.
  • (-2, 135) qui apparaît 6 fois.
  • (-5, 150) qui apparaît 6 fois.
On peut alors les tracer les deux plus probables, par exemple :

(11, 90) (6.735557395310443e-16, 11.0) (3, 120) (-1.4999999999999993, 2.598076211353316)

Retour
Traitement d'image : Hough transform
15 mai 2013
Sommaire général