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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(基于MATLAB边缘检呢测与提取的几种方法的比较.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于MATLAB边缘检呢测与提取的几种方法的比较.docx

1、基于MATLAB边缘检呢测与提取的几种方法的比较基于MATLAB边缘检测与提取的几种方法的比较数字图像边缘检测(Digital Image Processing)又称为计算机图像边缘检测,它是指将图像信号转换成数字信号并利用计算机对其进行处理的过程。由于图像边缘是图像最基本的特征之一,往往携带着一幅图像的大部分信息。而边缘存在于图像的不规则结构和不平稳现象中,也即存在于信号的突变点处,这些点给出了图像轮廓的位置,这些轮廓常常是我们在图像边缘检测时所需要的非常重要的一些特征条件,这就需要我们对一幅图像检测并提取出它的边缘。在通常情况下,我们可以将信号中的奇异点和突变点认为是图像中的边缘点,其附近

2、灰度的变化情况可从它相邻像素灰度分布的梯度来反映。根据这一特点,提出了多种边缘检测算子:如 Robert算子、Sobel 算子、Prewitt 算子、Laplacian 算子,Canny算子等。这些方法多是以待处理像素为中心的邻域作为进行灰度分析的基础,实现对图像边缘的提取并已经取得了较好的处理效果。经典的边界提取技术大都基于微分运算。首先通过平滑来滤除图像中的噪声,然后进行一阶微分或二阶微分运算,求得梯度最大值或二阶导数的过零点,最后选取适当的阈值来提取边界。本文主要介绍几种经典的边缘提取算法,选取两种用MATLAB语言编程实现,对提取结果进行比较和分析。图像边缘检测的基本步骤:(1)滤波。

3、边缘检测主要基于导数计算,但受噪声影响。但滤波器在降低噪声的同时也导致边缘强度的损失。(2)增强。增强算法将邻域中灰度有显著变化的点突出显示。一般通过计算梯度幅值完成。(3)检测。但在有些图像中梯度幅值较大的并不是边缘点。最简单的边缘检测是梯度幅值阈值判定。(4)定位。精确确定边缘的位置。几种边缘算子的比较以柚子的图片为例1、Roberts算子是一种利用局部差分算子寻找边缘的算子,Roberts算子边缘定位准,但是对噪声敏感。适用于边缘明显而且噪声较少的图像分割,在应用中经常用Roberts算子来提取道路。程序如下:I=imread(D:研一阳建宏信号作业柚子.jpg); %读取图像 J=rg

4、b2gray(I); %转化为灰度图像 K=imadjust(J,40/255 1); %调整灰度值 BW=edge(K, roberts); %边缘检测 figure(1);imshow(BW); %显示图像2、Sobel边缘算子:图像中的每个像素都用这核做卷积。这两个核分别对垂直边缘和水平边缘响应最大,两个卷积的最大值作为该点的输出位。运算结果是一幅边缘幅度图像。Sobel算子认为邻域的像素对当前像素产生的影响不是等价的,所以距离不同的像素具有不同的权值,对算子结果产生的影响也不同。一般来说,距离越大,产生的影响越小。程序如下:I=imread(D:研一阳建宏信号作业柚子.jpg); %读

5、取图像 J=rgb2gray(I); %转化为灰度图像 K=imadjust(J,40/255 1); %调整灰度值 BW=edge(K, sobel); %边缘检测 figure(1);imshow(BW); %显示图像3、Prewitt算子在一个方向求微分,而在另一个方向求平均,因而对噪声相对不敏感,有抑制噪声作用。但是像素平均相当于对图像的低通滤波,所以Prewitt算子对边缘的定位不如Roberts算子。程序如下:I=imread(D:研一阳建宏信号作业柚子.jpg); %读取图像 J=rgb2gray(I); %转化为灰度图像 K=imadjust(J,40/255 1); %调整灰

6、度值 BW=edge(K, prewitt); %边缘检测 figure(2);imshow(BW); %显示图像这是未经滤波的效果图。4、Laplacian算子利用二阶导数信息,具有各向同性,即与坐标轴方向无关,坐标轴旋转后梯度结果不变。使得图像经过二阶微分后,在边缘处产生一个陡峭的零交叉点,根据这个对零交叉点判断边缘。Laplacian算子对噪声比较敏感,Laplacian算子有一个缺点是它对图像中的某些边缘产生双重响应。所以图像一般先经过平滑处理,通常把Laplacian算子和平滑算子结合起来生成一个新的模板。5、Log(Laplacian of Gassian )算法:将高斯滤波和拉普

7、拉斯检测算子结合在一起进行边缘检测的方法。也称之为拉普拉斯高斯算法。该算法的主要思路和步骤是:滤波(滤波函数根据人类视觉特性选为高斯函数)、增强(对平滑图像进行拉普拉斯运算)、检测(边缘检测判据是二阶导数的零交叉点并对应一阶导数的较大峰值)。这种方法的特点是图像首先与高斯滤波器进行卷积,这样既平滑了图像又降低了噪声,孤立的噪声点和较小的结构组织将被滤除。但是由于平滑会造成图像边缘的延伸,因此边缘检测器只考虑那些具有局部梯度最大值的点为边缘点。高斯-拉普拉斯算子把高斯平滑滤波器和拉普拉斯锐化滤波器结合起来,先平化掉噪声,再进行边缘检测,所以效果更好。程序如下:I=imread (D:研一阳建宏信

8、号作业柚子.jpg);J=rgb2gray(I); %转化为灰度图像K=imadjust(J,40/255 1); %调整灰度值BW1=edge(K,log,0.01); figure(1);subplot(3,2,1);imshow(BW1);title(阈值为0.01的LOG算子边缘检测图像);BW11=edge(K,log,0.001);subplot(3,2,5);imshow(BW11);title(阈值为0.001的LOG算子边缘检测图像);BW2= edge(K,log,0.005);subplot(3,2,4);imshow(BW2);title(阈值为0.005的LOG算子边

9、缘检测图像);BW20= edge(K,log,0.007);subplot(3,2,3);imshow(BW20);title(阈值为0.007的LOG算子边缘检测图像);BW22= edge(K,log,0.009);subplot(3,2,2);imshow(BW22);title(阈值为0.009的LOG算子边缘检测图像);BW23= edge(K,log,0.0001);subplot(3,2,6);imshow(BW23);title(阈值为0.0001的LOG算子边缘检测图像);结果分析:如图所示采用的阈值越小则图像的边缘处理效果越清晰,且边缘点条理显著。但是当阈值超过0.000

10、1时图像边缘的处理效果越模糊如图5.20所示,但是仍能进行边缘的判断!6、Canny算子类似与Marr(LOG)边缘检测方法,也属于先平滑后求导数的方法。采用二维高斯函数的任意方向上的一阶方向导数为噪声滤波器,通过与图像卷积进行滤波;然后对滤波后的图像寻找图像梯度的局部最大值,以此来确定图像边缘。根据对信噪比与定位乘积进行测度,得到最优化逼近算子。这就是Canny边缘检测算子。用双阈值算法检测和连接边缘。检测方法的优点:低误码率,很少把边缘点误认为非边缘点;高定位精度,即精确地把边缘点定位在灰度变化最大的像素上;抑制虚假边缘。程序如下:I=imread (D:研一阳建宏信号作业柚子.jpg);

11、J=rgb2gray(I); %转化为灰度图像K=imadjust(J,40/255 1); %调整灰度值BW1=edge(K,canny,0.01); figure(2);subplot(3,2,1);imshow(BW1);title(阈值为0.01的Canny算子边缘检测图像);BW11=edge(K,canny ,0.009);subplot(3,2,2);imshow(BW11);title(阈值为0.009的Canny算子边缘检测图像);BW2= edge(K,canny,0.007);subplot(3,2,3);imshow(BW2);title(阈值为0.007的Canny算

12、子边缘检测图像);BW21= edge(K,canny,0.005);subplot(3,2,4);imshow(BW21);title(阈值为0.005的Canny算子边缘检测图像);BW22= edge(K,canny,0.0001);subplot(3,2,5);imshow(BW22);title(阈值为0.0001的Canny算子边缘检测图像);结果分析:如图所示采用的阈值越小则图像的边缘处理效果越模糊不清,且边缘分界点无法判断,变得模糊不清。且当阈值超过0.0002时图像边缘的边缘有效信息部分丢失,边缘点的判断模糊如图5.19所示,虽仍然能够识别它的边界线,但其清晰边界点已无法识别

13、判断图像的边缘点准确性!重新选择阈值,程序如下:I=imread (D:研一阳建宏信号作业柚子.jpg);J=rgb2gray(I); %转化为灰度图像K=imadjust(J,40/255 1); %调整灰度值BW1=edge(K,canny,0.00);subplot(3,2,1);imshow(BW1);title(阈值为0.00的Canny算子边缘检测图像);BW11=edge(K,canny ,0.05);subplot(3,2,2);imshow(BW11);title(阈值为0.05的Canny算子边缘检测图像);BW2= edge(K,canny,0.1);subplot(3,

14、2,3);imshow(BW2);title(阈值为0.1的Canny算子边缘检测图像);BW21= edge(K,canny,0.2);subplot(3,2,4);imshow(BW21);title(阈值为0.2的Canny算子边缘检测图像);BW22= edge(K,canny,0.3);subplot(3,2,5);imshow(BW22);title(阈值为0.3的Canny算子边缘检测图像);效果明显变好。7、基于小波包的图像边缘检测从信号分析的角度看,图像的边缘是图像信号的突变点,描述信号最有意义的特征点是信号的突变点,它包含了信号的大量信息。边缘在图像中表现为灰度值的突变,表

15、现为高频信号。因此所以的边缘检测方法都是检测信号的高频分量,但是在实际图像中,由于噪声的存在,边缘检测成为一个难题。小波包分解后得到的图像序列又近似部分和细节部分组成,近似部分是原图像对高频部分进行滤波所得的近似表示,经滤波后,近似部分去除了高频分量,因此能够检测到原图像中所检测不到的边缘。I=imread(D:研一阳建宏信号作业柚子.jpg);%加入噪声I2=imnoise(I, gaussian,0,0.01);subplot(221);imagesc=(I2);title(原始图像);axis square;X,map=rgb2ind(I2,0.1); %转化为灰度图像X=double(

16、X);%用小波db10对图像X进行一层小波包分解T=wpdec2(X,1,db10);%重构图像的近似部分A=wprcoef(T,1 0);subplot(222); imagesc=(A);title(图像的近似部分);axis square;%原图像的边缘检测BW1=edge(X, sobel);subplot(223);imshow(BW1);title(原图像的边缘);axis square;%图像近似部分的边缘检测BW2=edge(A, sobel);subplot(224);imshow(BW2);title(图像近似部分的边缘);axis square;8、基于膨胀与腐蚀的形态操

17、作骨架化和边缘检测(1)骨架化:某些应用中,针对一副图像,希望对图像中所有对象简化为线条,但不修改图像的基本结构,保留图像基本轮廓,这个过程就是所谓的骨架化。提供了专门的函数bwmorph,可以实现骨架化操作。BW1=imread(D:研一阳建宏信号作业柚子.jpg);J=rgb2gray(BW1); %转化为灰度图像K=imadjust(J,40/255 1); %调整灰度值BW2=bwmorph(K,skel,Inf);imshow(K); title(转为灰度的图像);figure,imshow(BW2); title(骨架图);(2)边缘检测对于一副灰度二进制图像,如果图像像素值为1,

18、则该像素的状态为ON,如果其像素值为0,则该像素的状态为OFF。在一副图像中,如果图像某个像素满足以下两个条件:1.该像素状态为ON,2.该像素邻域中有一个或多个像素状态为OFF。则认为该像素为边缘像素。Matlab中提供了专门的函数bwperim,可以用于判断一副二进制图像中的哪些像素为边缘像素。以下程序代码示例就是利用bwperim函数,对图像进行边缘检测,其边缘像素检测效果如尾图。BW1=imread(D:研一阳建宏信号作业柚子.jpg);J=rgb2gray(BW1); %转化为灰度图像K=imadjust(J,40/255 1); %调整灰度值BW2=bwperim(K);figur

19、e,imshow(BW2) ; title(边缘效果图);对图片进行滤波后在提取边缘,各种方法对比如下图:%对原始图像进行前期处理I=imread(D:研一阳建宏信号作业柚子.jpg);I2=im2double(I);Ihd=rgb2gray(I2);thr,sorh,keepapp=ddencmp(den, wv,Ihd);Ixc=wdencmp(gbl, Ihd,sym4,2,thr,sorh,keepapp);figure(3),imshow(Ixc),title(消噪后的图像);k2=medfilt2(Ixc,7 7);figure(4),imshow(k2),title(中值滤波);

20、Isuo=imresize(k2,0.25, bicubic);% Sobel、Roberts、Prewitt算子检测图像边缘esobel=edge(Isuo,sobel);erob=edge(Isuo,roberts);eprew=edge(Isuo,prewitt);subplot(3,2,1);imshow(Isuo);title(前期处理图像);subplot(3,2,2);imshow(esobel);title(sobel算子提取);subplot(3,2,3);imshow(erob);title(roberts算子提取);subplot(3,2,4);imshow(eprew)

21、;title(prewitt算子提取);%调用Log算子、Canny算子检测图像边缘elog=edge(Isuo,log);ecanny=edge(Isuo,canny);subplot(3,2,5);imshow(elog);title(log算子提取);subplot(3,2,6);imshow(ecanny);title(canny算子提取);边缘检测结果比较:Roberts算子检测方法对具有陡峭的低噪声的图像处理效果较好,但是利用roberts算子提取边缘的结果是边缘比较粗,因此边缘的定位不是很准确。Sobel算子检测方法对灰度渐变和噪声较多的图像处理效果较好,sobel算子对边缘的定

22、位不是很准,图像的边缘不止一个像素。Prewitt算子检测方法对灰度渐变和噪声较多的图像处理效果较好。但边缘较宽,而且间断点多。Log算子法对噪声比较敏感,所以很少用该算子检测边缘,而是用来判断边缘像素视为与图像的明区还是暗区。Canny算子同前几个算子得到的测试结果对比可以看出,canny算子提取的边缘最为完整,而且边缘的连续性很好,优于以上其它算子。这主要是因为它进行了非极大值抑制和形态学连接操作的结果。用此方法不易受噪声干扰,能够检测到真正的弱边缘。优点在于,使用两种不同的阈值分别检测强边缘和弱边缘,并且当弱边缘和强边缘相连时,才将弱边缘包含在输出图像中。从对比图中看效果比较好。形态学边缘检测算法检测出得边缘较为平滑,保留了更多的边缘细节。但是本方法在保持良好的边缘的同时,抑制噪声的能力更强,代价是随着噪声强度的增加,边缘的光滑性会有所降低,像素亮度显著降低。在所用时间上,传统算子高斯函数做卷积运算,计算量大,时间消耗也大,而形态学多尺度边缘检测只做普通的加减运算及求最大最小值运算,时间消耗少。

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

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