计算机视觉—DoG和LoG算子

计算机视觉——DoG和LoG算子 计算机视觉—DoG和LoG算子 brycezou@163.com        阅读本文,需要有一定的数字图像处理基础,否则不太容易明白数学公式想要传达的物理意义。希望通过仅此一篇文章就能让你理解图像处理中的高斯滤波(也叫高斯平滑、高斯模糊、高斯卷积)、DoG算子、LoG算子,以及它们之间的关系。下面先讲理论,再讲实际应用。在理论部分,一切语言都显得过于苍白,因此我只给出了最核心的、最简 阅读详情

计算速度,ORB是sift的100倍,是surf的10倍。

计算机视觉—DoG和LoG算子





       阅读本文,需要有一定的数字图像处理基础,否则不太容易明白数学公式想要传达的物理意义。希望通过仅此一篇文章就能让你理解图像处理中的高斯滤波(也叫高斯平滑、高斯模糊、高斯卷积)、DoG算子、LoG算子,以及它们之间的关系。下面先讲理论,再讲实际应用。在理论部分,一切语言都显得过于苍白,因此我只给出了最核心的、最简单的、最优美的公式,当然包括一些必要的推导过程。 

理 论 篇

1、高斯函数


       在图像处理中,常用的二维高斯函数为 
G(x,y,σ)=12πσ2e−(x2+y2)/2σ2

2、DoG算子


       DoG( Difference of Gaussian )算子定义为 
DoG=G(x,y,σ1)−G(x,y,σ2)

3、LoG算子


       拉普拉斯算子为 
∇2f=∂2f∂x2+∂2f∂y2

       对二维高斯函数应用拉普拉斯算子得 
∇2G=∂2G∂x2+∂2G∂y2=−2σ2+x2+y22πσ6e−(x2+y2)/2σ2

       LoG( Laplacian of Gaussian )算子定义为 
LoG=σ2∇2G

4、DoG和LoG的关系


       对二维高斯函数关于 σ 求一阶偏导数得 
∂G∂σ=−2σ2+x2+y22πσ5e−(x2+y2)/2σ2

       不难发现 
∂G∂σ=σ∇2G

       在 DoG 算子中,令 σ1=kσ2=kσ,则 
DoG=G(x,y,kσ)−G(x,y,σ)

       进一步地 
∂G∂σ=limΔσ→0G(x,y,σ+Δσ)−G(x,y,σ)(σ+Δσ)−σ≈G(x,y,kσ)−G(x,y,σ)kσ−σ

       因此 
σ∇2G=∂G∂σ≈G(x,y,kσ)−G(x,y,σ)kσ−σ

       即 
G(x,y,kσ)−G(x,y,σ)≈(k−1)σ2∇2G

       这表明可以用 DoG 算子来近似 LoG 算子。 

应 用 篇

1、计算高斯卷积模板

#include <iostream>
#include <math.h>

using namespace std;

#define PI 3.1415926

int main(int argc, char *argv[])
{
    double sigma = 1;
    int N = 2*ceil(3*sigma)+1;
    double *val = new double[N*N];
    int R = N/2;
    for(int i = 0; i < N; i++)
    {
        for(int j = 0; j < N; j++)
        {
            double r = (i-R)*(i-R)+(j-R)*(j-R);
            double res = exp(-r/(2*sigma*sigma));
            res = res/(2*PI*sigma*sigma);
            val[i*N+j] = res;
        }
    }
    delete []val;
    return 0;
} 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26


下图就是该段代码生成的 5x5 的高斯模板 



       在图像处理中,为了提升计算速度,通常会牺牲少部分计算精度,使用整数模板代替浮点数模板。常见的 3x3 和 5x5 整数模板为 

116⎡⎣⎢⎢121242121⎤⎦⎥⎥,1273⎡⎣⎢⎢⎢⎢⎢1474141626164726412674162616414741⎤⎦⎥⎥⎥⎥⎥

