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);   %设置20,即取消单选
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位了。)
可以参考:

http://www.cnblogs.com/qiufenghui/p/3453083.html

以上是关于matlab中如何编写一个GUI的按钮读取图像?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用matlab制作GUI界面

matlab gui 清除图形

matlab GUI-图像输入与输出的简单例子

matlab GUI-如何给GUI中添加提示框

怎么用matlab编写一个实验数据拟合的GUI界面程序,

matlab中的GUI,轴中的图像循环