Bonjour, j'essaie laborieusement de placer un point sur une image contenu dans un axe de mon GUI, " fait un plot " me diriez vous ... et pourtant
But: dessiner un point sur une image, les coordonnées ainsi que l'identifiant de l'image étant conserver dans les valeurs d'une structure.
Mes variables : pour l'instant je test sur un seul point : PtDP qui est une structure de la forme
Code : Sélectionner tout - Visualiser dans une fenêtre à part
PtDP= struct('X',0,'Y',0,'Z',0,'Xim',0,'Yim',0,'ImageID','paspossible','Selectione',0);
je cherche à placer le point au coordonnées Xim , Yim

J'ai fait mon interface via GUIDE car je n'ai ni le temps ni les compétence pour faire une ihm aussi grande à la main


voici le code dans mon fichier fenetre.m:
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
function pushbuttonDP_Callback(hObject, eventdata, handles)
 
global imageCourante;
global IdImage;
global PtDP;
[r,c,pasbesoin] = size(imageCourante);
hold on
 
x = 0;
y = 0;
 
while (x<.5 || y<.5 || x>(c+.5) || y>(r+.5))
    [x y] = ginput(1);
 
 
end
hold off
 
hold on
 
%setappdata(handles,'PtDP(1,1).Xim',x);
% setappdata(0,'PtDP.Yim',y);
PtDP.Xim=x;
PtDP.Yim=y;
guidata(hObject,handles);
 
PtDP.ImageID=IdImage;
DessinerPoint(handles);
%Temp=PtDP;
%disp('fenetr');
%x
%y
 
%plot(x,y,'r+');
hold off
voici une partie du code de DessinerPoint ( sans les autre boucles simplement )
:


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
 
 
function handles = DessinerPoint(handles)
 
 
 
 
 
global PtSA PtSP PtSL PtSM PtDA PtDP PtDL PtDM;
global IdImage;
 
 
 
axes(handles.Image)
delete(findobj(gca, 'Type', 'Point'));
 
hold on
%...
if (strcmp(IdImage,PtDP.ImageID))
 
    disp( 'test');
 
%plot(PtDP.X,PtDP.Y, 'yellow', 'Marker', 'x');
%PtDP(1,1).Xim
%PtDP(1,1).Yim
%gca
%handles.Image
plot(PtDP(1,1).X,PtDP(1,1).Y, 'r+');
end
 
%...
hold off
Ce que j'ai testé :
un plot directement dans la fonction callback de mon bouton fonctionne très bien
J'ai les bonnes coordonnées
le gca correspond bien à l'image / l'axe sur lequel je veux dessiner
je passe bien dans la boucle mais rien ne se passe lors du plot

J'espère avoir été complet et clair.
D'avance merci