图像增强的设计.docx
- 文档编号:10043978
- 上传时间:2023-02-08
- 格式:DOCX
- 页数:22
- 大小:562.96KB
图像增强的设计.docx
《图像增强的设计.docx》由会员分享,可在线阅读,更多相关《图像增强的设计.docx(22页珍藏版)》请在冰豆网上搜索。
图像增强的设计
毕业论文
基于MATLAB对图像增强的认识
毕业设计(论文)原创性声明和使用授权说明
原创性声明
本人郑重承诺:
所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:
日 期:
指导教师签名:
日 期:
使用授权说明
本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:
按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:
日 期:
基于MATLAB对图像增强的认识
摘要
这学期我们学习了数字图像处理这一门实用而又生动的课程,初次接触到它
就被它丰富的内容所吸引。
如今随着计算机硬件的发展,数字图像的实时处理已经成为可能,数字图像处理是一门新兴的技术,各种算法的实现,使得图像处理的速度也越来越快,从而可以更好地为人们服务。
数字图像处理技术已经在各行各业的领域中均有涉及。
MATLAB的强大图形展示和运算功能,使得图像处理变得更加的简单和直观。
学完课本第三章使我认识到,将原来不清晰的图像变得清晰或强调某些关注的特征,抑制非关注的特征,使之改善图像质量、丰富信息量,加强图像判读和识别效果的图像处理方法就叫做图像增强。
本文介绍了MATLAB中语言的特点和基于MATLAB的图像处理环境,介绍了如何使用MATLAB和图像处理工具箱进行数字图像处理,重点介绍了利用MATLAB来实现图像增强的图像处理。
关键词:
数字图像处理,图像增强,MATLAB
BasedontheunderstandingoftheimageenhancementofMATLAB
Abstract
Thistermwehavelearntthedigitalimageprocessingwhichisapracticalandvividcourse,Firstcontacttoit,Iwasattractivebyitsrichcontent.Currently,withthedevelopmentofcomputerhardware,real-timeprocessingofdigitalimagehasbecomepossible,digitalimageprocessingisanewtechnology,variousalgorithmimplemented,makeimageprocessingspeedalsomoreandmorequickly,andcanbetterserviceforpeople.Digitalimageprocessingtechnologyhasinallwalksoflifefieldinvolved.MATLABpowerfulgraphicsdisplayandoperationfunction,makingimageprocessingbecomemoresimpleandintuitive.AfterthethirdchaptertolearntextbooksIrealizethatisnotclearimageofwillbecomeclearoremphasizedthatsomeattentionfeatures,inhibitionofthecharacteristicsofattentiontoimproveimagequalityandabundantinformation,strengthentheimageinterpretationandrecognitioneffectofimageprocessingmethodiscalledimageenhancement.ThispaperintroducesthecharacteristicsofthelanguageofMATLABandbasedontheMATLABimageprocessingenvironment,thisarticleintroduceshowtouseMATLABtoolboxandimageprocessingofdigitalimageprocessing,focusingontheuseofMATLABtorealizetheimageenhancementofimageprocessing.
Keywords:
digital image processing, image enhancement,MATLAB
1引言
MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及
互式程序设计的高科技计算环境。
它将数值分析、矩阵计算、科学数据可视化以
及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言,代表了当今国际科学计算软件的先进水平。
图像在生成、传输或变换的过程中,受光源性能、成像系统性能以及通道宽带和噪声等诸多因素的影响,往往会出现清晰度下降、对比度偏低、动态范围不足、包含噪声等降质现象。
为了后续的处理与分析,往往需要提高或恢复图像质量。
常用的方法大体可以分为两种:
一种是在已知降质原因并能对降质过程建模的情况下,把降质图像经过一个降质的逆过程等矫正处理,从而恢复原来的图像,这种方法成为图像恢复或图像复原,这部分在课本的第四章提到;另一种是不深究其图像降质的原因,只根据图像的特点和处理的目的,采用一定的技术进行修正,得到一个更“好”的或者更“有用”的图像,这类技术称为图像增强。
图像增强是图像处理中的一类基本技术,其主要目的有两个:
一是获得更好的图像,主要是改善图像的视觉效果,提高图像的清晰度、对比度等。
图像增强方法根据作用域可分为空间域方法和频率域方法。
空间域方法是指在空间域内直接对像素灰度值进行运算处理,常用的空间域法有图像的灰度变换、直方图修正,图像空域平滑和锐化处理、伪彩色处理等。
频率域法就是在图像的某种变换域内,对图像的变换值进行增强处理,然后通过逆变换获得增强图像,这是一种间接处理方法。
基于空域的算法分为点运算算法和邻域去噪算法。
点运算算法即灰度级校正、灰度变换和直方图修正等,目的或使图像成像均匀,或扩大图像动态范围,扩展对比度。
邻域增强算法分为图像平滑和锐化两种。
平滑一般用于消除图像噪声,但是也容易引起边缘的模糊。
常用算法有均值滤波、中值滤波。
锐化的目的在于突出物体的边缘轮廓,便于目标识别。
常用算法有梯度法、算子、高通滤波、掩模匹配法、统计差值法等。
2、MATLAB基本介绍
2.1MATLAB的概述
MATLAB是MATrixLABoratory(“矩阵实验室”)的缩写,是由美国MathWorks公司开发的集数值计算、符号计算和图形可视化三大基本功能于一体的,功能强大、操作简单的语言。
是国际公认的优秀数学应用软件之一。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学,工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完相同的事情简捷得多。
MATLAB包括拥有数百个内部函数的主包和三十几种工具包(Toolbox).工具包又可以分为功能性工具包和学科工具包.功能工具包用来扩充MATLAB的符号计算,可视化建模仿真,文字处理及实时控制等功能.学科工具包是专业性比较强的工具包,控制工具包,信号处理工具包,通信工具包等都属于此类.
开放性使MATLAB广受用户欢迎.除内部函数外,所有MATLAB主包文件和各种工具包都是可读可修改的文件,用户通过对源程序的修改或加入自己编写程序构造新的专用工具包.
2.2MATLAB产生的历史背景
在70年代中期,CleveMoler博士和其同事在美国国家科学基金的资助下开发了调用EISPACK和LINPACK的FORTRAN子程序库.EISPACK是特征值求解的FOETRAN程序库,LINPACK是解线性方程的程序库.在当时,这两个程序库代表矩阵运算的最高水平.
到70年代后期,身为美国NewMexico大学计算机系系主任的CleveMoler,在给学生讲授线性代数课程时,想教学生使用EISPACK和LINPACK程序库,但他发现学生用FORTRAN编写接口程序很费时间,于是他开始自己动手,利用业余时间为学生编写EISPACK和LINPACK的接口程序.CleveMoler给这个接口程序取名为MATLAB,该名为矩阵(matrix)和实验室(labotatory)两个英文单词的前三个字母的组合.在以后的数年里,MATLAB在多所大学里作为教学辅助软件使用,并作为面向大众的免费软件广为流传.
1983年春天,CleveMoler到Standford大学讲学,MATLAB深深地吸引了工程师JohnLittle.JohnLittle敏锐地觉察到MATLAB在工程领域的广阔前景.同年,他和CleveMoler,SteveBangert一起,用C语言开发了第二代专业版.这一代的MATLAB语言同时具备了数值计算和数据图示化的功能.
1984年,CleveMoler和JohnLittle成立了MathWorks公司,正式把MATLAB推向市场,并继续进行MATLAB的研究和开发.
在当今30多个数学类科技应用软件中,就软件数学处理的原始内核而言,可分为两大类.一类是数值计算型软件,如MATLAB,Xmath,Gauss等,这类软件长于数值计算,对处理大批数据效率高;另一类是数学分析型软件,Mathematica,Maple等,这类软件以符号计算见长,能给出解析解和任意精确解,其缺点是处理大量数据时效率较低.MathWorks公司顺应多功能需求之潮流,在其卓越数值计算和图示能力的基础上,又率先在专业水平上开拓了其符号计算,文字处理,可视化建模和实时控制能力,开发了适合多学科,多部门要求的新一代科技应用软件MATLAB.经过多年的国际竞争,MATLAB以经占据了数值软件市场的主导地位.
在MATLAB进入市场前,国际上的许多软件包都是直接以FORTRANC语言等编程语言开发的。
这种软件的缺点是使用面窄,接口简陋,程序结构不开放以及没有标准的基库,很难适应各学科的最新发展,因而很难推广。
MATLAB的出现,为各国科学家开发学科软件提供了新的基础。
在MATLAB问世不久的80年代中期,原先控制领域里的一些软件包纷纷被淘汰或在MATLAB上重建。
时至今日,经过MathWorks公司的不断完善,MATLAB已经发展成为适合多学科,多种工作平台的功能强大大大型软件。
在国外,MATLAB已经经受了多年考验。
在欧美等高校,MATLAB已经成为线性代数,自动控制理论,数理统计,数字信号处理,时间序列分析,动态系统仿真等高级课程的基本教学工具;成为攻读学位的大学生,硕士生,博士生必须掌握的基本技能。
在设计研究单位和工业部门,MATLAB被广泛用于科学研究和解决各种具体问题。
在国内,特别是工程界,MATLAB一定会盛行起来。
可以说,无论你从事工程方面的哪个学科,都能在MATLAB里找到合适的功能。
1.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.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方法。
3、图像增强
图像增强是一类基本的图像处理技术,其目的是对图像进行加工,以得到对具体应用来说视觉效果更好、更有用的图像。
这里的好和有用要因具体的应用目的和要求而异,并且所需的具体增强技术也可不同。
目前常用的增强技术根据其处理所进行的空间不同,可分为基于图像域的方法和基于变化域的方法。
第一类,直接在图像所在的空间进行处理,也就是在像素组成的空间里直接对像素进行操作;第二类,在图像的变化域对图像进行间接处理。
空域增强方法可表示为:
g(x,y)=EH[f(x,y)]
其中f(x,y)和g(x,y)分别为增强前后的图像,EH代表增强操作。
3.1空域变换增强
3.1.1增强对比度
增强对比度实际是增强原图像的各部分的反差。
实际中往往是通过原图中某两个灰度值之间的动态范围来实现的(如图3-0)。
图3-0增强对比度
在图3-0中可以看出,通过变换可以使原图的较高的和较低的灰度值的动态范围减小了,而原图在二者之间的动态范围增加了,从而其范围的对比度增加了。
MATLAB代码如下所示:
X1=imread('1.jpg');
figure,imshow(X1)
f0=0;g0=0;
f1=70;g1=30;
f2=180;g2=230;
f3=255;g3=255;
r1=(g1-g0)/(f1-f0);
b1=g0-r1*f0;
r2=(g2-g1)/(f2-f1);
b2=g1-r2*f1;
r3=(g3-g2)/(f3-f2);
b3=g2-r3*f2;
[m,n]=size(X1);
X2=double(X1);
fori=1:
m
forj=1:
n
f=X2(i,j);
g(i,j)=0;
if(f>=0)&(f<=f1)
g(i,j)=r1*f+b1;
elseif(f>=f1)&(f<=f2)
g(i,j)=r2*f+b2;
elseif(f>=f2)&(f<=f3)
g(i,j)=r3*f+b3;
end
end
end
figure,imshow(mat2gray(g))
图像处理如下所示(如图3-1和图3-2)
图3-1原图图3-2增强对比度所得图像
3.1.2图像求反
对图像求反是将原来的灰度值翻转,简单的说就是使黑变白,使白变黑。
普通的黑白底片和照片就是这样的关系。
具体的变换就是将图像中每个像素的灰度值根据变换曲线进行映射。
MATLAB代码所示:
X1=imread('pout.tif');
f1=200;
g1=256;
k=g1/f1;
[m,n]=size(X1);
X2=double(X1);
fori=1:
m
forj=1:
n
f=X2(i,j);
g(i,j)=0;
if(f>=0)&(f<=f1)
g(i,j)=g1-k*f;
else
g(i,j)=0;
end
end
end
figure,imshow(mat2gray(g))
图像处理如下所示:
(图3-3)
图3-3图像求反后
3.2空域滤波增强
一般情况下,像素的邻域比该像素要大,也就是说这个像素的邻域中除了本身以外还包括其他像素。
在这种情况下,g(x,y)在(x,y)位置处的值不仅取决于f(x,y)在以(x,y)为中心的邻域内所有的像素的值。
如仍以s和t分别表示f(x,y)在(x,y)位置处的灰度值,并以n(s)代表f(x,y)在(x,y)邻域内像素的灰度值,则t=EA[s,n(s)]
为在邻域内实现增强操作,常可利用模板与图像进行卷积。
每个模板实际上是一个二维数组,其中各个元素的取值定了模板的功能,这种模板操作也称为空域滤波。
3.2.1基本原理
空域滤波可分为线形滤波和非线形滤波两类。
线形滤波器的设计常基于对傅立叶变换的分析。
非线形空域滤波器则一般直接对邻域进行操作。
另外各种滤波器根据功能又主要分成平滑滤波和锐化滤波。
平滑可用低通来实现,锐化可用高通来实现
平滑滤波器:
它能减弱或消除傅立叶空间的高频分量,但不影响在低频分量。
因为高频分量对应图像中的区域边缘等灰度值具有较大较快变化的部分,滤波器将这些分量滤去可使图像平滑。
锐化滤波器:
它能减弱或消除傅立叶空间的高频分量
空域滤波器都是利用模板卷积,主要步骤如下:
(1)将模板在图中漫游,并将模板中心与图中某个像素位置重合;
(2)将模板上的系数与模板下对应的像素相乘;
(3)将所有的乘积相加;
(4)将和(模板的输出响应)赋给图中对应的模板中心位置像素。
下面分别介绍在MATLAB中如何应用平滑和锐化滤波器。
3.2.2线性平滑滤波器
线性低通滤波器是最常用的线性平滑滤波器。
这种滤波器的所有系数都是正的。
对3*3的模板来说,最简单的操作是取所有系数都为1。
为保证输出图像仍在原来的灰度范围内,在计算R后要将其除以9再进行赋值。
这种方法称为邻域平均法。
MATLAB实现均值过滤器的代码所示:
I=imread('2.jpg');
J=imnoise(I,'salt&pepper',0.02);
imshow(I)
figure,imshow(J)
K1=filter2(fspecial('average',3),J)/255;
figure,imshow(K1)
title('3*3的均值滤波器')
原图像,加入椒盐噪声的图像和均值滤波的图像分别如图3-4、图3-5和图3-6所示。
3.2.3非线性平滑滤波器
中值滤波器是最常用的非线性平滑滤波器。
它是一种临域运算,类似于卷积,但计算的不是加权求和,而是把邻域中的像素按灰度级进行排序,然后选择改组的中间值作为输出的像素值。
具体步骤:
(1)将模板在图像中漫游,并将模板中心和图像某个像素的位置重合;
(2)读取模板下对应像素的灰度值;
(3)将这些灰度值从小到大排成一列;
(4)找出这些值排在中间的一个;
(5)将这个中间值赋给对应模板中心位置的像素。
MATLAB实现中值滤波器代码所示:
I=imread('saturn.tif');
J=imnoise(I,'salt&pepper',0.02);
K1=medfilt2(J,[3,3]);
figure,imshow(K1)
中值滤波的结果如图3-7所示。
图3-7中值滤波结果
3.2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图像 增强 设计