241 字
1 分钟
[计算机视觉] 斑点检测

高斯拉普拉斯算子(LoG Laplacian of Gaussian)#

核心思想:先用高斯模糊去除噪声,再用拉普拉斯算子计算二阶导数

LoG(x,y)=2(Gσ(x,y)I(x,y))\text{LoG}(x, y) = \nabla^2 (G_{\sigma}(x, y) * I(x, y))

整个算子可以表示成一个卷积核:

LoG(x,y)=1πσ4(1x2+y22σ2)ex2+y22σ2\text{LoG}(x, y) = \frac{1}{\pi \sigma^4} \left(1 - \frac{x^2 + y^2}{2\sigma^2}\right) e^{-\frac{x^2 + y^2}{2\sigma^2}}

当这个卷积核与图像卷积时,输出结果为绝对值较大的点即为斑点

尺度归一化#

因为斑点的大小不确定,所以需要对不同尺度的斑点进行归一化处理,通过数学推导发现:

2G1σ2\nabla^2 G \propto \frac{1}{\sigma^2}

所以在计算斑点响应时需要乘以σ2\sigma^2来进行尺度归一化:

LoG(x,y)=σ22(Gσ(x,y)I(x,y))\text{LoG}(x, y) = \sigma^2 \nabla^2 (G_{\sigma}(x, y) * I(x, y))

DoG差分高斯算子(Difference of Gaussian)#

LoG计算压力较大,所以可以用两个不同σ\sigma的高斯模糊图像相减来近似LoG:

DoG(x,y)=Gσ1(x,y)I(x,y)Gσ2(x,y)I(x,y)\text{DoG}(x, y) = G_{\sigma_1}(x, y) * I(x, y) - G_{\sigma_2}(x, y) * I(x, y)

SIFT算法就用的这个

[计算机视觉] 斑点检测
https://alkaid114.github.io/posts/cv/blob_detect/
作者
Alkaid114
发布于
2026-06-06
许可协议
CC BY-NC-SA 4.0