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 :

Faire pivoter une image dans un graphique [Débutant]


Sujet :

MATLAB

  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2008
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 90
    Par défaut Faire pivoter une image dans un graphique
    Bonjour,

    Je dois faire pivoter une image dans un graphe "surf", comment dois-je m'y prendre sur Matlab? En d'autres mots, mon image est inclinée et j'aimerais par exemple que ses côtés soient parallèles aux axes x et y.

  2. #2
    Expert confirmé
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Par défaut
    Tu veux le faire "à la main" ou en ligne de commande ?

    A la main : il y a un joli bouton normalement au-dessus du graphe (Rotate 3D)

    En ligne de commande (plus précis mais il faut trouver les bons paramètres) :

  3. #3
    Membre confirmé
    Inscrit en
    Novembre 2008
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 90
    Par défaut
    A la main ça me va car les paramètres ne seront pas constants d'une image à l'autre.

    Mais Rotate 3D sert à modifier la vue de l'objet et ce n'est pas ce qui m'intéresse.

    Pour une vue donnée, je dois bouger l'objet image sans bouger les axes. Ce serait bien de pouvoir prendre les coordonnées de deux points sur l'image et de les modifier manuellement et que le programme recalcule de nouvelles coordonnées pour tous les autres points de l'image. Je ne sais pas si c'est faisable ou s'il y a une autre méthode.

  4. #4
    Expert confirmé
    Avatar de duf42
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2007
    Messages
    3 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Par défaut
    Dans ce cas, tu peux utiliser GINPUT pour récupérer les coordonnées de tes points et il te suffit ensuite de coder le calcul de rotation de ton image et de la réafficher correctement

  5. #5
    Expert confirmé
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Par défaut
    Aaaaaaaaaaah ! Je n'avais rien compris (je le sentais un peu à vrai dire).

    Ce que tu cherches c'est peut-être IMROTATE alors ?

  6. #6
    Membre confirmé
    Inscrit en
    Novembre 2008
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 90
    Par défaut
    En effet Caro-Line IMROTATE me permet de faire ce que je veux mais maintenant je suis perdue dans la matrice résultat.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    x = Cor3(:,1);
            y = Cor3(:,2);
            [x1,y1] = meshgrid (linspace (min(x)+0.001,max(x)-0.001,500), linspace ( min(y)+0.001, max(y)-0.001, 500)); % Pour pouvoir utiliser la fonction 'surf'
            z1 = griddata(x,y,Moy,x1,y1);
    Fig = [x1 y1 z1];      
            RotationFig = imrotate (Fig, 25);
    Ci-dessus c'est le code que j'ai fait et qui fonctionne. Mon problème maintenant est de me retrouver dans la matrice de résultat. J'aimerais enlever des points de la matrice RotationFig qui correspondent à une valeur inférieure à un z1 donné. Est-ce que quelqu'un peut m'aider à y voir plus clair?

  7. #7
    Membre confirmé
    Inscrit en
    Novembre 2008
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 90
    Par défaut
    Vu que personne ne répond, je vais poser une autre question:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            Fig = [x1 y1 z1];      
            RotationFig = imrotate (Fig, 25);
    x1, y1 et z1 sont des vecteurs colonne. La fonction IMROTATE transforme les vecteurs pour faire une image en pixels, ce que je ne veux pas. Y'a t'il une autre manière d'utiliser cette fonction pour garder 3 vecteurs après rotation?

  8. #8
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 316
    Par défaut
    Citation Envoyé par MTN84 Voir le message
    Y'a t'il une autre manière d'utiliser cette fonction pour garder 3 vecteurs après rotation?
    Tu devrais chercher des informations sur ce qu'est une matrice de passage ou de transformation... (dans le forum algorithme par exemple)

    Voir aussi la documentation : Transforming Objects

  9. #9
    Membre confirmé
    Inscrit en
    Novembre 2008
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 90
    Par défaut
    Merci Dut mais en fait j'ai oublié de clore ce sujet. J'ai complètement changé ma méthode de travail et je n'ai plus de problème à ce sujet.

  10. #10
    Membre confirmé
    Inscrit en
    Novembre 2008
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 90
    Par défaut
    Pour faire pivoter tous les points du graphe, il suffit de passer en coordonnées polaires avec CART2POL, de modifier l'angle et de repasser en coordonnées cartésiennes avec POL2CART. Je ne sais pas pourquoi je n'y ai pas pensé plus tôt!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [OpenOffice][Texte] Faire pivoter une image dans Writer
    Par margote dans le forum OpenOffice & LibreOffice
    Réponses: 9
    Dernier message: 19/05/2017, 01h26
  2. [VB6 ] Comment faire pivoter une IMAGE
    Par Lucas42 dans le forum VB 6 et antérieur
    Réponses: 23
    Dernier message: 09/05/2006, 18h06
  3. Comment faire défiler une image dans un DBImage
    Par kolac dans le forum Bases de données
    Réponses: 1
    Dernier message: 08/04/2006, 14h45
  4. Faire pivoter une image dans TImage
    Par Bourak dans le forum Langage
    Réponses: 4
    Dernier message: 17/03/2006, 09h51
  5. Comment insérer une image dans un graphique?
    Par Leclair2000 dans le forum Composants VCL
    Réponses: 3
    Dernier message: 23/05/2005, 10h29

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