边缘检测

1、边缘的特征

先看一张实物图和边缘图

边缘是图片中灰度变化最快的地方。下图清楚地显示了最简单的一种情况。既然找变化最快的地方,可以通过导数来求解边缘

2、图片的导数

一张数字图片F[x,y], 其x方向导数可定义为:

3、图片的梯度

3.1 图片的梯度相关定义

几种常见的图片的梯度

边缘的灰度用图片梯度的幅值表示,

图片梯度的方向:

3.2 图片梯度实例

下图显示了原图,x方向导数的图片,y方向导数的图片,和幅值的图片。

4、图片虚化后的梯度

图片实际上包含有很多噪音,噪音干扰求图片的梯度,如下图所示:

f(x)为红线处的灰度值,对其进行求导,充满干扰。

为了减少噪音的干扰,可使用高斯高斯滤波器过滤掉图片噪音,然后再求图片的梯度。

图片的求导可以用卷积运算实现,图片的卷积运算又满足交换律和结合律,所以

下图展示了其计算过程:

5、Sobel 算子

Sobel算子近视表示高斯滤波器的1阶导数,Sobel算子的滤波器如下图所示:

前面的1/8是一个经验值,为了得到合适的梯度的幅值

下方图片展示了Sobel算子的效果:

原图

x方向导数

y方向导数

幅值

6、LoG算子

除了使用高斯滤波器的一阶导数求边缘,还可以使用其二阶导数求边缘,边缘值刚好位于二阶导数的零值。如下图所示:

二维高斯函数的二阶导数如下图所示:

Laplacian 算子

LoG (Laplacian of Gaussian) 算子近似表示高斯滤波器的二阶导数。LoG算子如下图:

7、Canny 边缘检测

7.1Canny 边缘检测的过程

  • 用高斯的梯度对图片滤波
  • 求出梯度的幅值和方向
  • 非极大值抑制(Non-maximum suppression)
  • 设定阈值并连接

7.2 非极大值抑制(Non-maximum suppression)

检查一个点沿着该点的梯度方向是否为局部最大值,如果是保留,如果不是抑制.

在Canny 的论文中,梯度方向只有4个,0°,45°,90°,135°,但是实际上,梯度方向有很多种,不仅仅只有四种,

可阅读此博客:Canny算子中的非极大值抑制

非极大值抑制处理之前

非极大值抑制处理之后

7.3 设定阈值并连接

  • 设置高低两种阈值
  • 梯度幅值大于高阈值的视为强边缘
  • 梯度幅值小于低阈值的视为噪声
  • 位于高低阈值之间的视为弱边缘

7.4 Canny 边缘检测实例

7.5 Canny边缘检测的问题

不同高斯的  值,会影响到边缘检测,如下图所示。

较大的 \sigma 能检测到较粗的边缘,较小的 \sigma 还能检测到较细的边缘。

当使用不同\sigma的滤波器时,一节导数的最大值(边缘点)会出现偏移,甚至重合。

8、好的边缘检测算法的标准

  • 能够发现所有的边缘
  • 不受噪音影响
  • 检测到的边缘点离实际点越近越好
  • 对于每一个实际的边缘点,算法只返回一个点

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值