opencv源代码分析
迷途中的前进
这个作者很懒,什么都没留下…
展开
-
cvTrimWeights函数详细解读
其源码在opencv的cvboost.cpp文件之中,具体内容和部分注释如下所示:/* *cvTrimWeights *作用:对小于一定阈值的权重剔除,因为权重较小的样本对训练结果影响很小,剔除后,这样在训练样本时可以缩短训练时间 */CV_BOOST_IMPLCvMat* cvTrimWeights( CvMat* weights,//训练样本的权重矩阵原创 2015-07-10 15:35:06 · 1033 阅读 · 0 评论 -
icvDefaultSplitIdx_R和icvDefaultSplitIdx_C
static void CV_CDECL icvDefaultSplitIdx_R( int compidx, float threshold, CvMat* idx, CvMat** left, CvMat** right, void* userdata原创 2015-07-10 10:33:17 · 809 阅读 · 0 评论 -
opencv源码分析之二:cvhaartraining.cpp
我使用的是opencv2.4.9,安装后,我的cvboost..cpp文件的路径是........\opencv\sources\apps\haartraining\cvhaartraining.cpp,研究源码那么多天,有很多收获,opencv库真是非常强大。其中在这篇博文中我有部分注释,其他的有关知识请参考我博客http://blog.csdn.net/ding977921830?viewmo原创 2015-07-13 10:14:51 · 2553 阅读 · 1 评论 -
icvGetTrainingDataCallback源码详细分析
/**函数icvGetTrainingDataCallback介绍*功能:对所有样本计算特征编号从first开始的num个特征,并保存到mat里。*输入:*CvMat* mat矩阵样本总数个行,num个列。保存每个样本的num个特征值。*First:特征类型编号的开始处*Num:要计算的特征类型个数。*Userdata:训练样本信息和特征信息,包括积分矩阵和权重、特征模板等信息。*原创 2015-07-13 21:50:10 · 776 阅读 · 0 评论 -
icvCreateHaarTrainingData源码详细分析
对于结构体CvHaarTrainingData的内容请参考我的另一篇博文http://blog.csdn.net/ding977921830/article/details/46330879。如需转载请注明http://blog.csdn.net/ding977921830/article/details/46799043。/* * icvCreateHaarTrainingData原创 2015-07-13 21:09:05 · 811 阅读 · 0 评论 -
icvSplitIndicesCallback源码详细分析
下面这是我根据自己的理解来注释的,如有不对的地方请大家多多指出。本博原创,如需转载,请注明http://blog.csdn.net/ding977921830?viewmode=contents。/* *icvSplitIndicesCallback *作用:根据阈值为样本序列分类 */staticvoid icvSplitIndicesCallback( int com原创 2015-07-14 14:25:32 · 832 阅读 · 0 评论 -
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 · 833 阅读 · 0 评论 -
在opencv中,强分类器阈值是如何确定的?虚警率是怎么计算的?
在opencv中,强分类器阈值的确定实在函数icvCreateCARTStageClassifier中,具体强分类器的阈值的求解方式和虚警率的计算如下CvIntHaarClassifier* icvCreateCARTStageClassifier( CvHaarTrainingData* data, // 训练样本数据,包括图片的大小,数量,积分图,权重,类别等数据原创 2015-07-16 10:56:31 · 4459 阅读 · 2 评论 -
在opencv源代码中如何确定树桩分类器阈值?如何确定树桩的左右边的返回值?
源代码在opencv库里面的cvboost.cpp文件里面,该宏的总体思路是通过定义带参数的宏,把参数传递给宏内部的函数,然后进行一系列的计算,并最终根据一定的算法找到合适的阈值。具体解析如下:#define ICV_DEF_FIND_STUMP_THRESHOLD( suffix, type, error ) \static i原创 2015-07-08 16:56:58 · 1400 阅读 · 0 评论 -
icvGetHaarTrainingData详细解析
本内容的源码在opencv开源源码的........\opencv\sources\apps\haartraining\cvhaartraining.cpp文件中,具体内容如下:/* consumed counter */typedef uint64 ccounter_t;#define CCOUNTER_MAX CV_BIG_UINT(0xffffffffffffffff)原创 2015-07-20 21:39:22 · 1084 阅读 · 0 评论 -
icvGetUsedValues的详细解析
本内容的源码在opencv开源源码的........\opencv\sources\apps\haartraining\cvhaartraining.cpp文件中,具体内容如下:/* *icvGetUsedValues *作用:根据级分类器来计算训练样本的特征值 */static CvMat* icvGetUsedValues( CvHaarTrainingData* trai原创 2015-07-20 15:44:45 · 718 阅读 · 0 评论 -
opencv源码分析:cvCreateTreeCascadeClassifier
我使用的是opencv2.4.9,cvCreateTreeCascadeClassifier的源码在......opencv\sources\apps\haartraining\cvhaartraining.cpp之中,这中间用到很多结构体,指针函数,宏等各方面的内容,请参考我博客中的文章opencv源码详细解读目录。如需转载请注明本博网址http://blog.csdn.net/ding9779原创 2015-07-20 16:32:10 · 2156 阅读 · 0 评论 -
史上最全opencv源码解读,opencv源码详细解读目录
opencv源码主要是基于adaboost算法,进行人脸的haar分类器训练!在我近两个月的研究opencv源码的过程很枯燥,也有很多收获,在我博客中也写了不少文章,比较乱,现在整理一下目录如下,大家可以直接点开链接的。这样一方面可以方便自己查阅,另一方面也是回报csdn方便大家,如有不足请大家多多指出大笑 未完待续,更新中~~~~~~~1 宏(1)ICV_DEF_FIND_STUMP_THRESHOLD_SQ(2)ICV_DEF_FIND_STUMP_THRESHOLD(3)C原创 2015-07-08 09:18:59 · 19075 阅读 · 1 评论 -
【转载】浅谈OpenCV人脸检测以及两个函数cvHaarDetectObjects和cvRunHaarClassifierCascade
本文转自:http://2000liuzhenxing.blog.163.com/blog/static/51677475200981952828662/和http://2000liuzhenxing.blog.163.com/blog/static/5167747520098195217494/。第一部分 cvHaarDetectObjectsOpenCV的人脸检测主要是调用训原创 2015-11-17 16:26:20 · 1460 阅读 · 0 评论 -
opencv:求一幅图片的LBP纹理图(c++版本)
感觉还是使用c++版本opencv更加方便,LBP是描述的图片的局部特征,即纹理特征,有关公式和理论网上有很多我就不再重复,直接上代码。/* * */#include "opencv2/opencv.hpp" using namespace cv ;using namespace std ;Mat LBP(Mat src_image){ bool affiche=t原创 2016-05-25 13:47:39 · 2960 阅读 · 0 评论 -
opencv:使用高斯混合模型(GMM)源码对视频进行背景差分法
非常感谢thefutureisour对opencv中c++版本的高斯混合模型的源代码完全注释,网上直接使用opencv源码编程的比较少,但是要想自己对高斯混合模型进行优化,或者要想在论文中对高斯混合模型有所创新,必须使用opencv源码来进行编程,而不仅仅是使用opencv的源码接口调用一下修改一下参数。自己废了些脑子提供给网友交流一把,1、 my_background_segm.hp原创 2016-05-17 22:03:34 · 10214 阅读 · 1 评论 -
opencv:L1距离,L2距离,颜色失真(color distortion),汉明距离(hamming distance),LUT
#pragma once#include //! computes the L1 distance between two integer valuestemplate static inline typename std::enable_if::value,size_t>::type L1dist(T a, T b) { return (size_t)abs((int)a-b);}原创 2016-06-03 14:46:01 · 4017 阅读 · 0 评论 -
icvEvalCARTHaarClassifier
/* *icvEvalCARTHaarClassifier *作用:通过计算haar特征,来分配非叶子节点直到出现叶子节点 */float icvEvalCARTHaarClassifier( CvIntHaarClassifier* classifier, //内部弱分类器 sum_type* sum,原创 2015-07-07 11:09:05 · 848 阅读 · 0 评论 -
cvCreateMTStumpClassifier中MT的含义
我在研究这个函数代码的过程中,老师搞不清楚这个函数的MT的含义,困扰了我很长时间。一开始我猜测是most threshold,或者是其他的几个,以为是错误的,我就不说了。最后终于搞清楚了--------cvCreateMTStumpClassifier函数(这是一个生成多阈值(Multi-threshold)stump分类器的函数)。原创 2015-06-11 17:39:54 · 799 阅读 · 0 评论 -
cvCreateStumpClassifier
CV_BOOST_IMPLCvClassifier* cvCreateStumpClassifier( CvMat* trainData, int flags, CvMat* trainClasses, CvMat* /*typeMask*/,原创 2015-07-09 11:01:11 · 861 阅读 · 0 评论 -
CvClassifier和宏 CV_CLASSIFIER_FIELDS()
/* classifier fields common to all classifiers */#define CV_CLASSIFIER_FIELDS() \ int flags;原创 2015-06-17 09:40:54 · 1286 阅读 · 0 评论 -
cvEvalCARTClassifier
cvEvalCARTClassifier结构体的内容在cvboost.cpp文件里面,具体内容如下:CV_BOOST_IMPLfloat cvEvalCARTClassifier( CvClassifier* classifier, CvMat* sample ){ CV_FUNCNAME( "cvEvalCARTClassifier" ); int idx = 0;原创 2015-06-17 16:17:33 · 809 阅读 · 0 评论 -
CvValArray和CvCARTNode
CvValArray和CvCARTNode原创 2015-06-17 10:04:53 · 1228 阅读 · 0 评论 -
opencv源码分析:icvGetTrainingDataCallback简介
/**函数icvGetTrainingDataCallback介绍*功能:对所有样本计算特征编号从first开始的num个特征,并保存到mat里。*输入:*CvMat* mat矩阵样本总数个行,num个列。保存每个样本的num个特征值。*First:特征类型编号的开始处*Num:要计算的特征类型个数。*Userdata:积分矩阵和权重、特征模板等信息。*输出:*CvMat* ma原创 2015-06-23 16:58:03 · 905 阅读 · 0 评论 -
Opencv研读笔记:haartraining程序之cvCreateMTStumpClassifier函数详解~
本文转自http://xy.tuxi.com.cn/168/1682286.html。 cvCreateMTStumpClassifier函数出自opencv中的haartraining程序,在adaboost(cvCreateTreeCascadeClassifier)的强分类器(icvCreateCARTStageClassifier)中被两次调用,该函数用于寻找最优弱分类器,或者转载 2015-06-04 10:14:16 · 1618 阅读 · 0 评论 -
icvCreateIntHaarFeatures超详细解析(不看你会后悔的)
icvCreateIntHaarFeatures超详细解析(不看你会后悔的),因为我是菜鸟,所以花了很多时间来查找各方面的资料,相信你会看懂的。本博是笔者读书笔记整理,欢迎转载,请注明出处,如有不足,还望网友们指教。原创 2015-05-28 15:07:27 · 2482 阅读 · 0 评论 -
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 · 3972 阅读 · 0 评论 -
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 · 625 阅读 · 0 评论 -
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 · 985 阅读 · 0 评论 -
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 · 3404 阅读 · 0 评论 -
opencv源码解读读书笔记:负样本的有关源代码
typedef struct CvBackgroundData{ int count; //负样本的数量 char** filename; //负样本的文件名包括绝对路径和扩展名 int l原创 2015-06-03 16:18:39 · 1613 阅读 · 0 评论 -
OpenCV HaarTraining代码解析(二)cvCreateMTStumpClassifier(建立决策树)
转载地址:http://www.xuebuyuan.com/2225798.htmlHaarTraining关键的部分是建立基分类器classifier,OpenCV中所采用的是CART(决策树的一种):通过调用cvCreateMTStumpClassifier来完成。这里我讨论利用回归的方法来分裂结点,分类的方法只是在分裂结点的方法与之不同而已。cvCreateMTStumpCl转载 2015-06-08 14:45:49 · 895 阅读 · 0 评论 -
opencv源码研究: icvGetHaarTrainingDataFromBG和icvGetHaarTrainingDataFromVec的区别
icvGetHaarTrainingDataFromBG和icvGetHaarTrainingDataFromVec的区别原创 2015-06-02 21:07:24 · 1042 阅读 · 0 评论 -
宏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 · 2876 阅读 · 0 评论 -
cvBoostStartTraining, cvBoostNextWeakClassifier和 cvBoostEndTraining
/****************************************************************************************\* Boosting *\*****************原创 2015-06-24 10:50:17 · 1033 阅读 · 0 评论 -
Opencv研读笔记:haartraining程序之icvCreateCARTStageClassifier函数详解~
本文转自:http://blog.csdn.net/wsj998689aa/article/details/42398235之前介绍了haartraining程序中的cvCreateMTStumpClassifier函数,这个函数的功能是计算最优弱分类器,这篇文章介绍一下自己对haartraining中关于强分类器计算的一些理解,也就是程序中的icvCreateCARTStageClassif转载 2015-06-10 15:49:34 · 1040 阅读 · 0 评论 -
opencv源码分析:cvCreateMTStumpClassifier最优弱分类器的代码框架
cvCreateMTStumpClassifier计算最优弱分类器的代码总体思路原创 2015-06-10 16:20:39 · 753 阅读 · 0 评论 -
局部二值相似模式(LBSP)
1. LBSP.h#pragma once#include #include #include #include "DistanceUtils.h"/*! Local Binary Similarity Pattern (LBSP) feature extractor Note 1: both grayscale and RGB/BGR images may be used原创 2016-06-03 15:05:11 · 3233 阅读 · 2 评论