ALG
文章平均质量分 69
atupal
pythoneralgorithmer
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
opencv 中的错误error: ‘SurfFeatureDetector’ was not declared in this scope
这是文档中的源代码,:但是编译的时候会有一下错误:error: ‘SurfFeatureDetector’ was not declared in this scope#include #include #include "opencv2/core/core.hpp"#include "opencv2/features2d/features2d.hpp"#include "open原创 2013-04-22 18:13:10 · 6039 阅读 · 1 评论 -
最大类间方差法(otsu)的原理
最大类间方差法(otsu)的原理: 阈值将原图象分成前景,背景两个图象。 前景:用n1, csum, m1来表示在当前阈值下的前景的点数,质量矩,平均灰度 后景:用n2, sum-csum, m2来表示在当前阈值下的背景的点数,质量矩,平均灰度 当取最佳阈值时,背景应该与前景差别最大,关键在于如何选择衡量差别的标准原创 2012-11-12 15:17:04 · 2417 阅读 · 0 评论 -
用svn下载opencv的源代码并生成ctags文件,用vim是自动补全
svn checkout https://opencvlibrary.svn.sourceforge.net/svnroot/opencvlibrary/trunk然后再到opencv/src目录下执行ctags -R --c++-kinds=+px --fields=+iaS --extra=+q .然后把生成的ctags在vim中使用就可以了原创 2012-10-31 20:27:34 · 1736 阅读 · 0 评论 -
傅里叶变换,其物理意义是什么?(转)
囧。找不打出处了。1、为什么要进行傅里叶变换,其物理意义是什么?傅立叶变换是数字信号处理领域一种很重要的算法。要知道傅立叶变换算法的意义,首先要了解傅立叶原理的意义。傅立叶原理表明:任何连续测量的时序或信号,都可以表示为不同频率的正弦波信号的无限叠加。而根据该原理创立的傅立叶变换算法利用直接测量到的原始信号,以累加方式来计算该信号中不同正弦波信号的频率、振幅和相位。和傅立叶原创 2012-10-17 18:41:10 · 1202 阅读 · 1 评论 -
验证码识别
如何识别高级的验证码一、验证码的基本知识1. 验证码的主要目的是强制人机交互来抵御机器自动化攻击的。2. 大部分的验证码设计者并不得要领,不了解图像处理,机器视觉,模式识别,人工智能的基本概念。3. 利用验证码,可以发财,当然要犯罪:比如招商银行密码只有6位,验证码形同虚设,计算机很快就能破解一个有钱的账户,很多帐户是可以网上交易的。4. 也有设计的比较转载 2012-10-11 01:27:16 · 1167 阅读 · 0 评论 -
A*寻路初探
原文地址:http://blog.vckbase.com/panic/archive/2005/03/20/3778.htmlA*寻路初探 GameDev.net作者: Patrick Lester译者:Panic 2005年3月18日译者序:很久以前就知道了A*算法,但是从未认真读过相关的文章,也没有看过代码,只是脑子里有个模糊的概念。这次决定从头开始,研究一下这个被转载 2012-10-11 01:17:04 · 1465 阅读 · 0 评论 -
计算机方面最好的论文
http://jeffhuang.com/best_paper_awards.html原创 2012-10-11 00:54:57 · 1192 阅读 · 0 评论 -
矩阵相乘的快速算法(施特拉森-Strassen算法)
原文作者:赵超 龚敏敏原文地址:http://dev.gameres.com/Program/Visual/3D/Mxquick.htm算法介绍矩阵相乘在进行3D变换的时候是经常用到的。在应用中常用矩阵相乘的定义算法对其进行计算。这个算法用到了大量的循环和相乘运算,这使得算法效率不高。而矩阵相乘的计算效率很大程度上的影响了整个程序的运行速度,所以对矩阵相原创 2012-09-15 21:35:24 · 8481 阅读 · 0 评论 -
OCR 数字识别相关资料
http://yann.lecun.com/exdb/mnist/原创 2012-10-07 13:51:00 · 975 阅读 · 0 评论 -
二分查找的三个版本,据说90%的计算机专家不能在2小时内写出完全正确的二分搜索算法。
折半查找法也称为二分查找法,它充分利用了元素间的次序关系,采用分治策略,可在最坏的情况下用O(log n)完成搜索任务。【基本思想】将n个元素分成个数大致相同的两半,取a[n/2]与欲查找的x作比较,如果x=a[n/2]则找到x,算法终止。如果xa[n/2],则我们只要在数组a的右半部继续搜索x。二分搜索法的应用极其广泛,而且它的思想易于理解。第一个二分搜索算法早在1946原创 2012-11-19 07:16:37 · 1798 阅读 · 0 评论 -
(转)高斯平滑或者说滤波器
发展到现在这个平滑算法的时候, 我已经完全不知道如何去命名这篇文章了, 只好罗列出一些关键字来方便搜索了.在之前我们提到过了均值滤波器, 就是说某像素的颜色, 由以其为中心的九宫格的像素平均值来决定. 在这个基础上又发展成了带权的平均滤波器, 这里的高斯平滑或者说滤波器就是这样一种带权的平均滤波器. 那么这些权重如何分布呢? 我们先来看几个经典的模板例子:尝试了使用原创 2012-11-18 01:42:11 · 1219 阅读 · 0 评论 -
独立集,覆盖集,支配集,最大团,最大匹配
独立集: 独立集是指图的顶点集的一个子集,该子集的导出子图不含边.如果一个独立集不是任何一个独立集的子集, 那么称这个独立集是一个极大独立集.一个图中包含顶点数目最多的独立集称为最大独立集。最大独立集 一定是极大独立集,但是极大独立集不一定是最大的独立集。支配集: 与独立集相对应的就是支配集,支配集也是图顶点集的一个子集,设S 是图G 的一个支配集,则对于图中的任意一个顶点转载 2013-03-01 18:51:03 · 971 阅读 · 0 评论 -
ACM进阶指南
一般要做到50行以内的程序不用调试、100行以内的二分钟内调试成功. 训练过ACM等程序设计竞赛的人在算法上有较大的优势,这就说明当你编程能力提高之后,主要时间是花在思考算法上,不是花在写程序与debug上。下面给个计划你练练:第一阶段:练经典常用算法,下面的每个算法给我打上十到二十遍,同时自己精简代码,因为太常用,所以要练到写时不用想,10-15分钟内打完,甚至转载 2013-02-04 05:14:47 · 749 阅读 · 0 评论 -
python使用3目运算符
转自:http://hi.baidu.com/tuuboo/item/7624433b516f89c7392ffab5c、c++都大家都熟悉三目运算符 C?X:y实际上python中可以这么使用:(1)result=(x(2)result=x if xPython三目运算,and or陷阱在C语言中,三目运算经常用到(cond?a转载 2013-01-29 12:41:19 · 1454 阅读 · 0 评论 -
用python 4行搞定基数排序
from random import randint def main(): A = [randint(1, 99999999) for _ in xrange(9999)] for k in xrange(8): S = [ [] for _ in xrange(10)] for j i原创 2013-01-27 22:10:44 · 1584 阅读 · 0 评论 -
纯js实现瀑布流(自动适应窗口大小)
用瀑布流来展现照片再好不过了,下面是瀑布流(每一行的长度等于浏览器窗口的长度)的一种实现方式,也可以用css3实现,很简单,谷歌一下你就知道。我的思路大概是一张一张的图片插入,当这一行的图片保持长宽比例不变并且高度低于250时就完成一个了循环,即这一行插入进去了,。然后进入下一个循环插入下一行。公式很简单,假设这一行当前的高度为h,则插入一张高和宽为(x,y)的图片时,满足下列关系:h原创 2013-01-11 01:22:39 · 6531 阅读 · 0 评论 -
如何成为一名黑客?
hacker一直是技术的象征人物,怎样成为一名hacker呢。有一篇很经典的文档:http://catb.org/~esr/faqs/hacker-howto.html原创 2013-01-02 20:45:31 · 881 阅读 · 0 评论 -
计算机科学中最重要的32个算法
计算机科学中最重要的32个算法分类: 经典转载2012-12-26 21:10 431人阅读 评论(5) 收藏 举报英文原址:http://www.risc.jku.at/people/ckoutsch/stuff/e_algorithms.html 奥地利符号计算研究所(Research Institute for Sy转载 2012-12-27 11:20:32 · 577 阅读 · 0 评论 -
如何学习计算机图像学(来自人人数学的美学世界小站)
IT人一定要记住,不要指望通过一本教材就学会计算机图形学,它比你想象的要复杂的多。一、 引言 计算机图形学是用计算机来画东西的学科,数字图象处理是把外界获得的图象用计算机进行处理的学科。在法国,图形图象是一门课程。 如何学习计算机图形学呢?除了计算机图形学的基础知识以外,你还需要有以下的知识,你懂的越多,当然做的越好。原创 2012-11-21 15:23:39 · 1718 阅读 · 0 评论 -
计算机图形相关资料(来自人人:数学的美学世界小站)
做机器视觉和图像处理方面的研究工作,最重要的两个问题:其一是要把握住国际上最前沿的内容;其二是所作工作要具备很高的实用背景。解决第一个问题的办法就是找出这个方向公认最高成就的几个超级专家(看看他们都在作什么)和最权威的出版物(阅读上面最新的文献),解决第二个问题的办法是你最好能够找到一个实际应用的项目,边做边写文章。 做好这几点的途径之一就是利用网络资源,利用权威网站和专家们的个人主页。原创 2012-11-20 22:29:18 · 1527 阅读 · 0 评论 -
OpenCV 编程入门
英文地址(http://www.cs.iit.edu/~agam/cs512/lect-notes/opencv-intro/opencv-intro.html)OpenCV 编程入门美国伊力诺理工学院计算机科学系Gady Adam翻译:Mensch2006年11月22日 内容简介OpenCV概述资料链接Ope翻译 2012-10-05 23:34:23 · 1467 阅读 · 0 评论 -
AC自动机 trie
AC 自动机就是在 trie 上做 KMP ,先构造所有字符串的一个 trie ,再添加失败边(failure links),失败边跟 KMP 里的“失败函数”是一样的道理。trie树实际上是一个DFA(Deterministic finite automaton),通常用转移矩阵表示。行表示状态,列表示输入字符,(行, 列)位置表示转移状态。这种方式的查询效率很高,但由于稀疏的现象严重,空间原创 2012-09-13 17:38:23 · 1067 阅读 · 0 评论 -
Nim游戏和sg函数
整里如下:Nim游戏是组合游戏(Combinatorial Games)的一种,准确来说,属于“Impartial Combinatori Games”(以下简称 ICG)。满足以下条件的游戏是ICG(可能不太严谨):1、有两名选手;2、两名选手交替对游戏进行移动(move),每次一步,选手可以在(一般而言)有限的合法移动集合中任选一种进行移动;3、对于游戏的任何一原创 2012-09-04 10:36:07 · 1125 阅读 · 0 评论 -
单源最短路Dijkstra's algorithm径
整理收录了wiki和http://www.nocow.cn的一部分算法:迪科斯彻算法(Dijkstra's algorithm)伪代码在下面的算法中,u := Extract_Min(Q) 在顶点集合 Q 中搜索有最小的 d[u] 值的顶点 u。这个顶点被从集合 Q 中删除并返回给用户。 1 function Dijkstra(G, w, s) 2原创 2012-08-24 11:56:40 · 946 阅读 · 0 评论 -
最小生成树(MST)算法
总结自wiki普里姆算法(Prim算法)从单一顶点开始,普里姆算法按照以下步骤逐步扩大树中所含顶点的数目,直到遍及连通图的所有顶点。输入:一个加权连通图,其中顶点集合为V,边集合为E;初始化:Vnew = {x},其中x为集合V中的任一节点(起始点),Enew = {};重复下列操作,直到Vnew = V:在集合E中选取权值最小的边(u, v),其中u为集合Vn原创 2012-08-24 10:33:01 · 1115 阅读 · 0 评论 -
相似图片搜索的一些算法
刚开始做,慢慢完善:基于梯度算子的蚁群图像分割算法边缘检测图像修复将目标图片进行特征提取,描述图像的算法很多,用的比较多的是:SIFT描述子,指纹算法函数,bundling features算法,hash function(散列函数)等。也可以根据不同的图像,设计不同的算法,比如图像局部N阶矩的方法提取图像特征。原创 2012-07-20 10:17:51 · 864 阅读 · 0 评论 -
poj1001Exponentiation高精度幂运算
时隔半年,终于AC了,加油!#include #include using namespace std;void multi(int *, int *, int[]);int main(){ int a[100]; int b[100]; int c[100]; char s[100]; int n;原创 2012-06-01 19:13:43 · 814 阅读 · 0 评论 -
第一次参加topcoder的感悟和解题报告
SRMdiv2第三题:(头两题太水,就不贴出来了. . . . . . )参照大神的代码,终于理解(至少我认为基本懂了)了:下面是原题,大意是有N本书,给你一个数组a,a[n] = m代表的意思是要读懂第N本书就必须先读第m本书,如果m = -1,则不需要读其他的书便可读懂...然后求,:如果随机读这N本书,问能够读懂的书的数目的数学期望,思路:算出每一本书的期望,加起来就是总数目的期原创 2012-03-18 17:54:17 · 1518 阅读 · 0 评论 -
括号匹配
# include# includechar str[105];int is(int i,int j){ if(str[i]==']' && str[j]=='[') return 1; if(str[i]==')' && str[j]=='(') return 1; return 0;}int main(){ int i,j,k,len,ncase,转载 2012-03-10 20:25:42 · 757 阅读 · 0 评论 -
动态规划
Dynamic programming (简称DP)可以用来解决一类很重要的问题。解决这类问题将会极大的提高你的能力。我将试着帮助您了解如何使用DP来解决问题。这篇文章以例子作为基础,因为空谈理论不太容易理解。 注意: 如果您不太想阅读某节或者已经知道了所要讨论的话题-略过它去读下面的部分。Introduction (Beginner)什么是动态规划,它怎样描述?转载 2012-03-10 02:49:01 · 972 阅读 · 0 评论 -
0/1背包问题动态规划详解
动态规划是用空间换时间的一种方法的抽象。其关键是发现子问题和记录其结果。然后利用这些结果减轻运算量。比如01背包问题。/* 一个旅行者有一个最多能用M公斤的背包,现在有N件物品,它们的重量分别是W1,W2,...,Wn,它们的价值分别为P1,P2,...,Pn.若每种物品只有一件求旅行者能获得最大总价值。输入格式:M,NW1,P1W2,P2......转载 2012-03-06 23:58:11 · 807 阅读 · 0 评论 -
博弈论知识汇总
原文地址有一种很有意思的游戏,就是有物体若干堆,可以是火柴棍或是围棋子等等均可。两个人轮流从堆中取物体若干,规定最后取光物体者取胜。这是我国民间很古老的一个游戏,别看这游戏极其简单,却蕴含着深刻的数学原理。下面我们来分析一下要如何才能够取胜。(一)巴什博奕(Bash Game):只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个。最后取转载 2012-08-25 12:02:57 · 898 阅读 · 0 评论 -
ACM模板列表
我也不知道原文出自哪了。囧。。。1:数学1.1:数论1.1.1:中国剩余定理1.1.2:欧拉函数1.1.3:欧几里得定理1.1.3.1:欧几里得定理1.1.3.2:扩展欧几里得1.1.4:大数分解与素数判定1.1.5:佩尔方程1.2:组合数学1.2.1:排列组合原创 2012-09-06 22:48:44 · 1033 阅读 · 0 评论 -
并行图像细化算法和C代码实现 (转)
试了一下,效果还不错原文地址并行图像细化算法和C代码实现图像细化一般作为一种图像预处理技术出现,目的是提取源图像的骨架,即是将原图像中线条宽度大于1个象素的线条细化成只有一个象素宽,形成'骨架',形成骨架后能比较容易的分析图像,如提取图像的特征.细化分成串行细化和并行细化2中,串行细化即是一遍检测满足细化条件的点一边删除细化点,并行细化即是检测细化点的时候不原创 2012-10-01 23:58:29 · 2640 阅读 · 1 评论 -
平凡而又神奇的贝叶斯方法
原文在这里平凡而又神奇的贝叶斯方法By 刘未鹏(pongba)C++的罗浮宫(http://blog.youkuaiyun.com/pongba)TopLanguage(http://groups.google.com/group/pongba)概率论只不过是把常识用数学公式表达了出来。——拉普拉斯记得读本科的时候,最喜欢到城里的计算机书店里面去闲逛转载 2012-09-14 16:03:48 · 2114 阅读 · 0 评论 -
怎样写一个拼写检查器 (python)
原文在这里作者:Peter Norvig翻译: Eric You XU怎样写一个拼写检查器 上个星期, 我的两个朋友 Dean 和 Bill 分别告诉我说他们对 Google 的快速高质量的拼写检查工具感到惊奇. 比如说在搜索的时候键入 [speling], 在不到 0.1 秒的时间内, Google 会返回: 你要找的是不是 [spelling]. (Yahoo!原创 2012-09-14 16:00:49 · 1200 阅读 · 0 评论 -
qsort 源代码
/****qsort.c - quicksort algorithm; qsort() library function for sorting arrays* Copyright (c) Microsoft Corporation. All rights reserved.**Purpose:* To implement the qsort() routine原创 2012-10-02 06:07:58 · 1415 阅读 · 0 评论 -
二分图最大匹配--匈牙利算法
二分图是什么就不啰嗦了。匈牙利算法的核心就是:不断地找一条增广路径(增广路的定义(也称增广轨或交错轨): 若P是图G中一条连通两个未匹配顶点的路径,并且属M的边和不属M的边(即已匹配和待匹配的边)在P上交替出现,则称P为相对于M的一条增广路径。(M为一个匹配)),然后反转这条路径,则匹配的边就会增加1C语言代码:#include#include bool g[201]原创 2012-09-10 16:50:42 · 1066 阅读 · 0 评论 -
树状数组(Binary Indexed Tree)
转载自:phylips@bmy 出处:http://duanple.blog.163.com/blog/static/7097176720081131113145832/虽然网上有很多介绍了,我还是要写一下吧,尽量从它的起源,如何被发现,以及为什么应该是这样的来写,单纯的使用很简单,也不是学习的目的,理解有助于记忆吧,当然可能还有理解不到的地方。起源树状数组英文名称是B原创 2012-09-09 11:47:26 · 1019 阅读 · 0 评论 -
kmp算法
我的实现代码(C):# include # include # include int* pre_process(char *B) { int l = strlen(B); int *re; re = (int *) malloc (sizeof(int) * l); memset(re, 0, sizeof(int) * l); int j = -1; re[0] =原创 2012-09-08 22:05:01 · 941 阅读 · 0 评论
分享