《电子信息专业数字图像处理用专业综合实验指导书.doc》由会员分享,可在线阅读,更多相关《电子信息专业数字图像处理用专业综合实验指导书.doc(25页珍藏版)》请在三一办公上搜索。
1、专业综合实验指导书数字图像处理(电子信息专业用)长春工业大学计算机科学与工程学院数字图像处理课程组一、目的和意义 专业综合实验旨在将图像处理基础理论论述与软件实践方法相结合,指导学生如何解决图像处理过程中经常遇到的实际问题,提高学生的综合素质。所选择的软件工具来自公认的科学计算方面的引领者MathWorks公司的MATLAB图像处理工具箱,它为数字图像处理提供了一个稳定、宽泛的软件实现平台,其在教育和工业应用中同样占有优势。本书重点强调了图像处理的基本问题的实现,帮助学生巩固对相关理论知识的理解。二、实验要求 结合图像处理的基本知识,培养学生运用MATLAB软件进行编程并仿真实现,提高软件设计
2、和编程能力。通过分析实验结果,总结及撰写技术分析报告。三、主要仪器设备及环境微机Pentium 4 以上,32M以上内存,安装好WINDOWS XP以上、MATLAB7.0等有关软件。四、实验内容(一) 常规实验项目 1实验一 图像显示2实验二 图像变换3实验三 图像增强4实验四 图像分割5实验五 图像压缩6实验六 图像运算与区域处理(二) 综合设计性实验项目1. 设计一 医学图像边缘检测(血细胞、血管、肝脏等)2. 设计二 车牌图像定位、识别3. 设计三 印刷字符分割、手写体数字识别4. 设计四 图像编码算法研究(Huffman、游程编码、香农编码等)5. 设计五 运动图像复原算法设计6.
3、设计六 指纹图像特征提取算法设计7. 设计七 彩色图像增强算法设计实验一 图像显示一、 实验目的MATLAB的图像处理工具箱提供了多种图像显示和颜色、光照技术。本实验将具体介绍Matlab中用于图像显示、颜色转换的各个函数的具体用法。二、 实验要求1 学习图像读取、显示及保存方法。2 学习特殊图像显示技术3 学习图像颜色模型转换技术三、 实验内容1 读取图像使用函数imread可以将图像读入MATLAB环境,imread 的语法为 imread(filename)其中,filename是一个含有图像文件全名的字符串(包括任何可用的扩展名)。注意,此处的单引号用以界定filename字符串。如命
4、令行f=imread(d:imagerice.tif);将TIFF图像rice.tif读入图像数组f。命令行结尾处的分号用于取消输出。若命令行未包含分号,则MATLAB会立即显示该行命令的运算结果。MATLAB桌面工具条上的当前目录窗口会显示MATLAB的当前工作路径。当filename中不包含任何路径信息时,imread会从当前目录中寻找并读取图像文件。函数size可以给出一幅图像的行数和列数:size(f)ans = 256 256也可使用如下形式自动确定一幅图像的大小:M,N=size(f);将返回图像的行数(M)和列数(N)。2 显示图像使用函数imshow来显示图像,该函数在显示图像
5、的同时创建了一个图形图像句柄对象,可以通过句柄的一些参数设置显示模式。例1 显示灰度图像 J=imread(eight.tif);subplot(121);imshow(J,100,200);%在灰度范围100,200内显示图像subplot(122);imshow(J,20);%以灰度等级20显示图像当用imshow显示另一幅图像时,MATLAB会在屏幕上用新图像替换旧图像。为保持第一幅图像并同时显示第二幅图像,可以使用figure函数:例2 显示二值图像BW= imread(circles.tif);imshow(BW) %显示二值图像figure(2)imshow(BW) %显示颜色反转
6、后的二值图像3 保存图像使用函数imwrite可以将图像写到磁盘上,该函数的语法为 imwrite(f,filename)若filename中不包含路径信息,则imwrite会将文件保存到当前的工作目录中。另一种常见但只适用于JPEG图像的函数语法是 imwrite(f,filename.jpg,quality,q)其中,q是一个在0到100之间的整数(由于JPEG压缩,q越小,图像的退化就越严重)。4特殊图像显示技术例3 添加颜色条I=imread(saturn.tif);H=121;000;-1-2-1;I2=filter2(h,I);imshow(I2,),colorbar 例4 显示多
7、图像序列mri=uint8(zeros(128,128,1,27);for frame=1:27 mri(:,:,:,frame),map=imread(mri.tif,frame);endimshow(mri(:,:,:,3),map);例5 显示多帧图像mri=uint8(zeros(128,128,1,27);for frame=1:27 mri(:,:,:,frame),map=imread(mri.tif,frame);end%montage(mri,map);例6 动画显示mri=uint8(zeros(128,128,1,27);for frame=1:27 mri(:,:,:,
8、frame),map=imread(mri.tif,frame);endmov=immovie(mri,map);movie(mov);练习使用:zoom on, zoom off, imresize, imadjust, subimage, imrotate, imcrop, warp例7 把真彩色图像映射到柱面上x,y,z=cylinder;RGB=imread(eight.tif);warp(x,y,z,RGB); 5图像颜色转换技术(1) 褪色函数 imapprox, rgb2ind例8 图像的褪色X,map=imread(canoe.tif);Y,newmap=imapprox(X,
9、map,20);imshow(X,map)figure, imshow(Y,newmap)(2) 练习使用颜色模型转换函数:rgb2hsv, hsv2rgb, ntsc2rgb, rgb2ntsc, rgb2ycbcr, ycbcr2rgb, rgb2gray, im2bwrgb2hsv 函数将RGB模型转换为HSV模型。其调用格式如下:hsvmap=rgb2hsv(rgbmap) 将RGB空间中m3的色彩表rgbmap转换成HSV色彩空间的颜色映射表hsvmap;HSV=rgb2hsv(RGB) 将真彩色图像RGB转换为HSV色彩空间中的图像HSV。rgb2ntsc函数将RGB模型转换为NT
10、SC模型。其调用格式如下:yiqmap=rgb2ntsc(rgbmap) 将RGB空间中m3的色彩表rgbmap转换成YIQ色彩空间的颜色映射表yiqmap;YIQ=rgb2ntsc(RGB) 将真彩色图像RGB转换为YIQ色彩空间中的图像YIQ。rgb2ycbcr函数将RGB模型转换为YCbCr模型。其调用格式如下:ycbrmap=rgb2ycbcr(rgbmap) 将RGB空间中的色彩表rgbmap转换成YCbCr空间中的颜色映射表ycbrmap;Ycbcr=rgb2ycbcr(RGB) 将真彩色图像RGB转换为YCbCr空间中的图像YCbCr。hsv2rgb函数将HSV模型转换为RGB模
11、型。其调用格式如下:rgbmap=hsv2rgb(hsvmap) 将HSV色彩空间的颜色映射表hsvmap转换成RGB空间中的色彩表rgbmap,rgbmap和hsvmap都是m3的矩阵;RGB=hsv2rgb(HSV) 表示将HSV色彩空间的图像HSV转换为真彩色图像RGB。ntsc2rgb函数将NTSC色彩空间值转换为RGB色彩空间值。其调用格式如下:rgbmap=ntsc2rgb(yiqmap) 将YIQ空间中m3的颜色映射表yiqmap转换成RGB空间中的色彩表rgbmap;RGB=ntsc2rgb(YIQ) 将NTSC色彩空间的图像YIQ转化为真彩色图像RGB。ycbc2rgb函数Y
12、CbCr模型转换为RGB模型。其调用格式如下:rgbmap=ycbcr2rgb(ycbcrmap) 将YCbCr色图ycbcrmap转换到RGB色图rgbmap。rgbmap和ycbcrmap都是m3的数组。RGBycbcr2rgb(YCBCR) 将YCbCr图像YCBCR转换成真彩色图像RGB。四撰写技术分析报告(略)实验二 图像变换一、 实验目的学习灰度变换修正图像的颜色和灰度的方法。学习图像直方图的生成和修正技术的原理和实现方法,理解其对于观察图像的意义。了解图像变换的意义和手段,熟练掌握傅里叶变换等图像正交变换方法,了解二维频谱的分布特点。二、 实验要求1 掌握灰度变换函数的用法,对图
13、像进行灰度变换,增强对比度,显示变换前后的图像以及它们的灰度直方图。2 选择一幅直方图不均匀的图像,对其作直方图均衡化处理,显示处理前后的图像以及它们的灰度直方图。3 学习傅立叶变换等正交变换技术。三、实验内容1灰度调整函数imadjust是对灰度图像进行灰度变换的基本工具。其语法为 g=imadjust(f,low_in high_in,low_out high_out,gamma)此函数将图像f中的亮度值映象到g中的新值,即将low_in至high_in之间的值映射到low_out high_out之间的值。low_in以下与high_in以上的值被剪切掉了。输入图像应为uint8类、ui
14、nt16类或double类图像,输出图像与输入图像有着相同的类。需要注意的是,不管f属于哪一个类,函数imadjust指定的强度值的范围均为0,1。如果f是uint8类图像,则函数imadjust将乘以255来确定应用中的实际值;如果f是uint16类图像,则函数imadjust将乘以65 535。为low_in high_in或low_out high_out使用空矩阵( )会得到默认值0 1。若high_out小于low_out,则输出亮度会反转。参数gamma指定了曲线的形状,该曲线用来映射f的亮度值,以便生成图像g。gamma的取值决定了输入图像到输出图像数据的映射方式,gamma1,
15、增强暗度,只有当gamma1(缺省情况)时,这种映射才是线性映射。例1 灰度调整举例Iimread(cameraman.tif);J=imadjust(I,0 0.2),0.5 1;imshow(I);figure,imshow(J)这样的操作将显著增加图像的对比度,同时也扩宽了原始图像上黑色部分的变动范围,从而使摄影师所穿着的衣服的细节能够更容易分辨。2直方图均衡化直方图是图像亮度分布的概率密度函数,是图像最基本的统计特征,它反映的是图像的灰度值的分布情况和图像的明暗分布规律,。直方图操作能有效地用于图像增强,其固有的信息还可用于在其他图像处理应用中,如图像压缩与分割。直方图在软件中易于计算
16、,也适用于商用硬件设备,因此,它们成为了实时图像处理的一个流行工具。直方图均衡化的目的是使图像在整个灰度值动态变化范围内的分布均匀化,改善图像的亮度分布状态,增强图像的视觉效果。灰度直方图是图像预处理中涉及最广泛的基本概念之一。直方图均衡化是通过灰度变换将一幅图像转换为另一幅具有均衡直方图,即在每个灰度级上都具有相同的象素点数的过程。直方图生成函数为imhist,其基本语法为h=imhist(f,b) 其中,f为输入图像,h为其直方图,b是用于形成直方图的灰度级个数。若b未包含在此变量中,则其默认值为256。若处理的一幅uint8类图像,且b2,则亮度标度范围被分成两个部分:0至127和128
17、至255。所得的直方图将有两个值:h(1)等于图像在区间0,127内的像素总数,h(2)等于图像在区间128,255内的像素总数。直方图均衡化由工具箱中的函数histeq实现,该函数的语法为g=histeq(f,nlev)式中,f为输入图像,nlev是为输出图像指定的灰度级数。若nlev等于L(输入图像中可能的灰度级的总数),则histeq直接执行变换函数T(rk)。若nlev小于L,则histeq试图划分灰度级,以便能够得到较为平坦的直方图。histeq中的默认值为nlev64。例2 直方图均衡化示例I=imread(tire.tif); % 读入原图像J=histeq(I); %对原图像进
18、行直方图均衡化处理imshow(I); %显示原图像title(原图像); %给原图像加标题名figure,imshow(J); %对原图像进行屏幕控制;显示直方图均衡化后的图像title(直方图均衡化所得图像); %给直方图均衡化后的图像加标题名figure;subplot(121); %对直方图均衡化后的图像进行屏幕控制;作一幅子图作为并排两幅图的第1幅图imhist(I,64); %将原图像直方图显示为64级灰度title(原图像直方图); %给原图像直方图加标题名subplot(122); %作第2幅子图imhist(J,64); %将均衡化后图像的直方图显示为64级灰度title(均
19、衡变换后的直方图); %给均衡化后图像直方图加标题名直方图均衡化修正后,图像直方图灰度间隔被拉大了,处理后的图像直方图分布更均匀了,图像在每个灰度级上都有像素点。从处理前后的图像可以看出,许多在原始图像中看不清楚的细节在直方图均衡化处理后所得到的图像中都变得十分清晰。从而实现图像增强,有利于图像的分析与识别。3直方图匹配(规定化)函数histeq实现直方图匹配的形式为:g=histeq(f,hspec)其中,f为输入图像,hspec为指定的直方图(一个由指定值构成的行向量),g为输出图像,其直方图近似于指定的直方图hspec。向量中包含对应于等分空间bin的整数值。histeq的一个特性是在l
20、ength(hspec)远小于图像f中的灰度级数时,图像g的直方图通常会较好地匹配hspec。例3 直方图规定化I=imread(tire.tif);hgram=50:2:250; %规定化函数J=histeq(I,hgram);imshow(J)title(直方图规定化所得图像)figure,imhist(J,64)title(直方图规定化变换后的直方图)4 图像正交变换 图像二维正交变换在数字图像处理中扮演着重要的角色,如,在傅里叶变换(FT, Fourier Transform)域中,高频分量往往对应图像的边缘,利用这一性质可以从图像中抽取特征。又如,傅里叶变换后,图像能量往往集中在少数
21、项上,或者说能量主要集中在低频分量上,于是通过对低频成分分配较多的比特数,对高频成分分配较少的比特数,即可实现图像数据压缩。再者,舍弃变换函数矩阵中某些幅度小的系数,可缩减计算维数,提高计算速度等等。在实际应用中离散傅里叶变换DFT及其逆变换可以通过使用快速傅里叶变换(FFT)算法来实现。一个大小为MN的图像数组f可以通过使用函数fft2得到,该函数的简单语法为:Y=fft2(X) 返回二维离散傅里叶变换,结果Y和X的大小相同。仍为MN,数据排列形式为:数据的原点在左上角,而四个四分之一周期交汇于频率矩形的中心。使用傅里叶变换时,需要对输入数据进行零填充。在这种情况下,调用格式如下:Y=fft
22、2(X,P,Q)使用该语法,fft2将使用所要求的0的个数对输入图像进行填充,以便结果函数的大小为PQ。傅里叶频谱可以使用函数abs来获得:F=abs(Y)该函数计算数组的每一个元素的幅度(实部和虚部平方和的平方根)。函数fftshift将变换的原点移动到频率矩形的中心。其语法为:C=fftshift(Y)其中,Y是用fft2计算得到的变换,C是已居中的变换。该函数变换相当于将输入图像乘以(-1)x+y所得到的结果。但要注意的是,这两种处理过程不可互换。即fftshift(fft2(f)fft2(fftshift(f)。可以用下面的命令行显示居中后的频谱:C=fftshift(Y);imsho
23、w(abs(C2), )虽然频谱移中后适于观看了,但该频谱中值的动态范围(0到204 000)与8比特显示相比要大得多。此时可以使用对数变换来解决该问题。如:F2=log(1+abs(C);imshow(F2, )傅里叶逆变换可以用函数ifft2实现,其基本语法为 f=ifft2(F)其中,F是傅里叶变换,f是结果图像。例4 利用MATLAB软件实现数字图像傅立叶变换的程序:I=imread(原图像名.bmp); %读入原图像文件imshow(I); %显示原图像fftI=fft2(I); %二维离散傅立叶变换sfftI=fftshift(fftI); %直流分量移到频谱中心RR=real(s
24、fftI); %取傅立叶变换的实部II=imag(sfftI); %取傅立叶变换的虚部A=sqrt(RR.2+II.2);%计算频谱幅值A=(A-min(min(A)/(max(max(A)-min(min(A)*225; %归一化figure; %设定窗口imshow(A); %显示原图像的频谱四、实验步骤1打开计算机,启动MATLAB程序;程序组中“work”文件夹中应有待处理的图像文件;2调入“直方图”文件夹中的四幅数字图像,并进行直方图均衡化处理,显示原图像的直方图和经过均衡化处理过的图像直方图。3利用MatLab工具箱中的函数编制FFT频谱显示的函数;4a).调入、显示“正交变换”文
25、件夹中的图像;图像存储格式为“.bmp”; b) 对这四幅图像做FFT并利用自编的函数显示其频谱;c) 讨论不同的图像内容与FFT频谱之间的对应关系。5记录和整理实验报告。五、实验仪器1计算机 Pentium ;CPU 586以上;32M以上内存;Windows XP操作系统;Matlab 7软件;2MATLAB程序;3移动式存储器(U盘等)。4记录用的笔、纸。六、实验报告内容1叙述实验过程;2描述实验中编写的图像处理源代码。3提交实验的原始图像和结果图像。4总结并分析实验结果。七、思考题1直方图是什么概念?它反映了图像的什么信息?2直方图均衡化是什么意思?它的主要用途是什么?3直方图规定化是
26、什么意思?它的主要用途是什么?4傅里叶变换有哪些重要的性质?5图像的二维频谱在显示和处理时应注意什么?实验三 图像增强一、 实验目的掌握常见的图像噪声种类。学习用于图像增强中的去噪声等平滑技术。理解在空间域邻域平均法和中值滤波的原理、特点、适用对象。学习用于突出目标形状特征、改善视觉效果的图像锐化技术的原理和常用方法。二、 实验要求1用邻域平均法对含噪声图像进行滤波,比较不同邻域半径的处理效果。2用邻域平均法和中值滤波两种方法分别处理叠加椒盐噪声和高斯噪声的图像,比较其滤波效果。三、实验原理及内容图像增强是指按特定的需要突出一幅图像中的有用信息,同时,消弱或去除某些不需要的信息,提高图像的使用
27、价值的处理方法。常用的图像增强技术有灰度修正法、直方图修正法,图像平滑处理、图像锐化处理、几何校正和彩色处理技术等空间域处理方法。还有频域增强、维纳滤波和卡尔曼滤波等频率域处理方法。1 噪声及其噪声的Matlab实现实际获得的图像一般都因受到某种干扰而含有噪声。引起噪声的原因有敏感元器件的内部噪声、相片底片上感光材料的颗粒、传输通道的干扰及量化噪声等。噪声产生的原因决定了噪声的分布特性及它与图像信号的关系。根据噪声与信号的关系可以将其分为两种形式。(1) 加性噪声。当噪声与图像信号g(x,y)无关,在这种情况下,含噪声图像f(x,y)可表示为 f(x,y)=g(x,y)+n(x,y)信道噪声及
28、扫描图像时产生的噪声都属于加性噪声。(2) 乘性噪声。当噪声与图像信号有关时,又分为两种情况,一种是某像素处的噪声只与该像素的图像有关,另一种是某像素点处的噪声与该像素点及其邻域的图像信号有关。例如,用飞点扫描器扫描图像时产生的噪声就与图像信号有关。如果噪声和信号成正比,则含噪图像f(x,y)可以表示为f(x,y) = g(x,y)+n(x,y)g(x,y) = 1+n(x,y)g(x,y)另外,还可以根据噪声服从的分布对其进行分类,这时可以分为高斯噪声、泊松噪声和颗粒噪声等。泊松噪声一般出现在照度非常小及用高倍电子线路放大器的情况下;椒盐噪声可认为是泊松噪声;其他的情况通常为加性高斯噪声。颗
29、粒噪声可以认为是白噪声过程,在密度域中是高斯分布的加性噪声,而在强度域中为乘性噪声。Matlab7.0的图像处理工具箱提供了模拟噪声生成函数imnoise,可以对图像添加某些典型的噪声。imnoise函数格式:J=imnoise(I,type) J=imnoise(I,type,parameter)说明:J=imnoise(I,type) 返回对图像I添加典型噪声后的有噪图像J,参数type和parameter用于确定噪声的类型和相应的参数。例1 对图像rice.png分别添加高斯噪声、椒盐噪声和乘性噪声。I=imread(rice.png);J1=imnoise(I,gaussian,0,0
30、.02); %添加零均值高斯噪声,噪声方差0.02J2=imnoise(I,salt & pepper,0.02); %添加椒盐噪声,噪声方差0.02J3=imnoise(I,speckle,0.02); %添加乘性噪声,噪声方差0.02subplot(2,2,1),imshow(I);title(原图像)subplot(2,2,2),imshow(J1);title(添加高斯噪声图像)subplot(2,2,3),imshow(J2);title(添加椒盐噪声图像)subplot(2,2,4),imshow(J3);title(添加乘性噪声图像)2图像滤波的Matlab实现Matlab中提供
31、的空间域数字图像滤波函数主要有conv2函数、filter2函数和fspecial函数。(1) conv2函数功能:计算二维卷积。格式:C=conv2(A,B) C=conv2(Hcol,Hrow,A) C=conv2(,shape)说明:对于C=conv2(A,B),conv2计算矩阵A和B的卷积,若Ma,Na=size(A)、Mb,Nb=size(B),则size(C)=Ma+Mb-1,Na+Nb-1; C=conv2(Hcol,Hrow,A)中,矩阵A分别与Hcol向量在列方向和Hrow向量在行方向上进行卷积;C=conv2(,shape)用来指定conv2返回二维卷积结果部分,参数sh
32、ape可取值如下: full为缺省值,返回二维卷积的全部结果; same返回二维卷积结果中与A大小相同的中间部分; valid返回在卷积过程中,未使用边缘补0部分进行计算的卷积结果部分,当size(A)size(X); same返回二维互相关结果的中间部分,Y与X大小相同; valid返回在二维互相关过程中,未使用边缘补0部分进行计算的结果部分,有size(Y)size(X)。(3) fspecial函数功能为产生预定义滤波器。具体语法为:H=fspecial(type) fspecial函数产生一个有type指定的二维滤波器HH=fspecial(gaussian,n,sigma) 产生高斯
33、低通滤波器H=fspecial(sobel) 产生Sobel水平边缘增强滤波器H=fspecial(prewitt) 产生Prewitt水平边缘增强滤波器H=fspecial(laplacian,alpha) 产生二维拉普拉斯运算滤波器H=fspecial(log,n,sigma) 产生高斯拉普拉斯(LOG)运算滤波器H=fspecial(average,n) 产生均值滤波器H=fspecial(unsharp,alpha) 产生模糊对比增强滤波器3邻域平均法(均值滤波)以像素为中心,灰度值为f(x,y),窗口像素组成的点集用A表示,集内像素数以L表示。经过邻域平均法滤波后,像素f(x,y)对
34、应的输出为g(x,y):即用窗口像素的平均值g(x,y)取代f(x,y)原来的灰度值。例2 33均值模板的生成Average=1,1,1;1,1,1;1,1,1;例3 邻域平均法滤波I=imread(eight.tif);J=imnoise(I,salt & pepper,0.02); %添加椒盐噪声subplot(2,2,1),imshow(I);title(原图像)subplot(2,2,2),imshow(J);title(添加椒盐噪声图像)K1=filter2(fspecial(average,3),J)/255; %应用33邻域窗口法subplot(2,2,3),imshow(K1)
35、;title(33窗的邻域平均滤波图像)K2=filter2(fspecial(average,7),J)/255; %应用77邻域窗口法subplot(2,2,4),imshow(K2);title(77窗的邻域平均滤波图像)4中值滤波中值滤波(Median filtering)是基于排序统计理论的一种能有效抑制噪声的非线性信号处理技术。1971年,Tukey在进行时间序列分析时提出中值滤波器的概念。其基本原理是把数字图像或数字序列中一点的值用该点的一个邻域中各点值的中值替换。这种滤波器的优点是运算简单而且速度较快,在滤除叠加白噪声和长尾叠加噪声方面显示出了极好的性能。中值滤波器在滤除噪声(
36、尤其是脉冲噪声)的同时能很好地保护信号的细节信息(例如边缘、锐角等)。另外,中值滤波器很容易自适应化,从而可以进一步提高其滤波性能。设f(x,y)表示数字图像像素点的灰度值滤波窗口为A的中值滤波器可以定义为:上面数字图像中的值用邻域的最大值替换的滤波器称为最大值滤波器,如果替换的值是最小值就称为最小值滤波器。在Matlab图像处理工具箱中,medfilt2函数实现中值滤波器。其调用格式如下:B=medfilt2(A,m n) 对图像A执行二维中值滤波。每个输出像素为 mn邻域的中值。在图像边界用0填充图像,所以边缘的中值为m n/2区域的中值,可能失真。B=medfilt2(A) 为m和n缺省
37、为3的情况。四、实验步骤1打开计算机,启动MATLAB程序; 2调入“图像平滑”文件夹中的数字图像,对已经叠加高斯噪声的图像利用邻域平均法进行滤波,窗口尺寸先用33,再取55逐渐增大,显示滤波前后的图像。3调入“图像平滑”文件夹中的数字图像,对已经叠加高斯噪声和椒盐噪声的图像利用邻域平均法和中值滤波法进行滤波,窗口尺寸均为33,显示原图像和经过滤波后的图像。(注意边界像元的处理)4记录和整理实验报告。五、实验仪器1计算机 Pentium ;CPU 586以上;32M以上内存;Windows XP操作系统;Matlab 7软件;2MATLAB程序;3移动式存储器(U盘等)。4记录用的笔、纸。六、
38、实验报告内容1叙述实验过程;2描述实验中编写的图像处理源代码。3提交实验的原始图像和结果图像。4总结并分析实验结果。七、思考题1在对图像进行邻域平均法滤波时,邻域半径的大小对图像有什么影响,为什么?2邻域平均法更适合于处理高斯噪声还是椒盐噪声?试分析原因。3中值滤波更适合于处理高斯噪声还是椒盐噪声?试分析原因。4对叠加有乘性噪声的图像,设计一种处理方法,既能去噪声又能保持边缘清晰。实验四 图像分割一、 实验目的掌握常用的边缘提取算法,从图像中提取感兴趣的区域,实现图像分割。在图像中,寻找灰度相同或相似的区域,区分图像中的背景区域和目标区域,利用Matlab实现图像的边缘检测,进行图像分割。二、
39、 实验要求1 运用罗伯特梯度算子、Sobel算子、Prewitt算子、LoG算子、Canny算子等检测图像边缘,编程实现并观看图像分割的效果。2 运用边缘检测函数edge对图像作边缘检测,并观看检测效果。三、实验原理及内容图像边缘是图像中特性(如像素灰度、纹理等)分布的不连续处,图像周围特性有阶跃变化或屋脊状变化的那些像素的集合。图像边缘存在于目标与背景、目标与目标、基元与基元的边界,标示出目标物体或基元的实际含量,是图像识别信息最集中的地方。图像分割处理主要用于检测出图像中的轮廓边缘、细节以及灰度跳变部分,形成完整的物体边界,达到将物体从图像中分离出来或将表示同一物体表面的区域检测出来的目的
40、。常用的分割方法是边缘检测。边缘检测是采用多种边缘算子实现突出图像边缘,抑制图像中非边缘信息,使图像轮廓更加清晰。1 梯度算子法对于图像f(x,y),它在点f(x,y)处的梯度是一个矢量,定义为梯度的方向在函数f(x,y)最大变化率的方向上,梯度的幅值为梯度的数值就是f(x,y)在其最大变化率方向上的单位距离所增加的量。对于图像而言,微分运算可以用差分运算来近似。简化成模板可以表示成如下形式:Robert梯度算子 当梯度计算完后,可采用以下几种形式突出图像的轮廓。l 梯度直接输出使各点的灰度g(x,y)等于该点的梯度,即这种方法简单、直接。但增强的图像仅显示灰度变化比较陡的边缘轮廓,而灰度变换
41、比较平缓的区域则呈暗色。l 加阈值的梯度输出加阈值的梯度输出表达式为式中,T是一个非负的阈值,适当选取T,既可以使明显的边缘得到突出,又不会破坏原来灰度变化比较平缓的背景。l 给边缘指定一个特定的灰度级 式中LG是根据需要指定的一个灰度级,它将明显的边缘用一个固定的灰度级表现,而其他的非边缘区域的灰度级仍保持不变。l 给背景指定一个特定的灰度级 该方法将背景用一个固定灰度级LG表现,便于研究边缘灰度的变化。l 二值图像输出在某些场合(如字符识别等),既不关心非边缘像素的灰度级差别,又不关心边缘像素的灰度级差别,只关心每个像素是边缘像素还是非边缘像素,这时可采用二值化图像输出方式,其表达式为此法
42、将背景和边缘用二值图像表示,便于研究边缘所在位置。2 Sobel算子法Sobel相对于先对图像进行加权平均再做差分。对于图像的33窗口,设 则定义Sobel算子为 简化成模板可以表示成如下形式:Sobel模板 3 拉普拉斯运算法拉普拉斯算子定义图像f(x,y)的梯度为锐化后的图像g为 式中k为扩散效应系数。对系数k的选择要合理,太大会使图像中的轮廓边缘产生过冲;太小则锐化不明显。常用laplacian算子模板为,另外还有一些模板也常用于图像增强,如Prewitt模板 例1 Laplacian算子的生成laplacian=0,-1,0;-1,4,-1;0,-1,0;例2 Laplacian算子和
43、模板匹配法示例I=imread(eight.tif);subplot(1,3,1);imshow(I);title(原图像);H=fspecial(laplacian); %应用Laplacian算子滤波锐化图像laplacianH=filter2(H,I);subplot(1,3,2);imshow(laplacianH);title(laplacian算子锐化图像);H=fspecial(prewitt); %应用prewitt模板滤波锐化图像prewittH=filter2(H,I);subplot(1,3,3);imshow(prewittH);title(prewitt模板锐化图像);4边缘检测的函数edge边缘检测的函数edge的基本语法为g,t=edge(f,method,parameters)其中,f是输入图像,method是边缘检测方法,如Sobel、Prewitt、Roberts、Laplacian of a Gaussian(LoG)、Canny等,parameters是一个参数。在输出中,g是一个逻辑数组,其值如下决定:在f中检测到边缘的位置为1,