Canny算子的理解

主要解决俩个问题:
Canny算子是什么?是一种经典的图像边缘检测算子
Canny算子怎么用?下面会提及具体的实施步骤

从图像的边缘检测说起:在数字图像中,物体的边缘是以数字图像的局部特征的不连续形式出现即灰度或者结构等信息的突变出成为边缘。边缘能够勾勒出物体的形状、能被局部定义,以及能传递大部分的图像信息等优点。因此边缘检测是处理很多复杂问题的关键。

在图像中的边缘有方向和幅度俩个特性。沿着边缘走向的灰度变化平缓,而垂直于边缘走向的灰度变化剧烈。根据灰度变化的规律,可以把边缘分为三类:阶越型,房顶型和凸缘型。如下图
边缘三类
在边缘上灰度的一阶导数幅度较大,而二阶导数在边缘上的值为零,其左右分别为一正一负两个峰,也就是说边缘点对应于一阶幅度大的点,也对应二阶微分的“过零点”。因此,利用梯度最大值或者二阶导数“过零点”提取边界点成为一种有利的手段。传统的边缘检测的方法大都依据这种特征提取边缘信息。比如梯度算子等。

Canny算子是Canny在综合考虑了传统的边缘检测算子后提出的,他发现这些边缘检测算子都有一些共同的要求:

  1. 好的检测效果,也就是说对边缘的错误检测要尽可能的低:在图像的边缘出现的地方检测结果中必须有,而且不能出现虚假边缘。在所有使用边缘检测做更深入的研究工作的系统中,它的性能都依赖于边缘检测的误差。
  2. 对边缘的定位要准确:标记出来的边缘位置要和图像的真正边缘的中心位置充分的接近。
  3. 对同一个边缘要有低的响应次数。即单个边缘产生多个响应的概率要尽可能的低,而且对虚假边缘的响应要尽可能的抑制。

Canny在明确了这三个要求后提出了经典的Canny算法。并提出Canny算子实现边缘检测的步骤如下:

  1. 用高斯滤波器平滑图像。
  2. 计算平滑后的图像的梯度幅值和方向。
  3. 对梯度幅值采用非极大值抑制,其过程为找出图像梯度中的局部极大值点,把其他非极大值点置零而得到细化的边缘。
  4. 用双阈值算法检测和连接边缘。

具体的数学过程可见这篇博客。

  • 5
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值