2、快速计算高斯卷积


       由于高斯函数可以写成可分离的形式,因此可以采用可分离滤波器来实现加速。可分离滤波器,就是可以把一个多维的卷积转化成多个一维的卷积。具体到二维的高斯滤波,就是指先对行做一维卷积,再对列做一维卷积。这样就可以将计算复杂度从O(M*M*N*N)降到O(2*M*M*N),M、N分别是图像和滤波器的窗口大小。 

3、DoG算子应用


       在理论上 
DoG(x,y,σ1,σ2)∗I(x,y)=G(x,y,σ1)∗I(x,y)−G(x,y,σ2)∗I(x,y)

       因此,实际计算中,只需要先对输入图像作2个不同尺度的高斯平滑,然后将两幅图像相减,非常简单! 

4、公式推导——符号计算


       在理解算法原理的时候,难免要进行公式推导。事实上,本文涉及的公式,不全是作者自己推导出来的,例如,求偏导数的公式就是计算机辅助完成的,虽然偷了个懒,但可以快速验证自己的理解是否正确,效率挺高。常见的符号计算工具有MATLAB,但本人使用的是Mac,没装MATLAB,无意间发现有一个Python包SymPy可以进行符号计算,而且可以将结果导出为LaTeX格式,非常赞,强烈推荐!下面是一段示例代码

from sympy import *

x, y, s, pi, k = symbols('x,y,s,pi,k')

G_0 = 1/(2*pi*s**2) * exp(-(x**2+y**2)/(2*s**2)) 

ff = diff(G_0, s, 1)
gg = diff(G_0, x, 2) + diff(G_0, y, 2)

print latex(together(ff))
print latex(together(gg))


转载 http://blog.youkuaiyun.com/gnehcuoz/article/details/52793654
【计算机视觉】SIFT中LoG和DoG比较 在实际计算时,三种方法计算的金字塔组数noctaves,尺度空间坐标,以及每组金字塔内的层数S是一样的。同时,假设图像为640*480的标准图像。 阅读详情

相关推荐

算法 | 尺度不变特征变换匹配算法 Scale Invariant Feature Transform (SIFT)

1、SFT简介 2、 SIFT算法实现 3、 SIFT算法的应用 4、 SIFT算法的扩展与改进

尘世冰封的专栏 1471

DoG算子和LoG算子

DoG(Difference of Gaussian)算子和LoG(Laplacian of Gaussian)算子是常用的极值点检测(Blob Detection)两种方法,高斯卷积是为了进行尺度变换,那么LapLacian呢。 因此这里首先引入LapLacian算子。 图像边缘检测 因此进行边缘检测有两种方法。 一阶导数的极值 梯度算子定义为:G(x,y)=∇xf(x,y)2+∇yf...

小白的博客 1万+

Vectorless dynamic动态功耗分析——Voltus

power 计算工具会根据设计信息和用户提供的activity和switching约束来生成虚拟的worst-case的power vector,难点在于哪些instances视为switching,在没有仿真的前提下如何确定开关的时间,使用timing文件(TWF)

qq_44347276的博客 2790

LOG与DOG的关系

注意:这里只是推出LOG与DOG的关系 1)高斯函数:                             (1) 2)DOG(Difference Of Gaussian)     DoG算子是LoG算子的近似,做法是求取不同sigma方差下的高斯滤波图像的差,这导致DoG图像有负数产生,因此实际操作时要把原图像素值设为有符号数。对高斯函数即式(1)求σ偏导。 不妨令:    ...

优快云1HAO的博客 4833

解决windows10下无法安装.net framework 3.5(包括.net2.0和3.0)

入域电脑,win10系统中安装 .net framework 3.5(包括.net2.0和3.0)

God_me_1的博客 4万+

数学建模:相关性分析学习——皮尔逊(pearson)相关系数与斯皮尔曼(spearman)相关系数

相关性分析:求解相关系数并绘制热力图进行对比

weixin_67565775的博客 8万+

【计算机视觉】Lecture 11:LoG和DoG滤波算子

