Matlab: наложение графика на изображение в GUIDE - PullRequest
2 голосов
/ 26 августа 2011

Пока я использую РУКОВОДСТВО Matlab, я хочу нанести линию на изображение. Мне удалось добиться этого, когда я использовал только одну ось внутри графического интерфейса. Однако после добавления другой оси график больше не накладывается на изображение.

Первоначально график начал изображаться не на той оси, и я понял, что забыл установить соответствующую ось. Однако после того, как я выбрал ось изображения для построения, линия, которая должна быть нанесена, больше не лежит поверх изображения, вместо этого она просто заменяет изображение только графиком линии.

Мой код:

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().

Любая помощь будет принята с благодарностью, заранее спасибо.

1 Ответ

1 голос
/ 26 августа 2011

Когда вы вызываете функцию 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)

enter image description here

...