程序源码:https://github.com/klc407073648/matlab

1.首先在Matalb命令行中输入guide指令:

2.点击open,打开我设计好的界面如下:

主界面主要包含两个axes来显示图像处理前后的效果。

3.下面来介绍本文设计的程序:

function varargout = gui(varargin)gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...'gui_Singleton',  gui_Singleton, ...'gui_OpeningFcn', @gui_OpeningFcn, ...'gui_OutputFcn',  @gui_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{:});
endfunction gui_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
guidata(hObject, handles);function varargout = gui_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output;% --------------------------------------------------------------------
%文件
function open_Callback(hObject, eventdata, handles)%打开图片
global im   %定义一个全局变量im
global im2
[filename,pathname]=...uigetfile({'*.*';'*.bmp';'*.tif';'*.png'},'select picture');  %选择图片路径
str=[pathname filename];  %合成路径+文件名
im=imread(str);   %读取图片
im2=im;
axes(handles.axes1);  %使用第一个axes
imshow(im);  %显示图片function save_Callback(hObject, eventdata, handles)%保存图片
global BW
set(handles.axes2,'HandleVisibility','ON');
axes(handles.axes2);
[filename,pathname]=uiputfile({'*.jpg';'*.bmp';'*.tif';'*.*'},'save image as');
file=strcat(pathname,filename);
BW=getimage(gca);
imwrite(BW,file);
set(handles.axes2,'HandleVisibility','Off');
function quit_Callback(hObject, ~, handles)%退出操作
close(gcf)  %关闭当前Figure窗口句柄% --------------------------------------------------------------------
%菜单栏的调回函数,实际不使用
function t1_Callback(hObject, eventdata, handles)function t2_Callback(hObject, eventdata, handles)function t3_Callback(hObject, eventdata, handles)function t4_Callback(hObject, eventdata, handles)function t5_Callback(hObject, eventdata, handles)function t6_Callback(hObject, eventdata, handles)function t7_Callback(hObject, eventdata, handles)function t8_Callback(hObject, eventdata, handles)function t9_Callback(hObject, eventdata, handles)% --------------------------------------------------------------------
% 图像类型变换
function rgb2gray_Callback(hObject, eventdata, handles)%原图-灰度
global im
global BW  %定义全局变量
axes(handles.axes2);
BW=rgb2gray(im);
im=BW;
imshow(BW);function im2bw_Callback(hObject, eventdata, handles)%原图-二值
global im
global BW  %定义全局变量
axes(handles.axes2);
BW=im2bw(im);
im=BW;
imshow(BW);function dither_Callback(hObject, eventdata, handles)%灰度-二值
global im
global BW  %定义全局变量
axes(handles.axes2);
BW=dither(im);
im=BW;
imshow(BW);% --------------------------------------------------------------------
% 边缘检测
function roberts_Callback(hObject, eventdata, handles)
global im
global BW  %定义全局变量
axes(handles.axes2);   %使用第二个axes
BW=edge(im,'roberts',0.04);
imshow(BW);function sobel_Callback(hObject, eventdata, handles)
global im
global BW  %定义全局变量
axes(handles.axes2);   %使用第二个axes
BW=edge(im,'sobel',0.04);
imshow(BW);function prewitt_Callback(hObject, eventdata, handles)
global im
global BW  %定义全局变量
axes(handles.axes2);   %使用第二个axes
BW=edge(im,'prewitt',0.04);
imshow(BW);function log_Callback(hObject, eventdata, handles)
global im
global BW  %定义全局变量
axes(handles.axes2);   %使用第二个axes
BW=edge(im,'log',0.003);
imshow(BW);function canny_Callback(hObject, eventdata, handles)
global im
global BW  %定义全局变量
axes(handles.axes2);   %使用第二个axes
BW=edge(im,'canny',0.2);
imshow(BW);% --------------------------------------------------------------------
%图像变换
function DFT_Callback(hObject, eventdata, handles)
global im
global BW  %定义全局变量
axes(handles.axes2);
I1=double(im);
I2=fft2(I1);
I3=fftshift(I2);
I3=log(abs(I3));
BW=I3;
imshow(BW,[]);function DCT_Callback(hObject, eventdata, handles)
global im
global BW  %定义全局变量
axes(handles.axes2);
I1=double(im);
I2=dct2(I1);
I3=log(abs(I2));
BW=I3;
imshow(BW);% --------------------------------------------------------------------
% 图像旋转
function rotate_Callback(hObject, eventdata, handles)
global im
global BW  %定义全局变量
% A=getimage(handles.axes1);
A=im;
axes(handles.axes2);
prompt={'度数:'};
def={'90'};
answer=inputdlg(prompt,'请输入:',1,def);
if ~isempty(answer)
a = str2num(answer{1});
J=imrotate(A,360-a);
BW=J;
imshow(BW);
endfunction Initial_Callback(hObject, eventdata, handles)%初始化
global im
global im2
global BW  %定义全局变量
BW=im2;
im=im2;
axes(handles.axes2);
imshow(BW);% --------------------------------------------------------------------
% 图像噪声添加
function gaussian_Callback(hObject, eventdata, handles)
global im
global BW  %定义全局变量
I=im2double(im);
J=imnoise(I,'gaussian');
BW=J;
axes(handles.axes2);
imshow(BW);function salt_Callback(hObject, eventdata, handles)
global im
global BW  %定义全局变量
I=im2double(im);
J=imnoise(I,'salt & pepper');
BW=J;
axes(handles.axes2);
imshow(BW);function speckle_Callback(hObject, eventdata, handles)
global im
global BW  %定义全局变量
I=im2double(im);
J=imnoise(I,'speckle');
BW=J;
axes(handles.axes2);
imshow(BW);function poisson_Callback(hObject, eventdata, handles)
global im
global BW  %定义全局变量
I=im2double(im);
J=imnoise(I,'poisson');
BW=J;
axes(handles.axes2);
imshow(BW);% --------------------------------------------------------------------
% 图像滤波
function medilt_Callback(hObject, eventdata, handles)%中值滤波
global BW  %定义全局变量
J=medfilt2(BW, [3,3]);
BW=J;
axes(handles.axes2);
imshow(BW);function wiener_Callback(hObject, eventdata, handles)%自适应滤波
global BW  %定义全局变量
J=wiener2(BW,[3,3]);
BW=J;
axes(handles.axes2);
imshow(BW);function filter2_Callback(hObject, eventdata, handles)%均值滤波
global BW  %定义全局变量
M1=ones(3);
M1=M1/9;
J=filter2(M1,BW);
BW=J;
axes(handles.axes2);
imshow(BW);% --------------------------------------------------------------------
% 形态学图像处理
function bwmorph_Callback(hObject, eventdata, handles)%骨骼化
global im
global BW  %定义全局变量
I=im2double(im);
I=im2bw(I);
J=bwmorph(I,'remove');
G=bwmorph(J,'skel',inf);
BW=G;
axes(handles.axes2);
imshow(BW);function imfill_Callback(hObject, eventdata, handles)%区域填充
global im
global BW  %定义全局变量
axes(handles.axes2);
I1=im2bw(im);I2=1-I1;
se=ones(5);
I3=imerode(I2,se);
I4=1-I3;
I5=imerode(I4,se);
I6=imerode(I5,se);
I7=imdilate(I6,se);
BW=I7;imshow(BW);function diagonal_Callback(hObject, eventdata, handles)%对角线特征提取
global im
global BW  %定义全局变量
axes(handles.axes2);
I1=im2bw(im);
v=[1,1,1,1,1,1,1,1,1,1];
se=diag(v);
I2=imerode(I1,se);
I3=imdilate(I2,se);
BW=I3;
imshow(BW);% --------------------------------------------------------------------
%图像灰度变化
function plotchange_Callback(hObject, eventdata, handles)
global im
global BW  %定义全局变量
axes(handles.axes2);   %使用第二个axes
A=im2double(im);a=0.3;%0.3 0.7 0.5 0.9b=0.7;c=0.1;d=0.9;%0.3 0.7 0.1 0.9B=A;[m,n]=size(B);Mg=max(max(B));Mf=max(max(A));for (i=1:m)for (j=1:n)if(A(i,j)>=0&&A(i,j)<=a)B(i,j)=(c/a)*A(i,j);endif(A(i,j)>=a&&A(i,j)<=b)B(i,j)=(((d-c)/(b-a))*(A(i,j)-a))+c;endif(A(i,j)>=b&&A(i,j)<=1)B(i,j)=(((Mg-d)/(Mf-b))*(A(i,j)-b))+d;endendendBW=B;imshow(BW);function imhist_Callback(hObject, eventdata, handles)
global im
global BW  %定义全局变量
axes(handles.axes2);   %使用第二个axesBW=im;imhist(BW);function histeq_Callback(hObject, eventdata, handles)
global im
global BW  %定义全局变量
axes(handles.axes2);   %使用第二个axes
BW=histeq(im);
imhist(BW);% --------------------------------------------------------------------
function histeqafter_Callback(hObject, eventdata, handles)
global im
global BW  %定义全局变量
axes(handles.axes2);   %使用第二个axes
imshow(BW);

