IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

Algortihme d'association de points 2D


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 81
    Par défaut Algortihme d'association de points 2D
    Bonjour,

    Je suis à la recherche d'un algorithme d'association de points 2D (x,y) en paquets (typiquement un rectangle). Le nombre de points est variable et se situe entre 1200 et 1500 environ.

    La méthode utilisée actuellement consiste à calculer les distances entre chaque point 2 à 2 et à seuiller mais c'est très consommateur de ressources...
    Quelqu'un aurait-il une méthode plus rapide ?

    Merci.

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    classer les points par distance x par exemple (qsort, O(N logN))

    puis calculer les distances (N)

    je l'ai fait pour des polygones quelquonques, et en gros c'est en 5*N*log(N)

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 81
    Par défaut
    Salut souviron34,

    Merci pour la réponse, mais pourrais-tu être un peu plus précis, je ne suis pas un expert en algorithmie et j'avoue ne pas avoir tout compris.

    Si je comprends bien la complexité pour N = 1300 par exemple reviendrait à 5*1300*log(1300) ~= 20 240 itérations, c'est çà ?

    Comment retrouve-t-on aussi les zones de points et leurs caractéristiques (taille de la zone par exemple)

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    en fait ca revient a de l'etiquetage, mais sur des points et non sur des images



    D'abord tu classes en x ;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
            ***
      *     ******
    *  *
      * * *          *
                      * ****

    deviendra :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
            7911
      2     81012131617
    1  4
      3 5 6          15
                      14 18192021
    puis tu etiquettes en prenant les points les uns a la suite des autres :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
            222
      1     2222222
    1  1
      1 1 1          3
                      3 3333
    comme c'est classe en x, des que en x tu as plus que ton seuil -> autre "paquet"

    si maintenant a x constant tu as plusieurs y, kif kif..

    j'ai un algo, je te posterais le principe exact...

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 81
    Par défaut
    Ok merci pour les illustrations, c'est beaucoup plus clair.
    Pour l'algo avec le principe exact, je suis preneur.

    Bonne soirée.

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    tu programmes en quoi ?

    le principe exact est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    tri en X des donneées
     
    intialisation d'un tableau d'indicateurs (taille du nombre de points)
     
    numero paquet = 0
    pour tous les points
        si indicateur = valeur initialisation
             appel d'une routine recursive qui explore le vosinage de'un point de chaque côté
       fin si
       numero paquet = numero paquet + 1
    fin pour
    la routine recursive est :

    routine ( pts, j, indics )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    point j appartient a paquet
    indicateur (j) = paquet
     
       pour point de j -> 0 (décroissant)
          si indicateur = valeur initialisation
               si distance est dans le seuil : 
                     appel routine recursive avec cet indice
               sinon
                      sortie pour
               fin si
          fin si
       fin pour
     
       pour point de j -> N (croissant)
          si indicateur = valeur initialisation
                si distance est dans le seuil : 
                      appel routine recursive avec cet indice
                sinon
                       sortie pour
                fin si
         fin si
      fin pour

Discussions similaires

  1. Mettre chaque point d'un graphe de la même couleur que la cellule associée
    Par ANGLIQUESOIG dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 18/09/2013, 18h43
  2. [XL-2007] nuage de points et etiquettes associées
    Par laduche31 dans le forum Excel
    Réponses: 2
    Dernier message: 23/01/2012, 14h20
  3. Associer un point à un objet
    Par Antoine_935 dans le forum Développement 2D, 3D et Jeux
    Réponses: 8
    Dernier message: 08/05/2009, 01h14
  4. [Débutant] Association de points à un id
    Par dwight dans le forum MATLAB
    Réponses: 15
    Dernier message: 26/03/2009, 23h24
  5. [Kylix] icone associée à un programme
    Par Anonymous dans le forum EDI
    Réponses: 1
    Dernier message: 22/03/2002, 09h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo