- 博客(34)
- 资源 (8)
- 收藏
- 关注
原创 icvCreateCARTStageClassifier训练强分类器源代码框架
icvCreateCARTStageClassifier函数的详细分析见我博文中的另外一篇文章http://blog.csdn.net/ding977921830/article/details/46442805,这篇文章也是转载的迷雾forest博客中的一篇文章http://blog.csdn.net/wsj998689aa/article/details/42398235,在这里我要感谢迷雾forest的无私分享和付出,能让我对该源代码能有更深理解。 icvCreateCARTStageClassif
2015-06-30 19:32:42
856
原创 icvInitCARTHaarClassifier
icvInitCARTHaarClassifier *初始化分类回归树haar分类器函数 *作用:把括号里的参数进行传递,也就是把后两个参数都传递给第一个参数 *具体来说就是,首先把intHaarFeatures 的特征按照cart中compidx[i]的顺序传递给carthaar(包括haar特征和快速haar特征); *然后,再把cart中的参数传递给carthaar。
2015-06-26 14:42:02
831
翻译 cvBoostStartTraining
cvBoostStartTraining * * 该函数的作用是在第一个弱分类器训练时,初始化训练过程,计算特征值,并初始化样本权重 * * 参数含义如下: * trainClasses * 它是训练样本类的向量,每个元素要么是0,要么是1;而且数据0,1的数据烈性必须是CV_32FC1,即32位浮点型单通道的类型 * weakTrainVals * 第一个训练好的弱分类器的响应值,数据类型是CV_32FC1. * 注:响应值,我的理解是正负样本在该弱分
2015-06-26 09:37:39
970
原创 cvUserdata
/* Passed to callback functions */typedef struct CvUserdata //首先定义结构体{ CvHaarTrainingData* trainingData; CvIntHaarFeatures* haarFeatures;} CvUserdata;CV_INLINECvUserdata cvUserdata( Cv
2015-06-25 21:12:58
776
原创 CV_HAAR_FEATURE_DESC_MAX和CV_HAAR_FEATURE_MAX
#define CV_HAAR_FEATURE_MAX 3 //预定义的一个宏,在程序中表示一个haar特征由至多三个矩形组成#define CV_HAAR_FEATURE_DESC_MAX 20 //预定义的一个宏,描述haar特征的一个类型typedef int sum_type;typedef double sqsum_t
2015-06-25 14:47:26
987
转载 opencv源码分析:icvCreateCARTStageClassifier之二(转载)
本文转自:http://blog.sina.com.cn/s/blog_5f853eb10100sdgn.html,在我博文中有另一篇文章,对icvCreateCARTStageClassifier介绍更为详细,如下http://blog.csdn.net/ding977921830/article/details/46442805staticCvIntHaarClassifier* i
2015-06-24 16:34:03
651
转载 OpenCV源码中Haar训练及特征提取的代码说明
本文转自:http://www.cnblogs.com/YCwavelet/p/3545525.html。本文虽然是转载的,但是我稍微调整了一下版面,所以看着是比原来的舒服多了。,大家如有疑问还是请参考原文http://www.cnblogs.com/YCwavelet/p/3545525.html//针对大小为winsize的图,计算所有HaarFeature的rect,存入featur
2015-06-24 16:08:19
4038
原创 CvScalar
typedef struct CvScalar{ double val[4]; }CvScalar;它是opencv常用的结构体,在于仕琪的《学习opencv》中指出,其意义是RGBA值。当然这个结构体也可以用于其他用处,因为如果把CvScalar看做是一个普通的结构体时 ,其内部只不过是存储了四个double型的值,分别为val[0],val[1],val[2],val[3],我们
2015-06-24 14:10:39
10995
原创 cvBoostStartTraining, cvBoostNextWeakClassifier和 cvBoostEndTraining
/****************************************************************************************\* Boosting *\*****************
2015-06-24 10:50:17
1080
原创 opencv源码分析:icvGetTrainingDataCallback简介
/**函数icvGetTrainingDataCallback介绍*功能:对所有样本计算特征编号从first开始的num个特征,并保存到mat里。*输入:*CvMat* mat矩阵样本总数个行,num个列。保存每个样本的num个特征值。*First:特征类型编号的开始处*Num:要计算的特征类型个数。*Userdata:积分矩阵和权重、特征模板等信息。*输出:*CvMat* ma
2015-06-23 16:58:03
954
原创 c :函数指针详解
在研究opencv源代码的过程中,处处可见到函数指针,于是翻出来谭浩强的《C程序设计》把函数指针这一块内容再补一补!1 定义数据类型 (*指针变量名)(参数表);注:数据类型是指的函数返回值的类型;(*指针变量名)两侧的括号不能省略,表示p先与*结合,是指针变量,然后再与后面的(参数表)结合;(参数表)可以是一个参数,也可以是多个参数,不过在引用的时候要保证形参与实参一
2015-06-23 14:36:18
695
原创 c++:变量,数组和指针
指针是c++从c语言中继承过来的重要数据类型,它提供了一种较为直接的地址操作手段。1 数据在内存中的地址 对于高级语言来说,我们是通过定义变量的方式来为数据分配内存空间,使得变量名与该变量所占内存空间相联系 的,然后通过变量名来操作数据,也就是访问数据所占的内存空间。1.1 变量的地址 变量具有值和地址,要得到一个变量的地址,需要进行地址的运算(&)。比如: #inc
2015-06-19 09:28:26
804
原创 cvEvalCARTClassifier
cvEvalCARTClassifier结构体的内容在cvboost.cpp文件里面,具体内容如下:CV_BOOST_IMPLfloat cvEvalCARTClassifier( CvClassifier* classifier, CvMat* sample ){ CV_FUNCNAME( "cvEvalCARTClassifier" ); int idx = 0;
2015-06-17 16:17:33
843
原创 CvClassifier和宏 CV_CLASSIFIER_FIELDS()
/* classifier fields common to all classifiers */#define CV_CLASSIFIER_FIELDS() \ int flags;
2015-06-17 09:40:54
1322
转载 Adaboost原理、应用
本文转自:http://blog.sina.com.cn/s/blog_77ed43e30101addd.html Adaboost是一种迭代算法,其核心思想是针对同一个训练集训练不同的分类器(弱分类器),然后把这些弱分类器集合起来,构成一个更强的最终分类器(强分类器)。其算法本身是通过改变数据分布来实现的,它根据每次训练集之中每个样本的分类是否正确,以及上次的总体分类的准
2015-06-16 12:00:40
1076
原创 CvStumpClassifier,CvCARTClassifier和CvCARTHaarClassifier
CvStumpClassifier,CvCARTClassifier和CvCARTHaarClassifier的区别从复杂程度来看:CvStumpClassifier<CvCARTClassifier<CvCARTHaarClassifier从能代表的范围来看:CvStumpClassifier>CvCARTClassifier>CvCARTHaarClassifier
2015-06-16 10:39:59
814
原创 cvCreateMTStumpClassifier中MT的含义
我在研究这个函数代码的过程中,老师搞不清楚这个函数的MT的含义,困扰了我很长时间。一开始我猜测是most threshold,或者是其他的几个,以为是错误的,我就不说了。最后终于搞清楚了--------cvCreateMTStumpClassifier函数(这是一个生成多阈值(Multi-threshold)stump分类器的函数)。
2015-06-11 17:39:54
829
原创 opencv源码分析:cvCreateMTStumpClassifier最优弱分类器的代码框架
cvCreateMTStumpClassifier计算最优弱分类器的代码总体思路
2015-06-10 16:20:39
776
转载 Opencv研读笔记:haartraining程序之icvCreateCARTStageClassifier函数详解~
本文转自:http://blog.csdn.net/wsj998689aa/article/details/42398235之前介绍了haartraining程序中的cvCreateMTStumpClassifier函数,这个函数的功能是计算最优弱分类器,这篇文章介绍一下自己对haartraining中关于强分类器计算的一些理解,也就是程序中的icvCreateCARTStageClassif
2015-06-10 15:49:34
1088
原创 傅里叶变换(非常经典)非常容易懂,值得收藏
数学是我弱项,傅里叶更是学的我晕晕乎乎,但是,这几篇文章我不得不转,真的是非常好,该作者正是大牛中的大牛,由于他图片太多,时间太忙,我也懒得一点一点的上传,直接上链接,一个是方便我将来再回过头来查看,另一方面,方便大家,也是汇报csdn博客,汇集了天下很多各个领域的大牛,让我从其中学习到了很多知识。 1 傅里叶分析之掐死教程(完整版)更新于2014.06.06http://zhua
2015-06-09 15:17:33
11038
原创 宏CV_IS_ROW_SAMPLE的含义
在函数cvCreatMTStumpClassifier中遇到了CV_IS_ROW_SAMPLE,网上查了下资料,很少,现在我总结如下,希望能帮助大家理解。如大家对cvCreatMTStumpClassifier不理解的,请参考我博客中的文章http://blog.csdn.net/ding977921830/article/details/46356789和http://blog.csdn.net/ding977921830/article/details/46412465。
2015-06-09 14:33:56
2936
转载 opencv之莫名其妙的条件宏ICV_DEF_FIND_STUMP_THRESHOLD_SQ解释~
本博转载自:http://www.itnose.net/detail/6183849.html曾经有一刻,一直在纠结opencv->haartraining中的条件宏ICV_DEF_FIND_STUMP_THRESHOLD_SQ的使用,该宏的作用是寻找特征值数组中的最佳阈值,使得error最小。ICV_DEF_FIND_STUMP_THRESHOLD_SQ代码如下:/* least
2015-06-08 15:25:02
3516
转载 OpenCV HaarTraining代码解析(二)cvCreateMTStumpClassifier(建立决策树)
转载地址:http://www.xuebuyuan.com/2225798.htmlHaarTraining关键的部分是建立基分类器classifier,OpenCV中所采用的是CART(决策树的一种):通过调用cvCreateMTStumpClassifier来完成。这里我讨论利用回归的方法来分裂结点,分类的方法只是在分裂结点的方法与之不同而已。cvCreateMTStumpCl
2015-06-08 14:45:49
939
原创 人脸检测和haar分类器视频讲解
刚开始学习人脸检测时,非常郁闷什么是haar分类器,一直是迷迷糊糊的,搞不清楚什么是弱分类器,什么是强分类器,什么是级联分类器,还有检测窗口是如何在待检测图片上运行的,这个小视频会生动形象的展示给你的,想必你会有个直观理解的,快快点击吧 https://vimeo.com/34631229。
2015-06-07 22:35:51
877
转载 Opencv研习笔记:haartraining程序之cvCreateCARTClassifier函数详解(CART树状弱分类器创建)
本文转自http://blog.csdn.net/wsj998689aa/article/details/43411809cvCreateCARTClassifier函数在haartraining程序中用于创建CART树状弱分类器,但一般只采用单一节点的CART分类器,即桩分类器,一个多节点的CART分类器训练耗时很多。根据自己的测试,要等差不多10分钟(2000正样本、2000负样本)才能训
2015-06-05 16:05:34
1043
翻译 CV_Assert的含义
c++: CV_Assert(expr None) expr参数含义:检查的对象。宏CV_Asser(和宏CV_DbgAssert)可以评估指定的表达方式。如果参数none是0,该宏返回一个错误。宏CV_Assert在Debug 和 Release模式下都可以检查运行情况,但是宏CV_DbgAssert只在Debug下可以使用。我的理解:CV_Assert()若括号中的表达式值为false,则返回一个错误信息。
2015-06-05 14:49:38
8946
原创 cvMat结构体的详细解释
/* *CvMat矩阵头 */typedef struct CvMat{int type; //数据类型,比如CV_32FC1含义是32位浮点型单通道,再比如CV_8UC3含义是8位无符号整型三通道int step; //每行数据的字节数int* refcount;/* for internal use only */int hdr_refcount;u
2015-06-04 16:19:35
1582
转载 Adaboost原理、算法以及应用
本文转自http://www.rosoo.net/a/201402/16902.html?utm_source=tuicoolAdaboost是一种迭代算法,其核心 思想是针对同一个训练集训练不同的分类器(弱分类器),然后把这些弱分类器集合起来,构成一个更强的最终分类器(强分类器)。其算法本身是通过改变数据分 布来实现的,它根据每次训练集之中每个样本的分类是否正确,以及上次的总体分类的
2015-06-04 10:22:46
1223
转载 Opencv研读笔记:haartraining程序之cvCreateMTStumpClassifier函数详解~
本文转自http://xy.tuxi.com.cn/168/1682286.html。 cvCreateMTStumpClassifier函数出自opencv中的haartraining程序,在adaboost(cvCreateTreeCascadeClassifier)的强分类器(icvCreateCARTStageClassifier)中被两次调用,该函数用于寻找最优弱分类器,或者
2015-06-04 10:14:16
1685
原创 opencv源码解读读书笔记:负样本的有关源代码
typedef struct CvBackgroundData{ int count; //负样本的数量 char** filename; //负样本的文件名包括绝对路径和扩展名 int l
2015-06-03 16:18:39
1675
原创 opencv源码研究: icvGetHaarTrainingDataFromBG和icvGetHaarTrainingDataFromVec的区别
icvGetHaarTrainingDataFromBG和icvGetHaarTrainingDataFromVec的区别
2015-06-02 21:07:24
1089
原创 icvCreateHaarTrainingData和icvCreateBackgroundData
对于结构体c++语言来说,结构体要先定义再使用,如上文CvHaarTrainingData和CvBackgroundData(http://blog.csdn.net/ding977921830/article/details/46330879);对于训练样本来说,要把训练样本(图片)转化为计算机能识别的.vec文件;对于训练过程来说,要使用训练样本的数据,要先为训练样本的内容分配内存,这就是下面谈到的icvCreateHaarTrainingData和icvCreateBackgroundData。
2015-06-02 16:43:07
985
原创 CvHaarTrainingData和CvBackgroundData的区别
CvHaarTrainingData所包含内容比较齐全,而且是既包含正样本,也包含负样本;CvBackgroundData显然是针对负样本的。
2015-06-02 15:51:42
1145
opencv 车牌识别(超详细注释)
2015-03-12
opencv自建人脸库
2015-03-12
MIT正面人脸数据库及其扩展
2015-09-28
opencv2.4.9opencv_createsamples.exe和opencv_haartraining.exe
2015-05-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人