今天的主题 高斯拉普拉斯 (LoG) 滤波算子 用于寻找边缘 也有助于寻找斑点! 使用高斯差分 (DoG) 来近似 回忆:一阶导数滤波器 输入图像灰度的急剧变化对应于输入信号一阶导数的“峰或谷” 二阶导数滤波器 输入信号一阶导数的峰或谷对应于输入信号二阶导数的“零交叉点”。 数值导数 泰勒级数展开 中心差分近似于二阶导数 例子:二阶导数 优点:可以获得边缘的清晰定位,而不是边缘上高...

u010307048的博客 5606

大模型测试人员完整学习体系(分层成长路线 + 知识框架 + 落地实操)

本文系统构建了大模型测试工程师的4级能力成长体系:L1(测试执行)-L2(专项测试)-L3(质量体系)-L4(行业标准),详细拆解了每个阶段的核心技能图谱。重点包括:入门层需掌握传统测试基础和大模型产品逻辑;进阶层需精通Prompt用例设计、RAG测试、安全对齐、自动化评测等专项能力;高级层聚焦评测平台搭建与质量体系建设;专家层深入算法对齐与行业标准制定。文章配套提供了分阶段技术工具栈、3-12个月学习路径及5类实战项目建议,形成了一套完整的大模型测试人才能力培养框架。

SmallBull的博客 457

dog log 算子_【计算机视觉】SIFT中LoG和DoG比較

