C'est a toi de decider de la définition de "pratiquement confondues".
Tu commence par choisir une distance entre 2 couples (rho,theta) qui te permet de considerer 2 droites confondues. Par exemple {|rho1-rho2|<5 pixels} ET { angle(theta1,theta2) < 3° } => droites confondues.
Tu convertis cette distance (rho=5 pixels, angle=3°) en distance d'index (x=+/-3, y=+/-5) dans le tableau de l'accumulateur.
Ensuite, lorsque tu extrais tes extremas du tableau, tu dois verifier que cette distance est respectée. Un moyen de le faire, c'est de mettre a zéro toutes les cases autour du maximum et de réiterer la détéction.
1. Recherche du maximum global du tableau => case (x,y)
2. Calcul de la droite correspondante => new droite(rho,theta)
3. Mise a zero du voisinage du maximum => rectangle(x-3,y-3,x+3,y+3) = 0
4. retour a l'étape 1
Heu... Dans mon implémentation, les droites horizontales ont un théta proche de 90°.

Partager