ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:37.13KB ,
资源ID:3961786      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3961786.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数字图像处理实验指导书zqd.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数字图像处理实验指导书zqd.docx

1、数字图像处理实验指导书zqd数字图像处理实 验 指 导 书 张 启 东 实验一 MATLAB 图像及其操作一、 实验目的 1、熟练使用各种常用MATLAB命令2、了解MATLAB图像文件格式; 3、了解MATLAB图像类型;4、了解MATLAB图像文件的读写;5、了解MATLAB标准的图像显示技术;二、 实验原理及内容首先,数字图像以一定的格式存放在计算机的存储器中(如磁盘),常见的格式有BMP,TIF,PCX等等,因此我们要进行数字图像处理,需要完成的第一项工作就是把图像读到计算机的内存中,以便进行进一步的处理。在Matlab中,函数imread()完成此项工作。我们用下面一小段Matlab

2、语句即可实现将图像“rice.tif”显示在一个图像窗口的左边,将其轮廓图显示在该窗口的右边。 I=imread(rice.tif); subplot(1,2,1);imshow(I)subplot(1,2,2);imcontour(I);这里,imread(rice.tif)将磁盘上的图像文件rice.tif读入内存变量I中,subplot(1,2,1)生成一个可以横向放置2幅图像的窗口,并设置下一显示位置在左边,imshow(I)显示图像I,subplot(1,2,2)准备下一图像的显示位置,imcontour(I)生成图像I的轮廓并显示在窗口的右边。数字图像一般可分为二值图、灰度图和真彩

3、图等几类。我们再看下面一段程序:bw=imread(text.tif);bw2=imcomplement(bw);subplot(1,2,1),imshow(bw)subplot(1,2,2),imshow(bw2)这里函数imcomplement(bw)完成对二值图像text.tif(bw)的求补运算,(即原来黑的变白的,原来白的变黑的。)各种常用MATLAB命令:clc:清理窗口内容 clear:清空变量 cd: 进入当前目录 cd(.): 退出当前目录 help,helpwin,helpdesk: 帮助 who,whos: 显示变量情况 imfinfo:显示文件基本情况,用法:imfin

4、fo(文件名) save,load:存贮,读取文件(变量) pwd:显示当前工作目录 mkdir(文件名):新建文件夹 zeros(m,n):生成m行n列零矩阵 ones(m,n):生成m行n列1矩阵 eye(m,m):生成m阶单位矩阵 rand(m,n):生成m行n列随机均匀分布矩阵 randn(m,n):生成m行n列随机正态分布矩阵 length(a):向量长度 m,n=size(A):求取矩阵行列 norm(A,2):矩阵二范数,最大奇异值 norm(A,fro):矩阵F范数 trace(A):矩阵迹 sum:求和 prod(a):向量所有元素求积 cumsum(a):向量累和 cump

