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

MATLAB Discussion :

Interpolation nuage de points 2D à rectangle


Sujet :

MATLAB

  1. #1
    Candidat au Club
    Inscrit en
    Juin 2010
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 16
    Points : 4
    Points
    4
    Par défaut Interpolation nuage de points 2D à rectangle
    Bonjour,

    Voici l'exposition de mon problème.
    Je dispose d'un nuage de points en 2D dont je connais les coordonnées. La forme que j'obtiens en faisant un tracé sur excel est courbe et non régulière (une sorte de rectangle courbé en prenant les contours).
    Il faudrait que je l'interpole à un rectangle droit classique.

    Comment puis-je faire ?

    Merci pour vos conseils.

  2. #2
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Bonjour,

    Quelles sont les contraintes? Le rectangle peut-il être orienté?

  3. #3
    Candidat au Club
    Inscrit en
    Juin 2010
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 16
    Points : 4
    Points
    4
    Par défaut
    Je ne comprends pas ce que tu veux dire Magelan.
    Voici en pièce jointe mes coordonnées actuelles (tracées sous excel) et l'interpolation que je veux en faire (un maillage rectangulaire simple).

    Je sais que je dois utiliser une technique d'interpolation sous Matlab mais je ne vois pas bien laquelle. Griddata ne me semble pas spécialement adapté car j'ai seulement des coordonnées x et y. Mes coordonnées ne sont pas monotones donc ça ne va pas aller pour interp.
    Les moindres carrés peuvent me permettre d'approximer à des lignes mais le contour obtenu ne sera pas un rectangle je pense.

    J'ai pu lire des choses sur les splines et la méthode d'interpolation inverse distance. En savez vous plus ?

    Merci
    Images attachées Images attachées  
    Fichiers attachés Fichiers attachés

  4. #4
    Candidat au Club
    Inscrit en
    Juin 2010
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 16
    Points : 4
    Points
    4
    Par défaut
    Bon apparemment personne ne voit.

    Pourtant celà m'a l'air assez courant. Pour représenter plus clairement des résultats de thèse par exemple, les données sont souvent extrapolées à un rectangle représentant arbitrairement les résultats pour plus de clarté.

    Svp c'est important pour mon stage !

  5. #5
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Bonjour,

    c'est peut-être courant, mais je ne vois pas ce que tu veux faire, pour moi il existe de nombreuse façon de définir un rectangle par rapport à ton nuage de points...

    Aurais-tu un exemple du résultat que tu désires obtenir?

  6. #6
    Candidat au Club
    Inscrit en
    Juin 2010
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 16
    Points : 4
    Points
    4
    Par défaut
    J'aimerais que les 4 points qui font les points extérieurs (coins) de mon nuage de points (cf document excel ci-avant) soient aux 4 coins du rectangle et que les autres points soient placés en conséquence si tu vois ce que je veux dire.

  7. #7
    Candidat au Club
    Inscrit en
    Juin 2010
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 16
    Points : 4
    Points
    4
    Par défaut
    Il faut une origine au repère de mon rectangle. Je pensais prendre un des 4 coins extérieurs de mon nuage de points comme étant l'origine (le seul point qui ne sera donc pas extrapolé).

    Si tu ne vois toujours pas ce que je veux faire magelan, voici un schéma du rectangle dans lequel je veux extrapoler mes données.

    Tu as parlé de nombreuses méthodes, peux tu m'en citer quelque unes et je verrai si ça correspond à mon problème!
    Images attachées Images attachées  

  8. #8
    Nouveau membre du Club
    Inscrit en
    Octobre 2008
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 48
    Points : 34
    Points
    34
    Par défaut
    Comme le dit magelan ce que tu veux faire n'est pas clair du tout pour le lecteur.

    Tu veux "déformer" ton pseudo-rectangle vers un vrai rectangle, ie, modifier effectivement les résultats (et donc la fonction) sous-tendus par ton nuage de points ? (auquel cas ça n'a rien à voir avec une interpolation à proprement parler).

    Ou tu veux calculer, à partir de la fonction sous-tendue par ton nuage de points, la valeur de cette fonction sur les pixels de ton vrai rectangle ?
    Auquel cas c'est effectivement une interpolation, et est-ce que si tu utilises un fonction de tracé genre surf, tu ne peux pas juste passer l'option 'shading' à la valeur 'interp' ?

  9. #9
    Candidat au Club
    Inscrit en
    Juin 2010
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 16
    Points : 4
    Points
    4
    Par défaut
    Oui j'ai compris que ce n'était pas clair pour vous mais ce n'est vraiment pas simple pour vous expliquer le problème.

    Je ne veux pas faire d'interpolation extérieurement à mon "pseudo rectangle" et avoir de nouvelles valeurs. Je veux replacer sur un rectangle les points de mon pseudo-rectangle donc les valeurs en ces points ne changent pas. Je leur attribuerai par la suite des valeurs expérimentales et je plotterai le tout sur la forme de streamlines par exemple.

    Je pense avoir compris comment procéder en effectuant un changement de coordonnées c'est à dire en appliquant une base orthonormée (u,v) à mon rectangle au coin bas gauche. (x,y) sont les coordonnées de mes points de départ, on a donc :
    u=u(x,y) et v=v(x,y)

    Je fais ensuite une sorte de régression linéaire. J'écris à l'ordre 2 par exemple : u=a+b*x+c*y+d*xy+e*x²+f*y²... avec z vecteur colonne ayant pour valeurs a,b,c,d,e,f

    Pour celà sur matlab je définis une matrice A avec des colonnes x,y,xy,x²,y²
    Je définis également un vecteur p prenant des valeurs régulièrement espacées sur le rectangle final (par exemple en partant de l'origine 1,2,....).
    Je résouds le système Az=p avec la commande matlab : z=A\p

    Bon si vous arrivez à me suivre, le souci est que j'ai 72 équations (pseudo rectangle 8*9) pour seulement 6 inconnues même si la résolution fonctionne. Celà fait beaucoup d'équations qui ne servent à rien, il faudrait que je monte à un ordre énorme.

    Je pensais faire un calcul d'erreur (intervalle de confiance) en me servant des autres équations ou faire un calcul pour chacune des pseudo courbes formées par le nuage de points (j'aurais ainsi 8 équations pour 6 inconnues à chaque fois dont 2 qui pourraient servir à calculer l'erreur)

    Qu'en pensez vous ?

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2010
    Messages : 58
    Points : 53
    Points
    53
    Par défaut
    je suis la conversation avaec amusement, je dois dire que je comprend pas moi non plus ce que tu veux...

    Si mon idee est bonne, tu un des valeurs qui te font un rectangle pas droit. Tu veux avoir un rectangle droit quadrillé avec dans chaque case un point. Donc en gros, tu veux repositionner tes points?

    Pourquoi ne pas le faire avec un triage "intelligent" des tes points? Si tu connais le nombre de lignes et de colonne ou que tu peut le déterminer. Aprés c'est assez facile a faire... Tu trie façon a reconstituer ton n*m, tu regarde les extrémité et ensuite corrige les point en conséquence...

    A la limite quitte a faire ce genre de correction, touve que les extrémité, le n*m et créé de toute pièce les point intermédiaire...

    J'imagine que j'ai rien compris au problème, mais j'avais envie d'ecrire^^

  11. #11
    Candidat au Club
    Inscrit en
    Juin 2010
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 16
    Points : 4
    Points
    4
    Par défaut
    Tu as exactement compris ce que je voulais faire.

    Ma méthode avec le changement de coordonnées convient à mon maître de stage donc je ne vais pas vous embêter plus sur ce sujet.

    J'ai un petit souci maintenant pour utiliser la fonction contour mais je change de sujet.

    Merci pour votre aide.

  12. #12
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Pour info, ce n'était pas une homographie ce que tu cherchais à faire? Comme par exemple comme dans cette contribution du forum algorithme?

    C'est à dire de chercher la matrice de passage entre les sommets de ton quadrilatère déformé et le rectangle final et appliquer cette matrice de passage aux points à l'intérieur de ton nuage de points?

Discussions similaires

  1. méthodes d'interpolation d'un nuage de points 3D
    Par gpcbitnik38 dans le forum Mathématiques
    Réponses: 7
    Dernier message: 21/12/2011, 11h24
  2. Interpolation d'un nuage de points
    Par Massploper dans le forum OpenCV
    Réponses: 2
    Dernier message: 29/11/2011, 14h22
  3. Interpolation de surface 3D a partir d'un nuage de point (autre que la triangularisation) Matlab
    Par kriskadespe dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 23/07/2009, 17h02
  4. Interpolation à partir d'un nuage de points
    Par phy4me dans le forum Fortran
    Réponses: 12
    Dernier message: 04/04/2008, 20h46
  5. interpolation couleur entre nuage de points
    Par soubre dans le forum OpenGL
    Réponses: 2
    Dernier message: 02/07/2005, 15h52

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