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 :

Algorithme modifiant la forme d'une courbe


Sujet :

Algorithmes et structures de données

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 74
    Points : 23
    Points
    23
    Par défaut Algorithme modifiant la forme d'une courbe
    Bonjour !


    Je suis en charge de trouver ou développer un algorithme permettant de modifier une surface déjà existante.

    C'est à dire :

    Voici un exemple :

    1) J'ai obtenu un surface grâce a une cartographie .

    2) On souhaite rajouter des points , prenons un unique point, il serait écarté de l'ensemble de la surface.

    L'idée de l'algorithme (j'imagine différent à chaque fois)serait de pouvoir :

    - 1er niveau : de modifier la surface directement et d’interpoler le point ( on obtiendrais un pic au milieu de la surface )

    - 2eme niveau :d'interpoler le point mais également de rehausser les points voisins ( juste autour du point rajouté ) pour obtenir une sorte de lissage , faible certes

    - 3eme niveau : effectue la même chose que le 2ème niveau mais impacte la deuxième série de points autour du point rajouté
    Ainsi le lissage sera plus agréable

    Plus le niveau sera élevé plus la forme de la surface sera lisse et harmonieuse.

    Les cartographies seraient de format 16 x 16 .

    L'idée à respecter serait que c'est sur les les points de base (ceux du fichier) que l'on viendrait bouger/modifier pour obtenir une sorte de lissage ( je n'ai pas le terme exacte )autour du point que l'on à rajouter


    J'ai pensé aux interpolations de plusieurs degrés , NURBS, subdivision, lissage par algorithme...

    Mais toutes ces méthodes rajouteraient des points, de mon côté de je souhaite modifié les miens pour qu'on obtienne quelque chose de plus ou moins harmonieux / Lisse

  2. #2
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 057
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 057
    Points : 9 396
    Points
    9 396
    Par défaut
    Bonsoir,
    Pour un certain couple (x0,y0), la nouvelle valeur ne doit plus être Z1 mais Z2.
    On va donc calculer Z3 = Z2-Z1, qui servira de base à l'algorithme.

    Ensuite, selon le lissage que l'on veut obtenir, on va bâtir un pic plus ou moins pointu autour de ce couple (x0,y0).
    L'option 1, c'est qu'on modifie uniquement le point (x0,y0)
    Puis on va construire des cercles autour de ce point (x0,y0).
    Pour chaque couple (xi,yj), on va donc calculer la distance D entre ce point (xi,yj) et le point (x0,y0), et on va calculer DZ = Z3 * exp ( - k * D2/2)
    Cette fonction est assez classique , et donne des dégradés sympathiques.
    L'idée est de réhausser chaque point de cette valeur DZ.
    Si on choisit un coefficient k très grand, on va avoir un pic très pointu. Et si k est proche de 0, ça revient à réhausser tous les points quasiment de la même hauteur.

    Avec cet algorithme, tous les points qui sont à X centimètres du centre sont tous remontés de la même façon.
    Dans ton schéma, si on remonte le point tout à droite de 0.5, on a peut être envie que le point qui est rouge foncé ne monte pas, parce qu'il est déjà très haut, alors que le point de coordonnées ( -2,0) devrait monter de 0.1 ou 0.2.

    Dans ce cas, c'est un peu plus compliqué.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 74
    Points : 23
    Points
    23
    Par défaut
    Effectivement , Merci beaucoup !

    par contre j'ai une autre petite demande :


    Une / Un méthode / algorithme


    1) Je choisis à la base une forme souhaitée à la base parmis une bibliotheque
    (mesh/surf matlab) de forme 16x16 entre 0 et 1 :

    Fig1 :
    Nom : WyD8l.png
Affichages : 750
Taille : 23,5 Ko

    2) Je sélectionne un essai ( tableau 16x16 également les valeurs peuvent être élevée) que l'on aurait modélisé grâce à matlab (mesh/surf) :

    Fig2 :
    Nom : 08.gif
