MATLAB的数字图像处理_第1页
MATLAB的数字图像处理_第2页
MATLAB的数字图像处理_第3页
MATLAB的数字图像处理_第4页
MATLAB的数字图像处理_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、摘 要MATLAB全称是Matrix Laboratory(矩阵实验室),一开始它是一种专门用于矩阵数值计算的软件,从这一点上也可以看出,它在矩阵运算上有自己独特的特点。实际上MATLAB中的绝大多数的运算都是通过矩阵这一形式进行的。这一特点也就决定了MATLAB在处理数字图像上的独特优势。理论上讲,图像是一种二维的连续函数,然而在计算机上对图像进行数字处理的时候,首先必须对其在空间和亮度上进行数字化,这就是图像的采样和量化的过程。二维图像进行均匀采样,就可以得到一幅离散化成MN样本的数字图像,该数字图像是一个整数阵列,因而用矩阵来描述该数字图像是最直观最简便的了。本文通过一些简单的图像处理实

2、例来阐述MATLAB处理数字图像的方便功能。关键字:MATLAB、几何变换、灰度、降噪基于MATLAB的数字图像处理0引言众所周知,MATLAB在数值计算、数据处理、自动控制、图像、信号处理、神经网络、优化计算、模糊逻辑、小波分析等众多领域有着广泛的用途,特别是MATLAB的图像处理和分析工具箱支持索引图像、RGB图像、灰度图像、二进制图像,并能操作*.bmp、*.jpg、*.tif等多种图像格式文件。如果能灵活地运用MATLAB提供的图像处理分析函数及工具箱,会大大简化具体的编程工作,充分体现在图像处理和分析中的优越性。1 数字图象处理介绍1.1数字图像处理主要研究的内容数字图像处理主要研究

3、的内容有以下几个方面: 1) 图像变换由于图像阵列很大,直接在空间域中进行处理,涉及计算量很大。因此,往往采用各种图像变换的方法,如傅立叶变换、沃尔什变换、离散余弦变换等间接处理技术,将空间域的处理转换为变换域处理,不仅可减少计算量,而且可获得更有效的处理(如傅立叶变换可在频域中进行数字滤波处理)。目前新兴研究的小波变换在时域和频域中都具有良好的局部化特性,它在图像处理中也有着广泛而有效的应用。 2) 图像编码压缩图像编码压缩技术可减少描述图像的数据量(即比特数),以便节省图像传输、处理时间和减少所占用的存储器容量。压缩可以在不失真的前提下获得,也可以在允许的失真条件下进行。编码是压缩技术中最

4、重要的方法,它在图像处理技术中是发展最早且比较成熟的技术。 3) 图像增强和复原图像增强和复原的目的是为了提高图像的质量,如去除噪声,提高图像的清晰度等。图像增强不考虑图像降质的原因,突出图像中所感兴趣的部分。如强化图像高频分量,可使图像中物体轮廓清晰,细节明显;如强化低频分量可减少图像中噪声影响。图像复原要求对图像降质的原因有一定的了解,一般讲应根据降质过程建立 降质模型,再采用某种滤波方法,恢复或重建原来的图像。 4) 图像分割图像分割是数字图像处理中的关键技术之一。图像分割是将图像中有意义的特征部分提取出来,其有意义的特征有图像中的边缘、区域等,这是进一步进行图像识别、分析和理解的基础。

5、虽然目前已研究出不少边缘提取、区域分割的方法,但还没有一种普遍适用于各种图像的有效方法。因此,对图像分割的研究还在不断深入之中,是目前图像处理中研究的热点之一。 5) 图像描述图像描述是图像识别和理解的必要前提。作为最简单的二值图像可采用其几何特性描述物体的特性,一般图像的描述方法采用二维形状描述,它有边界描述和区域描述两类方法。对于特殊的纹理图像可采用二维纹理特征描述。随着图像处理研究的深入发展,已经开始进行三维物体描述的研究,提出了体积描述、表面描述、广义圆柱体描述等方法。 6) 图像分类(识别)图像分类(识别)属于模式识别的范畴,其主要内容是图像经过某些预处理(增强、复原、压缩)后,进行

