matlab拉普拉斯算子代码_从头开始在python中实现拉普拉斯斑点检测器

本文介绍了拉普拉斯斑点检测器用于生成缩放不变特征的重要性,并详细阐述了其工作原理,包括斑点滤波器的概念、高斯拉普拉斯算子的计算以及尺度归一化的应用。接着,提供了使用Python实现拉普拉斯斑点检测器的四个主要步骤,包括生成LOG滤波器、图像卷积、找到最大峰值以及绘制blob。
摘要由CSDN通过智能技术生成

Harris Corner Detector生成的特征对于缩放不是不变的。对于特征跟踪,我们需要对仿射变换不变的特征。拉普拉斯斑点检测器是生成对缩放不变的特征的基本方法之一。

拉普拉斯斑点检测器的想法是将图像与多个尺度的“斑点滤波器”进行卷积,并在得到的尺度空间中寻找滤波器响应的极值。

斑点滤波器(Blob Filter):

这个滤波器是由沿x轴和y轴的double derivating Gaussian filter产生并相加。以上也称为高斯拉普拉斯算子。

91a57be9b7d3d6b9e2f637c32ca4836e.gif

Laplacian Of Gaussian

74d7da3dec36a36ebec4f343ebd0e647.png

Sigma = 2时的高斯滤波器

820ee0d2cbd5cdbe240783b91d10cb8c.png

高斯滤波器的拉普拉斯算子(sigma = 2)

当图像中有一个角时,LOG滤波器的输出最大。

42d19b10326cf00befc8ac8c6b440f32.png

有拐角时,输出最大

我们想通过将图像与不同的sigma卷积来找到blob的特征尺度。但随着我们增加sigma,blob滤波器对图像的响应会降低,因此我们可能无法找到更好的尺度(scale)。为了减少这种影响,我们将LOG滤波器σ平方相乘。这个过程称为尺度归一化。

拉普拉斯档案对半径为r的binary圆的最大响应是σ= 1.414 * r

以上是blob滤波器的一些基础知识。整个过程归结为两个步骤

  1. 在几个尺度上用尺度归一化拉普拉斯变换卷积图像(不同尺度意味着不同的西格玛)
  2. 在尺度空间中找到平方拉普拉斯响应的最大值

拉普拉斯Blob检测的Python代码

该代码有四个主要步骤:

  1. 生成LOG滤波器
  2. 用高斯滤波器对图像进行卷积
  3. 找到最大峰值
  4. 绘制blob。

生成LOG滤波器的Python代码

import cv2from pylab import *import numpy as npimport matplotlib.pyplot as pltimg = cv2.imread("sunflowers.jpg
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值