Affichages : 782
Taille : 21,2 Ko


    L'idée est qu'on souhaite modifier les valeurs de l'ESSAI (Fig 2) pour qu'il ressemble à la forme de base (Fig 1) . ( on indique qu'il s'agit de Morphisme lié à la cartographie )

    La base ne sera pas modifié, elle sert de repère à la modification de l'essai...

    S'agirait-il de morphing? c'est considéré comme un morphisme de cartographie


    merci Encore

  4. #4
    Membre éprouvé
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2009
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 552
    Points : 1 060
    Points
    1 060
    Par défaut
    Citation Envoyé par Thornn654 Voir le message
    S'agirait-il de morphing? c'est considéré comme un morphisme de cartographie
    A mon sens non. Un morphing serait une transformation "continue" d'une surface vers une autre.

    Pour ce que je comprend, tu ne fais qu'ajouter des points de contrôle pour calculer un modèle de surface. Tu ne fais pas de transformation entre les deux modèles de surface obtenu.

    En cartographie, l'algorithme que tu recherches s'inscrit dans la catégorie "interpolation spatiale". Il existe de nombreuses méthodes pour ça. Tu trouveras un cours plutôt bien illustré sur le site de l'ENSG.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 74
    Points : 23
    Points
    23
    Par défaut
    L'idée est de calquer la forme de la Figure 1 et de s'arranger pour que la Figure 2 soit de la même forme que la 1 tout en gardant l'ordre de grandeur initiale.

    L'interpolation spatiale fonctionne sur un élément dont on ne connais aucun point, Or moi je connais l'ensemble des points ( matrice 16x16 ) donc le maillage je l'ai déjà , je souhaite trouver un moyen de modifier ma seconde Figure pour qu'elle ressemble à celle choisis dans la bibliothèque (Figure1), tout en sachant que l'ordre de grandeur de la seconde figure doit être conserver

  6. #6
    Membre éprouvé
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2009
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 552
    Points : 1 060
    Points
    1 060
    Par défaut
    Citation Envoyé par Thornn654 Voir le message
    L'interpolation spatiale fonctionne sur un élément dont on ne connais aucun point, Or moi je connais l'ensemble des points ( matrice 16x16 ) donc le maillage je l'ai déjà , je souhaite trouver un moyen de modifier ma seconde Figure pour qu'elle ressemble à celle choisis dans la bibliothèque (Figure1),
    Interpolation spatiale : Tu connais des valeurs pour un ensemble de points, tu veux interpoler ces valeurs en d'autres points. Tu es peut-être en train de faire un sorte de pondération/moyenne entre deux surfaces définies par des grilles.

    Citation Envoyé par Thornn654 Voir le message
    tout en sachant que l'ordre de grandeur de la seconde figure doit être conserver
    Mathématiquement, ça se traduit comment? C'est ça qui va donner le "poids" de la surface 2 par rapport à la surface 1.

    "Physiquement", tes deux surfaces correspondent à quoi? Des mesures à des dates différentes?

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 74
    Points : 23
    Points
    23
    Par défaut
    La première surface est juste là pour servir de base, elle est choisis par l'utilisateur selon ses choix :
    Dimensions 16 x 16 avec valeur de Z = [0;1]

    La seconde surface est un essai sélectionne, 16 x 16 par contre les valeurs de Z peuvent varier et dépendent de ce qui est choisis ( un débit, une pression, un taux )

    L'objectif est que l'on obtienne la silhouette (pas parfaitement) de la figure 1, sauf que les valeurs à la fin de la transformation doivent être semblable à celles de l'essai.

    Je pensais chercher des relations entre les points de la forme de base pour les appliquées ensuite dans la figure 2

    Et pour le moment je n'ai rien trouvé qui semble correspondre à ce que je cherche , je pense devoir faire tout moi même

  8. #8
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 057
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 057
    Points : 9 396
    Points
    9 396
    Par défaut
    Donc , si je comprend bien l'exercice qu'on t'a demandé de faire,
    Tu as une surface 2, avec 16X16 points (x,y) par exemple, et pour chaque couple (x,y), une hauteur Z2 dont on se moque totalement.
    Et tu as par ailleurs une surface 1, avec NxP points (x',y'), et pour chaque point, une hauteur Z1.

    Et l'objet de l'exercice, c'est de trouver pour chacun des 16x16 couples (x,y) une valeur Z3, qui se rapproche le plus possible de la surface 1.

    Voici une solution pas très coûteuse en terme d'algorithme : Pour chacun des 16x16 couples (x,y), trouver le couple (x',y') parmi les NxP points de la' surface 1, telle que la distance entre (x,y) et (x',y') soit minimale.
    Et estimer la hauteur Z3 : Z3(x,y) = Z1(x',y')

    La surface obtenue ne sera pas parfaite, mais une bonne estimation de la surface recherchée.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  9. #9
    Membre éprouvé
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2009
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 552
    Points : 1 060
    Points
    1 060
    Par défaut
    Citation Envoyé par Thornn654 Voir le message
    Et pour le moment je n'ai rien trouvé qui semble correspondre à ce que je cherche , je pense devoir faire tout moi même
    Tu vas surtout devoir définir clairement ton problème et te raccrocher à des concepts mathématiques... Là, tu en es encore à des critères subjectifs et des concepts flous.

    Citation Envoyé par Thornn654 Voir le message
    L'objectif est que l'on obtienne la silhouette (pas parfaitement) de la figure 1, sauf que les valeurs à la fin de la transformation doivent être semblable à celles de l'essai.
    Tu cherches une transformation : Comment est-elle définie? Quels sont ces paramètres (qui sont ceux que tu cherches au final si je comprend bien)?

    Tu cherches à épouser au mieux surface après cette transformation : Qu'est-ce qui indique qu'une transformation est meilleure qu'une autre? Comment tu définis la distance entre deux surfaces?

    Normalement, à ce stade, tu es déjà en terrain connu : l'optimisation (quels sont les paramètres de ma transformation qui minimise la distance entre la surface obtenue après transformation et la surface visée).

    PS : J'ai du mal à comprendre ton cas d'usage. En général, quand un utilisateur choisi un modèle, il donne la nature de la surface, pas la surface elle même. Tu connais alors les paramètres à calculer : Ils sont ceux qui définissent le plan, la cubique, la surface polynomiale de degré N choisie par l'utilisateur, etc.

  10. #10
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 74
    Points : 23
    Points
    23
    Par défaut
    Je suis désolé, j'ai du mal à m'exprimer sur ce sujet.

    - ce qui est commun aux deux figures, c'est que ce sont chacune des surfaces, de même dimensions.

    ---> Il faut obtenir une forme similaire à la figure numéro 1, tout en gardant l'ordre de grandeur ( valeur de Z2 ) pour la figure numéro 2.

    Je ne sais pas comment l’exprimer autrement ,

    Je souhaite trouver une méthode qui permettrait en donnant une série de valeurs selon Z2 avec lesquelles on obtiendrait une surface (comme la figure 2 ), de voir cet algorithme les modifiés ( les valeurs selon Z2 ) pour obtenir la même forme ( celle de la figure 1 ) que celle qu'aura choisis un utilisateur comme modèle.

    j'avais pensé utilisés des Splines / NURBS , polynômes d'interpolations ou autre sur la figure modèle pour trouver une sorte de relations entre les points et ensuite de les appliquées ensuite aux valeurs de ce qu'on souhaite transformé pour obtenir une forme similaire.

  11. #11
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 74
    Points : 23
    Points
    23
    Par défaut
    Personne n'a d'idée ?

    La méthode des moindres carrés pourrait elle marcher ici ?

  12. #12
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 057
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 057
    Points : 9 396
    Points
    9 396
    Par défaut
    Tu n'arrives pas à formuler ton besoin en langue française.
    Quand on essaie de t'aider à le formuler, tu ne lis pas les messages, ou en tout cas, tu ne réponds pas.

    Je ne vois plus qu'une chose, essaie de t'expliquer dans une autre langue que tu maîtrises mieux.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  13. #13
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 74
    Points : 23
    Points
    23
    Par défaut
    Quel humour !


    ce que je sais après de le recherche c'est que ce genre d'algorithme semble être dans l'optimisation ou le traitement de l'image, je ne me suis jamais atardé sur ce genre de problème d’où ma difficulté à m'exprimer et à trouver réellement ce que je souhaite trouver.


    Je veux adapter la forme d'une surface ( la modifier ) pour qu'elle épouse (qu'elle prenne ) la forme d'une autre .

  14. #14
    Membre expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2013
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 563
    Points : 3 404
    Points
    3 404
    Par défaut
    Citation Envoyé par Thornn654 Voir le message
    Quel humour !


    ce que je sais après de le recherche c'est que ce genre d'algorithme semble être dans l'optimisation ou le traitement de l'image, je ne me suis jamais atardé sur ce genre de problème d’où ma difficulté à m'exprimer et à trouver réellement ce que je souhaite trouver.


    Je veux adapter la forme d'une surface ( la modifier ) pour qu'elle épouse (qu'elle prenne ) la forme d'une autre .
    En gros, tu veux créer une surface identique à une pré-définie, mais sur une échelle différente?

  15. #15
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 459
    Points
    13 459
    Par défaut
    Bonjour,

    ça m'étonnerait puisque le cube est toujours de 16x16x1
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  16. #16
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 74
    Points : 23
    Points
    23
    Par défaut
    Enfaite au final ça aurait été l'idée, mais sur Z.

    X et Y seront toujours identiques 1 à 16 .


    Mais dans un premier temps je voudrais savoir comment faire pour obtenir la même forme de surface qu'une autre ( qui serait choisis volontairement )

  17. #17
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 459
    Points
    13 459
    Par défaut
    Ahhhhhh, tu cherches la similitude à appliquer (ici homothétie + translation) la moins fausse aux vues de points prédéterminés ?

    Dans ce cas là, on a la réponse à la question de Bretus: "Qu'est-ce qui indique qu'une transformation est meilleure qu'une autre?"
    Il faut l'écart le plus faible pour un couple (rapport d'homotétie, distance de translation) donné.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  18. #18
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 74
    Points : 23
    Points
    23
    Par défaut
    si on applique ce principe à chaque points de ma surface, elle finirait par être semblable?

    edit :

    il est mentionné que dans une homothétie il y a un agrandissement entre les deux éléments, ce que je ne souhaite pas ...
    La surface modèle et la surface à modifier ont toutes les deux 1 à 16 pour X et Y.
    Seules les valeurs de Z selon le couple X et Y varient ...

  19. #19
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 459
    Points
    13 459
    Par défaut
    elle finirait par être semblable?
    Par la force des choses puisque c'est une similitude. Le nom est clair. Tu transformes ton idéal, pas ta position de départ, dont, finalement, on se moque.
    à chaque points
    La transformation est globale et non pour chaque point.

    Citation Envoyé par ZenZiTone
    En gros, tu veux créer une surface identique à une pré-définie, mais sur une échelle différente?
    Citation Envoyé par Thornn654
    au final ça aurait été l'idée
    Citation Envoyé par Thornn654
    Le soucis c'est que je ne souhaite pas d'agrandissement.
    Faudrait voir à voir à pas se contredire ...
    Tu changes l'échelle ou tu ne changes pas l'échelle.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  20. #20
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 74
    Points : 23
    Points
    23
    Par défaut
    Sur X et Y les valeurs sont les mêmes : 1, 2 ,3 jusqu’à 16.

    sur Z logiquement ça change , mais je souhaite les ramenés de façon a ce qu'on ai plus ou moins ( précision, erreur ) deux surfaces identiques.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. modifier la forme d'une image
    Par ayachimi dans le forum Images
    Réponses: 1
    Dernier message: 16/05/2011, 15h49
  2. Réponses: 1
    Dernier message: 03/05/2011, 17h25
  3. [Qt] Modifier la forme d'une fenetre
    Par FunK92 dans le forum Qt
    Réponses: 2
    Dernier message: 30/04/2009, 19h20
  4. algorithme detection de pics dans une courbe
    Par bfb dans le forum Algorithmes et structures de données
    Réponses: 11
    Dernier message: 31/03/2006, 11h08
  5. [VB.NET] [Forms] Modifier le fond d'une ligne
    Par maitrebn dans le forum Windows Forms
    Réponses: 3
    Dernier message: 12/05/2004, 16h53

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