常见的图像处理算法:Canny边缘检测

一、Canny边缘检测算子的由来

Canny 边缘检测算子是一种多级检测算法。1986 年由 John F. Canny 提出,同时提出 了边缘检测的三大准则:

1、低错误率的边缘检测:检测算法应该精确地找到图像中的尽可能多的边缘,尽可能的减少漏检和误检。  

2、最优定位:检测的边缘点应该精确地定位于边缘的中心。

3、图像中的任意边缘应该只被标记一次,同时图像噪声不应产生伪边缘。

Canny 算法出现以后一直是作为一种标准的边缘检测算法,此后也出现了各种基于Canny 算法的改进算法。时至今日,Canny 算法及其各种变种依旧是一种优秀的边缘检测算法

二、Canny 边缘检测步骤

1、使用高斯滤波,消除噪声,举例为 3*3 的高斯内核

2、计算梯度幅值和方向

用 sobel 算子在 x 和 y 方向求图像梯度

使用下面公式计算梯度的幅值和方向

梯度方向一般取值为:0°,45°,90°,135

3、非极大值抑制

这一步排除非边缘像素,仅仅保留了一些细线条(候选边缘)

4、滞后阈值:

Canny 使用了滞后阈值(高阈值和低阈值):

(1)若某一像素位置的幅值超过高阈值,该像素被保留为边缘像素。

(2)若某一像素位置的幅值小于低阈值,该像素被排除。

(3)若某一像素位置的幅值在两个阈值之间,该像素仅仅在连接到一个高于高阈值的像素时被保留。

三、图像梯度计算 Gradient

图像梯度计算的是图像变化的速度。对于图像的边缘部分,其灰度值变化较大,梯度值也较大。一般情况下,图像梯度计算的是图像的边缘信息。严格来讲,图像梯度计算需要求导数,但图像梯度一般通过计算像素差值来得到梯度的近似值。常用的算子有Sobel,Scharr 和 Lapacian。计算图像梯度,水平梯度和垂直梯度采用 sobel 算子在 x 轴、y 轴方向计 算梯度,全部梯度使用下面的公式计算。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值