uiaxes(gui)中图像顶部的叠加图

时间:2015-04-23 14:31:58

标签: matlab matlab-figure matlab-guide

我有以下代码(可以工作)执行imshow栅格数据,然后在标记列表顶部绘制红点(即基础层是星星图像,叠加层是标记它们的红点)。

function plot(this)
   imshow(WORLD.image, [0 1]);
   hold on
   plot([this.centers.x], [this.centers.y], 'r.');
   hold off
end

好的,现在我正在使用GUIDE创建GUI,我使用parent属性来显示ui轴内的图像。该部分有效,但情节似乎没有采取父,除了坚持和推迟不起作用(它创建一个新的窗口与情节)。我该如何解决? [handles.pictureBox是轴控制的句柄]

imshow(WORLD.mask, [0 1], 'Parent', handles.pictureBox);
hold on
plot([p.centers.x], [p.centers.y], 'r.', 'Parent', handles.pictureBox);
hold off

我观察到的是,如果我取消保持,按住,则基本图像将被图表替换。但如果我把它留在里面,同样的事情就会发生,但也会出现一个弹出窗口。

哦,是的,在图像和绘图之间保持轴的比例是非常重要的。现在,我看到情节调整x,y界限。如果imshow是1K x 1K的图像,那么我希望绘图范围完全相同,以便标签覆盖。

1 个答案:

答案 0 :(得分:3)

情节确实接受父句柄,请查看this help page

plot(handles.pictureBox,[p.centers.x], [p.centers.y], 'r.');

此外,hold也接受轴处理。您可以使用以下内容:

hold(handles.pictureBox,'on');

(或'off'显然......)