摘要: FLANN库(http://www.cs.ubc.ca/~mariusm/index.php/FLANN/FLANN/)是SIFT作者Lowe和他的学生Marius Muja提出的快速处理高维特征匹配的算法。特征匹配在模式识别中往往是非常耗时的,尤其是特征维数高并且特征数量巨大时,该算法较好的解决了这一问题。 官方网站上给出的了源代码下载,解压后src/matlab下有相应的mex接口文件nearest_neighbors.cpp,直接用mex编译该文件链接时会报缺少相关头文件错误,将其移到src/cpp下再在MATLAB里用mex编译,报“error LNK2019: ”错误,似乎是头文件. 阅读全文
posted @ 2012-12-13 17:13 rocwoods 阅读(2603) 评论(3) 推荐(0) 编辑
摘要: 这两天在http://projecteuler.net/problem=16看到这样一个问题。本来这个利用MATLAB的符号计算是相当easy,一句话即可搞定:sum(char(sym('2^1000'))-'0') 结果是1366。但如果不用符号计算的话就需要些技巧了。注意到大数可以用10的n次幂的多项式来表示,因此大数相乘对应的就是多项式乘积,也就是卷积。因此可以得到下面MATLAB代码:a = num2str(2^50)-'0';for k = 1:2a = BigInteM(a,a);endb = a;for k = 1:2b = Big 阅读全文
posted @ 2012-02-11 14:04 rocwoods 阅读(320) 评论(0) 推荐(0) 编辑
摘要: 我们先来看这样一个序列: f(x,n): f(x,1) = x; f(x,2) = xx; f(x,n)=x...(n个)x ; 很容易的,我们可以计算f(2,2) = 22=4;f(2,5)=22^(2^4)=22^16 =265536约=2.00352993*1019728;想必到这里,大家已经明白这个数列当x不太大的时候(譬如仅仅为2),趋向无穷的速度已经是惊人到无法想象。怎么个无法想象呢,让我们以基本的科学记数法为例来说说明,众所周知,科学记数法天生就是为了表示大数的。比如可观测宇宙(以地球为中心,大约100亿至200亿光年的球体)中含有大约数千亿个星系,每个星系平均含有千亿颗恒星(. 阅读全文
posted @ 2012-01-08 14:24 rocwoods 阅读(1124) 评论(0) 推荐(0) 编辑
摘要: 对于算法开发人员来说,MATLAB是常用的一个工具,但是由于历史原因以及传统认识的偏差,我们很多人只是把MATLAB当成一个高级计算器或者算法验证工具。很多人在编写MATLAB程序的时候,没有发挥MATLAB的优势,或者生硬的应用向量化编程,导致MATLAB程序运行效率很低,进而得出MATLAB只适合做预研,不适合产品部署的结论。 从大学时代开始接触MATLAB到现在,掐指一算马上10个年头了,从读研到现在的7年时间里,一直在研究MATLAB,使用MATLAB。对MATLAB的认识越来越多,也越来越觉得太博大精深,其多学科、跨领域的应用背景决定了我们每个个人不大可能涉猎其全部内容。在这里,仅. 阅读全文
posted @ 2011-11-17 23:14 rocwoods 阅读(3563) 评论(0) 推荐(0) 编辑