SIFT四部曲之一:高斯滤波

文章目录

  • 一.高斯滤波器
  • 二.高斯金字塔

一.高斯滤波器

高斯滤波器:使用正态分布计算的一种卷积模板,利用高斯滤波器和图像进行卷积运算,可对图像进行模糊处理。公式如下(二维高斯滤波器):

Gx,y)=12πσ2e−x−m/2)2+y−n/2)22σ2\mathrm{G}x, y)=\frac{1}{2 \pi \sigma^{2}} e^{-\frac{x-m / 2)^{2}+y-n / 2)^{2}}{2 \sigma^{2}}} Gx,y)=2πσ21e2σ2xm/2)2+yn/2)2

利用python绘制高斯滤波器,代码如下:

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3Dx = np.linspace-3, 3, 1000)
y = np.linspace-3, 3, 1000)
x, y = np.meshgridx, y)
w0 = 1
gaussian = np.exp-powx, 2) + powy, 2)) / poww0, 2)))# 二维面振幅分布图
plt.figure)
plt.imshowgaussian)# 三维曲面振幅分布图
fig = plt.figure)
ax = Axes3Dfig)
ax.plot_surfacex, y, gaussian, cmap='jet')
ax.set_xlabel'X')
ax.set_ylabel'Y')
ax.set_zlabel'Z')
plt.show)

绘制的二维高斯曲面如下:

在这里插入图片描述
在这里插入图片描述

当然上面只是一个连续的曲面,在对图像进行高斯模糊的过程中需要的是高斯模板,这个模板和图像卷积便可得到高斯模糊图像。

二.高斯金字塔

高斯金字塔主要是为了得到不同尺度的图片,这些图片的尺度必须是连续的,所以要对图片进行高斯滤波。高斯金字塔是一个原始图像,产生几组(octave)每一组中又包含着几层(interval)。结构如下:
在这里插入图片描述

高斯金字塔的构建主要包括以下4个过程:

  • 1.金字塔的阶数(O)的确定
  • 2.每一组层数(S)的确定
  • 3.每一层的尺度(N)的确定
  • 4.下一组的图片降采样母本的确定
  1. 金字塔的阶数(O):一般为4,也可以根据图像的大小来选择,但需要满足下列关系:

    ∣O=[log⁡2min⁡M,N))]−3\mid \mathrm{O}=\left[\log _{2}\min M, N))\right]-3 O=[log2minM,N))]3

    其中M,N为图像的行数和列数。

  2. 每一阶的层数(S):一般选择5或者6,一般选择6的时候效果最好。在这边就要根据前面的说明,特征点的选举是要在相邻的两层差分金字塔上面进行检测的,所以要得到N个尺度的特征点,就要在层的差分金字塔上检测,(自己画个图就ok了),然而要产生N+2层的差分金字塔,就要有N+3层的高斯金字塔,这样相邻的相减,才能产生N+2层差分。注意:这里的检测都是同阶里面不同层的操作。所以S = N + 3。记住这个N,有用!

  3. 尺度因子N的选择

查看全文

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.dgrt.cn/a/2110679.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章:

在这里插入图片描述

SIFT四部曲之一:高斯滤波

文章目录一.高斯滤波器二.高斯金字塔一.高斯滤波器
高斯滤波器:使用正态分布计算的一种卷积模板,利用高斯滤波器和图像进行卷积运算,可对图像进行模糊处理。公式如下(二维高斯滤波器): Gx,y)12πσ2e−x……

