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 :

Triangulation de Delaunay : stockage


Sujet :

Algorithmes et structures de données

  1. #1
    Membre du Club Avatar de Mayhem555
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 89
    Points : 46
    Points
    46
    Par défaut Triangulation de Delaunay : stockage
    Bonjour à tous.

    Je m'attaque en ce moment à la méthode de compression d'images par fractales (projet).

    Mais je bloque assez rapidement dès le début. (je suis sous MatLab 7 mais le problème est général).

    En supposant que j'ai choisi les points de la triangulation manuellement, et que la triangulation a déjà été effectuée, j'ai besoin de stocker chaque "petit morceaux" d'image (issu de la triangulation) dans une matrice différente. Le but étant par la suite de réaliser une comparaison de tout mes "petit morceaux"...

    Je ne sais vraiment pas comment réaliser ce stockage (sachant que j'ai des triangles, qu'ils sont de taille différente, et puis que de toute façon, je ne suis pas familier avec la pratique du traitement d'images...)

  2. #2
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Tu peux stocker des triplets de points 3D, non ?

  3. #3
    Membre du Club Avatar de Mayhem555
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 89
    Points : 46
    Points
    46
    Par défaut
    3D ? Non mais je travaille sur une image 2D (en niveau de gris qui plus est).

    Celà dit, penses tu que ce soit une bonne solution de créer une structure de donneés "Triangle", avec notamment les coordonnées (x,y) des pixels 3 sommets, et de pouvoir par la suite retrouver (et traiter) tous les pixels appartenant au triangle, à partir de ces 3 sommets ?

    Ca me parle plus que de stocker sauvagement des valeurs de pixels de triangles de taille et d'orientation variable dans une matrice...mais ça a l'air assez bourrin.

    Disons que cela revient à retrouver les (x,y) solution d'un système de 3 inéquations, mais, si je n'ai aucun souci à resoudre cela en math pure, j'ai l'impression que le fait que je travaille avec des pixels (dans un environnement discret donc) va me poser de sacrés problèmes

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 110
    Points : 130
    Points
    130
    Par défaut
    Sous Matlab, tu as déjà une fonction delaunay qui peut te générer un maillage Delaunay. Mais, ici, comme c'est qui fait toi même ton maillage, ca serait pas mal de voir comment Matlab gère le maillage genre un tableau des coordonnées (x,y) avec un tableau qui contient les sommets des triangles. Il te restera alors à créer toi-même ton tableau qui te donne l'info de ton image aux noeuds du maillage (ou au centre des triangles).

  5. #5
    Membre du Club Avatar de Mayhem555
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 89
    Points : 46
    Points
    46
    Par défaut
    Effectivement, sous Matlab, la fonction de Delaunay permet d'effectuer une triangulation à partir des n point (x,y) qu'on lui donne (c'est à dire une matrice 2*n), et il retourne une matrice où il donnes les sommets (non en pixel mais selon l'indice qu'ils ont dans la matrice en input) des k triangles tracés (ie : une matrice 3*k).

    Mais après j'ai besoin de connaitre chaque pixel et le triangle auquel il appartient...c c'est plus cho

  6. #6
    Membre éclairé
    Avatar de Kangourou
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    579
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 579
    Points : 859
    Points
    859
    Par défaut
    si tu veux les coord de chaque pixel, tu fais un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Nx = 100;
    Ny = 100;
    lx = 1:Nx;
    ly = 1:Ny;
    x = repmat(reshape(lx, [1 Nx]), [Ny 1]);
    y = repmat(reshape(ly, [Ny 1]), [1 Nx]);
    Ca te donne 2 matrices carrees avec les coord x et y de chaque pixel. Tu peux soustraire .5 si tu preferes les coordonnees des centres des pixels.


    Ensuite, pour savoir si un point est dans un triangle, tu as la fonction inpolygon, a laquelle il faut passer les coord du point (ou d'une serie de points) et des sommet du polygone.

    A+

  7. #7
    Membre du Club Avatar de Mayhem555
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 89
    Points : 46
    Points
    46
    Par défaut
    merci, je pense que cela peut m'aider. je vous dirai si j'ai réussi.

    Une petite question : je cherche (toujours sous matlab) à superposer un diagramme de triangulation de delaunay (que matlab trace avec triplot(.,.,.)) et mon image bitmap.

  8. #8
    Membre éclairé
    Avatar de Kangourou
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    579
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 579
    Points : 859
    Points
    859
    Par défaut
    affiche d'abord l'image, ensuite utilise 'hold on' pour forcer les graphes a se redessiner les uns sur les autres, puis dessine tes triangles avec triplot.

    A+

Discussions similaires

  1. [java] Triangulation de Delaunay (incrémentale)
    Par pseudocode dans le forum Contribuez
    Réponses: 64
    Dernier message: 05/06/2012, 17h30
  2. Réponses: 2
    Dernier message: 22/02/2009, 17h55
  3. Triangulation de Delaunay pour des carreaux troués
    Par Laurent Gomila dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 27/07/2005, 22h14
  4. triangulation de delaunay
    Par Smuk dans le forum Algorithmes et structures de données
    Réponses: 13
    Dernier message: 08/04/2005, 14h15

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