- 博客(27)
- 资源 (35)
- 收藏
- 关注
原创 图像分析:LBP特征解析与代码
LBP(Local Binary Patterns),即局部二值模式,是一种描述图像局部空间结构的非参数算子。芬兰Oulu大学的T.Ojala等人于1996年提出这个算子用来分析图像纹理特征,并且描述了它在纹理分类中的强区分能力。LBP算子定义为一种灰度尺度不变的纹理算子,是从局部邻域纹理的普通定义得来的。基本思想是:用中心像素的灰度值作为阈值,与它的邻域相比较得到的二进制码来表述局部纹理特征。在纹理分析方面,LBP算子是最好的纹理描述符之一,它的主要优点有以下几点:Ø 通过它的定义可知,LBP算子的
2013-08-29 11:00:16 5719 1
原创 Boosting方法解析
一个单独的检测器很少能够完全或者足够好地解决一个问题;认识到这一点,把很多独立的分类器结合起来来提高整体性能是常见的。这些孤立的单个检测器通常可能很弱(就是说,对于一个二分类问题,检测器的性能可能比50%稍微好一点)。循环地使用这个简单的规则,每次作用于训练样本的不同子集。这种算法称作Boosting(提升)算法,它能够提高任何给定的学习算法的性能,并具有普遍意义。经过多次调用这些弱分类器,Boosting算法把所有弱规则的输出结合成为一个单独的分类规则,比任何一个其构成的弱规则都更精确。
2013-08-28 10:18:48 1526
原创 单链表与代码
bool List::Remove(int i, int& x){ //将链表中的第i个元素删去,i从1开始。 LinkNode *del, *current; if(ilink;} else { current = first; for(int k = 0;k<i-1; k++) if (current == NULL) break; else current=cur
2013-08-23 22:25:38 1091
转载 OpenCV学习笔记:如何训练级联分类器
级联分类器训练使用级联分类器工作包括两个阶段:训练和检测。 检测部分在OpenCVobjdetect 模块的文档中有介绍,在那个文档中给出了一些级联分类器的基本介绍。当前的指南描述了如何训练分类器:准备训练数据和运行训练程序。重点注意事项OpenCV中有两个程序可以训练级联分类器: opencv_haartraining和 opencv_traincascade 。
2013-08-20 21:35:12 1838
原创 图像分析:积分图像与代码实现
积分图像(Integral Image)的概念是由Viola和Jones在文献[1]中提出的。积分图像中任意一点(i,j)的值ii(i,j)为原图像左上角到任意点(i,j)相应对角线区域灰度值总和。可以用如下两式迭代计算得到s(i,j)=s(i,j-1)+i(i,j)ii(i,j)=ii(i-1,j)+s(i,j)求积分图像只需对原图像所有像素进行一遍扫描。
2013-08-20 11:51:39 3454 2
转载 OpenCV学习笔记:人脸检测(级联分类器)
在这节教程中您将学到: 使用 CascadeClassifier 类来检测视频流中的物体. 特别地, 我们将使用函数:load 来加载一个 .xml 分类器文件. 它既可以是Haar特征也可以是LBP特征的分类器.detectMultiScale 来进行图像的多尺度检测. 原理 代码本教程的代码如下所示. 你也可以 点这里 下载. 第二
2013-08-19 10:10:52 3613 1
原创 OpenCV学习笔记:基本的图像处理
本教程教您怎样使用各种线性滤波器对图像进行平滑处理,相关OpenCV函数如下:blurGaussianBlurmedianBlurbilateralFilter 原理Note 以下原理来源于Richard Szeliski 的著作 Computer Vision: Algorithms and Applications 以及 Learning
2013-08-19 09:18:27 1823
原创 OpenCV学习笔记:输入输出XML和YAML文件
你将得到以下几个问题的答案:如何将文本写入YAML或XML文件,及如何从OpenCV中读取YAML或XML文件中的文本如何利用YAML或XML文件存取OpenCV数据结构如何利用YAML或XML文件存取自定义数据结构?OpenCV中相关数据结构的使用方法,如 :xmlymlpers:FileStorage , FileNode 或 FileNodeIterator.
2013-08-18 21:22:21 1314
原创 OpenCV学习笔记:如何扫描图像、利用查找表和计时
目的我们将探索以下问题的答案:如何遍历图像中的每一个像素?OpenCV的矩阵值是如何存储的?如何测试我们所实现算法的性能?查找表是什么?为什么要用它? 测试用例这里我们测试的,是一种简单的颜色缩减方法。如果矩阵元素存储的是单通道像素,使用C或C++的无符号字符类型,那么像素可有256个不同值。但若是三通道图像,这种存储格式的颜色数就太多了(确切地说,有一千六
2013-08-18 16:51:16 1559
原创 OpenCV学习笔记:MAT解析
在2001年刚刚出现的时候,OpenCV基于 C 语言接口而建。为了在内存(memory)中存放图像,当时采用名为 IplImage 的C语言结构体,时至今日这仍出现在大多数的旧版教程和教学材料。但这种方法必须接受C语言所有的不足,这其中最大的不足要数手动内存管理,其依据是用户要为开辟和销毁内存负责。虽然对于小型的程序来说手动管理内存不是问题,但一旦代码开始变得越来越庞大,你需要越来越多地纠缠于这
2013-08-18 14:37:20 1701
原创 OpenCV学习笔记:基于Haar特征的人脸检测
一、快速入门:跟着程序跑。下面我们直接从一个人脸检测的demo程序来建立感性认识。二、级联分类器接下来,我们从理论上来加深对人脸检测的认识:目标检测方法最初由Paul Viola提出,并由Rainer Lienhart 对这一方法进行了改善。首先,利用样本(大约几百幅样本图片)的harr特征进行分类器训练,得到一个级联的boosted分类器。训练样本分为正例样本和反例样本,其中正例样本是指待检目标样本(例如人脸或汽车等),反例样本指其它任意图片,所有的样本图片都被归一化为同样的尺寸大小(例如,
2013-08-15 21:49:26 7209 8
转载 OpenCV 编码样式指南
OpenCV 编码样式指南前言 本文档是对OpenCV中代码风格的简短说明,因为OpenCV的核心库(cv,cvaux)是用C和C++编写的,所以本文档仅对用C和C++代码的编写有效。 文件命名 所有cv和cvaux库文件的命名必须服从于以下规则:所有的CV库文件名前缀为cv混合的C/C++接口头文件扩展名为 .h纯C++接口头文件扩展名为
2013-08-14 22:05:50 1979
原创 OpenCV学习笔记: 快速入门例程
先期基础:————————————————————————————Main函数参数argc,argv说明C/C++语言中的main函数,经常带有参数argc,argv,如下:int main(int argc, char** argv)int main(int argc, char* argv[])这两个参数的作用: argc 是指命令行输入参数的个数(以空白符分隔) argv存储了所有的命令行参数 假如你的程序是hello.exe,如果在命令行运行该程序,(首先应该在命令行下用 cd 命令进入
2013-08-14 20:26:39 3376
原创 GA遗传算法解析
谈及遗传算法,我首先想到的就是孟德尔的豌豆实验。当然,遗传算法实质上并不能用豌豆实验说明,豌豆实验探讨了分离定律和自由组合定律,而遗传算法所借鉴的并不是这两个定律。遗传算法,简单的讲,就是达尔文的适者生存的原理,当新结果的适应度比原来的适应度高,那么这个结果就保存下来,并遗传给下一代,就是把好的留下来(这个“好的”,“怎么好”,就是我们根据具体情况具体定义的)。闲话说完,那么咱们就来系统的看看遗传算法比较正式的说法是什么: 遗传算法是计算机科学人工智能领域中用于解决最优化的一种搜索启发式算法,
2013-08-13 22:55:52 4283 1
原创 Matlab单元(Cell)数据的应用
MATLAB里面的cell有的翻译为单元有的翻译为细胞型数据。它是MATLAB的一种特殊数据类型,可以将它看作是一种无所不包的广义矩阵。组成cell的元素可以是任何一种数据类型的常数或者常量,每一个元素也可以具有不同的尺寸和内存占用空间,每一个元素的内容也可以完全不同。
2013-08-12 16:35:47 1731
转载 国外的机器视觉课程及资料
有时间的话,可以看看如下页面,感受一下国外课程与国内课程的区别。Trevor Darrell's CS 280 Computer Vision class at BerkeleyAntonio Torralba's 6.869 Advances in Computer Vision class at MITMichael Black's CS 143 Introduction to Compute
2013-08-11 20:59:16 1180
原创 指纹增强程序Hong_enhancement
本算法是基于Lin Hong et al 的论文“Fingerprint ImageEnhancement: Algorithm and Performance Evaluation”编写而成。其中一个重要的假设就是:沿脊线垂直方向的灰度变化呈正弦波形。LinJM
2013-08-11 20:46:38 4267 5
原创 c/c++语言结构体中的冒号的用法
结构体中常见的冒号的用法是表示位域。 有些信息在存储时,并不需要占用一个完整的字节,而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1两种状态,用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。所谓“位域”是把一个字节中的二进位划分为几个不同的区域,并说明每个区域的位数。每个域有一个域名,允许在程序中按域名进行操作。这样就可以把几个不同的对象用一个字节的二进制位域来表示。
2013-08-11 13:48:27 2267
原创 BP神经网络解析
第一次接触BP神经网络是在模式分类的课上,第二次接触是在Stanford的机器学习课上。接触多次,但都没有具体把它应用到研究中去。这次要做学术报告,打算试验一下它在分类识别中的效果如何,也逼自己具体代码实现一遍。BP(Back Propagation)网络是1986年由Rumelhart和McCelland为首的科学家小组提出,是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。它的学习规则
2013-08-11 11:16:28 14906 4
原创 图像分析:Gabor滤波器解析与编程
学过《信号与系统》和《数字信号处理》的同学都知道,Fourier变换是应用非常广泛的一种信号分析工具,它是在整体上将信号分解为不同的频率分量,但是它只适用于统计量不随时间变化的平稳信号,因为它并不能告之某种频率发生在哪些时间内,而这对于非平稳信号是十分重要的。在实际信号中我们处理的却往往是某个统计量是时间的函数,即非平稳信号。虽然Kalman滤波、RLS算法等自适应滤波也适合非平稳信号,但是限于慢时变信号的跟踪,并不能得到一般时变信号的统计量等结果(如功率谱等)。因此需要对非平稳信号进行专门的讨论。
2013-08-11 10:47:07 11863 1
转载 OpenCV入门方法
——————————————————————————————————————————————————来自OpenCV中文论坛:bebekifis最近一直在写文章,好不容易赶完了,发现论坛很久都没来,感到十分的抱歉。在这里把最近这几个月来使用Opencv的感想和一些Opencv文档之外的东西分享给大家,希望有用。首先还是说说如何学Opencv吧,记得最开始进实验室的时候师
2013-08-09 13:11:46 1597
转载 计算机视觉、机器学习相关领域论文和源代码大集合
[置顶] 计算机视觉、机器学习相关领域论文和源代码大集合--持续更新……计算机视觉、机器学习相关领域论文和源代码大集合--持续更新……zouxy09@qq.comhttp://blog.csdn.net/zouxy09注:下面有project网站的大部分都有paper和相应的code。Code一般是C/C++或者Matlab代码。最近一次更新:2013-3-17
2013-08-08 23:16:54 2117
翻译 SIFT调用例程——VLFeat
SIFT是一个很好的特征检测器,它能够从一张图片中检测出一组不受光照、视线等影响的特征点。同时它本身就是一个很好的特征描述子,它能够充分反映特征点附近局部图像的形状和纹理结构特性,具有较好的鲁棒性和独特性。提取特征点区域和特征描述子检测特征点和获取特征描述子都是通过Matlab命令 vl_sift来实现的。打开Matlab,载入测试图像:
2013-08-08 15:08:04 21921
翻译 VLFeat开源库入门
VLFeat是一个跨平台的开源机器视觉库,它囊括了当前流行的机器视觉算法,如SIFT, MSER, HOG, 同时还包含了诸如K-MEANS, Hierarchical K-means的聚类算法。它由C语言编写,并提供了Matlab接口及详细的文档。当前最新的版本是VLFeat 0.9.16 。LinJM @HQU
2013-08-08 11:07:16 19964 1
原创 Matlab高性能编程——代码优化和并行计算
最近写了一个模式识别的程序,可是发现时间复杂度有点高,等待结果的时间要挺长的,所以重新拿出书本来复习一下MATLAB代码优化。MATLAB是一种专门为数组运算而设计的语言,因此在程序设计中要注意充分利用这一优点来加快运算速度。现在比较通用的两种代码优化方法是:(1)向量化循环;(2)预分配数组(1)向量化循环:向量化即是将for循环和while循环转换为等价的向量或矩阵运算,它可以
2013-08-03 11:49:19 13232
转载 【马晓光】论文写作技巧(本硕博三阶段)
如果给我本科、硕士和博士论文打分的话,博士打85分,硕士打65分,本科打20分。虽然三个论文在当时同学当中都算是优秀论文,但是放在一起比,就高低立判了。本科论文写了一周,因为是中文的,而且要求不高,不过最后装订了也100多页。硕士论文写了1个月,记得那一个月天天泡在港大的图书馆里,最后的论文将近300页。博士论文写的最长,大约3个月,不过这三个月都是在工作时间之余写的,每天回家哄睡女儿能写2个小时
2013-08-02 10:00:07 3045
原创 【林达华】How To Get A Solution
我们所做的topic,一般有几个阶段:Analysis: 分析问题,找到问题的关键Modeling / Formulation: 对问题进行数学抽象,建立模型,或者formulate目标函数Solving: 设计出求解的算法Experiments: 实验最近的工作都集中在Solving这部分,就说说这个吧。求解的方法求解问题有很多不同的方法,就我知道的来说,大概有这么几个大家族。Heuristics。就是根据对问题的观察而设计的一些简单的方法,不一定遵循什么规范,或者有什么深刻的数学
2013-08-02 09:58:03 2323
A Tutorial on Support Vector Regression
2014-01-16
最小二乘法及数据拟合建模的回归分析
2013-12-09
Fractal Fern
2013-12-01
Michael Elad 关于稀疏表示的PPT
2013-09-04
OpenCV之_HaarTraining算法剖析
2013-08-19
HOG解析与代码
2013-05-14
pixeldup.m
2013-03-31
基于ARM9和嵌入式Linux的门禁系统软件设计
2013-03-30
ATM的漏洞及代码分析
2012-03-16
LMS与RLS自适应滤波算法性能比较
2012-03-16
简明 Vim 练级攻略
2012-03-16
基于DSP的静脉识别系统
2010-11-07
基于Bandelet变换的手背静脉识别算法
2010-11-07
基于2DFLD的手背静脉识别算法
2010-11-07
改进的手背静脉识别算法
2010-11-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人