自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 资源 (1)
  • 收藏
  • 关注

原创 再读SIFT理论及源码

SIFT特征点检测及描述引言SIFT特征点,尺度不变的特征变换。其具有尺度不变性(高斯差分金字塔),旋转不变性(主方向),部分放射不变性(在统计梯度方向直方图时对直方图进行了高斯平滑)。SIFT特征分为两部分,第一个是要检测一幅图像中关键点的位置,第二个是要生成一个描述子来表示这个点位置。名词解释1.     高斯模糊:理论证明高斯核函数是实现尺度不变的唯一线性函数,通过将高斯

2017-07-19 22:48:27 321

翻译 粒子滤波

粒子滤波起源于蒙特卡洛思想,即以频率代替概率,其操作方式如下:1.初始状态:在世界范围内,设置大量的均匀分布的粒子X(k)2.预测阶段:根据状态转移方程,对每一个粒子都可以预测出一个新的粒子3.校正阶段:对每一个粒子根据其与真实位置的关系设置一个评价值,越接近的评价越高4.采样阶段:对所有的粒子进行筛选,选择得分高的粒子,但是也保留一些得分低的粒子5滤波阶段:将得到的新粒子带入

2016-05-23 19:07:54 604

翻译 武侠版并查集

并查集分为合并查找两个部分。它是一种树形的结构,通常用于解决如下的问题:问题1:在一个区域内有很多个城镇,它们之间的道路错综复杂,但是也会有某两个城镇之间不通路的情况,问:需要修建多少条路可以保证所有的城镇都连通。问题2:武林江湖有各式各样的门派,各个门派间有很多的门人,但他们可能互不相识,却有着相同的掌门,江湖规矩门派之间不得内斗,但是门派之间往往可以大打出手,问:如何判断两个人之间能不

2016-05-22 19:55:08 459

原创 最小生成树

n个点之间最多存在n(n-1)/2个边,但是在这么多点当中只需要n-1个边即可将n个点连接起来,称为生成树,这些的生成树中n-1个边的权值和最小的称为最小生成树。如何生成最小生成树,基于最小生成树的MST性质,设顶点集为V,则存在其子集U和V-U,其一定含有一条权值最小的边(u,v)可以构成一个最小生成树。普利姆算法:设置一个辅助数组用以存放最小生成树的顶点。从一个顶点开始,先加入辅助

2016-05-21 17:08:32 305

原创 图的广度优先搜索与深度优先搜索

图是一种很常见的数据结构,对图的分析首先要从其存储结构谈起,如何在计算机中描述一幅图,我们借助树的思想:(a)是一个简单的图,(b)是一种描述图的方法叫做邻接矩阵,其中横坐标表示以该顶点为出发,纵坐标表示以该顶点为终点。如图中aa,bb,cc,dd,ee均可为无穷(也可以是1)表示二者不通(通),而ab,ac等根据图的信息进行赋值,本图为有向有权图,因此赋其权值。另外一种方法是邻接

2016-05-18 19:22:16 829

原创 二叉树,线索二叉树,二叉链表

二叉树的定义很明确,二叉链表即是这个链表的后继不再只有一个,不是以前的线性表,二叉树就是一种二叉链表。在二叉树中若节点没有其左右子树时就会含有一个空指针,在含有n个节点的二叉链表中必定含有n+1个空指针。线索二叉树的由来:一个二叉树无法通过单一的先序遍历(不知道左右子树分界线)或中序遍历(不知道根在何处)得到,若是知道每一个节点的前驱后继,那么即可向线性表一样得出他的树,因此利用了上述二叉

2016-05-03 14:57:13 1575

原创 用递归思想解决二叉树的实际应用

递归的思想在于他将一件n的事情变成n-1的事情,反复如此即可得到一件关于1的事情,所以递归的关键有两点:1.当这件事为1的时候我们的具体操作;2.什么样的事情做n次与做n-1次是一样的。看下面的例子:1.阶乘算法。当我们求一个数n的阶乘时,首先按上面分析,这件事为1的时候我们的具体操作是--->1!=1.什么样的事情做n次与做n-1次相同--->当n*(n-1)的阶乘时,做n次与做n-1次

2016-04-28 13:46:07 846

原创 二叉树的遍历算法

二叉树是一种特殊的树,每个节点都有左右两个子树。其递归算法为(以先序为例):1.访问根节点;2.先序访问左子树;3.先序访问右子树。Bool PreOdTree(Bitree T,bool (*visit) (int e)){bool Print(int e){printf(e);return OK;}if(T){if(visit(T->da

2016-04-27 10:25:43 346

原创 完善next

在使用KMP算法时如果出现这样一种情况:模式串aaaab,主串aaabaaaab。此时模式串的next值为01234.当模式串的第四个值与主串不同时,j=next[4]=3,即为a,还是与第四个不同,因此j=next[3]=2...j=next[1]=0结束.i和j此时需再后移一位。这中间有许多不需要的步骤,由于前面都是a,与第一个a不同后显然与所有的a都不同。因此这nex

2016-04-23 10:46:19 341

原创 串的模式匹配算法

串的模式识别是指在主串中找到模式串的过程。例如从主串abcdef寻找模式串ef,并返回模式串首字母在主串中的位置。以ababcabc为主串abc为模式串为例。ababcabc   abc         (此时i=1,j=1回溯到i-j+2的位置)基本算法如下:(接上篇文章中的String定义)int Index(String S,String T,int pos)  //

2016-04-20 17:14:05 797

原创 串与堆

在串的存储方式中有一种动态存储方式,C语言中用堆来进行操作,返回指向存储起始地址的指针,并记录串的长度:typedef struct{char *ch;int len;}String;String S,T;顺序存储的串需要插入另一个串时,首先要检查插入位置是否合适,即1s.len位置的元素S[i]->S[i+T.len],最后进行插入S[pos...pos+T.size

2016-04-19 20:58:51 287

原创 栈和队列

栈的定义:一种特殊的线性表,可以分为链栈,顺序栈。栈先进后出,以a1为栈底,an为栈顶(由于栈底元素是先进入的)重点介绍顺序栈:typedef struct Qnode{int data;int *next;}Qnode,*Qptr; typedef struct  {Qptr base;Qptr top;int size;}Stack;

2016-04-18 15:29:53 218

原创 单链表插入删除

在链表的插入删除操作上理解起来比顺序表更为容易,其不需要变动在i位置前的所有的元素,只需要修改节点指针即可。插入:设在链表的i位置插入新元素,设i-1节点的指针域为p,设插入的节点指针域为s,所以插入操作应该为:s->next=p->next;将s的后缀改为p的后缀,p的后缀是原来的第i个点的指针域,将其给s的后缀说明此时的s是第i个节点的前一个节点。p->next=s;;将p的后

2016-04-18 15:00:13 478

原创 关于typedef的用法

在C++中定义结构体时可以采用如下的定义:struct student1{int num;char name[10];}stu1;//student1 stu1;此时的stu1即是一个结构体变量,可使用stu1.num=1来进行赋值。 在使用typedef时,将上述定义改为:typedef struct student2{int num;char

2016-04-18 14:12:42 181

四元数与姿态角转换matlab程序

四元数与姿态角转换matlab程序

2018-03-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除