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
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:
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 )
:
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
Partager