我想向用户显示一系列图像。对于用户以鼠标单击图像的形式输入的每个图像请求。将每次点击的坐标存储在矩阵中。因此,最终具有维数num_images x 2的矩阵。
function main()
clc;
global agent_pos;
....
for i=1:numel(img_names),
imname = [ path_img img_names{i}];
im0 = imread(imname);
imageHandle =imshow(im0);%_____________displays the image
set(gcf,'units','normalized','outerposition',[0 0 1 1])
set(imageHandle,'ButtonDownFcn',@ImageClickCallback);
uiwait(gcf);
end
end
function coordinates=ImageClickCallback ( objectHandle , eventData )
axesHandle = get(objectHandle,'Parent');
coordinates = get(axesHandle,'CurrentPoint');
coordinates = coordinates(1,1:2);
global agent_pos;
agent_pos=[agent_pos;coordinates]; %___ add these coordinates for each image
close gcf;
end
我唯一的问题是,用户点击后不是创建一个新窗口,我可以以某种方式在当前图形本身上显示图像。
我尝试用clf
或cla
替换close(gcf)。但是,在关闭当前窗口后,新图像也会出现在新窗口中。我认为这与附图中的手柄有关。
答案 0 :(得分:1)
使用uiresume而不是关闭数字。