2012-04-13 85 views
1

如何通過單擊按鈕將圖像沿x或y軸移動?Matlab移動圖像

我已經用'image = imread('image.jpg');'然後使用'Left = uicontrol('Parent',gcf,'Style','pushbutton','String','Left',...',但是我卡在那裏了。 。方向

回答

0

您可以創建按鈕,改變表示圖像軸的XLimYLim特性的簡單的回調函數

保存原來的限制:

xl = xlim; 
yl = ylim; 

例如移動圖像向左:

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

要向上移動:

ylim(ylim+step) 

要恢復到原來的位置:

xlim(xl) 
ylim(yl) 

UPDATE

下面是工作示例代碼(不使用說明書):

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)'); 
+0

謝謝@yuk。你可以精心設計回調函數嗎? – omegaFlame 2012-04-14 10:47:32

+0

@omegaFlame:很抱歉,遲到回覆。我用測試過的示例代碼更新了答案。這是你需要的嗎? – yuk 2012-04-16 19:03:33

+0

非常感謝 – omegaFlame 2012-04-18 15:52:57