大家好,又见面了,我是你们的朋友全栈君。
前言
在MATLAB的命令行中显示图片或者数据,十分简单,仅通过imshow
,plot
或者imagesc
等函数即可。
而在MATLAB GUI中显示图片,通常需要借助Axes控件来实现。相比而言,多一些操作。
在GUI中显示图片
创建一个空白的界面
在GUIDE中,添加一个按钮,然后再添加一个Axes控件,适当调整两者比例。
然后在Button的回调函数中添加如下代码
代码语言:javascript复制% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
axes(handles.axes1);
image = imread('1.jpg');
imshow(image);
然后运行GUI,点击按钮,就会发现按钮可以发挥作用——
但如果你的目标是在GUI开启的阶段就打开图片,就把这段代码加入到OpeningFcn函数中去——
代码语言:javascript复制% --- Executes just before untitled is made visible.
function untitled_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to untitled (see VARARGIN)
% Choose default command line output for untitled
handles.output = hObject;
set(handles.axes1,'visible','off');
axes(handles.axes1);
image = imread('1.jpg');
imshow(image);
% Update handles structure
guidata(hObject, handles);
总结
网上关于MATLAB GUI的知识点太零散了,相比于Qt、MFC这种主流GUI框架,简直弱爆了。可能MATLAB本身的使命仍旧是做模拟仿真、数学运算,而不是做软件界面吧。但事实上,国外的大神在GitHub上开源的GUI界面总是那么精美。看来还是国内的科研项目对软件界面重视不够,以至于需求没那么多,也就没那么多人关注了。 这对于初学者而言,十分难受。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/131809.html原文链接:https://javaforall.cn