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 :

Gui Matlab - Recuperation sortie imagesc


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 7
    Par défaut Gui Matlab - Recuperation sortie imagesc
    Bonjour à tous,

    Je suis etudiante en derniere année d'ecole d'ingénieur et actuellement en stage de fin d'études.
    Pourrais-je avoir un coup de main pour me débloquer?

    J'affiche une imagesc dans l'axe spectrogram:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    axes(handles.spectrogram);
    imagesc(T,v,20*log10(Im),[-20 20]);
    Jusque la, tout va bien.

    Maintenant, je dois afficher sur un autre axe axes6, une sorte de zoom de ce spectrogramme autour d'une valeur_cliquee dans un tableau par l'utilisateur.

    Je recupere bien la valeur cliquée, j'arrive aussi à faire une copie de mon spectrogramme entier.
    Maintenant, je n'arrive pas à accéder à une zone donnée dans cette image de spectrogramme.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    fh=figure;
    newAxs=copyobj(handles.spectrogram, fh);
    k=[0 5 600 420];
    set(newAxs,'Units','pixels','Position',k);
    saveas(fh, 'figure_file.png');
    axes(handles.axes6);
    imshow('figure_file.png');
    J'affiche l'image .png entiere dans mon axe. Mais comme k contient la hauteur, largeur, position à droite, position à gauche, je ne parvient pas à me centrer correctement.

    Y'a t-il d'autres solutions ?
    J'espere avoir été claire.

    Mercii!

  2. #2
    Modérateur

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Août 2014
    Messages
    1 295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2014
    Messages : 1 295
    Par défaut
    Bonjour,

    Dans un premier temps, j'aimerais comprendre pourquoi tu sauvegardes ton image plutôt que de directement utiliser les données déjà présentes dans ton workspace? Je n'ai pas non plus très bien compris sous quelle forme se présente les informations données par l'utilisateur à propos de l'emplacement du zoom et de ses dimensions. Peux tu être un peu plus explicite sur ce point?

  3. #3
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 7
    Par défaut
    Dans un premier temps, j'aimerais comprendre pourquoi tu sauvegardes ton image plutôt que de directement utiliser les données déjà présentes dans ton workspace?


    -> le calcul du spectro est un peu long à effectuer. C'est pourquoi je souhaitais partir de l'image obtenue et non pas la recalculer.


    Je n'ai pas non plus très bien compris sous quelle forme se présente les informations données par l'utilisateur à propos de l'emplacement du zoom et de ses dimensions. Peux tu être un peu plus explicite sur ce point?


    -> On repere des max de puissance sur le spectro, et mon programme les repere et les liste dans un tableau. Lorsque l'utilisateur clique sur une des valeurs du tableau, je souhaiterais qu'un zoom de mon spectro centré sur cette valeur s'affiche (pour voir plus en détail la zone avec le max de puissance)

  4. #4
    Modérateur

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Août 2014
    Messages
    1 295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2014
    Messages : 1 295
    Par défaut
    le calcul du spectro est un peu long à effectuer. C'est pourquoi je souhaitais partir de l'image obtenue et non pas la recalculer.
    Oui, d'accord. Mais tu as déjà les données de ton spectro dans T. Il te suffit de travailler sur ces données pour avoir le zoom que tu désires.

    On repere des max de puissance sur le spectro, et mon programme les repere et les liste dans un tableau. Lorsque l'utilisateur clique sur une des valeurs du tableau, je souhaiterais qu'un zoom de mon spectro centré sur cette valeur s'affiche (pour voir plus en détail la zone avec le max de puissance)
    D'accord, mais qu'est-ce que tu obtiens concrètement comme information dans ton vecteur k? Les coordonnées du point sur lequel tu désires zoomé? la taille de la fenêtre de zoom?

    Parce que cette phrase n'est pas très clair.

    Mais comme k contient la hauteur, largeur, position à droite, position à gauche
    Déjà ce n'est probablement pas dans le même ordre que ici: k=[0 5 600 420]; et qu'est-ce que tu entends par position à droite et position à gauche?

  5. #5
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 7
    Par défaut
    Bon, je me suis finalement débrouillé en tâtonnant pour trouver les valeurs de k adaptées.
    k= [left bottom width height]
    Et dans mon cas, la valeur left correspond à la valeur cliquée par l'utilisateur * 175.

    C'est un petit peu "degueu", mais ca fonctionne très bien ..

    Merci !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    left_value=valeur_cliquee*175;
    fh=figure;
    set(fh,'visible','off');
    newAxs=copyobj(handles.spectrogram, fh);
    k=[-left_value 0 4000 420];
    set(newAxs,'Units','pixels','Position',k);
    saveas(fh, 'figure_file.png');
     
    axes(handles.axes6);
    imshow('figure_file.png');

Discussions similaires

  1. programmer avec GUI Matlab
    Par slayer21 dans le forum Interfaces Graphiques
    Réponses: 32
    Dernier message: 12/05/2009, 16h03
  2. Première utilisation du GUI MatLab
    Par Emi.14 dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 18/02/2009, 09h44
  3. Problème GUI Matlab
    Par lfournie dans le forum Interfaces Graphiques
    Réponses: 6
    Dernier message: 11/08/2008, 12h04
  4. afficher un tableau xls sur GUI (matlab)
    Par wawrint dans le forum Interfaces Graphiques
    Réponses: 1
    Dernier message: 16/04/2008, 20h40
  5. recuperer sortie d'un programme console
    Par jmjmjm dans le forum C++
    Réponses: 10
    Dernier message: 27/02/2008, 15h21

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