在特定区域使用GUI MATLAB显示图像

时间:2010-05-27 20:39:36

标签: image matlab

我正在寻找如何在界面的特定区域中在GUI中显示图像。

3 个答案:

答案 0 :(得分:3)

在GUIDE中,您可以将轴绘制到GUI中。然后,在回调函数中,您可以将图像绘制到轴中。

就个人而言,我宁愿在GUI中没有图像,因为它使得更难以正确地调整所有内容,如果你想仔细查看图像,或者捕获它以粘贴到另一个应用程序中,作为GUI的一部分的数字可能不方便。因此,我更喜欢在单独的图形窗口中打开图像。

答案 1 :(得分:0)

请尝试以下代码:

function movingimage
    %# Plotting a figure
    fig1=figure('Name','Plotting an image',...
        'Unit','normalized', 'Position',[.1 .1 .8 .8]);
    uicontrol(fig1,'Style','text','Unit','Normalized',...
        'Position',[.9 .85 .1 .07],'String','Press the button below to move the image location.');
    uicontrol(fig1,'Style','pushbutton','Unit','Normalized',...
        'Position',[.9 .8 .05 .05],'String','Move','Callback',{@action_Callback});

    %# Say, you wish to plot an image of relative dimension (.3 x .3) to the figure.
    xdim=.3; ydim=.3;
    %# Image's movable range in x is (1 - xdim)
    dx=1-xdim;
    %# Image's Movable range in y is (1 - ydim)
    dy=1-ydim;
    %# considering the size of the image...
    pos = [.5*dx .5*dy xdim ydim];  %# Initial location of the image is at the center of the figure.
    ax1 = axes('position',pos);
    img = load('mandrill');
    image(img.X)
    colormap(img.map);axis off;axis equal;

    function action_Callback(hObj,eventdata)
        pos=[rand(1)*dx rand(1)*dy xdim ydim];
        set(ax1,'position',pos);
    end
end

答案 2 :(得分:0)

我发现这样做最直接,最简单的方法是使用Axis组件,如本教程所示:

http://www.aboutcodes.com/2012/06/how-to-display-image-in-gui-using.html