SOBEL算子.doc_第1页
SOBEL算子.doc_第2页
SOBEL算子.doc_第3页
SOBEL算子.doc_第4页
SOBEL算子.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Sobel算子及改进算法一、Sobel边缘检测算子在讨论边缘算子之前,首先给出一些术语的定义:(1)边缘点:图像中具有坐标i,j,且处在强度显著变化的位置上的点。(2)边缘段:对应于边缘点坐标i,j及其方位 ,边缘的方位可能是梯度角。(3)边缘检测器:从图像中抽取边缘(边缘点和边缘段)集合的算法。(4)边缘跟踪:一个用来确定轮廊的图像(指滤波后的图像)搜索过程。 二、Sobel算子的基本原理采用33邻域可以避免在像素之间内插点上计算梯度。Sobel算子也是一种梯度幅值,即:其中的偏导数用下式计算:Sx=(a2+ca3+a4)一(a0+ca7+a6)Sy= (a0+cal+a2)一(a6+ca5+a4)其中常数c=2。和其他的梯度算子一样,Sx 和Sy可用卷积模板来实现(见图2)。121000-1-2-1-101-202-101Sx Sy图2 卷积模板这一算子把重点放在接近于模板中心的像素点图2和图3表明了这一算子的作用。Sobel算子是边缘检中最常用的算子之一。a0ala2a7i,ja3a6a5a4图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个55大小的模板,模板中各个位置的权重是由该位置到中心点的距离以及该位置在模板中所在的方位决定的,等距离的点,具有相同的权重,如图4和图5所示。在本文的算法中,我们选用有最高输出模板所对应边缘梯度值来作为像元的边缘梯度强度。2、边缘的细化处理图像的边缘中包含了图像的大量信息。但是由上述模板计算出来的值仅仅是图像对应的梯度图像,边缘出现在梯度值较大的地方,若想提取图像的边缘必须设定阈值将其二值化。图 4 边缘检测的4个方向x水平方向 y垂直方向23-3-234-4-366-6-634-4-223-3-22363234643-3-4-6-4-3-2-3-6-3-2 -6-2-3-2-2-6-42-3-442-2462232-2 45方向 135方向 -2-3-2-62-4-6-234-4-3264-26232 图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为控制因子,Oa1,通过选取不同的a值可以控制边缘的宽度志。实验表明n取O7O9时,二值化的边缘图像宽度可达到l2个像素.这不但突出了图像的边缘。达到边缘细化的目的,而且有增强边缘的效果,便于二值化的边阈值的选取。梯度图中,阈值我们使用固定阈值来对图像二值化。在灰度图像中,背景与前景所占的统计权重一般来说比较大,因此在梯度图的直方图中,大部分的梯度值集中在低梯度区域,而真正的边缘位于梯度值较大的地方,在直方图中表现为一个衰减曲线。因此可以通过设定合适的阈值滤除非

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论