学自“MATLAB GUI界面设计”微信公众号
https://mp.weixin.qq.com/s/iygmHVMevkKzo618Yy_d0Q

程序压缩包,有需要可以自行下载:

链接:https://pan.baidu.com/s/16xJ7bfoFMyj-BvTzrMDmzQ?pwd=rujz
提取码:rujz
https://download.csdn.net/download/qasxc78563/11142985

MATLAB打开文件直接点击运行,如果报错,根据弹窗提示选择更改文件路径,再点击运行就可以了,我这里使用的是MATLAB2016b版本

piture_procession.fig文件

piture_procession.m文件

%GUI图形界面初始化
function varargout = piture_procession(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...'gui_Singleton',  gui_Singleton, ...'gui_OpeningFcn', @piture_procession_OpeningFcn, ...'gui_OutputFcn',  @piture_procession_OutputFcn, ...'gui_LayoutFcn',  [] , ...'gui_Callback',   []);
if nargin && ischar(varargin{1})gui_State.gui_Callback = str2func(varargin{1});
endif nargout[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
elsegui_mainfcn(gui_State, varargin{:});
end% --- Executes just before piture_procession is made visible.
function piture_procession_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 piture_procession (see VARARGIN)
% Choose default command line output for piture_procession
handles.output = hObject;% Update handles structure
guidata(hObject, handles);
% UIWAIT makes piture_procession wait for user response (see UIRESUME)
% uiwait(handles.figure1);% --- Outputs from this function are returned to the command line.
function varargout = piture_procession_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;%图像导入并显示
function pushbutton1_Callback(hObject, eventdata, handles)
global im %将im变量设置成全局变量,这样子其他控件的回调函数才能调用这里的im变量
[filename,filepath]=uigetfile({'*.bmp;*.jpg;*.png;*.jpeg;*.tif;*gif;*Image files'},'选择图像');%获取图像文件名和路径
if isequal(filename,0)||isequal(filepath,0)return;
end
image =[filepath,filename];%合成路径+文件名
im=imread(image);%imread()函数根据image中的路径和文件名找到图片,并将其读取到im中
axes(handles.axes1);%在显示图像之前,需要指定图像要显示在哪个坐标轴
imshow(im);%在坐标axes1显示图像%添加高斯噪声
function pushbutton2_Callback(hObject, eventdata, handles)
global im %需要声明im是全局变量,这样子im就和其他控件的im是一样的值,否则就是个新的变量
i = imnoise(im,'gaussian');%imnoise()函数用来给图像添加噪声,可指定噪声的类型,这里是添加高斯噪声
axes(handles.axes2)
imshow(i);%添加椒盐噪声
function pushbutton3_Callback(hObject, eventdata, handles)
global im
i = imnoise(im,'salt & pepper');
axes(handles.axes2)
imshow(i);%添加泊松噪声
function pushbutton4_Callback(hObject, eventdata, handles)
global im
i = imnoise(im,'poisson');
axes(handles.axes2)
imshow(i);%用滑动条做图像增强
function slider6_Callback(hObject, eventdata, handles)
global im;
% 提示:get(hObject,'Value')返回滑块的位置
a=get(handles.slider6,'value');
x1=imadjust(im,[0.3 0.7],[0 1],a);
axes(handles.axes2);
imshow(x1);%滑动条设置
function slider6_CreateFcn(hObject, eventdata, handles)
if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor',[.9 .9 .9]);
end%灰度变化
function pushbutton5_Callback(hObject, eventdata, handles)
global im
axes(handles.axes2)
y=rgb2gray(im);
imshow(y);%去噪
function pushbutton6_Callback(hObject, eventdata, handles)
global im;
y=rgb2gray(im);
p = imnoise(y,'salt & pepper',0.1); %加10%的椒盐
axes(handles.axes1);
imshow(p);
g=medfilt2(p);
axes(handles.axes2);
imshow(g);%旋转
function pushbutton7_Callback(hObject, eventdata, handles)
global im
theta=30;
p=imrotate(im,theta);
axes(handles.axes2);
imshow(p);%二值化
function pushbutton8_Callback(hObject, eventdata, handles)
global im
y=rgb2gray(im);
n=graythresh(y);
axes(handles.axes2);
% im2bw(x,n);
output=imbinarize(y,n);
imshow(output);% 保存
function pushbutton9_Callback(hObject, eventdata, handles)
% global b;
new_f_handle=figure('visible','off');
new_axes=copyobj(handles.axes2,new_f_handle); set(new_axes,'units','default','position','default');
[filename,pathname,fileindex]=uiputfile({'*.jpg';'*.bmp';'*.png'},'save picture as');
if ~filenamereturn
elsefile=strcat(pathname,filename);
switch fileindex case 1print(new_f_handle,'-djpeg',file);case 2print(new_f_handle,'-dbmp',file);case 3print(new_f_handle,'-dpng',file)
end
end
delete(new_f_handle);% 退出
function pushbutton10_Callback(hObject, eventdata, handles)
clc
close all
close(gcf)
clear% Canny
function radiobutton1_Callback(hObject, eventdata, handles)
global im;
x1=imadjust(im,[0.3 0.7],[0 1],0.5);
axes(handles.axes2)
imshow(x1);
% str1=get(hObject,'string');
axes(handles.axes2);
y=rgb2gray(im);
dx=double(y);
R=edge(dx,'canny');
imshow(R);%Roberts
function radiobutton2_Callback(hObject, eventdata, handles)
global im;
% str=get(hObject,'string');
axes(handles.axes2);
y=rgb2gray(im);
dx=double(y);
R=edge(dx,'roberts');
imshow(R);%Sobel
function radiobutton3_Callback(hObject, eventdata, handles)
global im;
% str1=get(hObject,'string');
axes(handles.axes2);
y=rgb2gray(im);
dx=double(y);
R=edge(dx,'sobel');
imshow(R);%Orginal
function radiobutton4_Callback(hObject, eventdata, handles)
global im;
axes(handles.axes2);
imshow(im);

matlab利用GUI界面做简单的图像处理相关推荐

  1. 基于MATLAB软件GUI界面的自制简单电子琴

    基于MATLAB软件GUI界面的自制简单电子琴 概要: 本文基于MATLAB及其GUI界面设计了一个简单电子琴.利用MATLAB的GUI控件及相关算法,实现了一些简单的功能.这是作者大一暑期课程< ...

  2. 手写数字识别问题(2)——利用matlab搭建GUI界面

    经过GUI的学习(详见博客:https://blog.csdn.net/didi_ya/article/details/105357279 ),小白逐渐了解了MATLAB的GUI界面及其搭建.下面是我 ...

  3. matlab的gui界面怎么用,MATLAB的GUI界面基础操作

    今天我们来学习如何用MATLAB的GUI界面进行一些简单的操作,因为GUI界面可以很简单的制作界面,按钮系列,直接拖拽即可,而不需要用代码对界面进行编写,只需要对里面的具体功能进行编码,我们今天就运用 ...

  4. 基于MATLAB软件GUI界面的可编程电音合成器软件

    基于MATLAB软件GUI界面的可编程电音合成器软件 1 总体设计 1.1 设计思路 1.2 软件运行 2 软件功能说明 2.1 软件界面 2.1.1 菜单栏 2.1.2 工具栏 2.1.3 MySy ...

  5. matlab制作GUI界面(1)

    matlab制作GUI界面 概述 创建GUI界面 界面设置 静态文本 最后 概述 图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的 ...

  6. MATLAB中GUI界面开发上位机

    MATLAB是一个十分强大的工具,用来制作串口上位机也是不错的选择.虽然一般的上位机是用的C#或者C++编写的,这两者具有强大的系统操作能力或便捷灵活的通信和控制开发能力.但是对于我这种偏硬小白,ma ...

  7. MATLAB之GUI界面创建

    初衷 由于课程要求,学习了下创建MATLAB交互界面,最初学习的途径就是在CSDN上搜索:然而参考了几篇博客文章之后,操作时还是一头雾水(拼死挣扎不愿承认自己能力太差:)),后来在同学的帮助下,成功完 ...

  8. matlab中gui界面如何保存为图片,如何保存MATLAB GUI界面中的图片

    如何保存MATLAB GUI界面中的图片 代码来源自网络,作者未知,侵删. 原生支持png,bmp,jpg格式.另外自行添加了清晰度比较高的eps格式(荐). 新建一个按钮,按钮的代码如下. 其中第二 ...

  9. Matlab 实现GUI界面相应鼠标事件

    和C++平台一样,MATLAB也能在GUI设计中写入鼠标事件 **功能:**拖动鼠标左键时,在Axes区域画线,松开时不画,再次点击时画线- 少数几个需要用到的函数和属性 ·WindowButtonD ...

最新文章

  1. android:layout_weight的真实含义
  2. python写web难受-python写web
  3. 第三讲 一阶线性ODE
  4. Bootstrap4+MySQL前后端综合实训-Day06-PM【MD5加码-生成32位md5码、ResultData.java、分页查询用户数据、添加用户按钮的实现】
  5. 成都python数据分析师职业技能_想成为数据分析师,需要重点学习什么技能?
  6. (计算机组成原理)第二章数据的表示和运算-第二节2:原码、反码、补码和移码的作用
  7. 常用库函数_跑马灯实验和我为什么使用库函数?
  8. Linux Shell 判断块设备节点是否存在
  9. sina邮箱的发件服务器拒绝,新浪帮助-常见问题
  10. HTML5新增语义化标签(HTML5)
  11. 3.sf2 核心目录及文件结构
  12. 模型描述的关系模式_图解各种管理模型大全--管理模型大全
  13. oracle 表空间删除文件,如何正确的删除表空间数据文件
  14. jq html怎么优化seo,长沙网站seo:浅谈SEO优化技巧之HTML结构调整!
  15. Choco包管理工具安装
  16. java 卸载工具_java卸载工具下载
  17. 作为一个新手程序员该如何成长
  18. ssd硬盘 速度慢 linux,Linux 对SSD硬盘优化的方法
  19. leetcode刷题规划
  20. 以一半的价格组装专业的深度学习工作站

热门文章

  1. 深度神经网络的训练过程,深度神经网络训练
  2. PaddlePaddle|CV疫情特辑(三):车牌识别
  3. js 数组删除指定的值
  4. 最近看的一些精彩动漫
  5. [转] 基本RS触发器
  6. 不用方向盘 工程师成功用诺基亚C7远程控制宝马车
  7. Notepad++ NPPExec 插件
  8. python raise exception用法_python Exception raise
  9. 移动互联的未来,谁在紧握命运的咽喉?
  10. 上线 B 站,钢铁侠出镜 AI 科普纪录片!