matlab GUI編程及轉換爲獨立運行的exe文件

入門視頻:https://www.bilibili.com/video/av20999810?from=search&seid=13641596054754955985

1、打開matlab 的gui設計界面

在matlab控制窗口輸入guide,會出現guide窗口,根據需要選擇gui模板,可以選擇blank gui建立自己的界面。
在這裏插入圖片描述

2、設計自己的gui界面

構思自己的界面,並進行繪製,可根據自己的功能對控件進行拖拽排版。
在這裏插入圖片描述

控件屬性修改:
將控件拖至面板後,雙擊會彈出控件屬性檢查器,可根據需要進行修改
此處不懂的可以找視頻看一下
在這裏插入圖片描述

3、保存界面

點擊界面上的運行按鈕,可對界面進行保存(界面保存後,會生產.m(matlab程序)和.fig(圖形界面)文件),並預覽界面
在這裏插入圖片描述
保存後生成的兩個文件:
在這裏插入圖片描述

4、修改程序,實現功能

以顯示圖片爲例:
在gui界面拖入一個axes窗口
然後在系統的啓動函數中可加入圖片顯示,相當於界面吧,即不通過按鈕控制,直接顯示。
在這裏插入圖片描述

im2=imread('2.png');  %讀入圖片
axes(handles.axes2);  %綁定顯示窗口(axes的名稱爲控件雙擊後的tag的名稱)
imshow(im2); %顯示圖片
colormap(handles.axes2,jet);  

該方法即可將圖片加載在座標軸
在這裏插入圖片描述

座標軸如果不需要可以隱藏:
推薦博客:https://blog.csdn.net/shitao99/article/details/85882320

5、如何實現兩個gui界面的跳轉

可通過button按鈕實現
首先,在一個gui界面下建立一個button按鈕,修改string屬性,命名爲next
在這裏插入圖片描述

然後在控件上右鍵–查看回調–callback,會跳轉到callback函數
輸入以下代碼即可:

h=gcf; %獲得當前的figure對象的句柄值,即當前的gui界面
test2;  %要跳轉的figure對象名字
close(h); %關閉當前的界面

在這裏插入圖片描述

6、如何實現圖像在matlab gui中的正常顯示?

matlab有兩種顯示圖像的方式:image和imshow
顯示圖像正常用imshow即可

im=imread('');
axes(handles.axes2);  %給出顯示圖像的圖區
imshow(im)

imshow可正常顯示,image則需要colormap配合顯示。
imshow和image的異同: https://blog.csdn.net/zhuiyuanzhongjia/article/details/79621813

7、各控件編寫程序

推薦視頻: https://ke.qq.com/course/list/matlab gui
可根據視頻將主要控件的編寫方式模仿一下,在編寫自己的小程序

8、控制框提醒

當進行一些操作時,比如保存文件等,在界面上不會有顯示,此時可通過控制框進行提醒,操作已完成,防止無聊的等待。

msgbox('窗體顯示內容''窗體名稱,可爲空'

在這裏插入圖片描述
寫在callback函數裏即可

9、怎麼將一張圖片從一個ui傳遞給另一個ui?

第一種方法:將gui1的圖片保存,在gui2中讀取
第二種方法:http://blog.sina.com.cn/s/blog_4aee288a0100i4t9.html
通過全局變量和gui的output_function來傳遞參數

10、gui中怎麼將一張圖片進行任意角度的旋轉?

slider和edit控件的使用:
slider調整角度,edit顯示數值

%slider的callback函數

function slider3_Callback(hObject, eventdata, handles)
% hObject    handle to slider3 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

%slider旋轉角度調整
sliderValue = get(handles.slider3,'Value');
sliderValue=int32(sliderValue*360);
set(handles.edit1,'string',num2str(sliderValue));   %slider將值傳遞給edit1進行顯示
%edit文本框中顯示slider的數值

function edit1_Callback(hObject, eventdata, handles)
% hObject    handle to edit1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

%edit1
set(handles.slider3,'Value',str2num(get(hObject,'string')))  %edit設定值由slider3傳遞
%獲取旋轉角度,進行圖片旋轉

function pushbutton6_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton6 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

%旋轉

% msgbox('請確保已打開分割後的二值圖像','warning')
value=get(handles.slider3,'Value');
value=int32(value*360);
    %imgdata=get(handles.imgdata);
    %loadimage=getappdata(handles.figure1,'loadimage') %改成打開的圖片
axes(handles.axes1);
imgdata=imrotate(handles.imgdata,value);
imshow(imgdata);
handles.imgdata=imgdata;
guidata(hObject,handles)

11、從當前窗口獲取圖像並進行顯示

im=getframe(handles.axes1);
axes(handles.axes2);
imshow(im)

12、用matlab做GUI界面,並生成獨立的可執行程序

兩種方式:
1、通過matlab命令行窗口進行操作:https://blog.csdn.net/SoaringLee_fighting/article/details/79344468
2、通過depolytool命令:https://blog.csdn.net/heshiip/article/details/50751810

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章