文章目录
- 一.高斯滤波器
- 二.高斯金字塔
一.高斯滤波器
高斯滤波器:使用正态分布计算的一种卷积模板,利用高斯滤波器和图像进行卷积运算,可对图像进行模糊处理。公式如下(二维高斯滤波器):
G(x,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}}} G(x,y)=2πσ21e−2σ2(x−m/2)2+(y−n/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.meshgrid(x, y)
w0 = 1
gaussian = np.exp(-((pow(x, 2) + pow(y, 2)) / pow(w0, 2)))# 二维面振幅分布图
plt.figure()
plt.imshow(gaussian)# 三维曲面振幅分布图
fig = plt.figure()
ax = Axes3D(fig)
ax.plot_surface(x, 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.下一组的图片降采样母本的确定
-
金字塔的阶数(O):一般为4,也可以根据图像的大小来选择,但需要满足下列关系:
∣O=[log2(min(M,N))]−3\mid \mathrm{O}=\left[\log _{2}(\min (M, N))\right]-3 ∣O=[log2(min(M,N))]−3
其中M,N为图像的行数和列数。
-
每一阶的层数(S):一般选择5或者6,一般选择6的时候效果最好。在这边就要根据前面的说明,特征点的选举是要在相邻的两层差分金字塔上面进行检测的,所以要得到N个尺度的特征点,就要在层的差分金字塔上检测,(自己画个图就ok了),然而要产生N+2层的差分金字塔,就要有N+3层的高斯金字塔,这样相邻的相减,才能产生N+2层差分。注意:这里的检测都是同阶里面不同层的操作。所以S = N + 3。记住这个N,有用!
-
尺度因子N的选择
查看全文
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.dgrt.cn/a/2110679.html
如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!
相关文章:
SIFT四部曲之一:高斯滤波
文章目录一.高斯滤波器二.高斯金字塔一.高斯滤波器
高斯滤波器:使用正态分布计算的一种卷积模板,利用高斯滤波器和图像进行卷积运算,可对图像进行模糊处理。公式如下(二维高斯滤波器): G(x,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.ComputeHash(Encoding.UTF8.GetBytes(TransString)); 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容器,在头部增加、删除元素,其时间消耗和元素数目成正比ÿ……
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 之后,产生的数据倾斜。例如……
cocos2d-x中的触摸事件详解
屏蔽相关节点的方法。
注意吞噬触摸时候需要进行在ontouchbegan 中需要设置ture。
链接地址:
http://www.68idc.cn/help/buildlang/ask/20150309260641.html…
编程日记2023/4/16 15:01:14