5、rod:向量累积 mean(a):求平均值 min(a),max(a):求向量最大最小 min(a(:),max(a(:):求矩阵中最大最小值 abs(a):绝对值、模、频谱 var(a):方差 std(a):标准差 sort(a):向量升序排序 diag(A):对角元素 det(A):行列式 rank(A):秩 gcd():最大公因子 lcm():最小公倍数 mod(m,n),rem(m,n):求余数 fix(x):往0方向取整 floor(x):往负方向取整 ceil(x):往正方向取整 round(x):四舍五入取整 conj(z):复共轭 real(z),imag(a):实(虚)部 i

6、mread:读取数字图像为矩阵 double(A):转换成双精度 uint8(A):转换成8位表示 imwrite:存取或者压缩文件 rgb2gray:彩色转换成灰度 im2bw:灰度转换成二值 imshow:显示图像 subplot:按阵列显示 figure:显示图像,且保留前面图像 stem:用竖画线显示向量 imcrop:剪切图像 imresize:重新设定图像大小 imrotate:旋转图像 imnoise:加噪 svd:奇异值分解 gsvd:广义奇异值分解 fft:一维傅立叶变换 fft2:二维傅立叶变换 fftshift:交换傅立叶变换的1,3象限和2,4象限 dwt(idwt):

7、小波变换(小波逆变换) dct:余弦变换 dualtree:二元树复小波变换实验二 灰度图像直方图统计实验一、实验目的 1、了解空域变换增强变换及实现;2、掌握直方图处理方法 二、实验原理及内容1、直方图均衡化处理。这里有一幅图像,其动态范围较小,而且较暗,反映在直方图上,直方图所占据的灰度值范围比较窄,而且集中在低灰度值一边。为了使图像更清晰,我们采用直方图均衡化的方法来增加图像灰度动态范围,增强对比度。在MATLAB中,可以直接调用J=histeq (I,n)函数来完成这项工作,其中I是原始图像矩阵,J是变换后所得的图像矩阵;用户可以指定均衡化%后的灰度级数n,默认值为64。I = imr

8、ead(tire.tif);J = histeq(I);imshow(I)figure, imshow(J)figure,imhist(I,64)figure,imhist(J,64)2、直方图规定化处理。I = imread(tire.tif);hgram=0:255J = histeq(I,hgram);imshow(I)figure, imshow(J)figure,imhist(I,64)figure,imhist(J,64)实验三 空域图像增强实验一、实验目的 1、了解空域滤波增强变换及实现; 二、实验原理及内容1、线性平滑滤波器处理。常用均值滤波器、维纳滤波器、高斯滤波器。%以sa

9、turn.tif为例,加入椒盐噪声,并在MATLAB中调用B = filter2(h,A)实现均值过滤器I=imread(saturn.tif);J=imnoise(I,salt & pepper,0.02);imshow(I)figure,imshow(J)K1=filter2(fspecial(average,3),J)/255;K2=filter2(fspecial(average,5),J)/255;K3=filter2(fspecial(average,7),J)/255;figure,imshow(K1)figure,imshow(K2)figure,imshow(K3)实现维纳滤

10、波器I = imread(saturn.tif);J = imnoise(I, gaussian, 0,0.005);K1 = wiener2(J,5,5);figure,imshow(K1)实现高斯滤波器I = imread(saturn.tif);J = imnoise(I,gaussian, 0,0.005); figure,imshow(J)h = fspecial(gaussian);K=filter2(h,J)/255;figure,imshow(K)2、非线性平滑滤波器处理。常用中值滤波器%下面仍以saturn.tif为例,加入椒盐噪声,并采用中值过滤器I = imread(sa

11、turn.tif);J = imnoise(I,salt & pepper,0.02);K1 = medfilt2(J,3,3);figure,imshow(K1)3、线性锐化滤波器处理。常用拉普拉斯算子。I = imread(saturn.tif);h = fspecial(laplacian);I2=filter2(h,J);imshow(I)figure,imshow(I2)4、非线性锐化滤波器处理。常用sobel算子、prewitt算子等。I1=imread(blood1.tif);figure,imshow(I1)h1=fspecial(sobel);I2=filter2(h1,I1

12、);figure,imshow(I2)I3=conv2(I1,h1);figure,imshow(I3)h2=fspecial(prewitt);I4=filter2(h2,I1);figure,imshow(I4)h3=fspecial(log);I5=filter2(h3,I1);figure,imshow(I5)实验四 频域图像增强实验一、实验目的 1、了解低通滤波;2、了解高通通滤波; 二、实验原理及内容1、一般来说,图像的边缘和噪声都对应于傅立叶变换中的高频部分,所以能够让低频信息畅通无阻而同时滤掉高频分量的低通滤波器能够平滑图像,去除噪声。常用的几种频域低通滤波器有理想低通滤波器、

13、巴特沃斯低通滤波器、指数低通滤波器。巴特沃斯低通滤波器(Butterworth)实现I1=imread(Saturn.tif); figure,imshow(I1)I2=imnoise(I1,salt & pepper);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);for i=1:N1 for j=1:N2 d=sqrt(i-n1)2+(j-n2)2); %计算Butterworth低通转换函数h=1/

