MATLAB在数字图像处理上的应用.docx
《MATLAB在数字图像处理上的应用.docx》由会员分享,可在线阅读,更多相关《MATLAB在数字图像处理上的应用.docx(18页珍藏版)》请在冰豆网上搜索。
MATLAB在数字图像处理上的应用
MATLAB在数字图像增强处理上的应用
姓名:
学号:
专业:
班级:
学院:
完成日期:
MATLAB在图像增强处理中的应用
(姓名学号年级班级)
[摘要]数字图像增强处理是一门新兴技术,随着计算机硬件的发展,数字增强图像的实时处理已经成为可能,由于数字图像增强处理的各种算法的出现,使得其处理速度越来越快,能更好的为人们服务。
数字增强图像处理是一种通过计算机采用一定的算法对图形图像进行增强处理的技术。
数字图像增强处理技术已经在各个领域上都有了比较广泛的应用。
图像增强处理的信息量很大,对处理速度的要求也比较高。
MATLAB语言因具有功能强、效率高、简单易学等特点,在许多领域得到广泛应用。
MATLAB强大的运算和图形展示功能,使图像增强处理变得更加的简单和直观。
本文介绍了MATLAB语言的特点,基于MATLAB的数字图像处理环境,介绍了如何利用MATLAB进行数字图像增强处理,并通过一些例子来说明利用MATLAB进行图像增强处理的方法,重点分析了MATLAB在图象增强处理中的应用。
通过实例验证了该语言具有强大图形处理能力,是一种简洁易学,可读性强、功能强大的应用软件。
[关键词]MATLAB语言、数字图像处理、图像增强
Abstract
Digitalimageprocessingisanemergingtechnology,withthedevelopmentofcomputerhardware,real-timedigitalimageprocessinghasbecomepossibleduetodigitalimageprocessingalgorithmstoappear,makingitfasterandfasterprocessingspeed,betterforPeopleservices.Digitalimageprocessingisusedbysomealgorithmscomputergraphicsimageprocessingtechnology.Digitalimageprocessingtechnologyhasbeeninvariousareashavearelativelywiderangeofapplications.Imageprocessinglargeamountofinformationontheprocessingspeedrequirementisrelativelyhigh.MATLABpowerfulcomputingandgraphicsdisplaycapabilities,sothatimageprocessingbecomesmoresimpleandintuitive.ThispaperintroducescharacteristicsofMATLABlanguageandthisMATLAB-baseddigitalimageprocessingenvironment,describeshowtousetheMATLABImageProcessingToolboxforitsdigitalimageprocessing,andthroughsomeexamplestoillustratetheuseofMATLABImageProcessingToolboxforimageprocessingmethod.MainlydiscussestheuseofMATLABforimageenhancementandotherimageprocessingtechnologies.
Keywords:
MATLAB,digital image processing, image enhancement.
1.2课题主要研究内容1
1.3本课题研究工作与结构安排1
2数字图像处理的简介2
3MATLAB基本知识介绍2
4图像增强3
4.1空域变换增强3
4.1.1增强对比度3
4.2空域滤波增强4
4.2.1基本原理4
4.2.2线性平滑滤波器5
4.2.3非线性平滑滤波器6
4.2.4线性锐化滤波器7
4.3频域增强8
4.3.1基本原理8
4.3.2低通滤波9
4.3.4高通滤波10
5总结12
6参考文献12
1绪论
本章简略介绍课题的研究目的及意义,主要研究内容以及论文内容安排等。
1.1课题研究目的及意义
数字图像处理(DigitalImageProcessing),就是利用数字计算机或者其他数字硬件,对从图像信息转换而得到的电信号进行某些数学运算,以提高图像的实用性。
例如从卫星图片中提取目标物的特征参数,三维立体断层图像的重建等。
总的来说,数字图像处理包括点运算、几何处理、图像增强、图像复原、图像形态学处理、图像编码、图像重建、模式识别等。
由于计算机处理能力的不断增强,数字图像处理学科在飞速发展的同时,也越来越广泛地向许多其他学科快速交叉渗透,使得图像作为信息获取以及信息的利用等方面也变得越来越重要。
目前数字图像处理的应用越来越广泛,已经渗透到工业、医疗保健、航空航天、军事等各个领域,在国民经济中发挥越来越大的作用。
MathWorks公司推出的MATLAB软件是学习数理知识的好帮手。
应用MATLAB友好的界面和丰富、实用、高效的指令及模块,可以使人较快地认识、理解图像处理的相关概念,逐步掌握图像信号处理的基本方法,进而能够解决相关的工程和科研中的问题。
图像是人类获取和交换信息的主要来源,因此,图像处理的应用领域必然涉及到人类生活和工作的方方面面。
随着人类活动范围的不断扩大,图像处理的应用领域也将随之不断扩大,已在国家安全、经济发展、日常生活中充当越来越重要的角色,对国计民生的作用不可低估。
1.2课题主要研究内容
通过MATLAB语言对数字图像进行增强处理。
1.3本课题研究工作与结构安排
本文主要以MATLAB为工具来实现数字图像的增强处理。
全文共分5章,结构安排如下:
第一章绪论,介绍了课题研究目的及意义和国内外研究现状。
第二章介绍了数字图像和数字图像处理的基本知识。
第三章介绍了Matlab仿真工具。
第四章介绍了图像增强的原理及利用MATLAB来实现图像增强。
第五章总结。
2数字图像处理的简介
数字图像处理(DigitalImageProcessing)是通过计算机对图像进行去除噪声、增强、复原、分割、提取特征等处理的方法和技术。
数字图像处理的产生和迅速发展主要受三个因素的影响:
一是计算机的发展;二是数学的发展(特别是离散数学理论的创立和完善);三是广泛的农牧业、林业、环境、军事、工业和医学等方面的应用需求的增长。
数字图像处理主要研究的内容有以下几个方面:
(1)图像变换。
(2)图像编码压缩。
(3)图像增强和复原。
(4)图像分割。
(5)图像描述。
(6)图像分类(识别)。
本文我们只对图像增强进行研究。
3MATLAB基本知识介绍
MATLAB是MATrixLABoratory(“矩阵实验室”)的缩写,是由美国MathWorks公司开发的集数值计算、符号计算和图形可视化三大基本功能于一体的,功能强大、操作简单的语言。
是国际公认的优秀数学应用软件之一。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学,工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完相同的事情简捷得多。
MATLAB包括拥有数百个内部函数的主包和三十几种工具包(Toolbox).工具包又可以分为功能性工具包和学科工具包.功能工具包用来扩充MATLAB的符号计算,可视化建模仿真,文字处理及实时控制等功能.学科工具包是专业性比较强的工具包,控制工具包,信号处理工具包,通信工具包等都属于此类.
开放性使MATLAB广受用户欢迎.除内部函数外,所有MATLAB主包文件和各种工具包都是可读可修改的文件,用户通过对源程序的修改或加入自己编写程序构造新的专用工具包.
4图像增强
图像增强是一类基本的图像处理技术,其目的是对图像进行加工,以得到对具体应用来说视觉效果更好、更有用的图像。
这里的好和有用要因具体的应用目的和要求而异,并且所需的具体增强技术也可不同。
目前常用的增强技术根据其处理所进行的空间不同,可分为基于图像域的方法和基于变化域的方法。
第一类,直接在图像所在的空间进行处理,也就是在像素组成的空间里直接对像素进行操作;第二类,在图像的变化域对图像进行间接处理。
空域增强方法可表示为:
g(x,y)=EH[f(x,y)]
其中f(x,y)和g(x,y)分别为增强前后的图像,EH代表增强操作。
4.1.1增强对比度
增强对比度实际是增强原图像的各部分的反差。
实际中往往是通过原图中某两个灰度值之间的动态范围来实现的(如图4-1)。
在图4.1.1中可以看出,通过变换可以使原图的较高的和较低的灰度值的动态范围减小了,而原图在二者之间的动态范围增加了,从而其范围的对比度增加了。
MATLAB代码所示:
I=imread('moon.tif');%读入图像为trees的图像并赋给I
J=imadd(I,50);%给图像的像素加上一个常数50
subplot(1,2,1),imshow(I);%选择1×2个区中的1号区显示图像I
subplot(1,2,2),imshow(J);%选择1×2个区中的2号区显示图像J
图1像素加上常数后的图像与原图像对比图
小结:
如图5通过两个moon的对比可以看出MATLAB中每一个像素加上一个常数后可以使图像的亮度增加。
4.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)]
为在邻域内实现增强操作,常可利用模板与图像进行卷积。
每个模板实际上是一个二维数组,其中各个元素的取值定了模板的功能,这种模板操作也称为空域滤波。
4.2.1基本原理
空域滤波可分为线形滤波和非线形滤波两类。
线形滤波器的设计常基于对傅立叶变换的分析。
非线形空域滤波器则一般直接对邻域进行操作。
另外各种滤波器根据功能又主要分成平滑滤波和锐化滤波。
平滑可用低通来实现,锐化可用高通来实现
平滑滤波器:
它能减弱或消除傅立叶空间的高频分量,但不影响在低频分量。
因为高频分量对应图像中的区域边缘等灰度值具有较大较快变化的部分,滤波器将这些分量滤去可使图像平滑。
锐化滤波器:
它能减弱或消除傅立叶空间的高频分量
空域滤波器都是利用模板卷积,主要步骤如下:
(1)将模板在图中漫游,并将模板中心与图中某个像素位置重合;
(2)将模板上的系数与模板下对应的像素相乘;
(3)将所有的乘积相加;
(4)将和(模板的输出响应)赋给图中对应的模板中心位置像素。
下面分别介绍在MATLAB中如何应用平滑和锐化滤波器。
4.2.2线性平滑滤波器
线性低通滤波器是最常用的线性平滑滤波器。
这种滤波器的所有系数都是正的。
对3*3的模板来说,最简单的操作是取所有系数都为1。
为保证输出图像仍在原来的灰度范围内,在计算R后要将其除以9再进行赋值。
这种方法称为邻域平均法。
MATLAB实现均值过滤器的代码所示:
I=imread('saturn.tif');
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的均值滤波器')
原图像,加入椒盐噪声的图像和均值滤波的图像分别如图4-2、图4-3和图4-4所示。
图4-3原图图4-4加入椒盐噪声图像
图4-53*3的均值滤波器处理结果
4.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)
中值滤波的结果如图4-6所示。
图4-6中值滤波结果
4.2.4线性锐化滤波器
线性高通滤波器是最常用的线性锐化滤波器。
这种滤波器的中心系数都是正的,而周围的系数都是负的。
对3*3的模板来说,典型的系数取值是:
[-1–1–1;-18–1;-1–1-1]
事实上这是拉普拉斯算子,所有的系数之和为0。
当这样的模板放在图像中灰度值是常数或变化很小的区域时,其输出为0或很小。
这个滤波器将原来的图像中的零频域分量去除了,也就是将输出的图像的平均值变为0,这样就会有一部分像素的灰度值小于0。
在图像处理中我们一般只考虑正的灰度值,所以还有将输出图像的灰度值范围通过尺度变回到所要求的范围。
MATLAB代码所示:
I=imread('saturn.tif');
m=fspecial('laplacian')
I1=filter2(m,I)
h=fspecial('unsharp',0.5);
I2=filter2(h,I)/255;
subplot(1,2,1);
imshow(I1);
title('高通滤波laplacian算子')
subplot(1,2,2);
imshow(I2);
title('高通滤波unsharp')
处理结果如图4-7所示:
图4-7空域高通滤波
4.3频域增强
4.3.1基本原理
卷积理论是频域技术的基础。
设函数f(x,y)与线性位不变算子h(x,y)的卷积结果是g(x,y),即g(x,y)=h(x,y)*f(x,y)
那么根据卷积定理在频域有:
G(x,y)=H(u,v)F(u,v)
其中G(x,y)、H(u,v)、F(u,v)分别是g(x,y)、h(x,y)、f(x,y)的傅立叶变换。
频域增强的主要步骤是:
(1)技术所需增强图的傅立叶变换;
(2)将其与一个(根据需要设计的)转移函数相乘;
(3)再将结果进行傅立叶反变换以得到增强的图。
频域增强的两个关键步骤:
(1)将图像从空域转换到频域所需的变换及将图像从频域空间转换回空域所需的变换;
(2)在频域空间对图像进行增强加工操作。
常用的频域增强方法有低通滤波和高通滤波。
以下分别介绍在MATLAB中如何实现。
4.3.2低通滤波
图像的能量大部分集中在幅度谱的低频和中频度,而图像的边缘和噪声对应于高频部分。
因此能降低高频成分幅度的滤波器就能减弱噪声的影响。
Butterworth低通滤波器是一种物理上可以实现的低通滤波器,n阶,截断频率为d0的Butterworth低通滤波器的转移函数为:
H(u,v)=
用MATLAB实现Butterworth低通滤波器的代码所示:
I1=imread('Saturn.tif');
figure,imshow(I1)
I2=imnoise(I1,'salt');
figure,imshow(I2)
f=double(I2);
g=fft2(f);
g=fftshift(g);
[N1,N2]=size(g);
n=2;
d0=50;
n1=fix(N1/2);
n2=fix(N2/2);
fori=1:
N1
forj=1:
N2
d=sqrt((i-n1)^2+(j-n2)^2);
h=1/(1+0.414*(d/d0)^(2*n));
result(i,j)=h*g(i,j);
end
end
result=ifftshift(result);
X2=ifft2(result);
X3=uint8(real(X2));
figure,imshow(X3)
原图和处理结果如图4-8和图4-9所示
图4-8加噪图4-9去噪
4.3.3高通滤波
高通滤波也称高频滤波器,它的频值在0频率处单位为1,随着频率的增长,传递函数的值逐渐增加;当频率增加到一定值之后传递函数的值通常又回到0值或者降低到某个大于1的值。
在前一种情况下,高频增强滤波器实际上是依照能够带通滤波器,只不过规定0频率处的增益为单位1。
实际应用中,为了减少图像中面积大且缓慢变化的成分的对比度,有时让0频率处的增益小于单位1更合适。
如果传递函数通过原点,则可以称为laplacian滤波器。
n阶截断频率为d0的Butterworth高通滤波器的转移函数为:
H(u,v)=
MATLAB实现Butterworth高通滤波器代码所示:
I1=imread('blood1.tif');
figure,imshow(I1)
f=double(I1);
g=fft2(f);
g=fftshift(g);
[N1,N2]=size(g);
n=2;
d0=5;
n1=fix(N1/2);
n2=fix(N2/2);
fori=1:
N1
forj=1:
N2
d=sqrt((i-n1)^2+(j-n2)^2);
ifd==0
h=0;
else
h=1/(1+(d0/d)^(2*n));
end
result(i,j)=h*g(i,j);
end
end
result=ifftshift(result);
X2=ifft2(result);
X3=uint8(real(X2));
figure,imshow(X3)
原图和处理结果如图4-10和4-11所示。
图4-10原图图4-11原图
5总结
本文主要介绍了数字图像的理论知识及MATLAB语言的特点,基于MATLAB的数字图像处理环境,介绍了如何利用MATLAB及其图像处理工具箱进行数字图像增强处理。
参考文献
[1]徐明远,刘增力,《MATLAB仿真在信号处理中的应用》,西安电子科技大学出版社,2007.11
[2]闫敬文,《数字图像处理MATLAB版》,国防工业出版社,2007.2
[3]周新伦,柳建,《数字图像处理》,国防工业出版社,1986.3
[4]孙兆林.MATLAB6.x图像处理[M].北京:
清华大学出版社,2002.
[5]刘卫国.MATLAB程序设计与应用(第二版)[M].北京:
高等教育出版社,2006.