DoG(Difference of Gaussian)算子和LoG(Laplacian of Gaussian)算子是常用的极值点检测(Blob Detection)两种方法,高斯卷积是为了进行尺度变换,那么LapLacian呢。 因此这里首先引入LapLacian算子。
图像边缘检测
因此进行边缘检测有两种方法。一阶导数的极值
梯度算子定义为:
为了简化计算,一般梯度算子可以写为:
于是得到的一阶算子有检测对角线边缘的罗伯特算子:
对应卷积模板为:
加了高斯平滑的边缘提取算子:sobel算子
对应的卷积模板为
二阶导数的过零点
二阶导数算子实际就是Laplace算子,定义为两个方向一阶导数的内积,符号表示
使用二阶差分代替二阶函数,则
那么卷积模板为:
如果考虑四个方向:
那么卷积模板为:
由于Laplace算子对噪声很敏感,所以一般利用高通滤波器进行平滑处理,所以引入了高斯拉普拉斯算子(LoG,Laplacian of Gaussian)
高斯拉普拉斯算子(LoG, Laplacian of Gaussian)
对于图像
,首先通过尺度为
的高斯平滑
在使用Laplace算子检测边缘
该式证明如下:
所以高斯拉普拉斯算子等价于先对高斯函数求二阶导,再与原图进行卷积
将高斯拉普拉斯算子展开:
高斯函数差分(DoG, Difference of Gaussian of Gaussian)
DoG即对不同尺度下的高斯函数的差分,DoG算子表达如下:
由于归一化的LoG算子:
而
所以:
即DoG算子和LoG算子具有类似的波形,仅仅是幅度不同,不影响极值点的检测,而DoG算子的计算复杂度显然低于LoG,因此一般使用DoG代替LoG算子
利用DoG或LoG进行边缘和极值点检测
边缘检测:图像边缘在LoG算子下的响应情况如下图所示,二阶微分算子在边缘处为一过零点(由于图像是离散的,也可能不是零点附近),而且过零点两边的最大值(正)和最小值(负)的差值较大。
极值点检测:随着矩形宽度的减小,响应变化如下。
通过不同尺度的高斯滤波器,可以检测不同大小的Blob。这里解释一下斑点通常和关键点(keypoint),兴趣点(intrestpoint)以及特征点(featurepoint)表示同一个概念,通常指与周围有着颜色和灰度区别的区域。