计算机视觉入门——边缘检测

计算机视觉入门——边缘检测

欢迎来到计算机视觉的世界,你我共同学习一起进步。



前言

边缘检测是常见的图像基元检测的基础,也是所有基于边界的图像分割方法的第一步。
边缘是图像灰度值发生加速变化而不连续的结果。


一、检测原理

可利用计算导数的方法来检测像素灰度值的变化,一般使用一阶或者二阶导数。 下面介绍不同类型边缘的一些特点
不同
图(a)(b)中为阶梯状边缘,一阶导数的幅度值可以判断边缘的存在(和阈值比较),幅度峰值对应边缘的位置。二阶导数中的过零点可以判断边缘的存在,二阶对比一阶的优势是可以判断出暗区和亮区的分布。
图(c)中为脉冲状边缘,它的剖面与阶梯状的一阶相同,一阶与阶梯状的二阶导数相同。可以用它的二阶导数两个过零点判断两个边缘。
图(d)可以看作是脉冲边缘底部拉开得到的,所以它的一阶导数和二阶导数就是脉冲边缘的导数拉伸得到的,通过检测一阶过零点可以判断屋顶中心位置。


二、一阶导数算子

1.常用算子模板

常见的一阶算子有Roberts交叉算子,Prewitt算子和Sobel算子(从左到右)。其中Sobel算子效果较好,具体效果可以期待下一篇实践篇。
在这里插入图片描述

2.方向微分算子

梯度算子是个矢量,不仅包含大小信息,也包括方向信息,有时我们也会利用他的朝向信息。与其相关的方向微分算子是基于特定方向的微分来检测边缘。先辨认像素为可能的边缘元素,再赋予预先定义的若干个方向之一。如Kirsch模板,共有八个方向分别做卷积,选取相应最大的边缘,当然方向微分算子也不一定是八个方向,对于更为复杂的问题,可以采用精确朝向和精确幅度值的计算

在这里插入图片描述


二、二阶导数算子

二阶导数算子在实际中应用更为广泛,根据不同场景选取不同的算子。

1.拉普拉斯算子

拉普拉斯算子模板如下,基本要求是中心元素是正的,周围元素是负的,且系数之和应该为0.
在这里插入图片描述

2.马尔算子

由于拉普拉斯算子对噪声较为敏感。马尔算子为了改进这一缺点,先对待检测图进行平滑,然后再运用拉普拉斯算子。由于在成像时,一个给定的对于场景点对于周围点的影响为高斯分布,所以采用高斯加权平滑函数对待检测图进行平滑。这就是马尔算子。
最后的函数为高斯-拉普拉斯(LOG)滤波函数。如图。它具有各向同性,与图像的卷积不会改变图像的整体动态范围,同时可以减少噪声的影响。
在这里插入图片描述

3.坎尼算子

坎尼算子把边缘检测转换为求单位函数的最大值问题。它的步骤如下:

  1. 低通滤波:在空间进行低通滤波减少噪声的影响。
  2. 一阶微分算子:采用一阶微分检测灰度梯度的大小和方向,如采用Sobel算子。
  3. 非最大消除:细化借助梯度检测得到的边缘像素构成的边界。常见的做法是考虑梯度幅度图中的小领域。并用其比较中心像素与其梯度方向的相邻像素。如果中心像素的值不大于沿梯度方向的相邻像素的值,就将其值为0。否则,将其作为局部最大值。
  4. 滞后阈值化:选取两个阈值并借助滞后阈值化确认最后的边缘点。首先标记梯度值大于高阈值的边界像素(认为它们都是边缘像素),然后对与这些像素相连的像素使用低阈值。该方法可以减弱噪声的影响,并且可以避免由于阈值过低造成的虚假边缘或者过高造成的边缘丢失。

三、小技巧

边界闭合:基于不同像素梯度的相似性,如梯度的差值进行连接
边界细化:采用最大化消除的方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值