- 博客(47)
- 资源 (11)
- 收藏
- 关注
转载 hamming distance
仔细阅读ORB的代码,发现有很多细节不是很明白,其中就有用暴力方式测试Keypoints的距离,用的是HammingLUT,上网查了才知道,hamming距离是相差位数。这样就好理解了。我理解的HammingLUT lut;result=lut((a),(b),size_t size):result=a与b的hamming distance+size;unsigned in
2013-12-07 09:54:19 1117
转载 C的宏定义实现模板函数——C的C++模板函数机制实现
近日移植TightVNC,关于RectangleUpdate的编码,处理不同色彩位深bits/pixe( 8,16,32)有着极其相似的处理方法,由于C中没有模板函数的概念,因而采用了宏定义来处理,与模板函数有着异曲同工之妙。现摘录分析如下(代码有删节):Rfbproto.c文件中/* CONCAT2 concatenates its two arguments.CONCAT2
2013-12-05 09:56:18 3786
转载 位运算能做什么
1、int变量的奇偶性(变量A) A&1 = 0 (偶数) A&1 = 1 (奇数)2、int变量第K位的操作。(变量A) (A>>K)&1 (比特位) A=A|(1置位) A=A&~(1清零)3、两整数的平均值(变量A、B) (A & B) +
2013-10-31 09:35:39 869
转载 微软面试(1) 答案
第一组题答案: 1)三根绳,第一根点燃两端,第二根点燃一端,第三根不点 第一根绳烧完(30分钟)后,点燃第二根绳的另一端,第二根绳烧完(45分钟)后,点燃第三根绳子两端,第三根绳烧完(1小时15分)后,计时完成 2)根据抽屉原理,4个 3)3升装满;3升-〉5升(全注入);3升装满;3升-〉5升(剩1升);5升倒掉;3升-〉5升(注入1升);3升装
2013-10-29 23:15:03 740
转载 微软面试题(1) 经典测试
相传为 微软的面试题。供大家参考学习1.烧一根不均匀的绳,从头烧到尾总共需要1个小时。现在有若干条材质相同的绳子,问如何用烧绳的方法来计时一个小时十五分钟呢? 2.你有一桶果冻,其中有黄色、绿色、红色三种,闭上眼睛抓取同种颜色的两个。抓取多少个就可以确定你肯定有两个同一颜色的果冻? 3.如果你有无穷多的水,一个3公升的提捅,一个5公升的提捅,两只提捅形状
2013-10-29 23:03:47 669
转载 数组类面试题
数组是最基本的数据结构,关于数组的面试题也屡见不鲜,本文罗列了一些常见的面试题,仅供参考,如果您有更好的题目或者想法,欢迎留言讨论。目前有以下18道题目,如果有好的题目,随时更新。数组求和求数组的最大值和最小值求数组的最大值和次大值求数组中出现次数超过一半的元素求数组中元素的最短距离求两个有序数组的共同元素求三个数组的共同元素找出数组中唯一的重复元素找出出现奇数次的元素求数组中满足给定和的
2013-10-27 12:11:53 1458
原创 原码 反码 补码 移码
本文将介绍计算机中的四种编码:原码、反码、补码和移码 计算机需要处理的信息包括数值信息以及各种符号,文字,图像语言等信息。但计算机内部的硬件只能表示两个状态0和1,计算机只能对二进制的数字信息进行传送、处理。加工和存储,因此,在计算机的内部,各种信息都必须经过数字化编码后才能被传送加工和处理,必须对这些信息进行编码。 各种数值数据在计算机中的表示的形式成为机器数,其特点是采用二进制
2013-10-25 16:28:07 1757
原创 用位运算实现求绝对值
一般情况下,如果要我们写一个求绝对值的函数,我们的实现很有可能会是这样:templateT abs_Normal(T tNum){ if(tNum > 0.0) return tNum; else return -tNum;}也就是说我们会用到一个if-else判断来决定是否反转符号位。在3D游戏软件,或一些对性能要求比较高的底层系
2013-10-25 09:20:21 3822
转载 战报交流问题分析(gossip problem)
原问题描述 战报交流:战场上不同的位置有N个战士(N>4),每个战士知道当前的一些战况,现在需要这N个战士通过通话交流,互相传达自己知道的战况信息,每次通话,可以让通话的双方知道对方的所有情报,设计算法,使用最少的通话次数,是的战场上的n个士兵知道所有的战况信息,不需要写程序代码,得出最少的通话次数。解答: 笔试时候想到的是: N-1个人围成一个环
2013-10-23 22:07:42 1041
转载 约瑟夫环问题两解
继续笔试准备ing……分享一下昨天做到的其中一题,其实题目很老,也做过n遍了,但复习起来也是颇有韵味,同时还发现另一种妙解,感觉不错的。问题描述: 约瑟夫环问题(Josephus) 用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出。写出C程序。(约瑟夫环问题 Josephus)解法一(My Solution): 思想
2013-10-23 21:04:12 905
原创 判断两个矩形是否有交集
长方形定义为rect(min,max) min和max是二维点(x,y)组成两个长方形a(mina, maxa)和b(minb, maxb)的交集c(minc, maxc)满足 minc.x = max(mina.x, minb.x) minc.y = max(mina.y, minb.y) maxc.x = min(maxa.x, maxb.x
2013-10-23 10:08:37 2280
原创 给一个正整数N,打印NxN的蛇形矩阵(二) 之空间复杂度O(1)
当N=4时,对应的蛇形矩阵如下图:图 1将该蛇形矩阵中元素的坐标代替其元素值时,得到如图2的矩阵,此时横坐标i和纵坐标j的和m=i+j具有一定的规律。当m为奇数时,原矩阵(图1中矩阵)中的元素值沿左下方增大,当m为偶数时,原矩阵中的元素值沿右上方增大。图 2当m当m>=N时,可重新将坐标原点定义为右下角(如图3),
2013-10-22 22:27:00 1652
原创 给一个正整数N,打印NxN的蛇形矩阵(一) 之空间复杂度O(NxN)
当N=4时,对应的蛇形矩阵如下图:图 1将该蛇形矩阵中元素的坐标代替其元素值时,得到如图2的矩阵,此时横坐标i和纵坐标j的和m=i+j具有一定的规律。当m为偶数时,原矩阵(图1中矩阵)中的元素值沿左下方增大,当m为奇数时,原矩阵中的元素值沿右上方增大。图 2在了解其规律后不难打印蛇形矩阵中元素,其代码如下:void printSnakeOfN
2013-10-22 16:33:41 2199
转载 关于i++和++i以及左值,右值
原本一直对i++和++i的区别不是很在意,觉得i++就是先用了i的值(用于赋值之类的操作),再i自加1. 而++i就是把i的值先自加1再用作其他操作. 很多人都问类似于j=++i+++i+i;之类的题目,个人觉得除了有些变态的学校的变态的考试会考.其他根本用不到.如果你在实际写代码的时候这样写,不但是给自己找麻烦,以后代码维护时,你也会被人在心里诅咒很久的...
2013-10-09 22:52:40 642 1
转载 List, ArrayList, LinkedList, Vector 及 Map, HashMap, HashTable区别
一、前言:本文是力求将这几点讲的通俗易懂,让大家同时也让自己在基础上,更加牢固点。Collection 有序的集合 ├------List 接口 │ ├LinkedList 链表 (异步, 线程非安全) │ ├ArrayList 顺序结构动态
2013-09-22 15:30:49 850
转载 [C++基础]重载、覆盖、多态与函数隐藏(4)
[C++基础]重载、覆盖、多态与函数隐藏 小结: 重载overload是根据函数的参数列表来选择要调用的函数版本,而多态是根据运行时对象的实际类型来选择要调用的虚virtual函数版本,多态的实现是通过派生类对基类的虚virtual函数进行覆盖override来实现的,若派生类没有对基类的虚virtual函数进行覆盖override的话,则派生类会自动继承基类的虚v
2013-09-11 23:06:30 835
转载 [C++基础]重载、覆盖、多态与函数隐藏(3)
[C++基础]重载、覆盖、多态与函数隐藏例8-2#include using namespace std; class Base{public: virtual void fun(int i){ cout }; class Derive : public Base{public: void fun(int i){
2013-09-11 23:04:38 702
转载 [C++基础]重载、覆盖、多态与函数隐藏(2)
[C++基础]重载、覆盖、多态与函数隐藏 好了,我们先来一个小小的总结重载与覆盖两者之间的特征 重载overload的特征:n 相同的范围(在同一个类中);n 函数名相同参数不同;n virtual 关键字可有可无。 覆盖override是指派生类函数覆盖基类函数,覆盖的特征是:n
2013-09-11 23:03:41 788
转载 [C++基础]重载、覆盖、多态与函数隐藏(1)
重载、覆盖、多态与函数隐藏 经常看到C++的一些初学者对于重载、覆盖、多态与函数隐藏的模糊理解。在这里写一点自己的见解,希望能够C++初学者解惑。 要弄清楚重载、覆盖、多态与函数隐藏之间的复杂且微妙关系之前,我们首先要来回顾一下重载覆盖等基本概念。 首先,我们来看一个非常简单的例子,理解一下什么叫函数隐藏hide。#include using namespace s
2013-09-11 23:02:30 921
转载 c语言中静态数组的定义和初始化
数组可以初始化,即在定义时,使它包含程序马上能使用的值。 例如,下面的代码定义了一个全局数组,并用一组Fibonacci数初始化: int iArray[10]={1,1,2,3,5,8,13,21,34,55); //初始化 void main() { //... } 初始化数组的值的个数不能多于数组元素个数,初始化数组的值也不能
2013-09-08 15:12:15 3503
转载 最短路算法(Shortest Paths Algorithm)
假如你有一张地图,地图上给出了每一对相邻城市的距离,从一个地点到另外一个地点,如何找到一条最短的路? 最短路算法要解决的就是这类问题。定义:给定一个有(无)向图,每一条边有一个权值 w,给定一个起始点 S 和终止点 T ,求从 S 出发走到 T 的权值最小路径,即为最短路径。最短路算法依赖一种性质:一条两顶点间的最短路径包含路径上其他最短路径。简单的说就是:最短路径的子路径是最短路径。这个用反证法
2013-08-18 22:19:34 1135
转载 局部特征如何利用彩色信息
(转载:http://blog.csdn.net/jiang1st2010/article/details/7647766)SIFT和SURF,比较稳定,描述子 比较鲁棒,好像非常棒的样子。但是有一点非常遗憾,就是他们在对图像进行处理的过程中,都把图像转化为灰度图像进行处理,这样就丢失了颜色信息。而颜色, 本身提供了很大的信息量,丢失了特别可惜。在这一讲中,我们就重点介绍一下改进的SI
2013-07-19 13:21:30 856
原创 华硕笔记本功能键
组合功能键:Fn+F1 进入待机或是休眠状态Fn+F2 无线网络开关Fn+F3 开启E-mailFn+F4 开启InternetFn+F5 调暗液晶显示屏幕亮度Fn+F6 调亮液晶显示屏幕亮度Fn+F7 液晶显示屏幕背光光源开关Fn+F8 切换液晶显示屏幕/外接显示器显示Fn+f9 关闭触摸板Fn+F11 降低音量Fn+F12 提高音量Fn+
2013-07-15 12:19:29 3504
原创 线性插值原理
什么是线性插值原理 什么是双线性插值?简单比方 原来的数值序列:0,10,20,30,40 线性插值一次为:0,5,10,15,20,25,30,35,40 即认为其变化(增减)是线性的,可以在坐标图上画出一条直线 为了方便理解,先考虑一维情况下的线性插值 对于一个数列c,我们假设c[a]到c[a+1]之间是线性变化的 那么对于浮点数x(a把这种插值方
2013-07-10 22:12:08 1993
转载 Windows XP【打印机】打印机共享设置
一、确认局域网内部计算机名称不冲突(如有相同之名称,请改之),并建立统一的“工作组”名。右击“我的电脑”,单击“属性”,点击“计算机名”选项卡,点击“更改”(重点是:计算机名称不能相同,工作组名称要一致)。 二、确认局域网内各电脑已安装“Microsoft 网络的文件和打印机共享”协议,正常情况都默认安装了。右击“网上邻居”,单击“属性”,右击“本地连接”, 单击“属性”, 在“常规”选项
2013-07-09 14:55:53 1137
转载 XP和Linux双系统启动菜单的修复
我们可能在安装WIN时,把GRUB或者LILO从MBR上清除。如果在没有系统引导软盘只有安装盘的情况下,所采取的解决解决办法。常 用恢复MBR的办法还有一种是用升级系统的办法,这种办法经过验证,是极不可靠的。我们经过近二三十次的实践,证明效果几乎很少,这个办法用于没有安装 GRUB的还是可行的。如果已经把GRUB安装上,后来就重装WINDOW或者别的操作系统而带的LILO,而导致系统不能正
2013-07-09 09:20:44 2292
转载 快速Linux重装XP系统
现在好多买回来的电脑装个原版LINUX系统,只是电脑厂家为了节约成本,预装LINUX是免费系统,为提升市场占有。而微软收费的正版家庭版系统一般也在400-500元之间。这个系统与WIN7、XP在界面与操作上基本不相同,从而造成好多买家的不习惯而纷纷来改回熟悉的WIN7、XP。 LINUX系统换XP系统,不是简单的一个GHOST XP系统盘就可解决的。如按平时方法设光盘启动点安
2013-07-08 20:21:26 1984
转载 U盘安装Windows 7(Win7)操作系统最简单、最安全方法
安装前准备工作:1、大于4G优盘一个2、Win7映像文件(.iso),如果没有映像文件,可以到软媒论坛下载。正式安装:以下方法经本人实践,个人认为是最简单、最安全的U盘安装Win7方法,话不多说,直接进入主题吧1、安装UltraISO2、用UltraISO打开win7映像文件。3、点击启动—>>>写入硬盘映像—>>>在弹出的“写入
2013-07-07 19:34:05 1186
转载 U盘安装XP操作系统最简单、最安全方法
网上找了好多文章,也尝试了N种方法,Such as USBoot.、flashboot、老毛桃制作的WinPE专用安装工具,可是最终都因为不同的原因失败了(例如:Line 4 of the INF file winnt.xpe is invalid),我发现网上好多资料都是千篇一律,由一个人写好以后大家都没有试验过就乱转载,甚至部分人根本不懂,就直接粘贴别人博客的文章,答非所问,很是误导提问者
2013-07-07 19:32:17 1412
原创 二叉树遍历(递归算法和非递归算法)
用图形的方式来表现二叉树的结构,非常直观,也容易理解。但是,对于计算机来说,只能处理线性序列,因此需要通过遍历将树中的结点变成某种意义的线性序列。二叉树的遍历是指按照一定次序访问二叉树中的所有节点,且每个节点仅被访问一次的过程。是最基本的运算,是其他运算的基础。二叉树的遍历方式:先序遍历,中序遍历,后序遍历和层次遍历。可以通过递归和迭代来实现二叉树各种次序的遍历, 迭代有两方法:
2013-07-05 21:50:35 888
转载 一个华科研究生导师的肺腑之言(主要适用于理工科)
各位科研同志们看看吧,仁者见仁智者见智,总归有点用,人太多,不一一@啦。1.作为你们的老师,我现在每周工作60小时,踏踏实实的60小时。阅读,实践,思考,讨论和请教,周而复始。其实这还不够用,因为我既要独立做这边自己的课题,还要协助各位完成你们的课题。那么对你们的要求降低一些,每周50小时吧。希望是真实而有效率的50小时,思维和四肢都处于激活状态的50小时。大家千万不要认为这有什么不得了的
2013-07-03 17:27:07 1127
转载 ORB算法分析(草稿)
ORB算法的论文来自"ORB: an efficient alternative to SIFT or SURF",作者是OpenCV维护和开发的公司willowgarage的,论文名字起的很牛气,摘要里说,ORB算法比sift算法效率高两个数量级。江湖上流传的说法是ORB算法综合性能在各种测评里是最好的。ORB算法是在FAST关键点检测+BRIEF特征上做的。
2013-07-02 21:12:02 1274
转载 利用特征点(Brief,ORB,SIFT)进行图像匹配,模板匹配
头文件在VS2010+OpenCV2.3.1 #include "StdAfx.h"#include "opencv2/core/core.hpp"#include "opencv2/calib3d/calib3d.hpp"#include "opencv2/features2d/features2d.hpp"#include "opencv2/imgproc/imgproc.hp
2013-07-02 20:53:57 3205
转载 a summary of local feature and decriptor
vision:主要研究这个方面,就讲一讲这方面的研究脉络吧:局部特征提取应该起源于运动分析的跟踪算法,Hannah和Movarac提出了关于角点的最原始的算法。Forstner和Gulch, Harris和Stephens把这个原始想法形式化为结构张量(或称二阶矩矩阵)的两个特征值的性质问题,在此基础之上,Noble,Rohr,Tomasi和 Kanade,Shi和Kanada等提出了各种
2013-07-02 20:29:33 847
转载 BRIEF特征
BRIEF特征的论文是"BRIEF: Binary Robust Independent Elementary Features",eccv2010。它出乎出乎意料的简单,真的是非常简单,令人感觉到这么简单的方式,是真的有效吗?1. 给定一副图2. 对图像做平滑处理。平滑处理,也就是高斯滤波,也就是blur operation,降低图像噪声。平滑处理在BRIEF中很
2013-07-02 20:22:29 1165
转载 比较描述子
局部特征描述子可以分为两类,(个人看法,欢迎批评):一是基于“绝对”值的,二是基于比较的。基于绝对值的是指诸如Sift,Surf,GLOH之类的描述子。一般的思路是将灰度,梯度等量化,构造直方图。这类描述子的判别性高,直观,但是有个通病就是计算复杂度高。基于比较的是指诸如Ferns,BRIEF,Orb,OSID,BRISK之类的描述子。一般的思路是通过比较预先训练的,或者随机点对的
2013-07-02 18:52:50 1670
转载 OpenCV_局部图像特征的提取与匹配_源代码
OpenCV的feature2d module中提供了从局部图像特征(Local image feature)的检测、特征向量(feature vector)的提取,到特征匹配的实现。其中的局部图像特征包括了常用的几种局部图像特征检测与描述算子,如FAST、SURF、SIFT、以及ORB。对于高维特征向量之间的匹配,OpenCV主要有两种方式:1)BruteForce穷举法;2)FLANN近似K近
2013-07-01 21:48:29 2090
转载 SIFT特征提取分析(特征点篇)
SIFT(Scale-invariant feature transform)是一种检测局部特征的算法,该算法通过求一幅图中的特征点(interest points,or corner points)及其有关scale 和 orientation 的描述子得到特征并进行图像特征点匹配,获得了良好效果,详细解析如下:算法描述SIFT特征不只具有尺度不变性,即使改变旋转
2013-07-01 21:40:00 1946
转载 学习OpenCV——Surf(特征点篇)&flann
Surf(Speed Up Robust Feature)Surf算法的原理 1.构建Hessian矩阵构造高斯金字塔尺度空间其实surf构造的金字塔图像与sift有很大不同,就是因为这些不同
2013-07-01 21:29:16 1642
转载 学习OpenCV——ORB & BRIEF(特征点篇)&Location
首先介绍什么是ORB:(此部分转自http://www.cvchina.info/2011/07/04/whats-orb/)ORB是是ORiented Brief的简称。ORB的描述在下面文章中:Ethan Rublee and Vincent Rabaud and Kurt Konolige and Gary Bradski,ORB: an efficient alternati
2013-07-01 21:20:56 1250
Emerging Topics in Computer Vision
2013-06-23
模式识别和机器学习笔记
2013-06-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人