matlab gui自定义图片做背景,matlab GUI自定义图片做背景
原理是坐標軸覆蓋,就是在坐標軸上顯示圖然后作為背景
一、簡單方法
之前實現了在figure上把圖片做為背景,現在實現在Guide上實現。
其實很簡單,就是在Fcn的地方添加以下代碼:
ha=axes('units','normalized','position',[00 1 1]);
uistack(ha,'down')
II=imread('禾木01.bmp');
image(II)
colormap gray
set(ha,'handlevisibility','off','visible','off');
另外如果要把那些按鈕等的背景也改變,也是在此處添加相應代碼就可。
比如下面代碼把按鈕的背景改變了(此方法已有人在論壇發過帖子,請自己搜索):
I=imread('buttoncdata.bmp');
set(handles.pushbutton1,'cdata',I);
二、通用方法
實例中我們將調整GUI的尺寸來適應圖片的大小,背景是448×336圖片,單位為像素
gui
雙擊GUI的figure(窗體),在跳出的屬性查看器中將Units設置為pixels(像素)
將Position屬性的Width和Height分別設置為448和336
接下來添加一個坐標系,將Tag設置為axes1
Matlab中沒法直接添加背景,而需要借助坐標系這個容器,再將背景顯示在坐標系上,其實說白了這就是以假亂真。注意axes必須覆蓋整個figure窗體,否則就露餡了!
點擊GUIDE工具欄的 ??按鈕,編輯對應的M文件。在customImage_OpeningFcn下面添加如下代碼
% **_OpeningFcn函數是GUI在打開時的執行的命令,此時GUI界面還沒有顯示出來
% 將背景圖像載入Matlab
% 如果圖像不在當前目錄,必須使用完整路徑
backgroundImage =importdata('sunset-beach.jpg');
% 選擇坐標系
axes(handles.axes1);
% 將圖片添加到坐標系中,于是就成了背景了
image(backgroundImage);
% 將坐標系的坐標軸標簽去掉
axis off
為按鈕添加可愛的圖標
需要注意的是GUI中只有pushbutton、togglebutton以及工具欄按鈕才可以添加圖標,其它控件都是無效的
在上面得到的GUI中,我們繼續在figure上添加一個pushbutton,設置Tag為pushbutton1
修改pushbutton1的Units屬性為pixels
position屬性的width和height分別設置為65和65
打開對應的M文件,定位到customImage_OpeningFcn,在下面添加
%import the smiley image into matlab
%if image is not in the same directory asthe GUI files, you must use the
%full path name of the image file
smiley = importdata('smiley.jpg');
%set the smiley image as the buttonbackground
set(handles.pushbutton1,'CDATA',smiley);
運行整個GUI程序,效果如下圖所示
總結
以上是生活随笔為你收集整理的matlab gui自定义图片做背景,matlab GUI自定义图片做背景的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 线程aba,JAVA中CAS-
- 下一篇: php两个数组去掉相同的,php如何删除