matlab中如何编写一个GUI的按钮读取图像?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab中如何编写一个GUI的按钮读取图像?相关的知识,希望对你有一定的参考价值。
参考技术A % 把所有的代码拷贝保存运行即可\\x0d\\x0a \\x0d\\x0afunction zd479599250\\x0d\\x0a% 编写一个GUI的按钮读取一副图像,功能如下:\\x0d\\x0a% 点击按钮,弹出对话框,然后从对话框中选取图片\\x0d\\x0a\\x0d\\x0a% 创建绘图窗口,里面包括一个坐标系及一个按钮\\x0d\\x0aaxes(\'units\',\'normal\',\'pos\',[.1 .3 .8 .6]);\\x0d\\x0auicontrol(\'style\',\'push\',\'units\',\'normal\',\'pos\',[.4 .1 .2 .1],\'str\',\'Open...\',\'call\',@localOpenPic)\\x0d\\x0a\\x0d\\x0afunction localOpenPic(varargin)% 按钮的回调函数,首先让用户选择图像文件,打开并显示\\x0d\\x0a% 图像文件类型(不完整,仅作示范)\\x0d\\x0afilter = ...\\x0d\\x0a \'*.bmp;*.jpg;*.gif;*.emf\', \'所有图像文件 (*.bmp; *.jpg; *.gif; *emf)\'; ...\\x0d\\x0a \'*.bmp\', \'位图文件 (*.bmp)\'; ...\\x0d\\x0a \'*.jpg\', \'JPEG文件 (*.jpg)\'; ...\\x0d\\x0a \'*.gif\', \'GIF文件 (*.gif)\'; ...\\x0d\\x0a \'*.emf\', \'图元文件 (*.emf)\'; ...\\x0d\\x0a \'*.*\', \'所有文件 (*.*)...\\x0d\\x0a ;\\x0d\\x0a\\x0d\\x0a% 选择文件\\x0d\\x0a[filename, pathname] = uigetfile( filter, \'打开...\');\\x0d\\x0aif isequal(filename,0) | isequal(pathname,0), return, end\\x0d\\x0a\\x0d\\x0a% 读入图像并显示\\x0d\\x0a[X, map] = imread([pathname filename]);\\x0d\\x0acolormap(map)\\x0d\\x0aimage(X)\\x0d\\x0a\\x0d\\x0a% 设置坐标系为适合显示图像的方式\\x0d\\x0aaxis image\\x0d\\x0aset(gca, \'vis\', \'off\')Matlab GUI工具栏编辑器
1.滑块
功能:采用GUI滑块进行图像的像素处理操作
在滑块中添加的的代码:
im=imread(‘cameraman.tif‘);
axes(handles.axes2);
imshow(im);
k=get(hObject,‘value‘);
imshow(k.*im);
2.单项选择按钮
在第一个单项按钮下添加:
set(handles.radiobutton1,‘Value‘,1);
set(handles.radiobutton2,‘Value‘,0); %设置2为0,即取消单选
axes(handles.axes1); %在坐标轴1画图
mesh(peaks);
在第二个单项按钮下添加:
set(handles.radiobutton1,‘Value‘,0);
set(handles.radiobutton2,‘Value‘,1);
axes(handles.axes1);
peaks;
4.可编辑文本框
写文本框中:
set(handles.edit1,‘string‘,i);
读取文本框中的内容:
num = str2num(get(handles.eidt2,‘string‘));
5.弹出式菜单
弹出式菜单就是一个下拉菜单,具体的属性读取程序为:get(handles.popupmenul,‘Value‘);对于下拉菜单的使用,采用switch case等程序结构。
设计如下:
popup_sel_index = get(handles.popupmenu1,‘Value‘);
switch popup_sel_index
case 2
axes(handles.axes1);
t=1:10;
y=t+1;
plot(y,‘linewidth‘,‘2‘);
case 3
axes(handles.axes1);
t=1:10;
y=t.^2+1;
plot(y,‘linewidth‘,‘2‘);
end
6.列表框
列表框将用户选择的信息呈现出来,用户在列表框中选择文本,针对不同的选择结果,执行不同的功能。
获取列表框的字符串:
list_entries=get(handles.listbox2,‘String‘); %获取列表框字符串
index_selected=get(handles.listbox2,‘Value‘); %获取列表框值
7.切换按钮
切换按钮属性值为up何down两个。单击一下切换按钮,输出为up,再次单击输出为down。
button_state = get(hObject,‘Value‘);
if button_state == get(hObject,‘Max‘) %单击
display(‘down‘);
elseif button_state==get(hObject,‘Min‘) %再次单击
display(‘up‘);
end
if button_state==0 %再次单击
axes(handles.axes1);
imshow(imread(‘cameraman.tif‘));
elseif button_state==1 %单击
axes(handles.axes1);
peaks;
end
8.表
见帮助文档:
doc uitable
9.面板
GUI面板将某些模块的功能按键放在一起,实现整分块的结构设计。移动面板时,面板上的功能按钮和面板一起移动,并且相对位置和相对大小不会改变。
10.GUI ActiveX控件
开始Matlab是64位的没有 LED Control Activex控件,最后Matlab直接换成32位的了,心痛!(不过好像matlab2015版本以后不再支持32位了。)
可以参考:
以上是关于matlab中如何编写一个GUI的按钮读取图像?的主要内容,如果未能解决你的问题,请参考以下文章