Bonjour,
J'ai créé une interface graphique "à la main", sans le GUIDE.
D'un coté j'ai un bouton qui permet de choisir une image et de l'afficher dans l'interface. Je réalise ceci grâce à un appel de fonction dans l'interface graphique et j'affiche grâce à imshow.
Voici l'interface graphique:
... et la fonction qui va cherche l'image à modifier :
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 function gui clear all; close all; % Création de l'objet Figure handles(1)=figure('units','pixels',... 'position',[400 300 1000 350],... %[left, bottom, width, height] 'color',[0.7 0.7 0.7],... %[R G B] du gris ici 'numbertitle','off',... 'name','TEST'); % Création de l'objet Uicontrol "Choisir l'image" qui permet d'aller % chercher l'image handles(2)=uicontrol('style','pushbutton',... 'units','normalized',... 'position',[0.1 0.93 0.2 0.05],... 'string','Choisir l''image',... 'callback',@choisirIm); % Création de l'objet Uicontrol "Test" qui détermine le test à appliquer % à l'image et de son menu popup handles(3)=uicontrol('Style','text',... 'string','Test',... 'units','normalized',... 'position',[0.450 0.550 0.100 0.05]); handles(4)=uicontrol('style','popupmenu',... 'units','normalized',... 'position',[0.45 0.49 0.1 0.05],... 'string',{'ajouter du bruit','filtrer',},... 'value',1,... %par défaut, c'est la première valeur qui est sélectionnée 'callback',@recupererValeurMenuPopup); % Création de l'objet Uicontrol "Appliquer" qui permet de % marquer l'image hôte par la technique du LSB handles(5)=uicontrol('style','pushbutton',... 'units','normalized',... 'position',[0.7 0.93 0.2 0.05],... 'string','Appliquer',... 'callback',@appliquerTest); end
Ensuite, je chosis le type de transformation que je veux appliquer à l'image via un menu popup dont je récupère la valeur comme ceci :
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 function choisirIm(hObj,event) path_image=uigetfile({'*.bmp;*.gif;*.jpeg;*.jpg;*.png', ... 'Images(*.bmp;*.gif;*.jpeg;*.jpg;*.png)'; '*.bmp','Images BITMAP (*.bmp)'; ... '*.gif','Images GIF (*.gif)'; ... '*.jpeg;*.jpg','Images JPEG (*.jpeg, *.jpg)'; ... '*.png','Images PNG (*.png)'; ... '*.*', 'All Files (*.*)'}, ... 'Choisir une image'); I=imread(path_image); subplot('position',[0 0.3 0.4 0.4]); %[left, bottom, width, height] imshow(I); setappdata(0,'I',I); end
Et en appuyant sur le bouton Test, j'affiche l'image qui a été modifiée :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 function recupererValeurMenuPopup(hObj,event) valeurMenuPopup=get(hObj,'Value'); setappdata(0,'valeurMenuPopup',valeurMenuPopup); end
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 appliquerTest(hObj,event) valeurPopup=getappdata(0,'valeurPopup'); I=getappdata(0,'I'); switch valeurPopup case 1 image=ajouterDuBruit(I); case 2 image=filtrer(I); otherwise display('Error'); end subplot('position',[0.6 0.3 0.4 0.4]); imshow(image); end
Ma question est la suivante : je veux pouvoir effacer/enlever de l'interface toutes les images que j'ai affichées, sans quitter l'interface graphique, à l'aide d'un bouton que j'appellerai "Réinitialiser", comment puis-je faire ?
Je vous remercie d'avance.
Partager