如何利用MATLAB提供GUI界面实现数字图像处理系统的设计

您所在的位置:网站首页 mysize官网 如何利用MATLAB提供GUI界面实现数字图像处理系统的设计

如何利用MATLAB提供GUI界面实现数字图像处理系统的设计

2023-08-31 11:09| 来源: 网络整理| 查看: 265

如何利用MATLAB提供GUI界面实现数字图像处理系统的设计

在MATLAB用户界面GUI上设计一个操作简单、功能齐全的数字图像处理技术的集合,对于一些对数字图像处理原理不懂的用户也能够根据自己的需求处理处自己想要的数字图像。本系统GUI界面设计两个显示界面: 一个原数据界面,一个是处理结果界面显示,能够很好的展现数字图像处理结果。每一个功能的实现都是按钮代替了每一步复杂的数字图像处理过程。

1. 主要包含两个步骤,分别如下:

数字图像处理系统的MATLAB GUI设计

GUI人机交互界面从上到下的,程序设计从下到上的原则来实现本课题的数字图像处理系统的功能集合。

MATLAB GUI人机交互界面的功能函数设计研究

实现本系统对处理图像的读取和保存、撤销和还原、图像剪切、图像反色、图像旋转等修剪。设计GUI人机交互界面实现对图像添加噪声、图像滤波、边缘检测等处理功能的程序。

最终实现界面如下所示

MATLAB提供GUI界面实现数字图像处理系统的设计

2. 以下附上本科时代学习笔记

#基于matlab的图像处理系统设计 1、设计目的

利用matlab的GUI程序设计一个简单的图像处理系统,可以实现图像的简单的运算操作,实现图像的剪切、旋转、滤波、放缩等功能,进一步熟悉matlab语言。

2、设计要求

设计程序有以下基本功能:

图像的读取和保存;图像剪切;图像发色;添加噪声:椒盐噪声,乘性噪声,高斯噪声等;图像的边沿检测;图像滤波:实现平滑滤波,锐化滤波;图像的旋转;实现图像操作的撤销和还原;最后完成整个系统完整,退出系统。

3、设计的matlab数字图像处理系统框架

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-w9epg4MN-1600406381360)(G:\MATLAB\matlab_2015b\matlabworkspace\基于matlab的数字图像处理系统\GUI1.JPG)]

该GUI界面包含两个显示界面axes1和axes2。包含读取图像、椒盐噪声,乘性噪声,高斯噪声,保存图像,退出系统,剪切图像,图像反色,滤波,旋转,撤销和还原等按钮,构成了这个系统的框架。运行之后的界面显示如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Mu89zV4f-1600406381361)(G:\MATLAB\matlab_2015b\matlabworkspace\基于matlab的数字图像处理系统\GUI.JPG)]

4、GUI各个模块功能的实现

4.1、图像的读取

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lrF4Pw8C-1600406381364)(G:\MATLAB\matlab_2015b\matlabworkspace\基于matlab的数字图像处理系统\select.JPG)]

利用matlab的uigetfile获取图像的路径,msgbox窗口函数提示选择图像失败,imshow对图像的显示。

global s %定义全局变量,为了后面的还原保存数据 [filename,pathname,filterindex]=... uigetfile({'*.*';'*.bmp';'*.tif';'*.png';'*.jpg';'*.jpeg'},'select picture'); %选择图片路径 str=[pathname filename]; %合成路径+文件名 s=str; handles.filebig=filterindex; if filterindex==0 msgbox('选择图像失败!','error'); return else im=imread(str); %读取图片 end axes(handles.axes1); %使用第一个axes imshow(im); %显示图片 handles.img=im; guidata(hObject,handles);

4.2、图像的保存

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xwvohYwB-1600406381367)(G:\MATLAB\matlab_2015b\matlabworkspace\基于matlab的数字图像处理系统\save.JPG)]

图像保存利用matlab的uiputfile函数和IMwrite函数进行数据的写入。msgbox(‘参数1’,‘参数2’)实现窗口的界面。

if handles.img==0 msgbox('没有可保存的图像!','error'); return; else [filename,pathname,filterindex]=... uiputfile({'*.bmp';'*.tif';'*.png';'*.jpg';'*.jpeg'},'save picture');%存储图片路径 end if filterindex==0 return %如果取消操作,返回 else str=[pathname filename]; %合成路径+文件名 axes(handles.axes2); %使用第二个axes imwrite(handles.img,str); %写入图片信息,即保存图片 end

程序的主要部分是通过uiputfile函数选择图像的格式和路径,通过imwrite函数实现图像的保存,最后完成保存工作。通过之后的完善,参数handles.img=0时,表示没有图像可以保存,考虑其中的情况修复这种情况下的系统报错;另外filterindex=0时,按了保存按钮,但是没有保存这种情况,修复了保存的可能性。

4.3、系统退出

clc clear close(gcf)

该部分利用clc清屏指令,clear清除内存,close(gcf)就是关闭当前窗口的指令。来实现系统的退出。

4.4、图像反色

利用反色函数imcomplement()实现图像的反色,可以反色彩色和灰色图像

global T %定义全局变量,保存上一个操作数据,实现撤销操作 T=handles.img; axes(handles.axes1); imshow(handles.img); mysize=size(handles.img); I=imcomplement(handles.img);%还需要进一步修改。 axes(handles.axes2); imshow(I); handles.img=I; guidata(hObject,handles);

效果图如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DV8d7Iqs-1600406381369)(G:\MATLAB\matlab_2015b\matlabworkspace\基于matlab的数字图像处理系统\inv.JPG)]

4.5、图像的剪切

利用matlab的imcrop函数实现图像的剪切。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-j2vUW4NO-1600406381370)(G:\MATLAB\matlab_2015b\matlabworkspace\基于matlab的数字图像处理系统\imcrop.JPG)]

global T T=handles.img; if handles.filebig==0 msgbox('处理失败,请选择图像。','error'); return; else axes(handles.axes1); imshow(handles.img); I=imcomplement(handles.img);%还需要进一步修改。 end axes(handles.axes2); imshow(I); handles.img=I; guidata(hObject,handles);

4.6、加入噪声

4.6.1、椒盐噪声

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nVor3z2n-1600406381371)(G:\MATLAB\matlab_2015b\matlabworkspace\基于matlab的数字图像处理系统\jiaoyan1.JPG)]

global T axes(handles.axes1); imshow(handles.img); T=handles.img; mysize=size(handles.img); if numel(mysize)


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3