Bonjour à tous ,

Voilà, je dois réaliser une interface graphique et je dois vous avouer que j'ai un peu de mal..
Idéalement, ce que j'aimerais faire serait "ouvrir un dossier" (grâce à l'icone que j'ai mise en haut) , puis sélectionner un dossier contenant tous mes patients afin de charger .

Je suis donc allé dans ma fonction " function uipushtool1_ClickedCallback(hObject, eventdata, handles) " , puis j'y ai écrit " uigetdir " etc, ma fonction de récupération à partir du dossier de patient, qui stocke à chaque itération dans ma variable results{} les scan pour chaque patient.
Je pensais à utiliser guidata mais il me semble que c'est plutôt pour le stockage d'objet.
J'ai ajouté à la fin de ma boucle dans "function uipushtool1_ClickedCallback(hObject, eventdata, handles) " :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
handles.results = results;
handles.patientslist = patientslist;
for i=1:length(patientslist)
    if ~(strcmp(patientslist(i).name,'.') | strcmp(patientslist(i).name,'..') | strcmp(patientslist(i).name(1),'R'))
        ca{i} = patientslist(i).name;
    end
end
set(handles.listbox2,'String',ca);
Maintenant que j'ai récupéré mes patients dans ma listbox, j'aimerais, relier le fait de cliquer sur un patient, avec l'affichage de son scanner ( avec slider ).
Je possède une fonction " figure = display_myCT()" prennant en entrée les triplets RGB de tous les patients, et le numéro du patient. La finalité étant d'afficher dans une figure, le scan avec le slider.
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
function h_fig = display_myCT(StructRGB,numpat)
 
numpat = numpat + 2;
%%%%%%%%%%%%%
% figure
%%%%%%%%%%%%%
 
sz = length(StructRGB(numpat,:));
h_fig = figure('Name','image and layers','NumberTitle','Off','Toolbar','figure',...
    'MenuBar','figure','NextPlot','Add');
 
    sl_min = 1;
    sl_max = sz;
    sl_val = ceil(sz/2);
 
h_slider = uicontrol(h_fig,'style','slider','Min',sl_min,'Max',sl_max,'Value',sl_val,...
    'SliderStep',[1/sl_max 1/sl_max],'units','normalized','Position',[0 0 0.9 0.05],...
    'Callback',@ResultsSliderCallback);
 
h_text = uicontrol(h_fig,'style','text','units','normalized','String',num2str(sl_val),...
    'Position',[0.9 0 0.1 0.05]);
 
hx(1) = axes('parent',h_fig,'Units','Normalized','OuterPosition',[0.0 0.2 0.7 0.7]);
 
%%%%%%%%%%%
 
    function ResultsSliderCallback(hObject,eventdata)
 
        cur_serial = ceil(get(hObject,'Value'));
 
        set(h_text,'String',num2str(cur_serial));
 
        mysubplot(hx(1),StructRGB{numpat,cur_serial},cur_serial);
 
    end    
 
 
  function  mysubplot(hx,MonImageRGB,cur_serial)
 
        if cur_serial==0
            return;
        end
 
        h_curCurve = findobj([get(hx,'Children');get(h_fig,'Children')],'Type','line',...
            '-or','Type','hggroup','-or','Type','Text','-or','Type','image','-or','Tag','legend');
        if ~isempty(h_curCurve)
            delete(h_curCurve);
        end
 
        Im = MonImageRGB ;
        imshow(Im,'Parent',hx);
 
  end  
 
 
end
Le problème étant que je travaille avec GUIDE et j'ai donc généré un axe, mais je n'arrive pas à faire le lien entre GUIDE et ma fonction d'affichage. Idéalement, j'aimerais l'inclure dans mon code guide. Mais je vous avouerais que je n'ai pas trop d'idées pour comment gérer le fait que dans ma fonction je crée une nouvelle figure, etc , j'aimerais simplement relier l'affichage à mon axe, selon le patnum ( déterminer par l'indice de l'item dans ma listbox ).

Voilà mon soucis, si vous avez besoin d'informations supplémentaire n'hésitez pas

Bonne journée !