MATLAB课程设计报告图像处理.docx
《MATLAB课程设计报告图像处理.docx》由会员分享,可在线阅读,更多相关《MATLAB课程设计报告图像处理.docx(27页珍藏版)》请在冰豆网上搜索。
![MATLAB课程设计报告图像处理.docx](https://file1.bdocx.com/fileroot1/2023-2/3/1af09f31-46e3-4aee-9dfb-2ceaa102e1fe/1af09f31-46e3-4aee-9dfb-2ceaa102e1fe1.gif)
MATLAB课程设计报告图像处理
一.课程设计相关知识综述......................................................................
1.1研究目的及意义..........................................................................3
1.2数字图像处理研究的内容...........................................................
1.3MATLAB软件的介绍..................................................................
1.3.1MATLAB语言的特点.........................................................
1.3.2MATLAB图像文件格式....................................................
1.3.3MATLAB图像处理工具箱简介........................................
1.3.4MATLAB中的图像类型....................................................
1.3.5MATLAB的主要应用........................................................
1.4函数介绍........................................................................................
二.课程设计内容和要求...........................................................................
2.1主要研究内容................................................................................
2.2具体要求.......................................................................................
2.3预期达到的目标...........................................................................
三.设计过程...............................................................................................
3.1设计方案及步骤............................................................................
3.2程序清单及注释...........................................................................
3.3实验结果........................................................................................
四.团队情况................................................................................................
五.总结.......................................................................................................
六.参考文献...............................................................................................
一.课程设计相关知识综述.
1.1研究目的及意义
图像处理(imageprocessing),用计算机对图像进行分析,以达到所需结果的技术。
又称影像处理。
图像处理一般指数字图像处理。
数字图像是指用工业相机、摄像机、扫描仪等设备经过拍摄得到的一个大的二维数组,该数组的元素称为像素,其值称为灰度值。
图像处理技术的一般包括图像压缩,增强和复原,匹配、描述和识别3个部分。
常见的系统有康耐视系统、图智能系统等,目前是正在逐渐兴起的技术。
21世纪是一个充满信息的时代,图像作为人类感知世界的视觉基础,是人类获取信息、表达信息和传递信息的重要手段。
数字图像处理,即用计算机对图像进行处理,其发展历史并不长。
数字图像处理技术源于20世纪20年代,当时通过海底电缆从英国伦敦到美国纽约传输了一幅照片,采用了数字压缩技术。
首先数字图像处理技术可以帮助人们更客观、准确地认识世界,人的视觉系统可以帮助人类从外界获取3/4以上的信息,而图像、图形又是所有视觉信息的载体,尽管人眼的鉴别力很高,可以识别上千种颜色,但很多情况下,图像对于人眼来说是模糊的甚至是不可见的,通过图象增强技术,可以使模糊甚至不可见的图像变得清晰明亮。
1.2数字图像处理研究的内容
数字图像处理(DigitalImageProcessing)是通过计算机对图像进行去除噪声、增强、复原、分割、提取特征等处理的方法和技术。
数字图像处理的产生和迅速发展主要受三个因素的影响:
一是计算机的发展;二是数学的发展(特别是离散数学理论的创立和完善);三是广泛的农牧业、林业、环境、军事、工业和医学等方面的应用需求的增长。
一.主要目的
(1)提高图像的视感质量,如进行图像的亮度、彩色变换,增强、抑制某些成分,对图像进行几何变换等,以改善图像的质量。
(2)提取图像中所包含的某些特征或特殊信息,这些被提取的特征或信息往往为计算机分析图像提供便利。
提取特征或信息的过程是模式识别或计算机视觉的预处理。
提取的特征可以包括很多方面,如频域特征、灰度或颜色特征、边界特征、区域特征、纹理特征、形状特征、拓扑特征和关系结构等。
(3)图像数据的变换、编码和压缩,以便于图像的存储和传输。
不管是何种目的的图像处理,都需要由计算机和图像专用设备组成的图像处理系统对图像数据进行输入、加工和输出。
二.常用方法
1)图像变换:
由于图像阵列很大,直接在空间域中进行处理,涉及计算量很大。
因此,往往采用各种图像变换的方法,如傅立叶变换、沃尔什变换、离散余弦变换等间接处理技术,将空间域的处理转换为变换域处理,不仅可减少计算量,而且可获得更有效的处理(如傅立叶变换可在频域中进行数字滤波处理)。
新兴研究的小波变换在时域和频域中都具有良好的局部化特性,它在图像处理中也有着广泛而有效的应用。
2)图像编码压缩:
图像编码压缩技术可减少描述图像的数据量(即比特数),以便节省图像传输、处理时间和减少所占用的存储器容量。
压缩可以在不失真的前提下获得,也可以在允许的失真条件下进行。
编码是压缩技术中最重要的方法,它在图像处理技术中是发展最早且比较成熟的技术。
3)图像增强和复原:
图像增强和复原的目的是为了提高图像的质量,如去除噪声,提高图像的清晰度等。
图像增强不考虑图像降质的原因,突出图像中所感兴趣的部分。
如强化图像高频分量,可使图像中物体轮廓清晰,细节明显;如强化低频分量可减少图像中噪声影响。
图像复原要求对图像降质的原因有一定的了解,一般讲应根据降质过程建立"降质模型",再采用某种滤波方法,恢复或重建原来的图像。
4)图像分割:
图像分割是数字图像处理中的关键技术之一。
图像分割是将图像中有意义的特征部分提取出来,其有意义的特征有图像中的边缘、区域等,这是进一步进行图像识别、分析和理解的基础。
虽然已研究出不少边缘提取、区域分割的方法,但还没有一种普遍适用于各种图像的有效方法。
因此,对图像分割的研究还在不断深入之中,是图像处理中研究的热点之一。
5)图像描述:
图像描述是图像识别和理解的必要前提。
作为最简单的二值图像可采用其几何特性描述物体的特性,一般图像的描述方法采用二维形状描述,它有边界描述和区域描述两类方法。
对于特殊的纹理图像可采用二维纹理特征描述。
随着图像处理研究的深入发展,已经开始进行三维物体描述的研究,提出了体积描述、表面描述、广义圆柱体描述等方法。
6)图像分类(识别):
图像分类(识别)属于模式识别的范畴,其主要内容是图像经过某些预处理(增强、复原、压缩)后,进行图像分割和特征提取,从而进行判决分类。
图像分类常采用经典的模式识别方法,有统计模式分类和句法(结构)模式分类,近年来新发展起来的模糊模式识别和人工神经网络模式分类在图像识别中也越来越受到重视。
1.3MATLAB软件的介绍
MATLAB(矩阵实验室)是MATrixLABoratory的缩写,是一款由美国TheMathWorks公司出品的商业数学软件。
MATLAB是一种用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。
除了矩阵运算、绘制函数/数据图像等常用功能外,MATLAB还可以用来创建用户界面及与调用其它语言(包括C,C++和FORTRAN)编写的程序。
尽管MATLAB主要用于数值运算,但利用为数众多的附加工具箱(Toolbox)它也适合不同领域的应用,例如控制系统设计与分析、图像处理、信号处理与通讯、金融建模和分析等。
另外还有一个配套软件包Simulink,提供了一个可视化开发环境,常用于系统模拟、动态/嵌入式系统开发等方面。
MATLAB和Mathematica、Maple并称为三大数学软件。
它在数学类科技应用软件中在数值计算方面首屈一指。
MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,MATLAB成为一个强大的数学软件。
在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。
可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。
1.3.1MATLAB语言的特点
1.高效的矩阵运算机制
MATLAB软件是基于矩阵计算开发的,在其他编程语言中需要使用多个for语句才能完成的操作,在MATLAB中直接使用矩阵即可完成计算,因而MATLAB在数据计算分析,特别是对海量数据的处理方面表现出相比其他的编程语言更大的优势。
2.多样化的操作途径
MATLAB语言为用户提供了多种操作方式选择。
用户可以编写代码实现各种功能,代码可重复利用,同时,不擅长编程的用户也可以通过MATLAB图形界面操作,完成MATLAB的相应功能。
3.功能强大的工具箱
对于算法的开发,MATLAB提供了大量现成的函数,用户可以直接调用。
MATLAB软件对目前主流的算法都提供了现成的函数,并封装成一个个适用于不同领域的算法工具箱。
常用的工具箱包括数学类、经济类、信号处理类工具箱,同时随着MATLAB软件版本的更新,不断有功能更强大的工具箱添加到MATLAB中。
MATLAB语言的这一特点,将大大节省算法开发的时间,用户无须详细了解算法的细节,只要掌握MATLAB中算法相应函数的调用即可。
4.良好的扩展能力
利用MATLAB语言编写的程序具有良好的扩展能力,可以方便地与各种编程语言链接。
用户可以方便地在MATLAB中调用其他语言已编写好的程序,同时在其他语言中也可以方便地调用MATLAB的程序。
MATLAB语言具有良好的接口编程技术。
5.完善的帮助系统
完善的帮助系统是MATLAB的又一突出特点,MATLAB向用户提供了多种帮助途径,在1.4节中将详细介绍MATLAB强大的帮助系统。
通过MATLAB的帮助系统,用户可以获取MATLAB常用函数的使用方法及应用实例,而且这种帮助可以是实时的、在线的。
同时,为了便于用户更好地使用MATLAB软件,在MATLAB中的主要算法都是可以直接看到源代码的。
1.3.2MATLAB图像文件格式
(1)JPEG(JointPhotogyaphicExpeytsGroup):
一种称为联合图像专家组的图像压缩格式。
(2)BMP(WindowsBitmap):
有1位、4位、8位、24位非压缩图像,8位RLE(RunlengthEncoded)的图像。
文件内容包括文件头(一个BITMAPFILEHEADER数据结构)、位图信息数据块(位图信息头BITMAPINFOHEADER和一个颜色表)和图像数据。
(3)PCX(WindowsPaintbrush):
可处理1位、4位、8位、16位、24位等图像数据。
文件内容包括文件头、图像数据和扩展色图数据。
(4)TIFF(TaggedIamgeFileFormat):
处理1位、4位、8位、24位非压缩图像,1位、4位、8位、24位packbit压缩图像,1位CCITT压缩图像等。
文件内容包括文件头、参数指针表与参数域、参数数据表和图像数据四部分。
(5)PNG(PortableNetworkGraphics):
包括1位、2位、4位、8位和16位灰度图像,8位和16位索引图像,24位和48位真彩色图像。
(6)GIF(GraphicsInterchangeFormat):
任何1位到8位的可交换的图像。
(7)HDF(HierarchialDataFormat):
有8位、24位光栅图像数据集。
(8)ICO(WindowsIconresource):
有1位、4位、8位非压缩图像。
(9)CUR(WindowsCursorresource):
有1位、4位、8位非压缩图像。
(10)XWD(XWindowsDump):
包括1位、8位Zpixmaps,XYBitmaps,XYPixmmmaps。
(11)RAS(SunRasterimage):
有1位bitmap、8位索引、24位真彩色和带有透明度的32位真彩色。
(12)PBM(PortableBitmap)。
(13)PGM(PortableGraymap)。
(14)PPM(PortablePixmap)。
1.3.3MATLAB图像处理工具箱简介
图像处理工具箱提供了一套全方位的参照标准算法和图形工具,用于进行图形处理、分析、可视化和算法开发。
可进行图像增强、图像去模糊、特征检测、降噪、图像分割、空间转换和图像配准。
该工具箱的许多功能支持多线程,可发挥多核多处理器计算机的性能。
图像处理工具箱支持多种多样的图像类型,包括高动态范围,千兆像素分辨率、ICC兼容色彩和断层扫描图像。
图形工具可用于探索图像、检查像素区域、调节对比度、创建轮廓或柱状图以及操作感兴趣区域(ROI)。
工具箱算法可用于还原退化的图像、检查和测量特征、分析形状和纹理并调节图像的色彩平衡。
1.3.4MATLAB中的图像类型
1、索引图像
索引图像包括一个数据矩阵X,一个颜色映像矩阵Map。
其中Map是一个包含三列、若干行的数据阵列,其中每个元素的值均为[0,1]之间的双精度浮点型数据。
Map矩阵的每一行分别表示红色、绿色和蓝色的颜色值。
在MATLAB中,索引图像是从像素值到颜色映射表值的“直接映射”。
像素颜色由数据矩阵X作为索引指向矩阵Map进行索引,例如,值1指向矩阵Map中的第一行,值2指向第二行,以此类推。
颜色映射表通常和索引图像存在一起,当用户在调用函数imread时,MATLAB自动将颜色映射表与图像同时加载,在MATLAB中可以选择所需要的颜色映射表,而不必局限于使用默认的颜色映射表。
我们可以使用属性CDataMapping来选取其他的颜色映射表,包括用户自定义的颜色映射表。
如果图像数据矩阵是双精度的数据类型,则值1指向矩阵Map中的第一行,值2指向第二行,但如果图像矩阵是8位无符号的整数类型或16位无符号的整数类型,则由于存在一个偏移量,因而使值0指向矩阵Map中的第一行,以此类推。
2、灰度图像
在MATLAB中,一幅灰度图像是一个数据矩阵I,I中的数据均代表了在一定范围内的图像灰度值。
MATLAB把灰度图像存储为一个数据矩阵,该矩阵中的元素分别代表了图像中的像素。
矩阵中的元素可以是双精度的浮点类型、8位或16位无符号的整数类型。
大多数情况下,灰度图像很少和颜色映射表一起保存,但是在显示灰度图像时,MATLAB仍然在后台使用系统预定义的默认灰度颜色映射表。
3、RGB图像
RGB图像即真菜图像,在MATLAB中存储为n*m*3的数据矩阵。
数组中的元素定义了图像中的每一个像素的红、绿、蓝颜色值。
需指出的是,RGB图像不是用windows的颜色映射表,像素的颜色由保存在像素位置上的红、绿、蓝的灰度值的组合来确定。
图形文件格式把RGB图像存储为24位的图像,红、绿、蓝分别占8位,这样可以有1000多万种颜色。
4、二值图像
与灰度图像相同,二值图像只需要一个数据矩阵,每个像素只取两个灰度值。
1.3.5MATLAB的主要应用
MATLAB的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。
附加的工具箱(单独提供的专用MATLAB函数集)扩展了MATLAB环境,以解决这些应用领域内特定类型的问题。
MATLAB产品族可以用来进行以下各种工作:
①数值分析②数值和符号计算③工程与科学绘图④控制系统的设计与仿真
⑤数字图像处理技术⑥数字信号处理技术⑦通讯系统设计与仿真
⑧财务与金融工程⑨管理与调度优化计算(运筹学)
1.4函数介绍
Imshow显示图像
Im2bw转换图像为二进制图像
Imread从图像文件中读取(载入)图像
Edge图像边缘检测
Graythresh使用最大类间方差法找到图片的一个合适的阈值。
Rgb2gray转换RGB图像或颜色映像表为灰色图像
Double转换数据为双精度型
Asind反正弦函数
Regionprops用来度量图像区域属性的函数,常用来统计被标记的区域的面积积分,显示区域总数。
二.课程设计内容和要求
2.1主要研究内容
从所拍摄的图像中检测多边形目标区域的几何中心、周长、面积和主轴方向。
三.设计过程.
3.1设计方案及步骤
(1)U盘图像,先进行灰度化、中值滤波等基本操作,平滑背景噪声。
(2)二值化,并进行形态学开闭运行,去除背景的杂点噪声。
(3)定位左上角、右上角、左下角,进而利用直线拟合知识,得到直线方程。
(4)根据U盘矩形特点,绘制平行线,通过计算交点定位出右下角。
(5)得到四周边界后,可以生成二值化蒙版图像,进而计算周长、质心、面积等基本参数。
3.2程序清单及注释.
functionvarargout=MainForm(varargin)
%MAINFORMMATLABcodeforMainForm.fig
%MAINFORM,byitself,createsanewMAINFORMorraisestheexisting
%singleton*.
%
%H=MAINFORMreturnsthehandletoanewMAINFORMorthehandleto
%theexistingsingleton*.
%
%MAINFORM('CALLBACK',hObject,eventData,handles,...)callsthelocal
%functionnamedCALLBACKinMAINFORM.Mwiththegiveninputarguments.
%
%MAINFORM('Property','Value',...)createsanewMAINFORMorraisesthe
%existingsingleton*.Startingfromtheleft,propertyvaluepairsare
%appliedtotheGUIbeforeMainForm_OpeningFcngetscalled.An
%unrecognizedpropertynameorinvalidvaluemakespropertyapplication
%stop.AllinputsarepassedtoMainForm_OpeningFcnviavarargin.
%
%*SeeGUIOptionsonGUIDE'sToolsmenu.Choose"GUIallowsonlyone
%instancetorun(singleton)".
%
%Seealso:
GUIDE,GUIDATA,GUIHANDLES
%EdittheabovetexttomodifytheresponsetohelpMainForm
%LastModifiedbyGUIDEv2.508-Jul-201610:
09:
38
%Begininitializationcode-DONOTEDIT
gui_Singleton=1;
gui_State=struct('gui_Name',mfilename,...
'gui_Singleton',gui_Singleton,...
'gui_OpeningFcn',@MainForm_OpeningFcn,...
'gui_OutputFcn',@MainForm_OutputFcn,...
'gui_LayoutFcn',[],...
'gui_Callback',[]);
ifnargin&&ischar(varargin{1})
gui_State.gui_Callback=str2func(varargin{1});
end
ifnargout
[varargout{1:
nargout}]=gui_mainfcn(gui_State,varargin{:
});
else
gui_mainfcn(gui_State,varargin{:
});
end
%Endinitializationcode-DONOTEDIT
%---ExecutesjustbeforeMainFormis