[C#]文本相似度识别3)

做了一天好虚呀。 目前实现了两步,都对两篇文章而言的 对文章的每一段进行进行相似度识别,初步判断相似的段落;
对可疑的相似段落,进一步识别哪些句子雷同,并输出结果。 目前还是单线程的,而且算法优化做的……

[C#]K均值聚类

写完了怕丢了,放在这里。不过写的不是很好,没有进行过优化~~ using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections; namespace Similarity
{ class myClusterFun { public static in……

[C#]MD5,Tooltip,几种类型的范围

1,MD5的两种方法
(1)在windows窗体下:
using System.Security.Cryptography; MD5 MyMd5 MD5.Create);
byte[] temp MyMd5.ComputeHashEncoding.UTF8.GetBytesTransString)); for int i 0; i < temp.Length; i) { Uni……

[C#][转载]StringBuilder类与 String类的区别

源地址:http://hi.baidu.com/huyinghuyu/blog/item/639a480e33d401c97bcbe180.html String 对象是不可改变的。每次使用 System.String 类中的方法之一或进行运算时(如赋值、拼接等)时,都要在内存中创建一个新的字符串对象&#x……

[C#]文本相似度检测(4) 初步成果

文本相似度检测的程序算是编出了一个初步的原型,这是我第一次编出了一个算是能用的程序。不过这也仅仅是刚编出来,数了一下,一共700多行代码,呵呵,还是蛮有成就感的~ 以后的工作:
1,多线程依然……

[C]回环数(螺旋矩阵)

1,根据输入数字,动态分配二维数组; 2,一次写一圈数字(就是转四个边),如此循环,直到圈的宽度为1为止3,输出结果到文件(在D盘里)#include"stda……

[C]my hanoi tower(递归练习)

http://www.4399.com/flash/swf.htm?gamepathhttp://s1.4399.com:8080/4399swf/upload_swf/200452016543129368.swf&gamemark1|0|0&gamename汉诺塔
#include"stdio.h"FILE * fp;//全局变量int hanoimain){ int n 0; fp fopen"d://hanoi.……

[matlab]Matlab的符号运算总结

原文链接:
http://apps.hi.baidu.com/share/detail/16825793
其他有用的链接:
http://wenku.baidu.com/view/da862b175f0e7cd184253692.html Matlab的符号运算总结-m文件 http://blog.chinaunix.net/u1/37798/showart_453835.html Matlab的符号运算功……

linux移动硬盘安装+jdk配置+jvm优先级设置

最近为了做个实验,需要安装linux操作系统。由于我的笔记本硬盘已经满了,所以,考虑安装在120G 的移动硬盘中。 1,下载ubuntu10.10,有CD版和DVD版,CD版是600多兆,DVD是4.1G,这两个版本……

STL中常用容器详解

常用的容器
一、顺序容器 1、vector 向量 :随机访问(按照下标)任何一个元素,在尾部增删元素,相当于是一个动态的数组。 vector容器,在头部增加、删除元素,其时间消耗和元素数目成正比&#xff……

c++中的继承的讲解

cpp中的继承的总结: 1、继承方式对于之列继承自父类的成的访问权限的影响 对于父类本身没有影响,对于子类扩展成员也没有影响。 2、子类中从父类继承的成员,其访问权限不能高于继承声明时使用的访问权限。 私有继承: 子类中所有继……

c++虚函数的讲解

废话少说,直接上测试代码 #include<iostream> #include<stdlib.h>usingnamespace std;//有虚函数的类 class A{public:A);~A);virtual void f){cout<<"this is A f)"<<endl;}virtual void g){cout<<"this is A g……

ListView TableView ScrollView三者之Tableview

注意点:
1、其中的listView和Tableview都是继承自Scrollview
2、本文主要讲解的是tableview
3、代码部分引用的是在公司中做的产品
4、以上代码可以修改的地方:将cell改为继承自TableviewCell,这样可以直接创建cell。
5、代码中使用了函数的绑定和函……

c++中的std::shared_ptr和std::weak_ptr

std::share类型在c11提出,其意义:使用shared_ptr解决的主要问题是知道删除一个被多个对象共享的资源的正确时机,在本项目中所有的数据类均是使用智能指针来存储,就是为了解决这个问题。
一、std::shared_ptr采用的是引用计数来管……

std::pair的使用

待续。。。。。。…

cocos2d-x安卓启动页的背景图路径

启动页和icon的资源路径:工程名/proj.android/res/drawable/…

c++中的虚函数详解

//废话少说直接上代码,用一个测试来阐述虚函数:
#include<iostream> #include<stdlib.h>usingnamespace std;//有虚函数的类 class A{public:A);~A);virtual void f){cout<<"this is A f)"<<endl;}virtual void ……

Flink Stream 处理数据倾斜

数据倾斜的场景
在数据源发生的数据倾斜。例如,Kafka 的分区,有的分区数据量特别的少,有的特别的多,这样在消费数据后,各个 subtask 拿到的数据量就有了差异。在 keyBy 之后,产生的数据倾斜。例如&#xf……

cocos2d-x中的触摸事件详解

屏蔽相关节点的方法。
注意吞噬触摸时候需要进行在ontouchbegan 中需要设置ture。
链接地址:
http://www.68idc.cn/help/buildlang/ask/20150309260641.html…

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注