2

在使用 Matlab 的 GUIDE 时,我希望在图像上绘制一条线。当我在 GUI 中只使用一个轴时,我设法实现了这一点。然而,在添加另一个轴后,绘图不再覆盖图像。

最初,情节开始绘制在错误的轴上,我意识到我忘记设置适当的轴。但是,一旦我选择了要绘制的图像轴,要绘制的线就不再位于图像的顶部,而是仅用线图替换图像。

我的代码:

imshow(img(k),'Parent',handles.display)
hold on

x1 = line(k).point1(1);
y1 = line(k).point1(2);
x2 = line(k).point2(1);
y2 = line(k).point2(2);
plot(handles.display,[x1 x2],[y1 y2],'Color','r','LineWidth', 2)

hold off

添加新轴之前的代码与上面相同,但handles.display带有plot().

任何帮助将不胜感激,在此先感谢您。

4

1 回答 1

1

在调用HOLD函数时,还需要指定轴柄。例子:

%# create some axes
hAx1 = subplot(121);
hAx2 = subplot(122);

%# draw in first: image with line overlayed
I = imread('coins.png');
imshow(I, 'Parent',hAx1)
hold(hAx1,'on')
plot(hAx1, [1 100], [1 100], 'Color','r', 'LineWidth',2)
hold(hAx1,'off')

%# draw in second
surf(hAx2, peaks)

在此处输入图像描述

于 2011-08-26T13:11:19.700 回答