课程设计参考样本.doc

上传人:飞****2 文档编号:66769959 上传时间:2022-12-21 格式:DOC 页数:23 大小:648.50KB
返回 下载 相关 举报
课程设计参考样本.doc_第1页
第1页 / 共23页
课程设计参考样本.doc_第2页
第2页 / 共23页
点击查看更多>>
资源描述

《课程设计参考样本.doc》由会员分享,可在线阅读,更多相关《课程设计参考样本.doc(23页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、数学专业课设 专业:数学与应用数学081 姓名:王艳静 学号:7 图像锐化、平滑及边缘检测摘要数字图像处理(Digital Image Processing)是指用计算机对数字图像进行的处理,数字图像处理主要有两个目的:其一,为了便于分析而对图像信息进行改进;其二,为使计算机自动理解而对图像数据进行存储、传输及显示。数字图像处理可以定义为对一个物体的数字表示施加一系列的操作,以得到所期望的结果。其过程表现为一幅图像变为另一幅经过修改或改进的图像,是一个由图像到图像的过程。而数字图像分析则是指将一幅图像转化为一种非图像的表示。数字图像处理方法大致可分为两大类,即空域处理方法和变换域处理方法。数字

2、图象处理常用方法有图像变换、图像编码压缩、图像增强和复原、图像分割、图像描述等。本文我们主要讨论图像增强和复原与图像分割。图像增强和复原的目的是为了提高图像的质量,如去噪声,提高图像的清晰度等。图像增强不考虑图像降质的原因,突出图像中所感兴趣的部分。如强化图像高频分量,可是图像中物体的轮廓清晰,细节明显;如强化低频分量可减少图像中噪声影响。图像复原要求对图像降质的原因有一定的了解,一般讲应根据降质过程建立“降质模型”,再采用某种滤波方法,恢复或重建原来的图像。图像分割是数字图象处理中的关键技术之一。图像分割是将图像中有意义的特征部分提取出来,其有意义的特征有图像中的边缘、区域等,这是进一步进行

3、图像识别、分析和理解的基础。虽然目前已研究出不少边缘提取、区域分割法,但还没有一种普遍使用于各种图像的有效方法、因此,对图像分割的研究还在深入之中,是目前图像处理中研究的热点之一。1 实验目的1) 掌握MATLAB中常用的图像处理语句;2) 掌握图像平滑、锐化和边缘检测的理论基础;3) 掌握图像平滑、锐化和边缘检测的MATLAB编程方法;4) 验证图像锐化、平滑及边缘检测理论;5) 观察图像平滑、锐化和边缘检测的结果,并与MATLAB中的库函数做对比,分析其优劣性。2 实验的软、硬件平台1) 硬件:微型图像处理系统(包括:主机、PC机、摄像机)2) 应用软件:MATLAB3 实验内容1) 掌握

4、MATLAB编程方法;2) 学会独立编写MATLAB程序实现对图像的平滑、锐化和边缘检测处理;3) 分析实验结果,并与库函数作比较,得出结论。4 实验要求1) 进一步学习MATLAB编程的步骤及流程;2) 编写图像锐化(Sobel、Prewitt、Robert)、平滑(中值滤波,均值滤波,高斯滤波)及边缘检测的程序(Sobel、Prewitt、Robert、LOG);与MATLAB库函数处理效果作对比;3) 编译并改错;4) 提交程序及文档;5) 写出本次实验的体会。5 图像增强图像增强作为基本的图像处理技术,图像增强的方法有图像平滑与锐化。其目的是对图像进行加工,以得到对具体应用来说视觉效果

5、更“好”更“有用”的图像。图像增强算法并不能增加原始图像的信息,而是通过某种技术手段有选择地突出对某一具体应用有价值的信息。大多数数字图像系统中,输入光图像都是通过扫描方式将多维图像变成一维电信号,再对其进行存储、处理和传输等,最后形成多维图像信号。在这一系列复杂过程中,图像数字化设备、电气系统和外界影响将使得图像噪声的产生不可避免。基于空间域的增强方法是指直接在图像所在的二维空间进行处理,即直接对每一像素点的灰度值进行处理。根据所采用的技术不同又可分为灰度变换和空域滤波两类方法。频率域增强法首先将图像从空间域按照某种变换模型(如傅立叶变换或其他变换等)变换到频率域,然后在频域对图像进行处理,

