MATLAB图像处理界面设计.docx

上传人:b****1 文档编号:466942 上传时间:2022-10-10 格式:DOCX 页数:31 大小:9.68MB
下载 相关 举报
MATLAB图像处理界面设计.docx_第1页
第1页 / 共31页
MATLAB图像处理界面设计.docx_第2页
第2页 / 共31页
MATLAB图像处理界面设计.docx_第3页
第3页 / 共31页
MATLAB图像处理界面设计.docx_第4页
第4页 / 共31页
MATLAB图像处理界面设计.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

MATLAB图像处理界面设计.docx

《MATLAB图像处理界面设计.docx》由会员分享,可在线阅读,更多相关《MATLAB图像处理界面设计.docx(31页珍藏版)》请在冰豆网上搜索。

MATLAB图像处理界面设计.docx

MATLAB图像处理界面设计

第1章绪论

1.1课题研究目的及意义

数字图像处理(DigitalImageProcessing),就是利用数字计算机或者其他数字硬件,对从图像信息转换而得到的电信号进行某些数学运算,以提高图像的实用性。

例如从卫星图片中提取目标物的特征参数,三维立体断层图像的重建等。

总的来说,数字图像处理包括点运算、几何处理、图像增强、图像复原、图像形态学处理、图像编码、图像重建、模式识别等。

应用MATLAB友好的界面和丰富、实用、高效的指令及模块,可以使人较快地认识、理解图像处理的相关概念,逐步掌握图像信号处理的基本方法,进而能够解决相关的工程和科研中的问题。

1.2课题分析

数字图像处理技术在各个行业得到广泛的应用。

其交互式的图形界面是操作者方便使用这些技术的途径。

本题目将编制一个简易的图形界面读取各种格式的原始图像数据,并对它们自动分析和处理,得到所需要的有用信息,并把相关的信息显示出来,以便于工作人员研究分析。

本文是基于MATLAB图形用户界面进行数字图像处理软件包的设计,详细介绍了图形用户界面的功能及使用方法,所设计软件包中包括图像处理技术的多个方面,并用MATLAB的图像处理工具箱进行了算法的实现。

1.3MATLAB基本知识介绍

1.3.1MATLAB的概述

MATLAB是MATrixLABoratory(“矩阵实验室”)的缩写,是由美国MathWorks公司开发的集数值计算、符号计算和图形可视化三大基本功能于一体的,功能强大、操作简单的语言。

是国际公认的优秀数学应用软件之一。

MATLAB的基本数据单位是矩阵,它的指令表达式与数学,工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完相同的事情简捷得多。

MATLAB包括拥有数百个内部函数的主包和三十几种工具包(Toolbox).工具包又可以分为功能性工具包和学科工具包.功能工具包用来扩充MATLAB的符号计算,可视化建模仿真,文字处理及实时控制等功能.学科工具包是专业性比较强的工具包,控制工具包,信号处理工具包,通信工具包等都属于此类.

开放性使MATLAB广受用户欢迎.除内部函数外,所有MATLAB主包文件和各种工具包都是可读可修改的文件,用户通过对源程序的修改或加入自己编写程序构造新的专用工具包.

1.3.2MATLAB主要功能

它是一种用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。

使用它,可以较使用传统的编程语言,如C、C++等,更快的解决技术计算问题。

高级语言可用于技术计算;开发环境可对代码、文件和数据进行管理;数学函数可用于线性代数、统计、傅立叶分析、筛选、优化以及数值积分等;二维和三维图形函数可用于可视化数据;各种工具可用于构建自定义的图形用户界面;各种函数可将基于matlab的算法与外部应用程序和语言;其应用范围非常广,包括信号和图像处理、通迅、控制系统设计、测试和测量等众多应用领域。

1.3.3MATLAB语言的特点

一种语言之所以能如此迅速地普及,显示出如此旺盛的生命力,是由于它有着不同于其他语言的特点,正如同FORTRAN和C等高级语言使人们摆脱了需要直接对计算机硬件资源进行操作一样,被称作为第四代计算机语言的MATLAB,利用其丰富的函数资源,使编程人员从繁琐的程序代码中解放出来。

