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 :

utilisation des variables d'une autre fonction


Sujet :

Interfaces Graphiques

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2008
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 77
    Points : 44
    Points
    44
    Par défaut utilisation des variables d'une autre fonction
    salut tout le monde,
    mon interface principale fait appel à une autre interface à travers le bouton intitulé test.
    Dans le callback de cette bouton je vais ecrire le nom du fichier matlab qui implémente l'interface en question mais en meme temps je veux utiliser des variables qui figurent dans ce fichier .m. est ce que je peux l'utiliser directement ou je peux faire comme en java import nom_fonction

    Veuillez me répondre
    merci

  2. #2
    Membre du Club
    Inscrit en
    Décembre 2008
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 77
    Points : 44
    Points
    44
    Par défaut passage des variables entre les fonctions
    Salut,
    SVP, veuillez me répondre à la question que j'ai posé intitulé "l'utilisation des variables d'une autre fonction"
    le problème ici que j'ai besoin d'une variable intitulé inputImage dont la valeur est pris dans le fichier tester.m et j'ai besoin de l'utiliser dans interface.m
    SVP, n'oublier pas
    A bientot

  3. #3
    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
    Il y a plein de possibilités.
    L'une d'entre elles consisterait à passer ta variable en argument d'entrée de la fonction dans laquelle tu veux l'utiliser.

  4. #4
    Membre du Club
    Inscrit en
    Décembre 2008
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 77
    Points : 44
    Points
    44
    Par défaut passage des variables entre les fonctions
    salut,
    voici ma fonction
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    function gui_guidata_guihandles
     
     
    fig = figure('units','pixels',...
        'position',[250 250 500 500],...
        'color',[0.925 0.913 0.687],...
        'numbertitle','off',...
        'name','Interface de test',...
        'menubar','none',...
        'tag','interface_test');
    % Création de l'objet texte statique
    uicontrol('units','normalized',...
        'position',[0.3 0.8 0.3 0.05],...
        'style','text',...
        'string','Veuiilez saisir l''image de test:',...
        'backgroundcolor','c')
     
    % Création de l'objet texte editable
    uicontrol('Style','edit',...
        'backgroundcolor','w',...
        'Position',[170 350  100 30],...
         'tag', 'edit1');
        %'Callback',{@editbutton_Callback});
    % Création de l'objet bouton
    uicontrol('style','pushbutton',...
        'units','normalized',...
        'backgroundcolor',[0.5 0.5 0.25],...
        'position',[0.35 0.6 0.15 0.05],...
        'string','valider',... 
        'fontsize',10.0,...
        'callback',@valider,...
        'tag','test_tag');
    image_backgnd=imread ('visage.jpg','jpg');
    %axes('Position',[0 0 1 1]);
    axes('Position',[0 0 1 1]);
    image(image_backgnd);
    %axis image;
    axis off; 
    axis tight
    handles = guihandles(fig);
    guidata(fig,handles);
     
    function valider(obj,event)
    load data
    handles = guidata(gcbf);
    InputImage = get(handles.edit1, 'String');
    InputImage = imread(fullfile('D:\Documents and Settings\sis26\Desktop\',InputImage));
    %InputImage = imread(strcat('D:\Documents and Settings\sis26\Desktop\',InputImage));
    figure(5)
    subplot(1,2,1)
    imshow(InputImage); colormap('gray');title('Input image','fontsize',18)
    save data
    je ne comprends pas comment passer la variable InputImage comme argument de la fonction
    SVP, veuillez m'aider
    cordialement

  5. #5
    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
    Oui...ça c'est 1 fonction...
    Quelle est l'autre fonction qui doit utiliser InputImage ?

  6. #6
    Membre du Club
    Inscrit en
    Décembre 2008
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 77
    Points : 44
    Points
    44
    Par défaut passage desvariables entre les fonctions
    salut,
    voici la fonction dont la quelle je vais utiliser la variable InputImage

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    function test(obj,event)
    load data
    % Find the weight of each face in the training set
     
    omega = [];
    for h=1:size(dbx,2)
    WW=[]; 
    for i=1:size(u,2)
    t = u(:,i)'; 
    WeightOfImage = dot(t,dbx(:,h)');
    WW = [WW; WeightOfImage];
    end
    omega = [omega WW];
    %Appel de la fonction tester
    tester
    %importdata('tester.m')
    InImage=reshape(double(InputImage),irow*icol,1);
    temp=InImage;
    me=mean(temp);
    st=std(temp);
    temp=(temp-me)*ustd/st+um;
    NormImage = temp;
    Difference = temp-m;
     
    p = [];
    aa=size(u,2);
    for i = 1:aa
    pare = dot(NormImage,u(:,i));
    p = [p; pare];
    end
    ReshapedImage = m + u(:,1:aa)*p; %m is the mean image, u is the eigenvector
    ReshapedImage = reshape(ReshapedImage,icol,irow);
    ReshapedImage = ReshapedImage';
    %show the reconstructed image.
    subplot(1,2,2)
    imagesc(ReshapedImage); colormap('gray');
    title('Reconstructed image','fontsize',18)
     
    InImWeight = [];
    for i=1:size(u,2)
    t = u(:,i)';
    WeightOfInputImage = dot(t,Difference');
    InImWeight = [InImWeight; WeightOfInputImage];
    end
     
    ll = 1:M;
    figure(68)
    subplot(1,2,1)
    stem(ll,InImWeight)
    title('Weight of Input Face','fontsize',14)
     
    % Find Euclidean distance
    e=[];
    for i=1:size(omega,2)
    q = omega(:,i);
    DiffWeight = InImWeight-q;
    mag = norm(DiffWeight);
    e = [e mag];
    end
     
    kk = 1:size(e,2);
    subplot(1,2,2)
    stem(kk,e)
    title('Eucledian distance of input image','fontsize',14)
     
    MaximumValue=max(e)  % maximum eucledian distance
    MinimumValue=min(e)    % minimum eucledian distance
     
    end
    Lors de l'exécution, précisement lorsque je clique sur le bouton test matlab m'affiche les messages d'erreur suivantes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ??? Undefined function or variable 'InputImage'.
     
    Error in ==> interface>test at 281
    InImage=reshape(double(InputImage),irow*icol,1);
     
    ??? Error while evaluating uicontrol Callback
    Merci

  7. #7
    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
    test est vraiment une fonction ou c'est une sous-fonction de gui_guidata_guihandles (ce serait d'ailleurs bien de lui donner un "vrai" nom qui reflète ce que fait cette fonction pour toi) ?
    Si c'est une sous-fonction (ce que je suppose puisque cette fonction semble être un callback en réalité) tu peux utiliser la structure handles pour stocker la variable.

    Ex :
    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
    function valider(obj,event)
    load data
    handles = guidata(gcbf);
    InputImage = get(handles.edit1, 'String');
    InputImage = imread(fullfile('D:\Documents and Settings\sis26\Desktop\',InputImage));
    %InputImage = imread(strcat('D:\Documents and Settings\sis26\Desktop\',InputImage));
    figure(5)
    subplot(1,2,1)
    imshow(InputImage); colormap('gray');title('Input image','fontsize',18)
    save data
    hanldes.InputImage=InputImage;
    guidata(gcbf,handles);
    %...
    %...
     
    function test(obj,event)
    handles = guidata(gcbf);
    InputImage=hanldes.InputImage;

Discussions similaires

  1. Utiliser une variable dans une autre fonction
    Par zazze69 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 04/12/2012, 10h34
  2. [WD12] Utiliser des variables d'une procédure dans autre procédure
    Par karim15 dans le forum WinDev
    Réponses: 2
    Dernier message: 17/04/2012, 08h05
  3. [AppleScript] utiliser des variables entre une feuille Excel et un fichier xml (ou autre)
    Par phil74 dans le forum AppleScript
    Réponses: 0
    Dernier message: 03/10/2011, 21h51
  4. Utilisation des variables dans une fonction
    Par DeLorbe dans le forum Débuter
    Réponses: 6
    Dernier message: 05/02/2010, 10h50
  5. Utiliser des variables dans une fonction
    Par zugolin dans le forum Langage
    Réponses: 7
    Dernier message: 10/04/2009, 15h11

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