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
    axes('parent',handles.uipanel1)  %重建一个axes
end
         此外,如果希望隐藏axes坐标轴信息,可以通过如下命令:
set(hObject,'xTick',[]);
set(hObject,'ytick',[]);

猜你喜欢

转载自blog.csdn.net/mingtian715/article/details/72957720
今日推荐