Publicité
+ Répondre à la discussion
Page 3 sur 3 PremièrePremière 123
Affichage des résultats 41 à 44 sur 44
  1. #41
    Futur Membre du Club
    Homme Profil pro
    Responsable fonctionnel SOGETI
    Inscrit en
    avril 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable fonctionnel SOGETI
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2011
    Messages : 25
    Points : 17
    Points
    17

    Par défaut

    Par contre j'ai tenté de modifier le code pour gérer la continuité "sphérique". Mon but étant d'appliquer cet algorithme à l'étiquetage de continents, îles et océans, et donc un océan sur le bord droit de l'image continu à gauche. On ne devrait trouver qu'un seul label et pas deux.

    J'ai essayé avec les modulos (code ci-dessous) tels que déjà implémentés dans l'algo du "Diamond Square". Mais cela ne marche pas. Une idée ?

    Code Delphi :
    1
    2
    3
    4
    5
     
         If ( (X>0)   And (fMatrixC[(X-1+W) Mod W,Y Mod H] = fMatrixC[X Mod W,Y Mod H]))             Then Root := CCunion(CCfind(PosI - 1),     Root);
          If ( (X>0)   And (Y>0) And (fMatrixC[(X-1+W) Mod W, (Y-1+H) Mod H] = fMatrixC[X Mod W,Y Mod H])) Then Root := CCunion(CCfind(PosI - 1 - W), Root);
          If ( (Y>0)   And (fMatrixC[X Mod W,(Y-1+H) Mod H] = fMatrixC[X Mod W,Y Mod H]))             Then Root := CCunion(CCfind(PosI - W),     Root);
          If ( (X<W-1) And (Y>0) And (fMatrixC[(X+1) Mod W, (Y-1+H) Mod H] = fMatrixC[X Mod W,Y Mod H])) Then Root := CCunion(CCfind(PosI + 1 - W), Root);

  2. #42
    Rédacteur/Modérateur
    Avatar de pseudocode
    Homme Profil pro Xavier Philippeau
    Architecte système
    Inscrit en
    décembre 2006
    Messages
    9 960
    Détails du profil
    Informations personnelles :
    Nom : Homme Xavier Philippeau
    Âge : 41
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : décembre 2006
    Messages : 9 960
    Points : 15 081
    Points
    15 081

    Par défaut

    Citation Envoyé par zuulcoder Voir le message
    Par contre j'ai tenté de modifier le code pour gérer la continuité "sphérique". Mon but étant d'appliquer cet algorithme à l'étiquetage de continents, îles et océans, et donc un océan sur le bord droit de l'image continu à gauche. On ne devrait trouver qu'un seul label et pas deux.

    J'ai essayé avec les modulos (code ci-dessous) tels que déjà implémentés dans l'algo du "Diamond Square". Mais cela ne marche pas. Une idée ?
    Le plus simple c'est de gérer spécifiquement les pixels qui assurent la continuité sphérique, c'est à dire les pixels sur les bords.

    Donc, une fois la double boucle effectuée, on s'occupe de fusionner les bords gauche/droit, puis ensuite les bords haut/bas.

    Code delphi :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    For Y := 0 to H - 1 do Begin
      For X := 0 to W - 1 do Begin
        (...)
      End;
    End;
     
    // merge left/right border
    Pos := 0;
    For Y := 0 to H - 1 do Begin
      if (Image1[0,Y] = Image1[W-1,Y]) then CCunion( CCfind(Pos), CCfind(Pos+W-1) );
      Pos := Pos + W;
    End;
     
    // merge top/bottom border
    Pos := 0;
    For X := 0 to W - 1 do Begin
      if (Image1[X,0] = Image1[X,H-1]) then CCunion( CCfind(Pos), CCfind(Pos+(H-1)*W) );
      Pos := Pos + 1;
    End;
     
    // Remove indirection...
    (...)

    (je ne maitrise pas trop Delphi )
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  3. #43
    Futur Membre du Club
    Homme Profil pro
    Responsable fonctionnel SOGETI
    Inscrit en
    avril 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable fonctionnel SOGETI
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2011
    Messages : 25
    Points : 17
    Points
    17

    Par défaut

    Citation Envoyé par pseudocode Voir le message
    Le plus simple c'est de gérer spécifiquement les pixels qui assurent la continuité sphérique, c'est à dire les pixels sur les bords.

    Donc, une fois la double boucle effectuée, on s'occupe de fusionner les bords gauche/droit, puis ensuite les bords haut/bas.

    (je ne maitrise pas trop Delphi )
    Pour quelqu'un qui ne maitrise pas Delphi tu te débrouilles plutôt bien
    Cela fonctionne

    J'ai mis à jour l'algo Delphi avec cette modif.

    Un grand merci pour ta disponibilité et tes conseils avisés

  4. #44
    Invité de passage
    Inscrit en
    janvier 2012
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : janvier 2012
    Messages : 1
    Points : 1
    Points
    1

    Par défaut Rapidité

    Bonjour,

    Quelqu'un a-t-il testé la vitesse en C et en Java pour confirmer (ou non) si le C va (beaucoup ?) plus vite que Java

    Merci

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •