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

Interfaces Graphiques Discussion :

Erreur : "undefined function or variable"


Sujet :

Interfaces Graphiques

  1. #1
    Membre du Club Avatar de pwfsic
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    56
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 56
    Points : 53
    Points
    53
    Par défaut Erreur : "undefined function or variable"
    Bonjour à tous,

    J'ai un problème avec les callback des push button. En effet, j'affiche une image dans l'interface graphique, et après avoir appuyé sur un push button, l'utilisateur peut sélectionner des régions d'intérêt sur les images.
    Mon problème est que une fois que le push button a été activé, les variables définies avant ont été oubliées par matlab.

    Voici une partie du code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    function ouvrir_Callback(hObject, eventdata, handles)
     
    [filename, pathname, filterindex]=uigetfile('*.*', 'Choisissez un fichier à ouvrir');
     
    %Lecture de l'image, et affichage de l'image dans le GUI 
     
    function selectionroi_Callback(hObject, eventdata, handles)
     
    axes(handles.axes1);
    BW=roipoly;
    [x, y]=find(BW==1);
    En fait je suis une débutante pour les interfaces graphiques, et je ne comprends pas bien comment récupérer la valeur de BW par exemple si je ne suis pas dans la fonction selectionroi.
    Sinon sur cet exemple, après avoir utilisé le bouton pour la sélection d'une région d'intérêt, je dois me servir de nouveau de la variable pathname définie au début et j'obtiens ceci :
    "undefined function or variable 'pathname'"
    ainsi que d'autres messages d'erreur (dont "error while evaluating uicontrol callback").

    J'ai essayé de faire fonctionner la fonction roipoly sans le pushbutton et ça fonctionne bien donc je ne pense pas que le problème vienne de là.
    Et j'ai lu ceci : http://www.developpez.net/forums/sho...light=callback
    , même si notre problème semble être le même, je n'arrive toujours pas à m'en sortir avec ces callback !

    Merci

  2. #2
    Expert éminent sénior
    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
    Points : 14 828
    Points
    14 828
    Par défaut
    Tu peux commencer en lisant ça : Les variables

    Pour pouvoir récupérer tes données plusieurs soltuions existent.
    Dans le cas de GUI la meilleure à mon humble avis est d'enregistrer les données que tu souhaitent réutiliser dans la structure handles :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    function ouvrir_Callback(hObject, eventdata, handles)
     
    [filename, pathname, filterindex]=uigetfile('*.*', 'Choisissez un fichier à ouvrir');
    handles.filename=filename;
    handles.pathname=pathname;
    guidata(hObject,handles);%sauvegarde
    %Lecture de l'image, et affichage de l'image dans le GUI 
     
    function selectionroi_Callback(hObject, eventdata, handles)
     
    axes(handles.axes1);
    BW=roipoly;
    [x, y]=find(BW==1);
    handles.BW=BW
    Quand tu auras besoin de t'en resservir dans les autres callbacks, handles étant passé en paramètres tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    filename = handles.filename;
    %etc...

  3. #3
    Membre du Club Avatar de pwfsic
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    56
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 56
    Points : 53
    Points
    53
    Par défaut
    Ok merci, ca marche, et c'est exactement ce que je voulais savoir !
    Je m'attendais à un truc très compliqué

    A bientôt

  4. #4
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2007
    Messages : 57
    Points : 63
    Points
    63
    Par défaut
    Personnellement j'utilise les appdata..... Regarde l'aide sur les fonctions SETAPPDATA, GETAPPDATA, ISAPPDATA et RMAPPDATA.

    En gros, ton code devient:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
     
    function ouvrir_Callback(hObject, eventdata, handles)
     
    setappdata(0,'hGui',gcf); %crée un appdata
    hGui = getappdata(0,'hGui'); %lui donne un nom d'accès direct
     
    [filename, pathname, filterindex]=uigetfile('*.*', 'Choisissez un fichier à ouvrir');
     
    setappdata(hGui,'FileName',filename);      %ajoutte les données à l'appdata
    setappdata(hGui,'PathName',pathname);
    setappdata(hGui,'FilterIndex',filterindex);
     
    %Lecture de l'image, et affichage de l'image dans le GUI 
     
    function selectionroi_Callback(hObject, eventdata, handles)
     
    hGui = getappdata(0,'hGui');   récupère l'appdata
    filename = getappdata(hGui,'FileName);    % récupère le nom de fichier dans les données de l'appdata
     
    axes(handles.axes1);
    BW=roipoly;
    [x, y]=find(BW==1);

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

Discussions similaires

  1. Undefined function or variable MATLAB R2011a
    Par lemabs dans le forum MATLAB
    Réponses: 1
    Dernier message: 22/05/2012, 16h31
  2. Undefined function or variable
    Par sikarce dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 07/06/2011, 22h05
  3. Undefined function or variable
    Par Victhestatic dans le forum MATLAB
    Réponses: 2
    Dernier message: 05/04/2011, 16h59
  4. Erreur : Call to undefined function
    Par charrier63 dans le forum Langage
    Réponses: 6
    Dernier message: 14/10/2006, 19h12
  5. [GD] Erreur dans galerie photo : Call to undefined function: imagecreatefromjpeg()
    Par philippedeletree dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 21/02/2006, 23h51

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