2015年11月5日

基于Gabor滤波器的纹理分割

摘要: Gabor变换是一种短时傅里叶变换方法,其实质是在傅里叶变换中加入一个窗函数,通过窗函数来实现信号的时频分析。当选取高斯函数作为窗函数时,短时傅里叶变换称为Gabor变换。在一维情况中,Gabor变换代表着时频分析的最优方法,二维情况中则是空间频域分析的方法。对于图像来说,窗函数决定了它在空域的局部... 阅读全文

posted @ 2015-11-05 10:39 moffis 阅读(3025) 评论(0) 推荐(0) 编辑

2015年11月2日

surf特征点检测

摘要: 不重复造轮子,但首先你得会造轮子。一个笑话:Theory is when you know everything but nothing works.Practice is when everything works but no one knows why.In our lab,theory an... 阅读全文

posted @ 2015-11-02 19:51 moffis 阅读(6830) 评论(0) 推荐(0) 编辑

2015年10月30日

Horn-Schunck光流法

摘要: 关于光流法请看我之前的博客Lukas-Kanade光流法。这里介绍Horn-Schunck光流法。Horn-Schunck光流法求得的是稠密光流,需要对每一个像素计算光流值,计算量比较大。而Lucas-Kanade光流法只需计算若干点的光流,是一种稀疏光流。数学原理这里就不介绍了,直接说算法步骤。用... 阅读全文

posted @ 2015-10-30 22:55 moffis 阅读(5269) 评论(1) 推荐(0) 编辑

2015年10月29日

LogitBoost学习

摘要: 首先列出参考文献:Additive Logistic Regression: a Statistical View of Boosting还是J. Friedman的文章。这里主要讲LogitBoost,discrete adaboost和real adaboost相对LogitBoost和gent... 阅读全文

posted @ 2015-10-29 11:31 moffis 阅读(4212) 评论(0) 推荐(0) 编辑

2015年10月27日

hough forest目标检测原理

摘要: 霍夫森林是随机森林和霍夫投票在计算机视觉中的应用,可以用在物体检测,跟踪和动作识别。09年cvpr上提出霍夫森林的文章——Class-Specific Hough Forests for Object Detection关于hough变换,请看我之前的一篇博客Hough直线检测关于随机森林,请看我的... 阅读全文

posted @ 2015-10-27 23:42 moffis 阅读(3847) 评论(1) 推荐(1) 编辑

2015年10月24日

Gradient Boosting Decision Tree学习

摘要: Gradient Boosting Decision Tree,即梯度提升树,简称GBDT,也叫GBRT(Gradient Boosting Regression Tree),也称为Multiple Additive Regression Tree(MART),阿里貌似叫treelink。首先学习G... 阅读全文

posted @ 2015-10-24 11:50 moffis 阅读(1399) 评论(0) 推荐(0) 编辑

2015年10月22日

apriori推荐算法

摘要: Apriori算法是一种挖掘关联规则的频繁项集算法,其核心思想是通过候选集生成和情节的向下封闭检测两个阶段来挖掘频繁项集。概念(1)支持度(Support):定 义为 supp(X) = occur(X) / count(D) = P(X)(有绝对支持度(个数)和相对支持度(百分比)之分)。(2)频... 阅读全文

posted @ 2015-10-22 21:32 moffis 阅读(508) 评论(0) 推荐(0) 编辑

2015年10月21日

谱聚类的实现

摘要: 开始用accumulate做加和,结果发现laplacian矩阵求特征值后最小的特征值不是0,这是有问题的,聚类的准确率不是很高,原因也找不到。后来一步步查,发现diag矩阵有问题,最终查到accumulate是int相加,不准确,修改后准确率增加。// spectral-cluster.cpp :... 阅读全文

posted @ 2015-10-21 00:18 moffis 阅读(661) 评论(0) 推荐(0) 编辑

2015年10月2日

随机森林分类器的实现

摘要: 参见博客Random Forest随机森林算法下面是我实现的简易版本决策树ID3Tree.h//#pragma once#ifndef ID3#define ID3#include#includeusing namespace std;#define Epsilon 0.000000001clas... 阅读全文

posted @ 2015-10-02 22:28 moffis 阅读(447) 评论(0) 推荐(0) 编辑

2015年10月1日

isodata聚类算法的实现