6、图像分割和特征提取,从而进行判决分类。图像分类常采用经典的模式识别方法,有统计模式分类和句法(结构)模式分类,近年来新发展起来的模糊模式识别和人工神经网络模式分类在图像识别中也越来越受到重视。1.2 MATLAB在图像处理中的应用MATLAB6x提供了2O类图像处理函数,涵盖了图像处理包括近期研究成果在内的几乎所有的技术方法,是学习和研究图像处理的人员难得的宝贵资料和加工工具箱。这些函数按功能可分为图像显示、图像文件IO、图像算术运算、几何变换、图像登记、像素值与统计、图像分析、图像增强、线性滤波、线性二元滤波设计、图像去模糊、图像变换、邻域与块处理、灰度与二值图像的形态学运算、结构元素创建与

7、处理、基于边缘的处理、色彩映射表操作、色彩空间变换及图像类型与类型转换Maflab数字图像处理工具箱函数包括以下几类:(1)图像显示函数;(2)图像文件输入、输出函数;(3)图像几何操作函数;(4)图像像素值及统计函数;(5)图像分析函数;(6)图像增强函数;(7)线性滤波函数;(8)二维线性滤波器设计函数;(9)图像变换函数;(10)图像邻域及块操作函数;(11)二值图像操作函数;(12)基于区域的图像处理函数;(13)颜色图操作函数;(14)颜色空间转换函数;(15)图像类型和类型转换函数。2 常用图像操作2.1 图像几何操作1)imread(图片所在地址)imread函数用于读入各种图像

8、文件。 a=imread(C:UsersWXQPicturesdesk_cg_98.jpg);2)image(图片名)image函数是MATLAB提供的最原始的图像显示函数。 image(a)得到图像:3)imcrop(图片名,x起点,y起点,x宽度,y宽度)用imcrop()函数可剪切图像中的一个矩形子图。 b=imcrop(a,600,0,800,900); imshow(b);得到图像:4)imrotate(图片名,旋转角度,Method)imrotate()函数用于图像旋转。 c=imrotate(b,-90,bilinear); imshow(c);得到图像:5)imresize(图

9、片名 缩放大小 Method)MATLAB图像处理工具箱中的函数imresize可以用上述的3种方法对图像进行插值缩放,如果不指定插值方法,则默认为最邻近插值法。 d=imresize(a,90,144); subplot(211);imshow(a) subplot(212);imshow(d)得到与原始图片的对比图像:3 二维图形的处理3.1 图像增强功能图像增强是数字图像处理过程中常用的一种方法, 目的是采用一系列技术去改善图像的视觉效果或将图像转换成一种更适合于人眼观察和机器自动分析的形式。常用的图像增强方法有灰度变换与直方图均衡化。3.2 灰度直方图均衡化与灰度转换1)rgb2gra

10、y(RGB图像)说明: 这个命令是把R.G.B色彩影像转化为灰度色彩的影像,适用于将三维数组转化为二维的数组,从而方便MATLAB处理数字图像。2)histeq(灰度图象)均匀量化的自然图像的灰度直方图通常在低灰度区间上频率较大,使得图像中较暗区域中的细节看不清楚。采用直方图修整可使原图像灰度集中的区域拉开或使灰度分布均匀,从而增大反差,使图像的细节清晰,达到增强目的。直方图均衡化可用histeq0函数实现。3)imhist(灰度图象)MATLAB图象处理工具箱提供了imhist函数来计算和显示图象的直方图,imhist函数的语法格式为:imhist(I,n)或imhist(X,map)其中i

11、mhist(I,n)计算和显示灰度图象I的直方图,n为指定的灰度级数目,默认值为256。imhist(X,map)计算和显示索引色图象X的直方图,map为调色板。4)imshow(图片名)imshow()与image()都是用来显示图片的,只是image()可以直接显示图像坐标而imshow()需要调用。5)imadjust(图片名,low_in high_in,low_out high_out)如果原图象f(x,y)的灰度范围是m,M,我们希望调整后的图象g(x,y)的灰度范围是n,N,那么下述变换就可以实现这一要求。MATLAB图象处理工具箱中提供的imadjust函数,可以实现上述的线性

