2012-04-13 73 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