MATLAB最突出的特点就是简洁。

MATLAB用更直观的,符合人们思维习惯的代码,代替了C和FORTRAN语言的冗长代码。

MATLAB给用户带来的是最直观,最简洁的程序开发环境。

以下简单介绍一下MATLAB的主要特点。

(1)语言简洁紧凑,使用方便灵活,库函数极其丰富。

MATLAB程序书写形式自由,利用起丰富的库函数避开繁杂的子程序编程任务,压缩了一切不必要的编程工作。

由于库函数都由本领域的专家编写,用户不必担心函数的可靠性。

可以说,用MATLAB进行科技开发是站在专家的肩膀上。

(2)运算符丰富。

由于MATLAB是用C语言编写的,MATLAB提供了和C语言几乎一样多的运算符,灵活使用MATLAB的运算符将使程序变得极为简短。

(3)MATLAB既具有结构化的控制语句(如for循环,while循环,break语句和if语句),又有面向对象编程的特性。

(4)程序限制不严格,程序设计自由度大。

例如,在MATLAB里,用户无需对矩阵预定义就可使用。

(5)程序的可移植性很好,基本上不做修改就可以在各种型号的计算机和操作系统上运行。

(6)MATLAB的图形功能强大。

在FORTRAN和C语言里,绘图都很不容易,但在MATLAB里,数据的可视化非常简单。

MATLAB还具有较强的编辑图形界面的能力。

(7)MATLAB的缺点是,它和其他高级程序相比,程序的执行速度较慢。

由于MATLAB的程序不用编译等预处理,也不生成可执行文件,程序为解释执行,所以速度较慢。

(8)功能强大的工具箱是MATLAB的另一特色。

MATLAB包含两个部分:

核心部分和各种可选的工具箱。

核心部分中有数百个核心内部函数。

其工具箱又分为两类:

功能性工具箱和学科性工具箱。

功能性工具箱主要用来扩充其符号计算功能,图示建模仿真功能,文字处理功能以及与硬件实时交互功能。

功能性工具箱用于多种学科。

而学科性工具箱是专业性比较强的,如control,toolbox,signlprocessingtoolbox,

commumnicationtoolbox等。

这些工具箱都是由该领域内学术水平很高的专家编写的,所以用户无需编写自己学科范围内的基础程序,而直接进行高、精、尖的研究。

(9)源程序的开放性。

开放性也许是MATLAB最受人们欢迎的特点。

除内部函数以外,所有MATLAB的核心文件和工具箱文件都是可读可改的源文件,用户可通过对源文件的修改以及加入自己的文件构成新的工具箱。

1.3.4MATLAB在图像处理中的应用

图像处理工具包是由一系列支持图像处理操作的函数组成的。

所支持的图像处理操作有:

图像的几何操作、邻域和区域操作、图像变换、图像恢复与增强、线性滤波和滤波器设计、变换(DCT变换等)、图像分析和统计、二值图像操作等。

下面就MATLAB在图像处理中各方面的应用分别进行介绍。

(1)图像文件格式的读写和显示。

MATLAB提供了图像文件读入函数imread(),用来读取如:

bmp、tif、tiffpcx、jpg、gpeg、hdf、xwd等格式图像文;图像写出函数imwrite(),还有图像显示函数image()、imshow()等等。

(2)图像处理的基本运算。

MATLAB提供了图像的和、差等线性运算,以及卷积、相关、滤波等非线性算。

例如,conv2(I,J)实现了I,J两幅图像的卷积。

(3)图像变换。

MATLAB提供了一维和二维离散傅立叶变换(DFT)、快速傅立叶变换(FFT)、离散余弦变换(DCT)及其反变换函数,以及连续小波变换(CWT)、离散小波变换(DWT)及其反变换。

(4)图像的分析和增强。

针对图像的统计计算MATLAB提供了校正、直方图均衡、中值滤波、对比度调整、自适应滤波等对图像进行的处理。

