MATLAB中GUI的使⽤技巧(1)之axes
概要
axes是MATLAB中GUI界⾯的重要控件之⼀,可以⽤来显⽰图⽚,⼗分常⽤,本⽂主要介绍⼀下它的⼀些使⽤技巧,包括以下两个⽅⾯:
(1)axes的重要属性
(2)如何在axes显⽰⼀幅图或多幅图,并清除当前axes内容(在matlab论坛看到的,借鉴学习)
1.axes的重要属性
(1)Tag
axes的名字,⼀个窗⼝可能有多个axes,根据tag选择某⼀个axes进⾏操作。
(2)title
设置坐标轴的标题,有效值为text对象的句柄,可直接使⽤title函数。例如:
title(date,'color','r'):将当前坐标轴标题设为当前⽇期,颜⾊设为红⾊。
title({'sinx','date'}):设置2⾏标题,第⼀⾏为sinx,第⼆⾏为⽇期。
(3)Units
Units决定各种位置属性的度量单位,以窗⼝左下⾓为基准。有效值为pixels、normalized、inches、centimeters、points或characters。当设置为pixels时,以像素为单位;当设置为normalized时,以坐标为单位,左下⾓为[0,0],右上⾓为[1,1]。axes默认Units为normalized。
2.axes显⽰图⽚
(1)显⽰单幅图
这个很简单,在按钮的回调函数中,⾸先选定axes,再进⾏imshow操作即可。下代码为先读⼊图⽚,再显⽰:
[filename,pathname]=uigetfile({'*.jpg';'*.bmp';'*.tif';'*.*'},'载⼊图像');
if isequal(filename,0)|isequal(pathname,0)
errordlg('没有选中⽂件','出错');
return;
else
file=[pathname,filename];
end
pic = imread(file);
axes(handles.axes1);
imshow(pic);
title(date,'color','r');
(2)显⽰多幅图
多图显⽰使⽤subplot函数,但值得注意的是,必须把axes放在⼀个panel(⾯板)内部,否则图像会超出axes区域范围。此外,有时希望重复利⽤axes,因此需要清除当前axes内容,可通过添加全局句柄变量进⾏判断。以下两段代码分别是显⽰多图和清空axes:
global h1 h2;
h1=subplot(1,2,1); %记下句柄h1
x=imread('football.jpg');
imshow(x);
h2=subplot(1,2,2); %记下句柄h2
y=imread('arms.jpg');
imshow(y);
global h1 h2;
h = 0;
if ishandle(h1) %判断h1是不是⼀个句柄
delete(h1);h=1;
end
if ishandle(h2) %判断h2是不是⼀个句柄
delete(h2);h=1;
end
if h
用subplot函数axes('parent',handles.uipanel1) %重建⼀个axes
end
此外,如果希望隐藏axes坐标轴信息,可以通过如下命令:
set(hObject,'xTick',[]);
set(hObject,'ytick',[]);
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论