4.最终的生成界面如下。

将原图进行灰度化处理效果如下

5.GUI界面所实现的功能如下。

MATLAB2013实现图像处理GUI界面设计相关推荐

  1. 基于MATLAB的数字图像处理系统GUI界面设计

    基于MATLAB的数字图像处理系统GUI界面设计 图像读入 从图形文件中读入图像 imread Syntax: A = imread(filename, fmt) filename:指定的灰度或彩色图 ...

  2. Python之GUI:基于Python的GUI界面设计的一套AI课程学习(机器学习、深度学习、大数据、云计算等)推荐系统(包括语音生成、识别等前沿黑科技)

    Python之GUI:基于Python的GUI界面设计的一套AI课程学习(机器学习.深度学习.大数据.云计算等)推荐系统(包括语音生成.识别等前沿黑科技) 导读 基于Python的GUI界面设计的一套 ...

  3. 【Qt设计开发】GUI界面设计开发

    文章目录 一.Qt简介和下载安装 二.Qt入门 2.1 创建第一个项目 2.2 快捷键和命名规范 2.3 Qt项目和VS2022项目相互转换 三.Qt基础 3.1 Qt对象树和窗口坐标系概念 3.2 ...

  4. 30个真棒的(免费iPhone,iPad IOS)的GUI 界面设计元素模板 做iphone开发的福音

    30个真棒的(免费iPhone,iPad IOS)的GUI 界面设计元素模板 做iphone开发的福音 转自:http://www.cnblogs.com/web8cn/archive/2012/07 ...

  5. [java/初学者/GUI编程]GUI界面设计——界面组件类

     前言 GUI,即图形用户界面,其英文全称是Graphics User Interface. 它是基于图形的界面,windows就是一个图形用户界面的操作系统,而DOS是基于命令提示符的操作系统,GU ...

  6. gui界面设计心得体会 python_关于GUI的一点心得体会

    [Fig 文件方式,即使用菜单 File->New->GUI 来设计界面 ] 首先值得注意的是, 在低版本 matlab 上 制作的含 GUI 的 m 文件一般不能在高版 本的 matla ...

  7. ROS项目开发实战(三)——使用QT进行ROS的GUI界面设计(详细教程附代码!!!)

    序 本篇博客主要介绍怎么使用qt对ros进行gui设计与调试,包括使用列表视图显示ROS话题发布与接收的消息,点击QT按钮按钮进行ros消息的发布. 在阅读本文之前没有安装QT与配置环境可以参考博文: ...

  8. matlab 版 数独小游戏 GUI界面设计

    近期,由于各种原因,接触到了matlab版的数独小游戏,需要做GUI界面.由于之前本科的时候自己也做过简单的界面涉及,就以为很简单,结果,piapia打脸.数独中的数字是在table中显示的,为了将题 ...

  9. python应用: GUI界面设计之JPG转ico工具编辑(PythonMagic)

    1.环境: windows7 python3.7 该实例设计到的库有: PythonMagick,win32api,win32con,wx,os 等模块 该实例运用到:提示消息框,GUI界面,打开当前 ...

