我正在寻找如何在界面的特定区域中在GUI中显示图像。
答案 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