12、变换对比度增强。说明:low_in high_in为原图象中要变换的灰度范围,low_out high_out指定了变换后的灰度范围。3.3 程序灰度直方图均衡化与灰度转换的程序如下所示: a=imread(C:UsersWXQPicturesdesk_cg_98.jpg); b=rgb2gray(a);把三维RGB像素的a图转化为二维灰度色的b图 c=histeq(b); d=imadjust(b,0.1 0.7,); figure(1);imshow(a)figure(2);imshow(b); figure(3);imshow(c); figure(4);subplot(311);imh

13、ist(b); figure(4);subplot(312);imhist(c); figure(4);subplot(313);imhist(d);由直方图可以看出经过均衡化之后figure(3)比figure(2)的灰度有明显的均衡化,取值比较接近。 e=imadjust(a,0.1 0.7,); figure(5);subimage(e); figure(6);imshow(d);经过灰度转换之后figure(6)比figure(2)的白色色调明显增多,图片整体偏明亮化。4 数字图像去噪典型算法及matlab实现4.1 数字化图片的降噪处理图像去噪是数字图像处理中的重要环节和步骤。去噪效

14、果的好坏直接影响到后续的图像处理工作如图像分割、边缘检测等。图像信号在产生、传输过程中都可能会受到噪声的污染,一般数字图像系统中的常见噪声主要有:高斯噪声(主要由阻性元器件内部产生)、椒盐噪声等。4.2 均值滤波算法也称线性滤波,主要思想为邻域平均法,即用几个像素灰度的平均值来代替每个像素的灰度。有效抑制加性噪声,但容易引起图像模糊,可以对其进行改进,主要避开对景物边缘的平滑处理。4.3 Wiener维纳滤波使原始图像和其恢复图像之间的均方误差最小的复原方法,是一种自适应滤波器,根据局部方差来调整滤波器效果。对于去除高斯噪声效果明显。4.4 图片的降噪处理通过在高斯噪声图片上使用均值滤波算法与

15、Wiener维纳滤波,从而比较出哪种降噪方法更加使用与除去高斯噪声。1)imnoise()在MATLAB中提供了给图像加入噪声的函数imnoise,imnoise函数用于对图像生成模拟噪声。imnoise的语法格式为:J = imnoise(I,type)或J = imnoise(I,type,parameters)其中J = imnoise(I,type)返回对原始图像I添加典型噪声的有噪图像J。参数type和parameters用于确定噪声的类型和相应的参数。2)wiener2(I,m,n)维纳滤波wiener2能够完成维纳滤波的功能,wiener2强调图象空间域锐化的作用,其中J=wie

16、ner2(I,m,n)返回有噪声图像I经过wierner(维纳)滤波后的图像,m,n指定滤波器窗口大小为m*n,默认值为3*3。3)filter2函数MATLAB图像处理工具箱提供了基于卷积的图象滤波函数filter2,filter2的语法格式为:Y = filter2(h,X)。其中Y = filter2(h,X)返回图像X经滤波算子h滤波后的结果,默认返回图像Y与输入图像X大小相同。其实filter2和conv2是等价的。MATLAB在计算filter2时先将卷积核旋转180度,再调用conv2函数进行计算。4)fspecial函数fspecial函数用于创建预定义的滤波算子(掩膜),其语

17、法格式为:h = fspecial(type)或h = fspecial(type,parameters)参数type制定算子类型,parameters指定相应的参数。注:fspecial仅仅是定义了滤波算子h,要想进行以该算子为掩膜的二维图像卷积运算(滤波),还需要使用filter2。4.4 程序使用均值滤波算法与Wiener维纳滤波去除高斯噪声的程序如下: a=imread(C:UsersWXQPicturesdesk_cg_98.jpg); b=rgb2gray(a); c=imnoise(b,gaussian,0,0.005);%加入均值为0,方差为0.005的高斯噪声 K1=wiener2(c,5 5);%对加噪图像进行二维自适应维纳滤波,滤波窗口为5*5 K2=filter2(fspecial(average,5),c)/255;%模板尺寸为5 figure(1);imshow(c); figure(2);imshow(K1); figure(3);imshow(K2);由figure(1)和figure(2)很容易可以看出在处理高斯噪声上,Wiener维纳滤波比均值滤波算法更适用。使用均值滤波去噪(高斯噪声)效果选用的邻域半径越大效果越好,当然其代价也会更

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论