Bonjour.
Voila j'utilise dans un GUI un objet popup ainsi qu'un objet edit avec les sous-fonctions qui vont avec. Ces fonctions permettent de modifier des variables utilisé dans d'autres sous-fonctions.
Mon problème est que je n'arrive pas à définir des valeurs par défaut à ces variables, en effet je doit systématiquement toucher au menu popup et au menu edit et sélectionner la valeur que je veux pour donner une valeur à la variable même si c'est la première valeur du popup ou la valeur déjà affiché dans l'Edit.
Les deux variables sont en Globale.
Le popup :
La sous-fonction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 handles(9)=uicontrol('Style', 'popupmenu',... 'String', 'caméra 1|caméra 2',... 'Units','normalized',... 'Position', [0.62 0 0.07 0.07],... 'Callback', @changecamera);
La sous-fonctions dans lequel est utilisé DeviceID elle même lancé par un bouton :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 %Permet de sélectionner la caméra utilisée. function changecamera(varargin) Val = get(handles(9),'Value'); switch Val case 1 DeviceID = 1; case 2 DeviceID = 2; end end
De même pour la zone de texte qu'on peut editer :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 %Permet de créer la vidéo et afficher la preview. function openvideo(varargin) Vid = videoinput('winvideo', DeviceID); set(Vid, 'SelectedSourceName', 'input1'); src_Vid = getselectedsource(Vid); preview(Vid); end
La zone de texte :
La sous-fonction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 handles(14)=uicontrol('Style','Edit',... 'String','0.94',... 'Units','normalized',... 'Position',[0.62 0 0.07 0.03],... 'CallBack', @Editcalibration,... 'HorizontalAlignment','left');
La sous-fonctions dans lequel est utilisé la variable Calibration elle même lancé par un bouton :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 function Editcalibration(varargin) Calibration = str2num(get(handles(14),'String')); set(handles(8),'Value',Calibration); end
Voila, comment faire pour définir les variables DeviceID et Calibration pour pouvoir les utiliser sans toucher au popup et edit?
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 function counting(varargin) Frame1 = Frame; Frame2 = mmsurf(Frame1); Frame3 = mmasf(Frame1,'oc',mmsecross,2); Frame4 = mmregmax( Frame3); Frame5 = mmneg(Frame1); Frame6 = mmcwatershed(Frame5, Frame4, mmsebox); Frame7 = mmgray(Frame6, 'uint16', 1); Frame8 = mmaddm(mmlabel(Frame4), uint16(1)); Frame9 = mmintersec(mmgray(Frame4,'uint16'), Frame8); Frame10 = mmunion( Frame7, Frame9); Frame11 = mmgradm( Frame1); Frame12 = mmcwatershed(Frame11, Frame10); imagesc(Frame12,'parent',handles(12)); [Labeled,NumObjects] = bwlabeln(Frame12,8); [Height,Width] = size(Frame); Surface = Height*Width; %Calibration = 0.94; Surfaceratio = ((1024/Calibration)^2)/Surface; NumObjects2 = NumObjects*Surfaceratio; set(handles(13),'string', num2str(NumObjects)); set(handles(10),'string', num2str(NumObjects2)); figure, mmshow(Frame1, Frame12, Frame12); end
Partager