MATLAB GUI显示图片的方法

2022-07-01 09:03:32 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

前言

  在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

0 人点赞