6、再将其反变换到空间域。通常包括低通、高通和同态等滤波器结构。5.1 图像平滑 平滑技术用于平滑图像中的噪声,是数字图像处理中的重要组成部分。下面对受到几种典型噪声污染的图像分别进行了邻域平均法、中值滤波,并对其效果进行了分析比较,得出了结论。5.1.1 邻域平均法(1)原理一幅图像往往受到各种噪声源的干扰(如电传感器和传输误差等),这种噪声常常为一些孤立的像素点,它们像雪花使图像被污染,噪声往往是叠加在图像上的随机噪声,而图像灰度应该相对连续变化的,一般不会突然变大或变小,这种噪声可以用邻域平均法使它得到抑制。邻域平均法是简单的空域处理方法。这种方法的基本思想是用几个像素灰度的平均来代替一个像

7、素原来的灰度值,实现图像的平滑。对于给定的图像中的每个像点,取其邻域。设含有个像素,取其平均值作为处理后所得图像像点处的灰度。用一像素邻域内各像素灰度平均值来代替该像素原来的灰度,即是邻域滤波技术。邻域的形状和大小根据图像特点确定。一般取的形状是正方形、矩形、十字形等,的形状和大小可以在全图处理过程中保持不变,也可以根据图像的局部结构统计特性而变化,点一般位于的中心。如为邻域,点位于的中心,则。假设噪声是加性噪声,在空间各点互不相关,且期望为0,方差为,是未受污染的图像,含有噪声的图像经过邻域滤波后为由上式可知,经邻域滤波后,噪声的均值不变,而方差减小,说明噪声强度减弱了,抑制了噪声。(2)编

