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 :

Voisin d'un point d'une matrice


Sujet :

Algorithmes et structures de données

  1. #1
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2005
    Messages
    513
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 513
    Par défaut Voisin d'un point d'une matrice
    Bonjour a tous,
    voila j'aimerais savoir si vous aviez un algorithme pour avoir le nombre de voisins de tous les points d'une matrice contenant des booléens.
    Voila, merci par avance.
    Bob

  2. #2
    Membre éclairé Avatar de Biosox
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 298
    Par défaut
    Est-ce que tu arrives à être un peu plus explicite?

    En gros, tu as une matrice qui contient des booléens, et pour chacun de ses points tu veux connaître quoi exactement? Le nombre de voisins qu ivalent true? (Parce que le nombre de voisins tout court, c'est 4, a part 2 dans les coins et 3 dans les bords)...

    et comment veux-tu exprimer ton résultat? par une deuxième matrice qui contient des nombres entiers? Un peu comme le jeu le "démineur" ou chaque point indique combien il y a de mines dans les cases adjacentes?

    et est-ce que deux points sont considéré comme voisins si ils se touchent seulement par un angle? (en gros, est ce que M(i,j) est voisin de M(i+1, j+1))?

  3. #3
    Membre chevronné
    Profil pro
    Enseignant
    Inscrit en
    Avril 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2004
    Messages : 440
    Par défaut
    Mouais...

    En plus je vois pas bien quel autre algo que "tester les 4 voisins" (ou 8 si on considère les diagonales) tu comptes utiliser...

    Sinon si tu entends par voisins l'ensemble des booléens (disons à true) qui se touchent,alors là c'est plus dur... On peut utiliser des algos type croissance région, et même Fast marching par exemple qui est très rapide pour ce genre de cas (en gros c'est comme si autour du point considéré on propageait un liquide qui s'arrête à false et continue à true, puis qu'on comptait la surface du fluide)...

  4. #4
    Membre émérite
    Inscrit en
    Juin 2005
    Messages
    644
    Détails du profil
    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 644
    Par défaut
    soit Ai,j l'element d'interêt,
    on peut considere
    n=0;
    for i1:=max(i-1,matrice_LI_MIN),Min(i+1,MATRICE_LI_Max) do
    for j1:=max(j-1,matrice_COL_MIN),Min(j+1,MATRICE_COL_Max) do
    if ( i <> i1 ) or ( j <> j1 then
    begin
    inc(n); // l'element i1,j1 est un proche voisin ( touche coté ou angle)
    // qu'en faire ???
    // faute de formuler votre question de façon + précise ce n'est pas sur le site
    // alorithme que vous trouverez une réponse à votre soucis
    end;
    // n contient à la sortie 8 ( centre) ,5 (bord) ou 3 ( angle) si la matrice est
    // suffisement grande

  5. #5
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2005
    Messages
    513
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 513
    Par défaut
    désoler si je me suis mal exprimé.
    en fait j'ai deux matrice de taille identique, une contenant des booléens et une deuxieme d'entier.
    en fait je voulai recupéré dans la matrice contenant les entier, le nombre de voisin à true de la matrice correspondante.
    je ne sais pas si j'ai été tres explicite.

    par exemple la matrice de booleens est:

    T F T T T
    F F F F F
    T F T F T

    la matrice d'entier est alors

    0 2 1 2 1
    0 0 0 0 0
    0 2 0 2 0

    car pour chaque case je recupere le nombre de voisin a true.
    voila.


    PS: une case à au maximum 8 voisins (je compte les diagonales)

  6. #6
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    L'algorithme le plus rapide est de parcourir la matrice de booléen et d'incrémenter tous les voisins dans la matrice d'entier lorsque l'on tombe sur une case à true.

    --
    Jedaï

Discussions similaires

  1. Réponses: 7
    Dernier message: 29/03/2009, 06h07
  2. détecter les points d'extrimités dans une matrice
    Par kawther dans le forum Images
    Réponses: 0
    Dernier message: 15/01/2009, 22h52
  3. Placement de points (x,y,z) dans une matrice
    Par amarion dans le forum MATLAB
    Réponses: 8
    Dernier message: 10/04/2008, 14h45
  4. Compter les voisins d'une case dans une matrice
    Par Vivian Pennel dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 06/10/2007, 17h09
  5. calcule d'angle entre 3 points d'une matrice
    Par bmw13fr dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 08/04/2006, 18h56

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