首页 SOBEL算子

SOBEL算子

举报
开通vip

SOBEL算子Sobel算子及改进算法 一、Sobel边缘检测算子 在讨论边缘算子之前,首先给出一些术语的定义: (1)边缘点:图像中具有坐标[i,j],且处在强度显著变化的位置上的点。 (2)边缘段:对应于边缘点坐标[i,j]及其方位 ,边缘的方位可能是梯度角。 (3)边缘检测器:从图像中抽取边缘(边缘点和边缘段)集合的算法。 (4)边缘跟踪:一个用来确定轮廊的图像(指滤波后的图像)搜索过程。 二、Sobel算子的基本原理 采用3×3邻域可以避免在像素之间内插点上计算梯度。Sobel算子也是一种梯度幅值,即: 其中的偏导...

SOBEL算子
Sobel算子及改进算法 一、Sobel边缘检测算子 在讨论边缘算子之前,首先给出一些术语的定义: (1)边缘点:图像中具有坐标[i,j],且处在强度显著变化的位置上的点。 (2)边缘段:对应于边缘点坐标[i,j]及其方位 ,边缘的方位可能是梯度角。 (3)边缘检测器:从图像中抽取边缘(边缘点和边缘段)集合的算法。 (4)边缘跟踪:一个用来确定轮廊的图像(指滤波后的图像)搜索过程。 二、Sobel算子的基本原理 采用3×3邻域可以避免在像素之间内插点上计算梯度。Sobel算子也是一种梯度幅值,即: 其中的偏导数用下式计算: Sx=(a2+ca3+a4)一(a0+ca7+a6) Sy= (a0+cal+a2)一(a6+ca5+a4) 其中常数c=2。和其他的梯度算子一样,Sx 和Sy可用卷积模板来实现(见图2)。 1 2 1 0 0 0 -1 -2 -1 -1 0 1 -2 0 2 -1 0 1 Sx Sy 图2 卷积模板 这一算子把重点放在接近于模板中心的像素点图2和图3表明了这一算子的作用。Sobel算子是边缘检中最常用的算子之一。 a0 al a2 a7 [i,j] a3 a6 a5 a4 图3用于说明Sobel算子的邻域像素点标记 算法的基本原理:由于图像边缘附近的亮度变化比较大,所以可以把那些在邻域内灰度超过某个值的像素点当作边缘点。 算法的主要步骤: 1)分别将2个方向模板沿着图像从一个像素移动到另一个像素,并将像素的中心与图像中的某个像素位置重合; 2)将模板内的系数与其图像上相对应的像素值相乘; 3)将所有相乘的值相加; 4)将2个卷积的最大值。赋给图像中对应模板中心位置的像素,作为该像素新的灰度值; 5)选取合适的阈值TH,若新像素灰度值≥TH,则判读该像素点为图像边缘点。 三、Sobel算子图像边缘检测的MATLB程序实现及仿真 >> f=imread('peppers.png'); >> f=rgb2gray(f); >> f=im2double(f);%使用垂直Sobel算子,自动选择阈值 >> [VSFAT Threshold]=edge(f,'sobel','vertical');%边缘检测 >>figure,imshow(f),title('原始图像');%显示原始图像 >> figure,imshow(VSFAT),title('垂直图像边缘检测');%显示边缘检测图像 >> s45=[-2 -1 0;-1 0 1;0 1 2];%使用指定45度角Sobel算子滤波器,指定阈值 >>FST45=imfilter(f,s45,'replicate'); >>SFST45=SFST45>=Threshold; >> figure,imshow(SFST45),title('45度角图像边缘检测');%显示边缘检测图像 >> 原始图像 垂直边缘检测图像 45度角边缘检测图像 本实验中使用Sobel算子在3个方向进行了图像边缘检测,从程序运行结果可以看出,45度角Sobel算子生成的边缘检测图像呈现出浮雕效果,水平和垂直Sobel算子检测出的边缘多于单个方向上检测出的边缘。 Sobel算子利用像素的上、下、左、右邻域的灰度加权算法,根据在边缘点处达到极值这一原理进行边缘检测。该方法不但产生较好的检测效果,而且对噪声具有平滑作用,可以提供较为精确的边缘方向信息。但是,在抗噪声好的同时也存在检测到伪边缘,定位精度不高的缺点。 四、Sobel的改进算法 1、方向模板的改变 因为图像目标的边缘是灰度不连续性的反映,边缘的种类可以粗略地区分为以下2类:1)阶跃性边缘,它两边的像素点灰度值显著不同。2)屋顶状边缘,它位于灰度值从增加到减少的变化转折点。为了能够更准确地描述出图像缘点,减少噪声对检测结果的影响,提高算子的抗噪能力,重新构造了4个5×5大小的模板,模板中各个位置的权重是由该位置到中心点的距离以及该位置在模板中所在的方位决定的,等距离的点,具有相同的权重,如图4和图5所示。在本文的算法中,我们选用有最高输出模板所对应边缘梯度值来作为像元的边缘梯度强度。 2、边缘的细化处理 图像的边缘中包含了图像的大量信息。但是由上述模板计算出来的值仅仅是图像对应的梯度图像,边缘出现在梯度值较大的地方,若想提取图像的边缘必须设定阈值将其二值化。 图 4 边缘检测的4个方向 x水平方向 y垂直方向 2 3 -3 -2 3 4 -4 -3 6 6 -6 -6 3 4 -4 -2 2 3 -3 -2 2 3 6 3 2 3 4 6 4 3 -3 -4 -6 -4 -3 -2 -3 -6 -3 -2 -6 -2 -3 -2 -2 -6 -4 2 -3 -4 4 2 -2 4 6 2 2 3 2 -2 45°方向 135°方向 -2 -3 -2 -6 2 -4 -6 -2 3 4 -4 -3 2 6 4 -2 6 2 3 2 图5 由一阶梯度算子得到图像的梯度图像。一般来说,其边缘较粗。若直接对梯度图像设定阈值进行二值化,很难找到合适的阈值,使得检测出来的边缘达到要求,这不便于边缘连接与边缘特征提取等后期处理。因此在对图像梯度图像进行二值化前,有必要对所检测出来的梯度边缘进行细化处理。 在图像梯度图中,对于前景与背景区域内部,由于灰度值接近,因此这些区域对应梯度值很小。图像的边缘处梯度值较大,但是边缘的梯度值并非图像中目标的真正边缘。梯度一般呈现屋顶状,如图3所示。为了说明方便,我们将其分为3个区域:“亮”区域、“灰色”区域和“暗”区域。图像中目标的真正边缘应该位于“屋顶”像素“亮”区域处,也即边缘处梯度灰度值最大,并具有一定的纹理方向;分布两边的“暗”区域分别对应着前景与背景;“灰色”区域带有一定的模糊性。因此,边缘细化的难点就成为如何保留梯度图中灰度值较大的“亮”区域,而滤除那些过渡的“灰色”区域。 图6 梯度图以及边缘细化示意图 图6(c)中的曲线为图像边缘处的梯度分布曲线,该曲线在边缘处呈屋顶形状,所提取的边缘宽度志和阈值丁有关,每个阀值丁都对应一个边缘宽度志。当选取合适的丁时就可以减小志,从而达到细化边缘的目的。 基于上述讨论,我们可以找出像素点(m,n)某个邻域中的最大值Max(m,n),根据Max(m,n)来局部设定阈值,如图6(c)所示。按照该点梯度值与阈值的关系对该点进行取舍,这样就能达到将梯度图细化的目的。计算式如下: 式中:grade(m,n)为像素点(m,n)对应的梯度值;Max(m,n)为(m,n)点8邻域最大梯度值;a为控制因子,O
本文档为【SOBEL算子】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_357155
暂无简介~
格式:doc
大小:311KB
软件:Word
页数:6
分类:工学
上传时间:2012-12-19
浏览量:67