(5)图像的数学形态学处理。

针对二值图像,MATLAB提供了数学形态学运算函数;腐蚀(Erode)、膨胀(Dilate)算子,以及在此基础上的开(Open)、闭(Close)算子、厚化(Thicken)、薄化(Thin)算子等丰富的数学形态学运算。

以上所提到的MATLAB在图像中的应用都是由相应的MATLAB函数来实现的,使用时,只需按照函数的调用语法正确输入参数即可。

具体的用法可参考MATLAB丰富的帮助文档。

图像边缘对图像识别和计算机分析十分有用,在MATLAB中,函数edge()用于灰度图像边缘的提取,它支持六种不同的边缘提取方法,即Sobel方法、Prewitt方法、Robert方法,Laplacian2Gaussian方法、过零点方法和Canny方法。

第2章整体设计

2.1设计思路

利用matlab的GUI程序设计一个简单实用的图像处理程序。

该程序应具备图像处理的常用功能,以满足用户的使用。

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

1)图像的读取和保存。

2)设计图形用户界面,让用户能够对图像进行任意的亮度和对比度变化调整,显示和对比变换前后的图像。

3)设计图形用户界面,让用户能够用鼠标选取图像感兴趣区域,显示和保存该选择区域。

4)图像直方图统计和直方图均衡,要求显示直方图统计,比较直方图均衡后的效果。

5)编写程序通过最近邻插值和双线性插值等算法将用户所选取的图像区域进行放大和缩小整数倍的操作,并保存。

6)能对图像加入各种噪声,并通过几种滤波算法实现去噪并显示结果。

2.2整体界面

图2.2.1总体设计界面布局

图2.2.2菜单栏的设计

图2.2.3功能切换选择组

显示区域:

左侧显示原图,右侧显示操作的图片

操作区域:

上方菜单栏:

包括文件、编辑、图像编辑等功能

左侧快捷操作:

包含一些常用操作,还原、旋转、裁剪、撤销

下方功能切换选择组:

包含一些图片处理的常用操作,噪声、滤除噪声、频谱分析等。

第3章具体设计与功能的实现

3.1文件

3.1.1打开

为了让使用者更方便的使用,所以在设计的时候,通过对话框的形式来选择文件,选择uigetfile函数来实现,uigetfile函数显示一个打开文件对话框,该对话框自动列出当前路径下的目录和文件,由于这个GUI程序的操作对象是图像文件,所以设置这里的缺省后缀名为“.bmp”。

Uigetfile函数的调用格式为[name,path]=yigetfile(…),在按下对话框中的执行按钮“打开”后,返回选择的文件名和路径,分别保存到“name”和“path”中。

如果按下取消按钮或是发生错误,则返回值是0。

根据返回值的情况,如果是0,则弹出提示错误的对话框,否则,通过imread函数读出图像数据,把图像数据赋值给全局变量handles.img。

程序如下所示:

[]=uigetfile({'*.jpg';'*.bmp';'*.tif';'*.*'},'载入图像');

ifisequal()|isequal(pathname,0)

errordlg('没有选中文件','载入图片失败');

return;

else

file=[pathname,];

globalS%设置一个全局变量S,保存初始图像路径,以便之后的还原操作

S=file;

x=imread(file);

set(handles.axes1,'HandleVisibility','ON');

axes(handles.axes1);

imshow(x);

set(handles.axes1,'HandleVisibility','OFF');

axes(handles.axes2);

imshow(x);

handles.img=x;

guidata(hObject,handles);

End

(a)(b)

图3.1.1(a)(b)载入新图像

3.1.2保存

同样也通过对话框的形式来保存图像数据,通过uigetfile函数选择文件名和路径,用getimage(gca)取出坐标2变换后的图像数据保存到变量i,最后用imwrite函数,把数据i存到指定的文件。

程序如下所示:

[s,s]=uiputfile({'*.jpg';'*.bmp';'*.tif';'*.*'},'保存图像文件','untitled.jpg');

if~isequal([s],[0,0])

s[s,s];

imwrite(handles.img,s);

els

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1