《第24章matlab图像处理工具箱》由会员分享,可在线阅读,更多相关《第24章matlab图像处理工具箱(17页珍藏版)》请在金锄头文库上搜索。
1、第24章图像处理工具箱数字图像处理的研究主要有两个方面:其一是为了便于人工分析而对图像信息的改讲,包括图像去噪、增强、图像恢品等:其:呆为了使机器自动理解,对图像进行的分割、理解等。本章主要针对数字图像处理的前一个方面,目的是使读者对利用MATLAB进行图像处理有一个初步的了解,引领读者走过这个“门槛”。这里不准备对MATLAB图像处理匚具箱的所有内容逐项做介绍,而着重从基本概念、基本操作入手,抽取些经常使用的功能,使本章自成体系,主要内容如下:MATLAB数字图像处理中涉及的一些基本概念,基本的图像数据操作; 数字图像的灰度变换:数字图像的代数运算: 数字图像的几何运算,包括图像缩放、旋转、
2、裁剪; 数字图像滤波。24.1 数字图像基础本节介绍一些与数字图像相关的概念,包括数字图像的采样和量化、数字图像的类型及表示,这些概念以及相关的符号会在本章后续内容中经常用到。本节另一个重要的内容是介绍MATLAB图像数据的读入、显示、输出等操作,这些操作是后续图像处理的前提。24.L1数字图像的生成图像是山“照射”源和形成图像的“场景”元素对光能的反射或吸收相结合而产生的。照射可.能由电磁能源引起,如雷达、红外线或X射线,也可能是非传统光源,如超声波等。场景可能是熟悉的物体,也nJ.能是分子、沉积岩、大脑等。图显示了数字图像生成的典型过程,成像系统获取场景反射的能量,并将其映射到图像平面,经
3、过采样和吊:化即得到数字图像。24.1.2图像的类型 MATLAB图像处理工具箱为多种类型的数字图像提供了支持,它们不仅在存 储方式上存在差别,相应的操作、处理也有所不同,这里着重从存储方式 的不同考虑各种图像类型。MATLAB图像处理匚具箱支持的图像类型有以下 4种。数字图像类型;二值图数字图像英型:索引图24.1.3读写图像数据函数imread从图像文件中读取图像数据,iniread支持大多数常用的图像格式.表列出了imread支持的图像格式imrcod支械的用他格式团球格式5Btrvip(EMP)w力“加CuriMrwrc,(CUR)hiterck.anXxni*:(GIF)Hi&rar
4、chx4lDatoFctmx(HOF)W*,“此Ieswg(ICO)JortnxtwcukicVxztXiCroup:PCPoriKe(PBM)FkMePEbra:PCX)田Par:“:。5叩upglfl)aPxiAxNetwukOtipkcs(PNO)PH*KAaymkd(FNM)P:ArPixiiMf(PPXt;SxiRtcter(RAS)StiffTgjjr4k*4kFileFinal(TIFF)XW川mIXWD)24.1.4显示图像数据MATLAB图像处理工具箱有两个函数,inishow和imtoo1s可以用于数字图像的显示。imshow是基本的显示函数,例如,对前面已经读入的图像数据
5、I(pout图像数据),在MATLAB命令窗口输入以下代码。imshow(I)24.1.5转换图像格式图像格式的转换是图像处理过程中经常要做的1:作,往往需要将图像从一种格式转换为另种格式,这样才能完成某些图像处理任务,之后再将图像转换到原来的格式。图像的转换包括图像类型的转换,如灰度图转换为二值图;以及图像数据存储格式的转换,如uint8型灰度图转换为single型灰度图。卜面首先介绍图像类型的转换。函数dither将灰度图转换为二值图或RGB图转换为索引图。X=dithe】(RGB,map)将RGB图转换为灰度图,这里需要提供个Colonnap;BW=dither(I)将灰度图I转换为二值
6、图。EKJ将RGB国共决为次度隹24.2图像的灰度变换一幅输入图售F。/)经次度变换得到躺出左像输出图像出九外的灰度值日对主的输入图像去发隹决定,即Ga,y)=GS7U(%,必),其中GST为灰发变怏由数.灰度支神是一种像素到像素的图像处理方法,这种照像处理方法也称为点处理(BlockOption),本节将要介绍的灰受变倏和第24.3节的图嵯代数运算部是足辱点处理.另外一种图像处理方法涉及售素点邻域,即处理后的隐素值不仅与该像素有关,而且与其框邻的像素也有关,这种图像史理方法称为邻域处理(NsghboriioodOperalion第24.4节第24.6多将要介绍的圣像几何运算,线性亮波和排序淖
7、波都是邻域处理.灰度变换可完全由次度变换诙数GST商定,次度变帙函数初掐逑了输入灰度值与埔出灰度值之间的氏射关系,如图24.2.1图像的直方图灰度图(包括二值图)的宜方图表示每个灰度级范围内像素点的个数,索引图的直方图表示每个色条(即Colormap矩阵的每行)对应的像素点个数。图像的白方图有多种用途,如数字化参数的选择边界阈值的选择(参见图)等。MATLAB图像处理工具箱利用imhist得到灰度图、二值图、索引图的直方.图,其一般的调用格式为: intfiist (I): imhist (I, n); iinhist (X, map)。24.2.2灰度变换灰度变换用于改变图像的对比度。例如,
8、对灰度图pout(图24.32),其直方图如图所示。从直方图上可以看到,pout的大部分像素分布在中间较窄的灰度范围内,使得pout整体对比度较低。利用灰度变换,将pout直方图中间部分拉伸至整个灰度范围0,255能够增强对比度,MATLAB图像处理工具箱中实现该功能的函数是imadjustoRGB图footbaU灰度调整24. 2.3直方图均衡第24.2.2小H的灰度变换实际上是指定灰废变换函数的灰度变换,血对不同的图像还需要设定不同的参数.因此这种方法的效率是很低的力图均衡能钩根据待处理图像的直方图门适应地给出灰度变换函数,伙调整后图像的H方图能尽可能地接近预先定义的M方图。MATLAB图
9、像处理工具箱中利用南救histeq对灰度图和索弓I图作IY方图均衡.histeq股的调用格式为:J=histeq(I,hgram):J=histeqd,n):J=histeq(I)inewmap=histeq(X,map,heram):newmap=histeq(X,map):newmap,T=histeq(X,.)24. 3图像的代数运算:=1图像的代数运算具有明显的物理意义,例如对多幅图像求和平均“J用于去噪,图像的差可用于缓变背景条件下的动FI标检测等。图像的代数运算主要包括加、减、乘、除,即C(xM=4x,j)+3(xM、C,y=4xM-B(x,j)、C(x,1)=4(xMxB(xM、
10、=.一般地,图像的代数运算是像索对像素的运克,因此上面的矩阵运兑是按位运算。图像代数运算不改变图像的数据存储格式,运算过程中均以浮点数进行运算,运电结果转换为原来的数据类型。用户可以利用数组的加减乘除实现图像的代数运算,但是要注意灰度值的取值范围,实际匕MATLAB图像工具箱已经为用户提供了相关的函数用图像的加、减、乘、除,它们分别是imadd、imsubtract、immultiply、imdivide,这四函数将自动处理图像代数运算过程中的溢fHo24. 3. 1图像加法对同一幅受加性噪声污染的图像求平均可以提高图像的信噪比,从而实现图像的去噪。利用图像加法改善信曝比24.3.2图像乘法利
11、用1、。组成的掩膜图与待处理图像相乘可以遮住图像的指定部分。灰度图mocn图像案法结果24. 3.3图像减法图像减法可以用于去除背景和运动目标检测等。假设图中间的黑色小方块是个运动FI标,通过图像的减法能够检测到该目标0在MATLAB命令窗口输入以下指令求上图与图的差图像。imshow(imsubtract(I,J)利用国俅城法检测云动目标24.3.4图像除法图像除法可以产生对彩色或多光谱图像十分重要的比率图像,关于这部分内容,这里不做介绍,读者如有兴趣可以查阅相关的书籍和MATLAB帮助文档。24.4图像的几何运算图像的儿何运算用改变图像的形状,包括缩放、旋转、扭曲等,如图所示。图像的儿何运
12、算涉及空间变换和灰度插值,空间变换防止图像内容支离破碎,灰度插值计前H标图像中对应原图像II:整点的像素灰度值。本节将介绍儿种最基本的儿何运算,包括图像的缩放、旋转和裁剪。图像的几何处理24.4.1缩放图像 MATLAB图像处理I:具箱利用函数imresize对图像进行缩放操作,其般的调用格式为: B=imresize(A,m); B=imresize(A,m,method); B=imresize(A,inrowsncols,method)o 其中A、B分别为输入、输出图像;method是缩放过程中使用的插值方法,nJ以是nearest(最近邻插值)、bilinear(双线性插值)或bicu
13、bic(双立方插值),默认的插值方法是最近邻插值;m为放大因子,m大于1时,图像被放大,小于1时,图像被缩小,也可以分别设置变换后图像的高度mrows和宽度ncols,这能克服放大因子只能对高度和宽度同比缩放的缺陷。24. 4.2旋转图像MATLAB图像处理I:具箱利用函数imrotate对图像进行旋转操作,其一般的一般谢用SiX为“号,龙!格式为:B=imrotate(A,angle,method)其中A、B分别为输入、输出图像:angle为逆时针旋转的角度,angle为负时,表示顺时针旋转:method是旋转过程中使用的插值方法,可以是nearest(最近邻插值)、bilinear*(双线
14、性插值)或bicubic(双立方插值),默认的插值方法是最近邻插值。旋转操作会使图像尺寸变大,imrotate对原图像边界之外的像素用0填充,显示的是黑色的背景。,,rr林&” 第,图慢的次纯,M24.4.3裁剪图像通过图像的裁剪操作能够得到图像的部分图,MATLAB图像I:具箱利用函数imcrop实现图像的裁剪,其般的调用格式为:12=imcropd,rect);X2=iracrop(X.map,rect):RGB2=imcrop(RGB,rect)o上述三种调用格式分别用于灰度图(包括二值图)、索引图和RGB图的裁剪。rect定义裁剪的矩形IX域,如果不指定rect,MATLAB允许用户通
15、过鼠标选定裁剪区域。例如,对灰度图circuit,在MATLAB命令身口输入以卜一指令读入图像数据I,I=inueadC*circuit,tif):24.5线性滤波线性滤波是一类非常重要的图像处理方法,主要用于图像增强、图像去噪等。图像的线性滤波是一种邻域处理(NeighbothoodOperation)方法,输出图像的像素值是输入图像对应像素及其邻域像素的线性组合。本节首先介绍与线性滤波相关的两个概念,即卷积和相关,接着介绍线性滤波函数iinfilter,并给出了一些应用例子。24. 5.1卷积和相关线性滤波可以用卷积实现,输出图像的像素位是输入图像对应像素及其邻域像素的线性加权,权重矩阵称为卷积闻。图说明了图像卷枳的过程,图像I为,卷积窗为。现在要计算像素点(2,4)卷积后的结果,卷积过程如下:卷积过程的边界处理,。填充ha* tri