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 :

Tests Si Alors


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Inscrit en
    Juin 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 8
    Par défaut Tests Si Alors
    Bonjour à tous,

    Je suis nouvelle ici, j'ai commencé récemment à apprendre Matlab et je voudrais savoir s'il vous plait :
    1- Comment créer un bouton qui sert à ouvrir des images (ou parcourir). puis affiche l'image choisie?

    2- Un autre bouton qui exécute : si Image ouverte est Image1 alors Afficher Image4;

    Sinon si Image ouverte est Image 2 alors Afficher Image5;

    je ne sais pas comment écrire ces test en matlab, j'espère que vous pourriez m'aider.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    I=imread('image1.jpg');
    % comment faire le test??  if I==image1.jpg then   % ; imshow('image4.jpg')
    merci d'avance.
    Vanessa

  2. #2
    Membre éprouvé
    Avatar de mihaispr
    Inscrit en
    Décembre 2008
    Messages
    1 025
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 025
    Par défaut
    1- Comment créer un bouton qui sert à ouvrir des images (ou parcourir). puis affiche l'image choisie?

    Dans command window :

    Sur ta forme tu mets un pushbutton et un axes.

    Puis tu fais un boutton et tu applies la fonction uigetfile.


    Puis dans ton boutton clic droit View Callbacks->Callback et dans pushbutton1_callback tu ecris ca:


    Dans function pushbutton1_callback tu ecris ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    [filename,pathname] = uigetfile({'*.jpg';'*.png';'*.bmp'}); %selection photo desire et chargement dans la composante axes1 
    %methode type open dialog
     
    if ~ischar(filename) % si tu presses le boutton cancel pas le boutton d'open
        errordlg('Erreur!','Aucun fichier selecte!'); % affichage message d'erreur avec errordlg
       return;
     end
    2- Un autre bouton qui exécute : si Image ouverte est Image1 alors Afficher Image4;

    Sinon si Image ouverte est Image 2 alors Afficher Image5;
    Dans function pushbutton2_callback tu prennes cette idee:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if (condition est vrai) % si l'image 1 est ouverte
    faire quelque chose (afficher l'image 4) -instruction imshow de l'image 4
    else  % (si la condition est fausse donc) - si l'image2 est ouverte
     
    faire une autre chose (afficher l'image  5) -instruction imshow de l'image 5
    end % final de l'instruction if
    Documentation:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    >>doc if
    >>doc imread
    >>doc fullfile
    imread(fullfille) tu dois utiliser
    Si tu as des problemes avec l'instruction if postes ici pour voir ce que tu as essaye coder.

    Sur ta forme tu a pushbutton1,pushbutton2 et un nombre de composantes axes qui represent le nombre des images que tu veux afficher dans ton gui ( a ton cas du veux afficher dans ton gui 3 images nomme image1,image4 et image5 donc tu as 3 composantes axes !!).

    Finalment ton gui doit avoir 2 pushbuttons et 3 composantes axes!

    Bonne chance,

    Michel

  3. #3
    Membre régulier
    Inscrit en
    Juin 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 8
    Par défaut
    merci michel pour votre réponse bien détaillée,

    je suis arrivée à faire deux bouton et un axe
    le 1er sert a ouvrir une image, il donne donc par ex : ans = image1.jpg

    pour le deuxième bouton qui sert a tester il ne reconnait pas ans !!!!!!
    j'ai fait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if isequal (ans, image1.jpg)
    imshow (image3.jpg)
    else imshow (image4.jpg)
    comment peut il reconnaitre ans????
    cordialement.

    Vanessa.

  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 : 41
    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
    Bonjour,

    Pour comparer les chaines de caractères, il est préférable d'utiliser les fonctions STRCMP, STRCMPI (plutôt que ISEQUAL).
    De plus, si tu as ouvert l'image, ta variable devrait ressembler à une matrice donc aucune chance de pouvoir la comparer à une chaine de caractère...
    Enfin, je te conseille de nommer tes variables de manière plus explicite 'ans' n'apporte pas beaucoup d'information sur le contenu de la variable...

    Bonne journée,
    Duf

  5. #5
    Membre régulier
    Inscrit en
    Juin 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 8
    Par défaut
    bonjour voici une partie des Callback des 2 boutons :


    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
    % --- Executes on button press in pushbutton1.
    function pushbutton1_Callback(hObject, eventdata, handles)
    % hObject    handle to pushbutton1 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
     
    uigetfile({'*.jpg;*.tif;*.png;*.gif','All Image Files';...
    '*.*','All Files' },'mytitle',...
    'C:\Work\myfile.jpg');
     
     
     
    % --- Executes on button press in pushbutton2.
    function pushbutton2_Callback(hObject, eventdata, handles)
    % hObject    handle to pushbutton2 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
     
    
    Imshow(ans)
    Ca ne marche pas, le deuxième bouton ne reconnait pas 'ans'.


    Avec une variable:
    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
    % --- Executes on button press in pushbutton1.
    function pushbutton1_Callback(hObject, eventdata, handles)
    % hObject    handle to pushbutton1 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
     
    I=uigetfile({'*.jpg;*.tif;*.png;*.gif','All Image Files';...
    '*.*','All Files' },'mytitle',...
    'C:\Work\myfile.jpg');
     
     
     
    % --- Executes on button press in pushbutton2.
    function pushbutton2_Callback(hObject, eventdata, handles)
    % hObject    handle to pushbutton2 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
     
    Imshow(I)
    Ca ne marche pas non plus.
    >>variable I non identifée
    aidez moi s'il vous plait !
    merci.

  6. #6
    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 : 41
    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
    Alors plusieurs choses:
    - La variable 'ans' n'est pas créée automatiquement dans une fonction, cette variable est uniquement créé dans le command window donc ne peut pas utiliser la première solution (pour utiliser une variable, il faut la créer...).
    - La fonction IMSHOW s'écrit en minuscules: - Pour la gestion des variables, la question a été longuement et de nombreuses fois abordée ces derniers temps sur le forum, de plus ce tutoriel explique les différents moyens de gérer les variables.

    Bon courage,
    Duf

Discussions similaires

  1. [WD17] GDS : extraction pour test alors que non
    Par michel.souris dans le forum WinDev
    Réponses: 7
    Dernier message: 19/11/2013, 11h19
  2. test si radio checked alors action
    Par boteha dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 21/11/2011, 13h02
  3. [Débutant]Test lancé alors que je ne veux pas
    Par youkoun dans le forum Maven
    Réponses: 2
    Dernier message: 20/12/2010, 11h55
  4. Réponses: 5
    Dernier message: 24/09/2010, 13h35
  5. Réponses: 1
    Dernier message: 09/03/2007, 13h04

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