最新文章

  1. 关于MyEclipse连接SQLServer和Mariadbsql
  2. 蛋白质折叠的霰弹枪方法
  3. LightOJ 1259 Goldbach`s Conjecture 素数打表
  4. 线性表【项目 - 求集合并集C语言】(带注释)
  5. 利用Android Camera2 的照相机api 实现 实时的图像采集与预览
  6. 第70天:jQuery基本选择器(一)
  7. linux-shell命令之file【辨识文件类型】
  8. .NET Core开发实战(第32课:集成事件:解决跨微服务的最终一致性)--学习笔记...
  9. (24)VHDL实现与或非(行为描述)
  10. Python字典的操作与使用
  11. bz2解压命令_Linux文件操作之文件压缩与解压缩命令详解
  12. 无ide编译java_无IDE编译和运行java
  13. 说说你对工厂模式的理解
  14. LeetCode刷题——345. 反转字符串中的元音字母
  15. 【有奖投票】程序员IT好书评选
  16. linux xfs文件系统故障修复,xfs文件系统修复方法
  17. 100家企业近年面试题整理
  18. 2019 ICPC 南京区域赛 - H Prince and Princess(博弈+思维)
  19. 用实例配置 linux squid 代理服务器
  20. 骚操作!快速创建JSON数据和解析JSON数据

热门文章

  1. C#基础到入门(一篇就够了)
  2. answer的汉语_answer是什么意思中文翻译(answer中文意思及应用)
  3. js比较两个对象数组是否相同
  4. xwiki开发者指南-编写一个XWiki组件
  5. 并发-MESI缓存一直协议详解
  6. 2021年22月3日
  7. 360n4手机可以装linux,360手机N4 root教程_360手机N4获取root权限的方法
  8. uniapp微信小程序video全屏苹果xs
  9. 服务器上传图片显示图片404,关于使用spring文件上传遇到的服务器中的图片访问不到报404的问题...
  10. CocosCreator之KUOKUO总结微信排行榜子域工程深坑