数字图像处理soble进行边沿检测

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

使用sobel算子进行图像边沿检测一.实验原理Sobel算子是图像处理中的算子之一,主要用作边缘检测。在技术上,它是一离散性差分算子,用来运算图像亮度函数的梯度之近似值。在图像的任何一点使用此算子,将会产生对应的梯度矢量或是其法矢量.该算子包含两组3x3的矩阵,分别为横向及纵向,将之与图像作平面卷积,即可分别得出横向及纵向的亮度差分近似值。如果用sobel算子检测图像的边缘的话,可以先分别用水平算子和垂直算子对图像进行卷积,得到的是两个矩阵。-1-2-1-101000-202121-101Sobel梯度算子是先做成加权平均,再微分,然后求梯度,计算公式表示为:Fx’(x,y)=f(x-1,y+1)+2f(x,y+1)+f(x+1,y+1)-f(x-1,y-1)-2f(x,y-1)-f(x+1,y-1)Fy’(x,y)=f(x-1,y+1)+2f(x-1,y)+f(x-1,y+1)-f(x+1,y-1)-2f(x+1,y)-f(x+1,y+1)二维图像的灰度值函数f(x,y),其梯度表示为:G[f(x,y)]=|fx’(x,y)+fy’(x,y)|Sobel算子有两个,一个是检测水平边沿的;另一个是检测垂直平边沿的。并且,Sobel算子对于象素的位置的影响做了加权,因此效果更好。二.实验程序f=imread('jingwu1.jpg');f=rgb2gray(f);f=im2double(f);%使用垂直Sobel算子,自动选择于阈值[VSFATThreshold]=edge(f,'sobel','vertical');%边缘探测figure,imshow(f),title('原始图像');%显示原始图像figure,imshow(VSFAT),title('垂直图像边缘检测');%显示边缘探测图像%使用水平和垂直Sobel算子,自动选择阈值SFST=edge(f,'sobel',Threshold);figure,imshow(SFST),title('水平和垂直图像边缘检测');%显示边缘探测图像%使用指定45度角Sobel算子滤波器,指定阈值s45=[-2-10;-101;012];SFST45=imfilter(f,s45,'replicate');SFST45=SFST45=Threshold;figure,imshow(SFST45),title('45度角图像边缘检测');%最示边缘探测图像s135=[012;-101;-2-10];SFST135=imfilter(f,s135,'replicate');SFST135=SFST135=Threshold;figure,imshow(SFST135),title('135度角图像边缘检测');%最示边缘探测图像三.实验结果本实验分别对三幅图做了sobel算子边缘检测,结果如下:图一:(简单)图二:(中)图三:(复杂)四.实验分析本实验中使用sobel算子在4个方向进行了图像边缘的检测,有上述程序运行的结果图可以看出,45度角sobel算子和135度角sobel算子生成的边缘检测图像呈现出浮雕的效果,水平和垂直sobel算子检测出的边缘多于单个方向上检测的边缘。Sobel算子利用像素的上、下、左、右邻域的灰度加权算法,根据在边缘点处达到极值这一原理进行边缘检测。该方法不但产生较好的检测效果,而且对噪声具有平滑作用,可以提供较为精确的边缘方向。但是,在抗噪声好的同时也存在检测到伪边缘,定位精度不高的缺点,这一点可以从对上述三幅图的检测结果看出。对于轮廓清晰,线条简单的图片(如图一),sobel算子可以较好的检测出其图形边缘;但对于轮廓相对不明显,线条不是很简单,内容较多的图片(如图三)来说,用sobel算子来检测其边缘就暴露了其不能严格的模拟人的视觉生理特征,定位精度不高,易检测到伪边缘,提取出来的图像轮廓有时不令人满意的缺点。

1 / 5
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功