Abstract: 数字图像处理:第40天
Keywords: 边缘检测,算法
本文最初发表于csdn,于2018年2月17日迁移至此
开篇废话
本来想这篇就开始介绍算子,但想想觉得如果只是散乱的介绍,可能效果不好,所以先来一篇综述,讲讲这些算子的发展过程,和他们之间的相互推导关系,可能有点教科书的风格,但是学算法最主要的就是了解一个算法所解决的问题,算法的优点和缺点,以及改进方法。所以,一定要来一篇综述。
首先,介绍下边缘检测算子的家族关系:
之所以一直在强调是边缘检测算子,是因为这些算子只能检测出图像突变的部分,突变的部分包括边缘,非边缘的其他细节,噪声,等等,所以这些被检测出来的点成为边缘候选点,之后再经过其他方式筛选出边缘点,这就是基本的边缘检测过程:
- 使用边缘检测算子检测到候选点
- 使用筛选算法得到边缘。
大家常说的Canny其实应该属于第二步的算法,而不是Canny算子。。。。
算子介绍
介绍下算子间的关系,强调一点,这些算子出现的时间没有考证先后顺序,以下顺序为逻辑顺序,对于一阶微分算子,鼻祖应该是最简单 $[-1,1]$ 和 $[-1;1]$ 就是一个横向差分和纵向差分,然后进化出来了Robert算子和Prewitt算子。Robert算子继而生出来Sobel算子标准版,后来的计算标明,在 $3\times 3$ 的算子,Scharr算子的表现比 $3\times 3$ 的Sobel算子好,并且Sobel算子出现之前的算子都是未经过数学论证的,也就是说,这些算子是根据经验或实验弄出来的,接下来的文章里,会逐一介绍各个算子。
二阶算子的鼻祖是Laplace算子。主要使用的是Marr-Hildreth算子,通常叫LoG,就是Laplace和高斯平滑模板结合的结果。为了计算方便,通常使用DoG来近似LoG,DoG的全称是高斯差分,两个高斯模板相减产生,能够近似LoG却可以降低计算量。
总结
简短的介绍,使整个脉络相对清楚,下一篇开始从Robert开始介绍。
待续