摘要: ISODATA算法是在k-均值算法的基础上,增加对聚类结果的“合并”和“分裂”两个操作,并设定算法运行控制参数的一种聚类算法。迭代次数会影响最终结果,迭代参数选择很重要。算法步骤如下:①初始化设定控制参数:c:预期的类数;Nc:初始聚类中心个数(可以不等于c);TN:每一类中允许的最少样本数目(若少... 阅读全文

posted @ 2015-10-01 00:23 moffis 阅读(1319) 评论(0) 推荐(1) 编辑

2015年9月30日

kmeans聚类的实现

摘要: Kmeans算法流程从数据中随机抽取k个点作为初始聚类的中心,由这个中心代表各个聚类计算数据中所有的点到这k个点的距离,将点归到离其最近的聚类里调整聚类中心,即将聚类的中心移动到聚类的几何中心(即平均值)处,也就是k-means中的mean的含义重复第2步直到聚类的中心不再移动,此时算法收敛最后km... 阅读全文

posted @ 2015-09-30 01:39 moffis 阅读(244) 评论(0) 推荐(0) 编辑

2015年9月23日

meanshift聚类的实现

摘要: 参见http://blog.csdn.net/u014568921/article/details/45197027// meanshift-cluster.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include#include#include#inclu... 阅读全文

posted @ 2015-09-23 23:04 moffis 阅读(415) 评论(0) 推荐(0) 编辑

2015年9月20日

birch聚类算法

摘要: 参考百度百科http://baike.baidu.com/link?url=LDYen7bEqt8o2l5mUrnZjQk1topFi36-MwLuhjuGf-1z4sQFtFq1xCEe0TCJwYVjGbu0C6cpuVMFIxNglvSnoa外加http://www.cnblogs.com/z... 阅读全文

posted @ 2015-09-20 20:19 moffis 阅读(653) 评论(1) 推荐(0) 编辑

2015年9月18日

DBSCAN聚类算法的实现

摘要: 参考wikihttps://en.wikipedia.org/wiki/DBSCANDBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一个比较有代表性的基于密度的聚类算法。与划分和层次聚类方法不同,它将簇定义为密度... 阅读全文

posted @ 2015-09-18 14:55 moffis 阅读(621) 评论(0) 推荐(0) 编辑

2015年9月15日

discrete adaboost的C++实现

摘要: 参考之前的博文,AdaBoost算法学习实现的c++代码//adaboost.h#ifndef ADABOOST_H#define ADABOOST_H#include#include#include#includeusing namespace std;#define FEATURETYPE do... 阅读全文

posted @ 2015-09-15 22:22 moffis 阅读(646) 评论(0) 推荐(0) 编辑

2015年9月12日

kd-tree的实现

摘要: 参考百度百科http://baike.baidu.com/link?url=JLBeRUhL6WLyp8R6TAFDD8swLfazjQnOaSXBY3AydkrVQG8XpCJ8EIh4bWpB02wQxxzPrK723ulRCzSKxkFLy_下面是我的实现// kd-tree.cpp : 定义... 阅读全文

posted @ 2015-09-12 18:37 moffis 阅读(285) 评论(0) 推荐(0) 编辑

2015年9月11日

红黑树的实现——插入

摘要: 红黑树(Red Black Tree) 是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。红黑树和AVL树类似,都是在进行插入和删除操作时通过特定操作保持二叉查找树的平衡,从而获得较高的查找性能。写红黑树只需要了解以下性质性质1. 节点是红色或黑色。性质2. 根节... 阅读全文

posted @ 2015-09-11 23:04 moffis 阅读(183) 评论(0) 推荐(0) 编辑

24位位图转8位灰度图

摘要: 如何用RGB转化得到的灰度数据写入8位bmp文件,请看如下代码其中lp中存储的是已经转化得到的现成灰度数据,标红的代码是与24位位图不同的地方。//(整个位图由文件头、信息头、调色板、颜色表这四部分组合构成 typedef long LONG; typedef unsigned long DWORD... 阅读全文

posted @ 2015-09-11 14:15 moffis 阅读(1460) 评论(0) 推荐(0) 编辑

将RGB数据写入BMP位图文件

摘要: CFile file; //定义一个文件对象 _ASSERTE(file.Open(CString("E:\\94.bmp"), CFile::modeRead));//打开文件 DWORD dwLen = file.GetLengt... 阅读全文

posted @ 2015-09-11 11:41 moffis 阅读(1132) 评论(0) 推荐(0) 编辑

2015年9月6日

splay树的实现

摘要: 伸展树(Splay Tree),也叫分裂树,是一种二叉排序树,它能在O(log n)内完成插入、查找和删除操作。它由Daniel Sleator和Robert Tarjan创造,后者对其进行了改进。它的优势在于不需要记录用于平衡树的冗余信息。在伸展树上的一般操作都基于伸展操作。伸展树并没有AVL的平... 阅读全文

posted @ 2015-09-06 00:31 moffis 阅读(266) 评论(0) 推荐(0) 编辑

2015年9月2日

AVL树的实现

摘要: 平衡二叉树(Balanced Binary Tree)又被称为AVL树(有别于AVL算法),且具有以下性质:它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。下面是我的实现,这个算法还是纠结了蛮久的// AVL-Tree.cpp : 定义控制台应用程序的入... 阅读全文

posted @ 2015-09-02 18:13 moffis 阅读(190) 评论(0) 推荐(0) 编辑

2015年8月27日

数据结构堆的实现

摘要: 堆的实现// heap.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include#include#includeusing namespace std;#define LARGENUM 1000000class Heap{private: vector ar... 阅读全文

posted @ 2015-08-27 20:21 moffis 阅读(167) 评论(0) 推荐(0) 编辑

2015年8月26日

散列表(哈希表)的实现

摘要: 散列函数直接用key%size的形式,size为散列表的大小。冲突处理采用平方探测法,为保证可以探测到整个散列表空间,散列表大小设置为4k+3形式的素数。当散列表中的元素过多时会造成性能下降,这时应该倍增散列表的大小,重新计算原来散列表中每个元素在新的散列表中的位置。散列表的实现// HashTab... 阅读全文

posted @ 2015-08-26 19:01 moffis 阅读(217) 评论(0) 推荐(0) 编辑

2015年8月25日

排列与组合的实现

摘要: 排列与组合,递归实现// Permutation and Combination.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include#include#includeusing namespace std;vector>aaa;set>solu;void... 阅读全文

posted @ 2015-08-25 10:58 moffis 阅读(161) 评论(0) 推荐(0) 编辑

2015年8月24日

c++运算符重载

摘要: C++不允许把下标运算符函数作为外部函数来定义,它只能是非静态的成员函数。注意操作符重载作为友元函数和成员函数的区别// person.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include #include using namespac... 阅读全文

posted @ 2015-08-24 16:48 moffis 阅读(185) 评论(0) 推荐(0) 编辑

2015年8月22日

二叉树的非递归遍历

摘要: 二叉树的非递归遍历,这个实现的是先根遍历// Traverse-Tree.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include using namespace std;struct BiNOde{ int ele; Bi... 阅读全文

posted @ 2015-08-22 22:41 moffis 阅读(139) 评论(0) 推荐(0) 编辑

2015年8月19日

tsp问题——遗传算法解决

摘要: TSP问题最简单的求解方法是枚举法。它的解是多维的、多局部极值的、趋于无穷大的复杂解的空间,搜索空间是n个点的所有排列的集合,大小为(n-1)!。可以形象地把解空间看成是一个无穷大的丘陵地带,各山峰或山谷的高度即是问题的极值。求解TSP,则是在此不能穷尽的丘陵地带中攀登以达到山顶或谷底的过程。这一篇... 阅读全文

posted @ 2015-08-19 19:57 moffis 阅读(895) 评论(0) 推荐(0) 编辑

2015年8月18日

八数码问题——双向广度优先搜索解决

摘要: 八数码问题:在3×3的方格棋盘上,摆放着1到8这八个数码,有1个方格是空的,其初始状态如图1所示,要求对空格执行空格左移、空格右移、空格上移和空格下移这四个操作使得棋盘从初始状态到目标状态。 搜... 阅读全文

posted @ 2015-08-18 03:14 moffis 阅读(432) 评论(0) 推荐(0) 编辑

2015年8月17日

求最长公共子序列

摘要: 最长公共子序列,英文缩写为LCS(Longest Common Subsequence)。其定义是,一个序列 S ,如果分别是两个或多个已知序列的子序列,且是所有符合此条件序列中最长的,则 S 称为已知序列的最长公共子序列。而最长公共子串(要求连续)和最长公共子序列是不同的。#include "st... 阅读全文

posted @ 2015-08-17 19:02 moffis 阅读(204) 评论(0) 推荐(0) 编辑

2015年8月10日

AC自动机

摘要: 要学会AC自动机,我们必须知道什么是Trie,也就是字典树。最好对KMP算法也有些了解。Trie树和KMP算法我之前博客都有写过,感兴趣的可以看看。简单叙述下问题,现在给出"hsay";"ah";"sahe";"he";"say";"herhb";"aher";"erhs"共8个关键词,要问字符串"... 阅读全文

posted @ 2015-08-10 00:58 moffis 阅读(164) 评论(0) 推荐(0) 编辑

2015年8月8日

A*搜索算法

摘要: A*搜寻算法俗称A星算法。这是一种在图形平面上,有多个节点的路径,求出最低通过成本的算法。常用于游戏中的NPC的移动计算,或线上游戏的BOT的移动计算上。这种算法的所获得的路径并不一定是最短路径但一定是我们所关注的某一方面价值最“优”的路径。我们将地图划分为一个个节点,从出发点到目标的路径就可以使用... 阅读全文

posted @ 2015-08-08 23:04 moffis 阅读(209) 评论(0) 推荐(0) 编辑

2015年8月7日

判断有向图是否有环及拓扑排序

摘要: 对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边(u,v)∈E(G),则u在线性序列中出现在v之前。通常,这样的线性序列称为满足拓扑次序(Topological Order)的序列,简称拓扑序... 阅读全文

posted @ 2015-08-07 22:22 moffis 阅读(1813) 评论(0) 推荐(0) 编辑

2015年8月3日

线索二叉树的生成

摘要: n个结点的二叉链表中含有n+1(2n-(n-1)=n+1)个空指针域。利用二叉链表中的空指针域,存放指向结点在某种遍历次序下的前趋和后继结点的指针(这种附加的指针称为"线索")。这种加上了线索的二叉链表称为线索链表,相应的二叉树称为线索二叉树(Threaded BinaryTree)。根据线索性质的... 阅读全文

posted @ 2015-08-03 14:28 moffis 阅读(428) 评论(0) 推荐(0) 编辑

2015年8月2日

最小生成树

摘要: 一个有 n 个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有 n 个结点,并且有保持图连通的最少的边。最小生成树在n个顶点的情形下,有n-1条边。生成树是对连通图而言的,是连同图的极小连通子图,包含图中的所有顶点,有且仅有n-1条边。非连通图的生成树则组成一个生成森林;若图中有n个顶点... 阅读全文

posted @ 2015-08-02 20:14 moffis 阅读(168) 评论(0) 推荐(0) 编辑

2015年8月1日

最短路径问题

摘要: 最短路径在无向图 G=(V,E) 中,假设每条边 E[i] 的长度为 w[i],找到由顶点 V0 到其余各点的最短值。#include "stdafx.h"#include#includeusing namespace std;#define N 9#define MIN 1000000typede... 阅读全文

posted @ 2015-08-01 23:55 moffis 阅读(171) 评论(0) 推荐(0) 编辑

2015年7月29日

八皇后问题

摘要: 在8X8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。试解出92种结果。// eight_queen.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include#includeusing na... 阅读全文

posted @ 2015-07-29 02:01 moffis 阅读(177) 评论(0) 推荐(0) 编辑

2015年7月28日

马的遍历问题

摘要: 在10*9的中国象棋的棋盘中,马只能走“日”字,不考虑蹩脚。马从任意位置处出发,把棋盘的每一格都走一次,且只走一次,设计程序求解。// horse_traverse.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include#includeusing name... 阅读全文

posted @ 2015-07-28 01:01 moffis 阅读(598) 评论(0) 推荐(0) 编辑

2015年7月24日

字典树

摘要: 字典树又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希树高。它有3个基本性质:1.根节... 阅读全文

posted @ 2015-07-24 23:36 moffis 阅读(194) 评论(0) 推荐(0) 编辑

2015年7月21日

二叉排序树的插入与删除

摘要: 二叉排序树的插入与删除可能会破坏二叉排序树的性质,现在要求插入和删除操作保持其性质二叉排序树或者是一棵空树,或者是具有下列性质的二叉树:(1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值;(2)若右子树不空,则右子树上所有结点的值均大于或等于它的根结点的值;(3)左、右子树也分别为二叉排... 阅读全文

posted @ 2015-07-21 10:31 moffis 阅读(485) 评论(0) 推荐(0) 编辑

2015年7月19日

判别二叉树是否为二叉排序树

摘要: 设二叉树用二叉链表表示,且每个结点的键值互不相同,请编写判别该二叉树是否为二叉排序树的非递归算法。二叉排序树或者是一棵空树,或者是具有下列性质的二叉树:(1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值;(2)若右子树不空,则右子树上所有结点的值均大于或等于它的根结点的值;(3)左、右子... 阅读全文

posted @ 2015-07-19 22:25 moffis 阅读(1223) 评论(0) 推荐(0) 编辑

导航