14、(1+0.414*(d/d0)(2*n); result(i,j)=h*g(i,j); endendresult =ifftshift(result); X2=ifft2(result); X3=uint8(real(X2);figure,imshow(X3)2、由于图像中灰度发生骤变的部分与其频谱的高频分量相对应,所以采用高通滤波器衰减或抑制低频分量,使高频分量畅通并能够对图像进行锐化处理。常用的高通滤波器有理想高通滤波器、巴持沃斯高通滤波器、指数高通滤波器.巴特沃斯高通滤波器(Butterworth)实现I1=imread(blood1.tif); figure,imshow(I1)f=d

15、ouble(I1);g=fft2(f);%傅里叶变换g=fftshift(g);%转换数据矩阵N1,N2=size(g);n=2;d0=5;n1=fix(N1/2);n2=fix(N2/2);for i=1:N1 for j=1:N2 d=sqrt(i-n1)2+(j-n2)2); if d=0 h=0; else h=1/(1+(d0/d)(2*n); end result(i,j)=h*g(i,j); endendresult =ifftshift(result); X2=ifft2(result); X3=uint8(real(X2);figure,imshow(X3)实验五 边缘检测

16、一、实验目的 1、对图像进行边缘检测;2、了解常用的边缘检测算子二、实验原理及内容1、边缘检测的基本原理及处理函数常用的边缘检测算于有Robert算子、Sobel算了、Prewitt以算子、LOG算子和Canny算子,以下分别进行介绍。()Robert算子Robert算于是一种利用局部差分算子寻找边缘的算子,其模板如图1所示。Robert算子对具有陡峭的低噪声的图像效果较好。图Robert算子在MATLAB 中可以由edge函数实现,语法路式如下:; Bwedge(I.robert) Bw=edge(I,robert,thresh) BW,thresh=edge(I,roberts,)BWed

17、ge(I,robert)自动选择阈值使用Robert算子进行边缘检测。BWedge(I,robert,thresh)根据所指定的敏感度阀值thresh用Robert算子进行边缘检测,它忽略了所有小于阀值的边缘。当thresh为空()时,自动选择阈值。BW,thresh=edge(I,robert,)返回阀值。edge函数对灰度图像I进行边缘检测,返回与I同样大的二值图像BW,其中1表示I中的边缘,0表非边缘,I是uint8型、uint16型或double型,BW是uint8型的。()Sobel算子Sobel算子的两个卷积计算如图2所示图像中的每个点部用这两个核做卷积,第一个核对垂直边缘响应最大

18、,第二个核对水平边缘响应最大。两个卷积的最大值作为该点的输出值,运算结果是一幅边缘幅度图像。sobel算子对灰度渐变和噪声较多的图像处理得较好。图 Sobel算子 edge函数实现的语法格式如下 Bwedge(I,sobel) BW=edge(I,sobel,thresh) Bw=edge(I,sobel,thresh,direction) BW,thresh=edge(I,sobel) Bwedge(I,sobel)自动选择阀值用Sobel算子进行边缘检测: BW=edge(I,sobel,thresh)根据所指定的敏感度阀值thresh,用Sobel算子进行边缘检测,它忽略了所有小于阀值的

19、边缘。当thresh为空时,自动选择阀值。 Bw=edge(I,sobel,thresh,direction)根据所指定的敏感度阔值thresh,在所指定的方向direction上,用Sobe算子进行边缘枪测。direction可取的字符串值为horizontal(水平方向)vertical(垂直方向)或both(两个方向)。BW,thresh=edge(I,sobel)返回阀值。()Prewitt算子Prewitt算子的两个卷积计算核如图3所示,与使用Sobel算子的方法一样,图像中的每个点部用这两个核做卷积取最大值作为输出Prewitt算子也产生一幅边缘幅度图像,也是对灰度渐变和噪声较多的

20、图像处理得较办。图Prewitt算子 edge函数实现的语法格式如下: BWedge(I,prewitt) BW=edge(I,prewitt,thresh) BW=edge(I,prewitt,thresh,direction) BW,thresh=edge(I,prewitt,) BWedge(I,prewitt)白动选择阈值用Prewitt算子进行边缘检测。 BW=edge(I,prewitt,thresh)根据所指定的敏感度阈值thresh,用Prewitt算子进行边缘检测,忽略了所有小于阈值的边缘。当thresh为空()时,自动选择阈值。BW=edge(I,prewitt,thres

21、h,direction)根据所指定的敏感度阈值thresh,在所指定的方向direction上,用prewitt算于进行边缘检测。direction取的字符串值horizontal,(水平方向)、vertical(垂直方向)或both(两个方向)。BW,thresh=edge(I,prewitt,)返问阈值。()LOG算子拉普拉斯算于的卷积核如图4所示,它是一个二阶算子,将在边缘处产生一个陡峭的零交叉。拉普拉斯算子是一个线性的、移不变的算子,它的传递函数在频域空间的原点是零,因此经拉普拉斯滤波过的图像具有零平均灰度。LOG算子先用高斯低通滤波器将图像进行预先平滑,然后用拉普拉斯算子找出图像中的

22、陡峭边缘,最后用零灰度值进行二值化产生闭合的、连通的轮廓,消除了所有内部点。图 LOG算子edge函数实现的语法格式如下: BWedge(I,log) BW=edge(I,log,thresh) BWed8e(I,log,thresh,sigma) BW,thresholdedge(I,log,)BWedge(I,log)自动选择阐值用LoG算子进行边缘检测。BW=edge(I,log,thresh)根据所指定的敏感度阀值thresh,用LOG算子进行边缘检测,它忽略了所有小干阈值的边缘。当thresh为空时,自动选样阈值。当指定thresh为0时,输出图像具有闭合的轮廓,因为其中包含了输入图

23、象总的所有零交叉点。BW=edge(I,log,thresh,sigma)根据所指定敏感度阈值thresh和标准偏差sigma用LoG算子进行边缘检测,默认时sigma等于2,滤波器是nn维的,其中nceil(sigma3)2+1 BW,threshold=edge(I,log,)返回阀值。()Canny算子 canny算了检测边缘的方法是寻找图像梯度的局部极大值,梯度是用高斯滤波器的导数计算的。canny方法使用两个阈值来分别检测强边缘和弱边缘,而且仅当弱边缘与强边缘相连的,弱边缘才会包含在输出中,因此,此方法不容易受噪声的干扰,能够检测到真正的弱边缘。 edge函数实现的语法格式如下: B

24、W=edge(I,canny) BWedgc(I,canny,thresh) BWedgc(I,canny,thresh,sigma) BW,threshold=edge(I,canny,) BW=edge(I,canny)自动选择阈值用Canny算子进行边缘检测。 BWedge(I,canny,thresh)根据所指定的敏感度阀值thresh,用canny算了进行边缘检测.thresh是个含两个元素的大量,第一个元素是低阈值,第二个f元素是高阈值;如果只给thresh指定个值,则此值作为高阈值,而04thresh作为低阈值:当thresh为空时自动选择低阈值和高阈位。BWedgc(I,can

25、ny,thresh,sigma)根据所指定的敏感度阈值BWedgc(I,canny,thresh,sigma)和标准偏差sigma,用canny算子进行边缘检测,默认时sigma等于1滤波器的尺寸sigma根据自动选择BW,threshold=edge(I,canny,)返回含两个元素的阈值矢量。()零交叉方法零交叉方法先用指定的滤波器对图像进行滤波,然后寻找零交叉点作为边缘。edge函数实现的语法格式如下:BW=edge(I,zerocross,thresh,h) BW,thresh=edge(I,zerocross,)BW=edge(I,zerocross,thresh,h)根据所指定购敏

26、感度阈值thresh利滤波器h,用零交叉方法进行边缘检测。当thresh为空)时,自动选择阈值;当指定thresh为0时,输出图像具有闭合的轮廓,因为其中包含了输入图像中的所有零交叉点。BW,thresh=edge(I,zerocross,)返回阈值。2、各种边缘检测算子的效果比较I = imread(rice.tif);BW1 = edge(I,sobel);BW2 = edge(I,roberts);BW3 = edge(I,prewitt);BW4 = edge(I,log);BW5 = edge(I,canny);h=fspecial(gaussian,5);BW6 = edge(I,zerocross,h);subplot(2,3,1),imshow(BW1)subplot(2,3,2),imshow(BW2)subplot(2,3,3),imshow(BW3)subplot(2,3,4),imshow(BW4)subplot(2,3,5),imshow(BW5)subplot(2,3,6),imshow(BW6)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1