在实际计算时,三种方法计算的金字塔组数noctaves,尺度空间坐标σ,以及每组金字塔内的层数S是一样的。同一时候,如果图像为640*480的标准图像。金字塔层数:当中o_min = 0,对于分辨率为640*480的图像N=5。每组金字塔内图像数:S=3。即在做极值检測时使用金子塔内中间3张图像。对于LoG每组金字塔内有S+2张图像(S=-1。0,1,2,3),须要做S+1次高斯模糊操作(后一张图...

weixin_35959366的博客 378

rk3568 适配以太网(mac 2 mac)

MDIO(Management Data Input/Output)是一种管理数据输入/输出协议,用于在以太网交换机和PHY(物理层收发器)之间进行通信。在Android中,MDIO总线用于控制网络接口的PHY芯片,例如通过MDIO总线访问PHY芯片的寄存器。这些寄存器包含了一些关于网络连接状态、链路速度和其他计算机网络相关信息的数据。MDIO总线通常由网络接口控制器(NIC)使用,以便在OS中管理PHY芯片。在Android设备上,MDIO总线通常由内核驱动程序管理,并且可以通过 /sys/bus/mdi

weixin_35723192的博客 2454

JAX/JAXlib GPU 加速版本安装教程(CUDA)

本文介绍了在Windows WSL2+Ubuntu22.04环境下配置JAX/JAXlib GPU加速版本的详细步骤。使用RTX 4060显卡,安装CUDA 12.4和cuDNN 8.9.7驱动,通过Miniconda创建Python 3.9虚拟环境。具体步骤包括:安装Miniconda、配置CUDA环境变量、安装cuDNN驱动、下载并安装JAX/JAXlib。最后通过测试代码验证GPU加速功能,成功检测到GPU并完成矩阵运算。整个过程配有详细命令和截图说明,适合需要搭建JAX GPU开发环境的用户参考。

猿小白的博客 627

dog log 算子_【计算机视觉】SIFT中LoG和DoG比较

在实际计算时,三种方法计算的金字塔组数noctaves,尺度空间坐标σ,以及每组金字塔内的层数S是一样的。同时,假设图像为640*480的标准图像。金字塔层数:其中o_min = 0,对于分辨率为640*480的图像N=5。每组金字塔内图像数:S=3,即在做极值检测时使用金子塔内中间3张图像。对于LoG每组金字塔内有S+2张图像(S=-1,0,1,2,3),需要做S+1次高斯模糊操作(后一张图像由...

weixin_28836989的博客 309

Calibre 3Dstack --每日一个命令day27【overlap】(3-27)

本文介绍了Calibre3Dstack中overlap命令的使用方法。该命令用于检查两个已放置层之间的重叠量是否符合要求,支持设置检查名称、层类型、堆叠范围、检查方向等参数。关键参数包括:-constraint指定重叠约束条件,-exact控制百分比精度,-by_area切换为面积检查模式,-intersection报告相交区域。检查结果可通过RVE选项定制显示方式,适用于3D堆叠设计中的层间重叠验证场景。

u013620135的博客 112

log算子 和dog 算子

LOG算子 分类: 【Computer Vision】 【MATLAB/SCILAB】2013-11-09 18:51 389人阅读 评论(0) 收藏 举报 计算机视觉图像分析特征检测特征提取LOG算子 目录(?)[+] 背景引言 在博文差分近似图像导数算子之Laplace算子中,我们提到Laplace算子对通过图像进行操作实现边缘检测的时,对离散

pi9nc的专栏 2万+

eNSP与我这24H2版本不兼容,路由器40错误。这该怎么处理(操作系统-windows)(相关搜索:虚拟机)

🏆本文收录于《全栈Bug调优(实战版)》专栏,主要记录项目实战过程中所遇到的Bug或因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!

**My Coding Family** 4110

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

LOG和DOG边缘检测

LOG(laplace of gaussian) laplacian 算子的定义 ▽2f(x,y)=∂f2(x,y)∂2x+∂f2(x,y)∂2y▽2f(x,y)=∂f2(x,y)∂2x+∂f2(x,y)∂2y \triangledown^2f(x,y) = \frac{\partial f^2(x,y)}{\partial^2 x} +\frac{\partial f^2(x,y)}{\p...

码灵薯的博客 4612

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

图像处理理论(五)——SIFT

SIFT 概述 SIFT算法是CV领域在DL进入之前的20年中,最重要的成果。 尺度不变特征转换(Scale-invariant feature transform或SIFT)是一种电脑视觉的算法用来侦测与描述影像中的局部性特征,它在尺度空间中寻找极值点,并提取出其位置、尺度、旋转不变量,此算法由David Lowe在1999年所发表,2004年完善总结。 注:David G. ...

antkillerfarm的专栏 2305

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

图像边缘检测——DoG 算子

本文介绍了 DoG(高斯差分)算子原理,并给出 Python 实现。

2511_93048387的博客 1283

LoG算子与DoG算子相似性数学推导

1. 推导动机 \qquad在学习图像尺度不变特征点检测的过程中(sift算法),我们总是习惯用DoG算子来替代LoG算子计算图像尺度不变特征点以提高运行效率,很多讲解blog都提到这一点,但很少有博主对两者为何可以相互替代进行完整严谨的数学推导,当然这个结论是对的,但是在学习的过程中,我们总想做到知其然并知其所以然,本篇blog将对两个算子进行详细地讲解,并数学推导出二者之间的关系。 2. 高斯...

yangying1992的博客 2610

【Python图像处理】滤波器

图1.一阶和二阶图像边缘检测滤波器

woxiangdangxueba的博客 391

Opencv 笔记5 边缘处理-canny、sobel、Laplacian、Prewitt

一、边缘检测概述 边缘检测是计算视觉中的基本问题,边缘检测的目的是标识图像中亮度变换明显的点。边缘检测大幅度的减少了图像的数据量(分为两种:灰度图像边缘检测和彩色图像边缘检测),并且剔除了不相关的信息,保留了重要的结构属性。总之,图像的边缘检测是图像分割、目标区域识别和区域形状提取等图像分析的基石,也是图像中特征提取的很重要的方法。...

weixin_39354845的博客 8608

图像特征系列总结

1、方向梯度直方图(Histogram of Oriented Gradient, HOG)特征 2、局部二值模式(Local Binary Patter, LBP)特征 3、Haar特征 4、角点检测(Corner Detection)也称为特征点检测 5、LoG(Laplacian of Gaussian)算子和DoG(Difference of Gaussian)算子 6、尺度不变特征变换(Scale-invariant feature transform, SIFT) 7、ORB(Ori

jaccen的专栏 524
上一篇: 图像语义分割,全卷积网络FCN和条件随机场CRF、马尔可夫随机场MRF
下一篇: matlab实用源代码
redfivehit
博客等级 码龄19年 32粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值