Harris Corner Detector生成的特征对于缩放不是不变的。对于特征跟踪,我们需要对仿射变换不变的特征。拉普拉斯斑点检测器是生成对缩放不变的特征的基本方法之一。
拉普拉斯斑点检测器的想法是将图像与多个尺度的“斑点滤波器”进行卷积,并在得到的尺度空间中寻找滤波器响应的极值。
斑点滤波器(Blob Filter):
这个滤波器是由沿x轴和y轴的double derivating Gaussian filter产生并相加。以上也称为高斯拉普拉斯算子。
当图像中有一个角时,LOG滤波器的输出最大。
我们想通过将图像与不同的sigma卷积来找到blob的特征尺度。但随着我们增加sigma,blob滤波器对图像的响应会降低,因此我们可能无法找到更好的尺度(scale)。为了减少这种影响,我们将LOG滤波器σ平方相乘。这个过程称为尺度归一化。
拉普拉斯档案对半径为r的binary圆的最大响应是σ= 1.414 * r
以上是blob滤波器的一些基础知识。整个过程归结为两个步骤
- 在几个尺度上用尺度归一化拉普拉斯变换卷积图像(不同尺度意味着不同的西格玛)
- 在尺度空间中找到平方拉普拉斯响应的最大值
拉普拉斯Blob检测的Python代码
该代码有四个主要步骤:
- 生成LOG滤波器
- 用高斯滤波器对图像进行卷积
- 找到最大峰值
- 绘制blob。
生成LOG滤波器的Python代码
import cv2from pylab import *import numpy as npimport matplotlib.pyplot as pltimg = cv2.imread("sunflowers.jpg