学自“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 Studio 配置 AspectJ 报错 ( all buildscript {} blocks must appear before any plugins {} )
  2. oracle创建简单包,Oracle创建程序包是什么?
  3. Jquery 寻找父、子、兄弟节点
  4. AccessibilityService的具体应用场景
  5. Ubuntu 16.04 安裝chrome
  6. FragmentStatePagerAdapter写法
  7. An internal error occurred during: Launching MVC on Tomcat 7.x.
  8. 情侣在公交车上接吻遭乘客指责
  9. 【UVa10674】Tangents(两圆公切线的切点--验板子题)
  10. Python——爬取单章小说内容
  11. RxSwift 介绍与简单使用
  12. LinkTrack UWB定位系统NLink协议解析方法
  13. 独家报道|配音工具大放送|这么好听的声音居然……(教程篇)
  14. 洛谷P1873-砍树(二分答案)
  15. Java实现简单画图工具
  16. Servlet[SpringMVC]的Servlet.init()引发异常
  17. 【豆舞咖啡】量变到质变
  18. 局域网下两个电脑的文件实时传输--python程序
  19. 程序员超级干货书单分享!这些书年轻时一定要读!
  20. 2018年12月上海国际大数据产业展

热门文章

  1. 初级运维工程师面试题
  2. 一.JAVA环境搭建
  3. Pythonxy'import sitecustomize'错误的解决办法
  4. 【cocos shader 005】 Grid3D 网格 吸入 扩散 效果 实例讲解
  5. js身份证正则精准校验
  6. 清华大学uCore-操作系统内核实现
  7. delphi 独占模式操作文本文件
  8. EasyX的安装与使用详细教程
  9. 洛谷P1272 重建道路
  10. DialogDemo