matlab利用GUI界面做简单的图像处理
学自“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界面做简单的图像处理相关推荐
- 基于MATLAB软件GUI界面的自制简单电子琴
基于MATLAB软件GUI界面的自制简单电子琴 概要: 本文基于MATLAB及其GUI界面设计了一个简单电子琴.利用MATLAB的GUI控件及相关算法,实现了一些简单的功能.这是作者大一暑期课程< ...
- 手写数字识别问题(2)——利用matlab搭建GUI界面
经过GUI的学习(详见博客:https://blog.csdn.net/didi_ya/article/details/105357279 ),小白逐渐了解了MATLAB的GUI界面及其搭建.下面是我 ...
- matlab的gui界面怎么用,MATLAB的GUI界面基础操作
今天我们来学习如何用MATLAB的GUI界面进行一些简单的操作,因为GUI界面可以很简单的制作界面,按钮系列,直接拖拽即可,而不需要用代码对界面进行编写,只需要对里面的具体功能进行编码,我们今天就运用 ...
- 基于MATLAB软件GUI界面的可编程电音合成器软件
基于MATLAB软件GUI界面的可编程电音合成器软件 1 总体设计 1.1 设计思路 1.2 软件运行 2 软件功能说明 2.1 软件界面 2.1.1 菜单栏 2.1.2 工具栏 2.1.3 MySy ...
- matlab制作GUI界面(1)
matlab制作GUI界面 概述 创建GUI界面 界面设置 静态文本 最后 概述 图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的 ...
- MATLAB中GUI界面开发上位机
MATLAB是一个十分强大的工具,用来制作串口上位机也是不错的选择.虽然一般的上位机是用的C#或者C++编写的,这两者具有强大的系统操作能力或便捷灵活的通信和控制开发能力.但是对于我这种偏硬小白,ma ...
- MATLAB之GUI界面创建
初衷 由于课程要求,学习了下创建MATLAB交互界面,最初学习的途径就是在CSDN上搜索:然而参考了几篇博客文章之后,操作时还是一头雾水(拼死挣扎不愿承认自己能力太差:)),后来在同学的帮助下,成功完 ...
- matlab中gui界面如何保存为图片,如何保存MATLAB GUI界面中的图片
如何保存MATLAB GUI界面中的图片 代码来源自网络,作者未知,侵删. 原生支持png,bmp,jpg格式.另外自行添加了清晰度比较高的eps格式(荐). 新建一个按钮,按钮的代码如下. 其中第二 ...
- Matlab 实现GUI界面相应鼠标事件
和C++平台一样,MATLAB也能在GUI设计中写入鼠标事件 **功能:**拖动鼠标左键时,在Axes区域画线,松开时不画,再次点击时画线- 少数几个需要用到的函数和属性 ·WindowButtonD ...
最新文章
- android:layout_weight的真实含义
- python写web难受-python写web
- 第三讲 一阶线性ODE
- Bootstrap4+MySQL前后端综合实训-Day06-PM【MD5加码-生成32位md5码、ResultData.java、分页查询用户数据、添加用户按钮的实现】
- 成都python数据分析师职业技能_想成为数据分析师,需要重点学习什么技能?
- (计算机组成原理)第二章数据的表示和运算-第二节2:原码、反码、补码和移码的作用
- 常用库函数_跑马灯实验和我为什么使用库函数?
- Linux Shell 判断块设备节点是否存在
- sina邮箱的发件服务器拒绝,新浪帮助-常见问题
- HTML5新增语义化标签(HTML5)
- 3.sf2 核心目录及文件结构
- 模型描述的关系模式_图解各种管理模型大全--管理模型大全
- oracle 表空间删除文件,如何正确的删除表空间数据文件
- jq html怎么优化seo,长沙网站seo:浅谈SEO优化技巧之HTML结构调整!
- Choco包管理工具安装
- java 卸载工具_java卸载工具下载
- 作为一个新手程序员该如何成长
- ssd硬盘 速度慢 linux,Linux 对SSD硬盘优化的方法
- leetcode刷题规划
- 以一半的价格组装专业的深度学习工作站