当前位置:   article > 正文

Canny边缘检测

canny边缘检测

1.算法概述

  图象的边缘是指图象局部区域亮度变化显著的部分,该区域的灰度剖面可以看作是一个阶跃,即从一个灰度值在很小的缓冲区域内急剧变化到另一个灰度相差较大的灰度值。图象的边缘部分集中了图象的大部分信息,图象边缘的确定与提取对于整个图象场景的识别与理解是非常重要的,同时也是图象分割所依赖的重要特征,边缘检测主要是图象的灰度变化的度量、检测和定位

  Canny 边缘检测是一种使用多级边缘检测算法检测边缘的方法。1986 年,John F. Canny 发表了著名的论文 A Computational Approach to Edge Detection,在这篇论文中详述了如何进行边缘检测。

 通常情况下边缘检测的目的是在保留原有图像属性的情况下,显著减少图像的数据规模。有多种算法可以进行边缘检测,虽然Canny算法年代久远,但可以说它是边缘检测的一种标准算法,而且仍在研究中广泛使用。

2.最优边缘准则

 Canny 的目标是找到一个最优的边缘检测算法,最优边缘检测的含义是:

(1)最优检测:算法能够尽可能多地标识出图像中的实际边缘,漏检真实边缘的概率和误检非边缘的概率都尽可能小;
(2)最优定位准则:检测到的边缘点的位置距离实际边缘点的位置最近,或者是由于噪声影响引起检测出的边缘偏离物体的真实边缘的程度最小;
(3)检测点与边缘点一一对应:算子检测的边缘点与实际边缘点应该是一一对应。 为了满足这些要求,Canny 使用了变分法(calculus of variations),这是一种寻找优化特定功能的函数的方法。最优检测使用四个指数函数项表示,但是它非常近似于高斯函数的一阶导数。

3.Canny 边缘检测基础

Canny 边缘检测分为如下几个步骤:

(1)应用高斯滤波平滑图像,目的是去除噪声。
(2)计算图像梯度,得到可能边缘;
(3)应用非最大抑制技术来消除边误检;
(4)应用双阈值的方法筛选边缘信息;
(5)利用滞后技术来跟踪边界。

3.1 应用高斯滤波去除图像噪声

 由于图像边缘非常容易受到噪声的干扰,为了避免检测到错误的边缘信息,通常需要对图像进行滤波以除去噪声。滤波的目的平滑一些纹理较弱的非边缘区域,以便得到更准确的边缘。在实际处理过程中,通常采用高斯滤波去除图像中的噪声。
在这里插入图片描述
图3-1  高斯滤波示例

 如图3-1演示使用高斯滤波器T对原始图像O中像素值为226的像素点进行滤波,得到该点在滤波结果图像 D 内的值的过程。

 在滤波过程中,通过滤波器对像素点周围的像素计算加权平均值,获取最终滤波结果。对于高斯滤波器T,越临近中心的点,权值越大

 对图像O中像素值为226的像素点,使用滤波器T进行滤波的计算过程及其结果为:结果=1/56×
(197×1+25×1+106×2+156×1+159×1
+149×1+40×1+107×4+5×3+71×1
+163×2+198×4+226×8+223×4+156×2
+222×1+37×3+68×4+193×3+157×1
+42×1+72×1+250×2+41×1+75×1)
= 138

 通常高斯滤波器(高斯核)并不是固定的,滤波器的大小也是可变的,高斯核的大小对于边缘检测的效果具有很重要的作用。滤波器的核越大,边缘信息对于噪声的敏感度就越低。不过,核越大,边缘检测的定位错误也会随之增加。一般来说,一个5×5的核能够满足大多数的情况。

3.2 计算梯度

 在这里,我们只需要关注梯度的方向,梯度的方向与边缘的方向是垂直的。边缘检测算子返回水平方向的Gx和垂直方向的Gy。梯度的幅度

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/173454
推荐阅读
相关标签