图像边缘检测算法的比较与实现.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
图像边缘检测算法的比较与实现 图像边缘检测算法的比较与实现 李娅娅,李志洁,郑海旭,等:图像边缘检测算法的比较与实现2021,31(9)1971 边缘检测方法的优劣直接影响着图像特征提取及其它后续处理,是图像预处理中的关键。边缘是指其周围像素灰度发生阶跃变化或屋顶状变化的那些像素的集合,图像的大部分信息都存在于图像的边缘中,主要表现为图像局部特征的不连续性,是图像灰度变化比较剧烈的地方。在一幅图像中,边缘有方向和幅度两个特性。沿边缘走向的灰度变化平缓,而垂直于边缘走向的灰度变化剧烈。边缘检测是对灰度变化的度量与定位,灰度变化的显著程度可以通过导数来度量,即函数导数能够反映图像灰度变化的显著程度,因此边缘检测的一个基本思想就是通过求一阶导数的局部极大值,二阶导数的过零点来体现出来的[1-2]。利用梯度最大值提取边缘点的这种思想产生了许多经典的边缘检测方法如[3-8]:Sobel算法、Log算法、Canny算法等。本文主要针对这3种常用的边缘检测方法分析它们各自的算法性能和特点。 基于一阶导数的边缘检测 梯度是函数变化的一种度量,是图像对应二维函数的一 阶导数。而一幅图像可以看作是图像强度连续导数的取样点数组。梯度是一阶导数的二维等价式, 有两个重要的性质和梯度有关,一是向量G(x,y)的方向就是函数f(x,y)增大时的最大变化率方向(如式(2)所示);二是梯度的幅值(如式(3)所示)。 对于数字图像,偏导数可用差分来近似,则边缘往往在差分值最大处, 最小处或过零点发生。 在计算梯度时,计算空间同一位置处(x,y)的真实偏导数是至关重要的。而采用上面公式计算的梯度近似值并不位于同一位置。所以常常使用2×2的一阶差分模板来计算位于内插点[x+1/2,y+1/2]的x方向和y方向偏导数,此时Gx和Gy 31(9)计算机工程与设计ComputerEngineeringandDesign 的点作为边界点的方法,有可能会导致检测出的边缘点过多,数据存储量比较大。一种在理论上更有效的方法是求梯度局部最大值对应的点,并认为它们是边缘点。这种去除了一阶导数中的非局部最大值的方法,可以检测出更精确的边缘,一阶导数的局部最大值对应着二阶导数的零交叉点。这样,通过找图像灰度的二阶导数的零交叉点就能较好地找到精确边缘点。从图1可以看出,图像灰度二阶导数的过零点对应边缘点。 图1图像的二阶导数 2Sobel算法 Sobel算法是基于一阶导数的边缘检测,通过逼近导数来找边缘,其边缘点存在于图像梯度最大值处。Sobel算子中用到了两个卷积模板(一个水平算子,一个垂直算子)。 它是一种奇数大小(3×3)模板下的全方向微分算子,对检测点的上下左右进一步加权。Sobel算子的思想是邻域的像素对当前像素产生的影响不是等价的,所以距离不同的像素具有不同的权值,对算子结果产生的影响也不同。我们用Sobel来检测边缘的时候,先分别用上述的模板对图像进行卷积,得到的是两个矩阵,在不考虑边界的情形下也是和原图像同样大小的bx,by,它们分别表示图像a中相同位置处的两个偏导数。然后把bx,by对应位置两个数平方后相加得到一个新的矩阵b,b表示图像a中各个像素的灰度的梯度值。最后通过阈值处理和细化处理得到边缘图像。在阈值不为空的情况下,边缘存在于梯度幅值大于阈值平方的点上。 2.2算法流程 Sobel算法的流程图如图2所示,其中的要点归纳如下:(1)用1/8乘Sobel算子来确定模板(水平和垂直算子),即 在水平方向和垂直方向上的梯度值; (2)利用上述的模板对当前图像a利用imfilter函数进行卷积得到方向导数bx,by; (3)对方向导数进行平方相加得到梯度幅值,然后通过阈值化操作就能够确定出边缘点。 Log算法是基于二阶导数的边缘检测,这种方法是将高 利用函数im2double(a)将读入的灰度图像a转化为双精度型 初始化边缘e=false(m,n) 用op=fspecial(sobel)/8来产生sobel卷积模板 使用两个有向算子对图像a进行卷积得到偏导数 bx=imfilter(a,x_mask,replicate);by=imfilter(a,y_mask,replicate); 用方向因子和偏导数计算梯度值b=kx*bx.*bx+ky*by.*by isempty(thresh) 临界值cutoff=scale*mean2(b)thresh=sqrt(cutoff); cutoff=thresh*thr

文档评论(0)

软件开发 + 关注
官方认证
服务提供商

十余年的软件行业耕耘,可承接各类需求

认证主体深圳鼎云文化有限公司
IP属地湖南
统一社会信用代码/组织机构代码
91440300MA5G24KH9F

1亿VIP精品文档

相关文档