Matlab двигаться изображение

Как бы я переместил изображение вдоль оси x или y, нажав кнопку?

Я импортировал изображение с помощью 'image = imread('image.jpg');' и затем используйте 'Left = uicontrol('Parent', gcf, 'Style', 'pushbutton', 'String','Left',...', но я застрял там. Я хотел бы переместить изображение в любой направление.

1 ответ

Решение

Вы можете создать простую функцию обратного вызова для кнопки, которая изменяет XLim а также YLim свойства осей, показывающих изображение.

Сохранить исходные ограничения:

xl = xlim;
yl = ylim;

Например, чтобы переместить изображение влево:

step = 5; %# move by 5 pixels
xlim(xlim+step)

Чтобы двигаться вверх:

ylim(ylim+step)

Чтобы восстановить исходное положение:

xlim(xl)
ylim(yl)

ОБНОВЛЕНИЕ:

Вот рабочий пример кода (без использования GUIDE):

im = imread('pout.tif');
imshow(im);
step = 5;
xl = xlim;
yl = ylim;
pbLeft = uicontrol('Parent', gcf, 'Style', 'pushbutton', 'String','Left', ...
    'Units','norm', 'Position', [0.4 0.05 0.1 0.05], 'Callback', 'xlim(xlim+step)');
pbReset = uicontrol('Parent', gcf, 'Style', 'pushbutton', 'String','Reset', ...
    'Units','norm', 'Position', [0.5 0.05 0.1 0.05], 'Callback', 'xlim(xl);ylim(yl);');
pbRight = uicontrol('Parent', gcf, 'Style', 'pushbutton', 'String','Right', ...
    'Units','norm', 'Position', [0.6 0.05 0.1 0.05], 'Callback', 'xlim(xlim-step)');
pbUp = uicontrol('Parent', gcf, 'Style', 'pushbutton', 'String','Up', ...
    'Units','norm', 'Position', [0.5 0.1 0.1 0.05], 'Callback', 'ylim(ylim+step)');
pbDown = uicontrol('Parent', gcf, 'Style', 'pushbutton', 'String','Down', ...
    'Units','norm', 'Position', [0.5 0.0 0.1 0.05], 'Callback', 'ylim(ylim-step)');
Другие вопросы по тегам