8、程实现X=imread(D:I3_256.bmp);J=imnoise(X,salt & pepper,0.04); J1=imnoise(X,gaussian,0,0.02); p,q=size(J); x1=double(J);I,map=imread(D:I3_256.bmp);M4=0 1 0; 1 0 1; 0 1 0;M4=M4/4; I_filter1=filter2(M4,J); I_filter2=filter2(M4,J1);for i=2:p-1 for j=2:q-1 c=x1(i-1,j-1),x1(i-1,j),x1(i-1,j+1),x1(i,j-1),x1(i,

9、j),x1(i,j+1),x1(i+1,j-1),x1(i+1,j),x1(i+1,j+1); s=sum(sum(c); x1(i,j)=s/9; endendp,q=size(J1); x2=double(J1);for i=2:p-1 for j=2:q-1 c=x2(i-1,j-1),x2(i-1,j),x2(i-1,j+1),x2(i,j-1),x2(i,j),x2(i,j+1),x2(i+1,j-1),x2(i+1,j),x2(i+1,j+1); s=sum(sum(c); x2(i,j)=s/9; endendsubplot(3,3,1);imshow(X);title(原始图像

10、);subplot(3,3,2);imshow(J);title(椒盐干扰图像); subplot(3,3,4); imshow(I_filter1,map);title(库函数处理椒盐);d1=uint8(x1);subplot(3,3,5);imshow(d1);title(均值滤波椒盐);subplot(3,3,3);imshow(J1);title(高斯干扰图像);subplot(3,3,7);imshow(I_filter2,map);title(库函数处理高斯)d2=uint8(x2);subplot(3,3,8);imshow(d2);title(均值滤波高斯);(3)运行结果及

11、分析i. 由图像可以看到均值滤波对椒盐噪声的抑制能力较好,而对高斯噪声的滤波几乎没有太大改善。原因是高斯噪声的影响几乎是全局的,即加入噪声的图像与原图像几乎所有点均不一致,这就造成了均值滤波所依赖的的周围像素值的不确定和不稳定,因而滤波效果不太好。ii. 由图像可以看到上面编写的均值滤波程序无论是对椒盐噪声还是高斯噪声的抑制能力都不如中均值滤波的库函数效果好。5.1.2 中值滤波(1)原理前面使用的邻域平均法属于低通滤波的处理方法。它在抑制噪声的同时使图像变得模糊,即图像的细节(例如边缘信息)被削弱,如果既要抑制噪声又要保持细节可以使用中值滤波。中值滤波用一个含有奇数点的滑动窗口,将邻域中的像

12、素按灰度级排列,取其中间值为输出像素。中值滤波的数学描述为:若为像素的邻域集合(包含),表示中的元素,表示点的灰度值,表示集合中元素的个数,表示排序,则对进行平滑可以表示为。(2)编程实现X=imread(D:I3_256.bmp);J=imnoise(X,salt & pepper,0.02); J1=imnoise(X,gaussian,0,0.02); p,q=size(J); x1=double(J);for i=2:p-1 for j=2:q-1 c=x1(i-1,j-1),x1(i-1,j),x1(i-1,j+1),x1(i,j-1),x1(i,j),x1(i,j+1),x1(i+

13、1,j-1),x1(i+1,j),x1(i+1,j+1); x1(i,j)=median(c); %c=x1(i-1,j-1),x1(i-1,j),x1(i-1,j+1),x1(i,j-1),x1(i,j),x1(i,j+1),x1(i+1,j-1),x1(i+1,j),x1(i+1,j+1)%e=sort(c);%x1(i,j)=e(1,5); endendp,q=size(J1); x2=double(J1);for i=2:p-1 for j=2:q-1 c=x2(i-1,j-1),x2(i-1,j),x2(i-1,j+1),x2(i,j-1),x2(i,j),x2(i,j+1),x2(

14、i+1,j-1),x2(i+1,j),x2(i+1,j+1); x2(i,j)=median(c); endendsubplot(3,3,1);imshow(X);title(原始图像);subplot(3,3,2);imshow(J);title(椒盐干扰图像);I_Filter1=medfilt2(J,3 3); subplot(3,3,4); imshow(I_Filter1);title(库函数处理椒盐);d1=uint8(x1);subplot(3,3,5);imshow(d1);title(中值滤波椒盐);subplot(3,3,3);imshow(J1);title(高斯干扰图像

15、);I_Filter2=medfilt2(J1,3 3); subplot(3,3,7);imshow(I_Filter2);title(库函数处理高斯)d2=uint8(x2);subplot(3,3,8);imshow(d2);title(中值滤波高斯);(3)运行结果及分析i. 由图像可以看到中值滤波对椒盐噪声的抑制能力较好,而对高斯噪声的滤波几乎没有太大改善。原因是高斯噪声的影响几乎是全局的,即加入噪声的图像与原图像几乎所有点均不一致,这就造成了中值滤波所依赖的的周围像素值的不确定和不稳定,因而滤波效果不太好。ii. 由图像可以看到上面编写的程序抑制椒盐噪声的能力与库函数效果差不多,但

16、库函数的效果好一些。5.1.3 邻域平均法与中值滤波的比较(1) 对大的边缘高度,中值滤波较邻域均值好得多,而对于较小边缘高度,两种滤波只有很少差别。 (2) 中值滤波是非线性的。 (3) 中值滤波在抑制图像随机脉冲噪声方面甚为有效。且运算速度快,便于实时处理。 (4) 中值滤波去除孤立线或点干扰,而保留空间清晰度较平滑滤波为好;但对高斯噪声则不如平滑滤波。5.2 图像锐化5.2.1 原理图像锐化是一种使图像原有的信息变换到有利于人们观看的质量,其目的是为了改善图像的视觉效果,消除图像质量劣化的原因(模糊),使图像中应有的对象边缘变得轮廓分明。图像锐化是一种补偿轮廓、突出边缘信息已使图像更为清

17、晰的处理方法,锐化的目的实质上是要增强原始图像的高频成分,使图像变得清晰。图像平滑往往使图像中的边界、轮廓变得模糊,为了减少这类不利效果的影响,这就需要利用图像平滑技术,使图像边缘变得清晰。图像锐化的目的是为了使图像边缘、轮廓线以及图像的细节变得清晰,经过平滑的图像变得模糊的根本原因是因为图像受到了平均或积分运算,因而可以对其进行逆运算(如微分运算)就可以试图想变得清晰。从频率域考虑,图像模糊的实质是因为起高频分量被衰减,因而可以用高频滤波器来使图像清晰。i. 算子锐化以待增强图像的任意像素为中心,取像素窗口,分别计算窗口中心像素在 和方向的梯度: 增强后的图像在处的灰度值为用模板表示为 ii

18、. 算子 iii. 算子锐化 可以得到的梯度为5.2.2 编程实现X=imread(d:bacteria.bmp); p,q=size(X); x1=double(X);for i=2:p-1 for j=2:q-1 s1=x1(i-1,j-1)+2*x1(i,j-1)+x1(i+1,j-1)-x1(i-1,j+1)-2*x1(i,j-1)-x1(i+1,j+1); s2=x1(i+1,j-1)+2*x1(i+1,j)+x1(i+1,j+1)-x1(i-1,j-1)-2*x1(i-1,j)-x1(i-1,j+1); G=sqrt(s12+s22); if(abs(G)=100) x2(i,j)

19、=250; else x2(i,j)=x1(i,j); end endendy1=double(X);for i=2:p-1 for j=2:q-1 s3=y1(i-1,j-1)+y1(i,j-1)+y1(i+1,j-1)-y1(i-1,j+1)-y1(i,j-1)-y1(i+1,j+1); s4=y1(i+1,j-1)+y1(i+1,j)+y1(i+1,j+1)-y1(i-1,j-1)-y1(i-1,j)-y1(i-1,j+1); g=sqrt(s32+s42); if(abs(g)=100) y2(i,j)=250; else y2(i,j)=y1(i,j); end endendz1=d

20、ouble(X);for i=2:p-1 for j=2:q-1 s5=z1(i+1,j+1)-z1(i,j); s6=z1(i,j+1)-z1(i+1,j); G1=abs(s5)+abs(s6); if(G1=40) z2(i,j)=250; else z2(i,j)=z1(i,j); end endendsubplot(2,2,1);imshow(X);title(原始图像);d1=uint8(x2);subplot(2,2,2);imshow(d1);title(Sobel算子);d2=uint8(y2);subplot(2,2,3);imshow(d2);title(Prewitt算

21、子);d3=uint8(z2);subplot(2,2,4);imshow(d3); title(Robert算子);5.2.3 实验结果及分析由图像可知当给定阈值时,算子的锐化效果比和的好一些。算子因其所得幅值相对算子所得值要小,当选择较大的阈值时(yuzhi=100),丢失了部分边缘信息,故应选择较小的阈值。6 图像的边缘检测6.1 原理边缘检测是图像特征提取的重要技术之一,边缘常常意味着一个区域的终结和另一个区域的开始。图像的边缘包含了物体形状的重要信息,它不仅是在分析图像时大幅度地减少了要处理的信息量,而且还保护了目标的边界结构。因此,边缘检测可以看做是处理许多复杂问题的关键。边缘检测

22、的实质是采用某种算法来提取出图像中对对象与背景间的交界线。图像灰度的变化情况可以用图像灰度分布的梯度来反映,因此可以用局部图像微分技术来获取边缘检测算子。经典的边缘检测方法是对原始图像中的某个邻域来构造边缘检测算子。以下是对几种经典的边缘检测算子进行理论分析。边缘检测的原理是:由于微分算子具有突出灰度变化的作用,对图像进行运算,在图像边缘处其灰度变化较大,故该微分计算值较高,可将这些微分值作为相应点的边缘强度,通过阈值判别来提取边缘点,即如果微分值大于阈值,则为边缘点。图像的边缘是指图像局部区域亮度变化显著的部分。该区域的灰度剖面一般可以看做一个阶跃,即从一个灰度值在很小的缓冲区域内急剧变化到

23、另一个灰度相差较大的灰度值。图像的边缘部分集中了图像的大部分信息,图像边缘的确定与提取对于整个图像场景的识别与理解是非常重要的,同时也是图像分割所依赖的重要特征。边缘检测主要是图像的灰度变化的度量、检测和定位,自从1959提出边缘检测以来,经过五十多年的发展,已有许多种不同的边缘检测方法。边缘检测的基本思想是先利用边缘增强算子,突出图像中的局部边缘,然后定义像素的“边缘强度”,通过设置阈值的方法提取边缘点集。但是由于噪声和图像模糊,检测到的边界可能会有间断的情况发生。所以边缘检测包含以下两项内容:(1) 用边缘算子提取边缘点集。(2) 在边缘点集合中去除某些边缘点,填充一些边缘点,将得到的边缘

24、点集连接为线。边缘检测的基本步骤是:(1) 滤波。边缘检测算法主要是基于图像强度的一阶和二阶导数,但导数的计算对噪声很敏感,因此必须使用滤波器来改善与噪声有关的边缘检测器的性能。需要指出的是,大多数滤波器在降低噪声的同时也导致了边缘强度的损失。因此,增强边缘和降低噪声之间需要折中。边缘检测主要基于导数计算,但受噪声影响。而滤波器在降低噪声的同时也导致边缘强度的损失。(2) 增强。增强边缘的基础是确定图像各点邻域强度的变化值。增强算法可以将邻域(或局部)强度值有显著变化的点突显出来。边缘增强一般是通过计算梯度幅值来完成的。增强算法将邻域中灰度有显著变化的点突出显示。一般通过计算梯度幅值完成。(3

25、) 检测。在图像中有许多点的梯度幅值比较大,而这些点在特定的应用领域中并不都是边缘,所以应该用某种方法来确定哪些点是边缘点。最简单的边缘检测判据是梯度幅值阈值判据。但在有些图像中梯度幅值较大的并不是边缘点。最简单的边缘检测是梯度幅值阈值判定。(4) 定位。如果某一应用场合要求确定边缘位置,则边缘的位置可在子像素分辨率上来估计,边缘的方位也可以被估计出来。常见的边缘检测算子有算子、算子、算子、算子和算子。、是基于一阶导数的边缘检测算子,图像的边缘检测是通过或者模板作为核与该图像中的每个像素点做卷积和运算,然后选取合适的阈值以提取边缘。边缘检测算子是基于二阶导数的边缘检测算子,该算子对噪声敏感。算

26、子的改进方式是先对图像进行平滑处理,然后再应用二阶导数的边缘检测算子,其代表是拉普拉斯高斯()算子。前边介绍的边缘检测算法是基于微分方法的,其依据是图像的边缘对应一阶导数的极大值点和二阶导数过零点。算子是另外一类边缘检测算子,它不是通过微分算子检测边缘,而是在满足一定约束条件下推导出的边缘检测最优化算子。 6.2 边缘检测算子6.2.1 和边缘检测算子为了在边缘检测中减少噪声的影响,1970年和分别提出了算子和算子。算子加大了边缘检测的模板,扩大到来计算差分算子计算式为: 其水平方向和垂直方向上的算子模板为: 边缘检测算子是图像处理中的算子之一,主要用作边缘检测。在技术上,它是一离散性差分算子

27、,用来运算图像亮度函数的梯度之近似值。在图像的任何一点使用此算子,将会产生对应的梯度矢量或是其法矢量。 算子从不同的方向检验边缘,利用像素点的上下、左右邻点的灰度加权平均算法,根据在缘点处达到极值进行边缘检测。核心公式 采用范数衡量梯度的幅度。算子对灰度渐变和噪声较多的图像处理的较好。大量实验表明要比更能准确检测图像边缘。6.2.2 边缘检测算子根据任一相互垂直方向上的差分都可以用来估计梯度,算子采用对角线方向相邻两元素之差,即: 其幅度值为: 梯度以为中心,所以它度量了点处和方向(相互正交)的灰度变化。适当选取门限T,作如下判断:,为阶跃状边缘点。边缘检测算子相当于用模板 对图像进行卷积。6

28、.2.3 边缘检测算子基本思想:先用高斯函数对图像滤波,然后对滤波后的图像进行拉普拉斯运算,算得的值等于零的点认为是边界点。拉普拉斯算子是二阶导数的二维等效式。函数的拉普拉斯算子公式为 使用差分方程对和方向上的二阶偏导数近似如下: 这一近似式是以点为中心的。用替换,得到 它是以点为中心的二阶偏导数的理想近似式,类似地, 把这两个式子合并为一个算子,就成为下面能用来近似拉普拉斯算子的模板: 算子运算: 根据卷积求导法有 其中为图像,为高斯图像, 6.3 编程实现程序一x=imread(d:I3_256.bmp); subplot(1,3,1); imshow(x); title(原图像); p,

29、q=size(x); yuzhi=70; x1=double(x);for i=2:p-1 for j=2:q-1 s1=-x1(i-1,j-1)+x1(i-1,j+1)-2*x1(i,j-1)+2*x1(i,j+1)-x1(i+1,j-1)+x1(i+1,j+1); s2=x1(i-1,j-1)+2*x1(i-1,j)+x1(i-1,j+1)-x1(i+1,j-1)-2*x1(i+1,j)-x1(i+1,j+1); G=max(abs(s1),abs(s2); if (Gyuzhi) x2(i,j)=1; else x2(i,j)=0; end endendx3=uint8(x2); sub

30、plot(1,3,2); imshow(x3); title(sobel算子边缘检测);BW1=edge(x,sobel); subplot(1,3,3);imshow(BW1);title(库函数检测);程序二x=imread(d:I3_256.bmp); subplot(1,3,1); imshow(x); title(原图像); p,q=size(x); yuzhi=70; y1=double(x); for i=2:p-1 for j=2:q-1 s3=y1(i-1,j+1)+y1(i,j+1)+y1(i+1,j+1)-y1(i-1,j-1)-y1(i,j-1)-y1(i+1,j-1)

31、; s4=y1(i-1,j-1)+y1(i-1,j)+y1(i-1,j+1)-y1(i+1,j-1)-y1(i+1,j)-y1(i+1,j+1); g=max(abs(s3),abs(s4); if (gyuzhi) y2(i,j)=1; else y2(i,j)=0; end end end y3= uint8 (y2); subplot(1,3,2); imshow(y3); title(prewitt算子边缘检测); BW3=edge(x,prewitt); subplot(1,3,3);imshow(BW3);title(库函数检测);程序三x=imread(d:I3_256.bmp)

32、; subplot(1,3,1); imshow(x); title(原图像); p,q=size(x); yuzhi=40; z1=double(x);for i=2:p-1 for j=2:q-1 s5=z1(i+1,j+1)-z1(i,j); s6=z1(i,j+1)-z1(i+1,j); G1=abs(s5)+abs(s6); if(G1=yuzhi) z2(i,j)=1; else z2(i,j)=0; end endendz3= uint8 (z2); subplot(1,3,2); imshow(z3); title(roberts算子边缘检测);BW2=edge(x,rober

33、ts);subplot(1,3,3);imshow(BW2);title(库函数检测);程序四x=imread(d:I3_256.bmp); M,N=size(x);subplot(1,3,1),imshow(x); title(原图像);d=double(x) ;yuzhi=250;G=-2,-4,-4,-4,-2;-4,0,8,0,-4;-4,8,24,8,-4;-4,0,8,0,-4;-2,-4,-4,-4,-2; for i=3:M-2 for j=3:N-2 m=d(i-2,j-2) d(i-2,j-1) d(i-2,j) d(i-2,j+1) d(i-2,j+2); d(i-1,j

34、-2) d(i-1,j-1) d(i-1,j) d(i-1,j+1) d(i-1,j+2); d(i,j-2) d(i,j-1) d(i,j) d(i,j+1) d(i,j+2); d(i+1,j-2) d(i+1,j-1) d(i+1,j) d(i+1,j+1) d(i+1,j+2); d(i+2,j-2) d(i+2,j-1) d(i+2,j) d(i+2,j+1) d(i+2,j+2); s(i,j)=abs(sum(sum(m.*G); if s(i,j)yuzhi p(i,j)=255; else p(i,j)=0; end endendp1=uint8(p)subplot(1,3,

35、2),imshow(p1);title(Log算子边缘检测);BW4=edge(x,log);subplot(1,3,3);imshow(BW4);title(库函数边缘检测);6.4 运行结果与分析由实验结果的图像可以看出算子定位精度较高;算子检测垂直和水平方向的阶跃边缘、线的效果比检测斜向阶跃边缘、线的效果好,保留住了矩形的角点,而和算子则不及,尤其是算子基本丢失了角点信息;和算子检测斜向阶跃边缘、线的效果较好,保留住了三角形的角点;算子因其所得幅值相对算子所得值要小,当选择较大的阈值时(yuzhi=100),丢失了部分边缘信息,故应选择较小的阈值。在抑制噪声的同时也可能将原有的比较尖锐的

36、边缘也平滑掉了,造成这些尖锐边缘无法被检测到。总体来说,的各种算子的库函数效果都比上述编写的程序效果好。 6.5 边缘检测算子的比较6.5.1 程序x= imread(d:I3_256.bmp); subplot(2,3,1); imshow(x); title(原图像); p,q=size(x); yuzhi=100;x1=double(x);for i=2:p-1 for j=2:q-1 s1=-x1(i-1,j-1)+x1(i-1,j+1)-2*x1(i,j-1)+2*x1(i,j+1)-x1(i+1,j-1)+x1(i+1,j+1); s2=x1(i-1,j-1)+2*x1(i-1,j

37、)+x1(i-1,j+1)-x1(i+1,j-1)-2*x1(i+1,j)-x1(i+1,j+1); G=max(abs(s1),abs(s2); if (Gyuzhi) x2(i,j)=1; else x2(i,j)=0; end endendx3=mat2gray(x2); subplot(2,3,3); imshow(x3); title(sobel算子边缘检测);y1=double(x);for i=2:p-1 for j=2:q-1 s3=y1(i-1,j+1)+y1(i,j+1)+y1(i+1,j+1)-y1(i-1,j-1)-y1(i,j-1)-y1(i+1,j-1); s4=y

38、1(i-1,j-1)+y1(i-1,j)+y1(i-1,j+1)-y1(i+1,j-1)-y1(i+1,j)-y1(i+1,j+1); g=max(abs(s3),abs(s4); if (gyuzhi) y2(i,j)=1; else y2(i,j)=0; end endendy3=mat2gray(y2); subplot(2,3,4); imshow(y3); title(prewitt算子边缘检测);z1=double(x);for i=2:p-1 for j=2:q-1 s5=z1(i+1,j+1)-z1(i,j); s6=z1(i,j+1)-z1(i+1,j); G1=abs(s5

39、)+abs(s6); if(G1=yuzhi) z2(i,j)=1; else z2(i,j)=0; end endendz3=mat2gray(z2); subplot(2,3,5); imshow(z3); title(roberts算子边缘检测); subplot(1,3,1),imshow(x); title(原图像);d=double(x);G=-2,-4,-4,-4,-2;-4,0,8,0,-4;-4,8,24,8,-4;-4,0,8,0,-4;-2,-4,-4,-4,-2; for i=3:p-2 for j=3:q-2 m=d(i-2,j-2) d(i-2,j-1) d(i-2

40、,j) d(i-2,j+1) d(i-2,j+2); d(i-1,j-2) d(i-1,j-1) d(i-1,j) d(i-1,j+1) d(i-1,j+2); d(i,j-2) d(i,j-1) d(i,j) d(i,j+1) d(i,j+2); d(i+1,j-2) d(i+1,j-1) d(i+1,j) d(i+1,j+1) d(i+1,j+2); d(i+2,j-2) d(i+2,j-1) d(i+2,j) d(i+2,j+1) d(i+2,j+2); s(i,j)=abs(sum(sum(m.*G); if s(i,j)yuzhi p(i,j)=255; else p(i,j)=0; end endendsubplot(1,3,2),imshow(uint8(p);title(Log算子边缘检测);BW4=edge(x,log);subplot(2,3,2);imshow(BW4);title(库函数边缘检测);6.5.2 运行结果与分析(1)算子:利用局部差分算子寻找边缘,边缘定位精度较高,对噪声敏感,但容易丢失一部分边缘,边缘定位的精度不是很高。同时由于图像没经过平滑处理,因此不具备抑制噪声能力。 该算子用于具有陡峭边缘且噪声低的图像效果较好。 (2)算

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com