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 :

Programmation de l'interface avec guide de Matlab


Sujet :

MATLAB

  1. #1
    Candidat au Club
    Homme Profil pro
    Electronicien
    Inscrit en
    Décembre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Electronicien
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2014
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Programmation de l'interface avec guide de Matlab
    Bonjour à tous!
    je travaille sur une interface Guide de matlab pour le traitement des images, mais cependant je suis butté sur un problème qui est le suivant:
    j'ai voulu programmer le bouton segmentation par LPE et afficher le resultat dans un axe en recupérent le handles du chemin mais j'obtient l'érreur suivante:
    lignes de code:

    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
    fichier=get(handles.edit1,'String');
    I = imread(fichier); 
    %imshow(I);
    hy = fspecial('sobel'); 
    hx = hy'; 
    Iy = imfilter(double(I), hy, 'replicate'); 
    Ix = imfilter(double(I), hx, 'replicate'); 
    gradmag = sqrt(Ix.^2 + Iy.^2); 
    %figure, imshow(gradmag,[]), title('Module du gradient') 
    L = watershed(gradmag); 
    Lrgb = label2rgb(L); 
    %figure, imshow(Lrgb), title('Régions détectées par la LPE'); 
     
    se = strel('disk', 15); 
    Io = imopen(I, se); 
    %figure, imshow(Io), title('ouverture') 
    Ie = imerode(I, se); 
    Iobr = imreconstruct(Ie, I); 
    %figure, imshow(Iobr), title('Ouverture par reconstruction(erosion)') 
    Ioc = imclose(Io, se); 
    %figure, imshow(Ioc), title('Ouverture-Fermeture') 
    Iobrd = imdilate(Iobr, se); 
    Iobrcbr = imreconstruct(imcomplement(Iobrd), imcomplement(Iobr)); 
    Iobrcbr = imcomplement(Iobrcbr); 
    %figure, imshow(Iobrcbr), title('Ouverture-Fermeture par reconstruction (dilatation)') 
    fgm = imregionalmax(Iobrcbr); 
    %figure, imshow(fgm), title('les maxima régionaux') 
    axes(handles.axes1);imshow(fgm);title('image segmentée')
    et j'obtient le message d'erreur ci dessous:

    ??? Error using ==> imread at 315
    File "MAMMO1bmp.bmpC:\Users\ordinateur\Documents\MATLAB\projet de fin d'étude\" does not
    exist.
    
    Error in ==> PFE2>pushbutton2_Callback at 117
    I = imread(fichier);
    
    Error in ==> gui_mainfcn at 96
            feval(varargin{:});
    
    Error in ==> PFE2 at 42
        gui_mainfcn(gui_State, varargin{:});
    SVP aidez moi!

    Error in ==>
    guidemfile>@(hObject,eventdata)PFE2('pushbutton2_Callback',hObject,eventdata,guidata(hObject))
    
    
    ??? Error while evaluating uicontrol Callback
    
    >>

  2. #2
    Modérateur
    Avatar de le fab
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    1 882
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 882
    Points : 3 432
    Points
    3 432
    Par défaut
    salut

    l'erreur est assez claire : le fichier MAMMO1bmp.bmpC:\Users\ordinateur\Documents\MATLAB\projet de fin d'étude\ n'existe pas
    je suppose que tu cherches plutot à ouvir C:\Users\ordinateur\Documents\MATLAB\projet de fin d'étude\MAMMO1bmp.bmp

    bref, tu as un soucis dans la création de la variable fichier
    tu peux regarder la fonction fullfile qui peut t'aider

    Fabien

  3. #3
    Candidat au Club
    Homme Profil pro
    Electronicien
    Inscrit en
    Décembre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Electronicien
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2014
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    merçi pour votre aide, mais je penses que vous ne m'avez pas bien compris.
    en effet le problème est le suivant:
    je réalise une interface graphique Matlab avec l'outil guide
    d'abord, j'ai créer un bouton qui me permet de charger une image et l'afficher dans un axe et j'ai afficher son chemin dans un "edit", ensuite je doit recupérer cette image et lui apliquée des traitement tel que la "segmentation" et par la suite l'afficher dans un autre axe(axes2 par exemple);
    j'ai taper le code suivant et ça marche quand j'applique le "bouton histogramme"

    Code matlab : 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 pushbutton6_Callback(hObject, eventdata, handles)
    % hObject    handle to pushbutton6 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    I=get(handles.edit1,'string');
    [ligne ,colonne]=size(I);%On recupere la taille de l image.
    histogramme=zeros(1,256);%On cree un tableau de 256 cases
    for m = 1:ligne%On parcourt l image et on remplit le tableau
    for n = 1:colonne
    pixel=I(m,n);
    histogramme(1,pixel+1)=histogramme(1,pixel+1)+1;%On incremente la valeur de la case correspondante
    end
    end
    axes(handles.axes2);plot(histogramme);%On ache le tableau sous forme de graphique
    Cependant, quand j'applique le programme segmentation, ça ne marche pas du tout
    voiçi ce programme là:
    Code matlab : 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
     
    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)
    %h=findobj(gcf,'Tag','Edit1')
    %load(get(h,'string'))
    I=get(handles.edit1,'String');
    %imshow(I);
    hy = fspecial('sobel'); 
    hx = hy'; 
    Iy = imfilter(double(I), hy, 'replicate'); 
    Ix = imfilter(double(I), hx, 'replicate'); 
    gradmag = sqrt(Ix.^2 + Iy.^2); 
    %figure, imshow(gradmag,[]), title('Module du gradient') 
    L = watershed(gradmag); 
    Lrgb = label2rgb(L); 
    %figure, imshow(Lrgb), title('Régions détectées par la LPE'); 
     
    se = strel('disk', 15); 
    Io = imopen(I, se); 
    %figure, imshow(Io), title('ouverture') 
    Ie = imerode(I, se); 
    Iobr = imreconstruct(Ie, I); 
    %figure, imshow(Iobr), title('Ouverture par reconstruction(erosion)') 
    Ioc = imclose(Io, se); 
    %figure, imshow(Ioc), title('Ouverture-Fermeture') 
    Iobrd = imdilate(Iobr, se); 
    Iobrcbr = imreconstruct(imcomplement(Iobrd), imcomplement(Iobr)); 
    Iobrcbr = imcomplement(Iobrcbr); 
    %figure, imshow(Iobrcbr), title('Ouverture-Fermeture par reconstruction (dilatation)') 
    fgm = imregionalmax(Iobrcbr); 
    %figure, imshow(fgm), title('les maxima régionaux') 
    axes(handles.axes1);imshow(fgm);title('image segmentée')
    mais en faisant cela, j'obtiend le message d'erreur ci-dessous:
    Code matlab : 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
     
    ??? Error using ==> iptcheckinput
    Function IMOPEN expected its first input, I or BW,
    to be one of these types:
     
      double, single, uint8, uint16, uint32, int8, int16, int32, logical
     
    Instead its type was char.
     
    Error in ==> imopen>ParseInputs at 58
    iptcheckinput(A, {'numeric' 'logical'}, {'real' 'nonsparse'}, mfilename, ...
     
    Error in ==> imopen at 36
    [A,SE,pre_pack] = ParseInputs(varargin{:});
     
    Error in ==> PFE2>pushbutton2_Callback at 129
    Io = imopen(I, se);
     
    Error in ==> gui_mainfcn at 96
            feval(varargin{:});
     
    Error in ==> PFE2 at 42
        gui_mainfcn(gui_State, varargin{:});
     
    Error in ==>
    guidemfile>@(hObject,eventdata)PFE2('pushbutton2_Callback',hObject,eventdata,guidata(hObject))
     
     
    ??? Error while evaluating uicontrol Callback


    Nb: je doit présiser que les image doivent etre charger automatiquement:
    voiçi son code:
    Code matlab : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim Strexemple as String
    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)
    [file,path] = uigetfile('*.jpg;*.bmp;*.gif','Select the image');
    set(handles.edit1,'String',[file,path]);
    axes(handles.axes1);imshow(file);title('image originale')
    Merçi d'avance pour votre aide

  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 : 33
    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
    Points : 2 385
    Points
    2 385
    Par défaut
    Bonjour,

    Comme lefab l'a expliqué, l'erreur que tu as cité dans ton premier post

    => File "MAMMO1bmp.bmpC:\Users\ordinateur\Documents\MATLAB\projet de fin d'étude\" does not
    exist.

    est clairement dû au nom du fichier. Relis attentivement ton rapport d'erreur et l'explication de le fab.
    Si vous cherchez des réponses sur ce forum il faudra avant tout expliquer clairement votre problème et exposer la démarche que vous avez entreprise pour le résoudre. Fournissez une base de travail et de réflexion à vos interlocuteurs!

  5. #5
    Candidat au Club
    Homme Profil pro
    Electronicien
    Inscrit en
    Décembre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Electronicien
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2014
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    merci!
    mais j'aimerais savoir si la ligne de commande ci-dessous
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    I=get(handles.edit1,'String');
    peut me permettre de récupérer une image dont le lien se trouve dans 'édit1' et d'effectuer des modifications directement après cette ligne de commande telle que le programme d'une segmentation ?
    et si oui quelle instruction permet de l'afficher dans un autre "axes".
    merci pour tout!

  6. #6
    Invité
    Invité(e)
    Par défaut
    Oui, elle le peut, mais encore faut-il que cet Edit contienne le chemin correct vers ton fichier.
    Je t'invite une 3e fois à lire le message de le fab.

    Reconsidère cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set(handles.edit1,'String',[file,path]);
    À noter que l'on préfère utiliser fullfile pour la concaténation. (Cf FAQ)

    Pour ce qui est de la sélection d'un objet Axes pour le tracé Comment effectuer un tracé dans un objet Axes en particulier ?

  7. #7
    Candidat au Club
    Homme Profil pro
    Electronicien
    Inscrit en
    Décembre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Electronicien
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2014
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Merçi bien!

Discussions similaires

  1. Besoin d'un conseil pour creer une interface avec Guide
    Par rhand dans le forum Interfaces Graphiques
    Réponses: 1
    Dernier message: 16/07/2012, 13h13
  2. Exécuter une interface avec Matlab 5.3
    Par chaterbache dans le forum Interfaces Graphiques
    Réponses: 4
    Dernier message: 02/01/2008, 07h08
  3. interface avec 'figure' de MATLAB
    Par Dam2227 dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 29/11/2007, 21h13
  4. Intégrer des programmes dans une interface graphique avec GUIDE
    Par maserati222e dans le forum Interfaces Graphiques
    Réponses: 3
    Dernier message: 24/05/2007, 11h30
  5. [votre avis m'interesse] Interface avec un programme Java
    Par LineLe dans le forum Interfaces Graphiques en Java
    Réponses: 29
    Dernier message: 11/12/2004, 11h39

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