sqlserver 5分钟内_5分钟内了解Canny边缘检测

Canny边缘检测是一种经典的图像处理算法,尤其适用于简单且可预测的数据。它结合高斯滤波器进行平滑处理,并通过一阶导数检测边缘。非最大抑制(NMS)和滞后阈值技术进一步确保了边缘的清晰和抗噪声能力。Canny算法虽然简单,但在某些场景下仍能提供优于深度学习方法的效果。
摘要由CSDN通过智能技术生成
95067c960c8cda3ec501de6a38edb1ce.png

边缘检测是图像处理的主要组成部分。 尽管基于卷积神经网络等基于深度学习的技术可以执行非常复杂的边缘检测(即具有变化的曲率,噪声,颜色等的边缘),但在某些情况下,经典的边缘检测方法仍然具有很高的意义! 例如,如果已知数据是简单且可预测的; 与CNN相比,Canny边界检测可以立即使用,而CNN的实现通常较为复杂。

边缘检测的基本知识

大多数经典的边缘检测算法都是基于一阶导数的概念。在下图中,我们可以看到一个理论边缘轮廓,y轴是像素强度,x轴是图像中的物理位置。在图像的边缘位置,有一个从低强度到高强度的快速过渡,反之亦然。这个过渡的速度越快,边缘将会出现。为了检测边缘,我们只需取像素强度的一阶导数,然后寻找如下图所示的最大值!

47e8a71c0cc4c57278cfb1408d3bd439.png

Canny边缘检测

通常将该导数与高斯滤波器相结合,一步完成图像平滑和边缘检测。由于导数和高斯滤波器的卷积都是线性运算,所以我们直接对图像应用微分高斯滤波器即可!下面的示例5x5过滤器完成了这个操作,使用这个过滤器= 1。

c7da2577e82e1f8b8cfdee80a4c53f81.png

这样会产生一个输出,该输出已经高亮显示了边缘的位置! 但是,Canny的优点是可以产生非常薄和干净的边缘。 下一步,非最大抑制(NMS)将实现这一目标。 通过跟踪输出图像中的高值,然后检查3x3邻域中的最大梯度来完成NMS。 中心像素必须在垂直于边缘的方向上最高,否则将被设置为0。

在下面的示例中,我们看到一个7x7矩阵,其中的采样输出来自高斯滤波器。 较高的值将表明该位置的一阶导数较高! 为了执行NMS,我们沿着边缘方向进行跟踪,然后将其设置为0(如果它们不是边缘法线方向的最大值)(即红色轴)。 因此,在NMS之后,蓝色单元将保留,灰色单元将全部设置为0。 我们看到这提供了只有一个像素宽的精细边缘输出!

a2c0ae66b46c480a8ecbdb8351cd83fe.png

Canny边缘检测的另一个重要组成部分是滞后阈值。 这听起来超级复杂,但是非常简单! 此步骤与NMS一起执行,其主要思想是防止噪声边缘在最终边缘检测中引起碎片。 选择2个阈值,其中T1> T2。 仅当梯度值大于T1时才开始NMS跟踪,仅当梯度值小于T2时才停止NMS跟踪。 这样可以确保NMS跟踪对边缘的噪声具有一定的鲁棒性,该边缘可以通过T1和T2值进行控制。

总结

Canny 边缘检测是很流行的边缘检测算法,是在1986年由John F.Canny提出的。尽管Canny 边缘检测和各种经典的边缘检测方法似乎被流行的CNN和深度学习方法所掩盖,但我们不应该忘记它们的简单性和有效性。 有时,尝试经典解决方案要容易得多,并且它可能比您预期的要好!

作者:Tee Yee Yang

deephub翻译组

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值