码迷,mamicode.com
首页 > 其他好文 > 详细

目标跟踪学习系列九:Struck:Structured Output Tracking with Kernels头文件代码框架

时间:2014-09-25 12:51:18      阅读:749      评论:0      收藏:0      [点我收藏+]

标签:源代码   tracking   svm   


我们先来看一下整个的头文件的构成:

                                                     bubuko.com,布布扣

其中:

config.h :   配置头文件,里面定义了一个类:class Config。主要定义的是特征的类型,核函数的类型等等。


Features.h:定义了一个Class Features 。里面定义了int 型的m_featureCount//特征计数Eigen::VectorXd m_featVec 存储特征的向量。其中使用了inline内联函数(inline 说明这个函数是内联的,在编译过程中内联函数会直接被源代码替换,提高执行效率 如果类中的某个函数会被调用很多次或者放在循环中,那么建议将这个函数声明为内联,可以提高程序的运行效率。现在的作用:一个可执行文件的cpp文件中一个函数只能被定义一次。如果你把函数定义在一个.h文件中并让两个cpp包含就会造成这个函数分别在两个cpp中被定义产生错误。但是inline函数是允许在多个cpp中多次定义的,就解决了这个问题。)。


HaarFeature.h:里面定义了一个Eval 函数(简单来说就是放在前面表示这个函数的返回值是const型,只能赋值给const型;放在后面就是函数是const型 总结见:http://www.cppblog.com/jukevin/archive/2008/12/27/70499.html)。声明了几个private的变量:  FloatRect m_bb;  //意思是说这个m_bb是Rect(x,y,width,height),并且里面是浮点型
std::vector<FloatRect> m_rects;// 这里也就是说这个Vector里面的每一个元素都是Rect
std::vector<float> m_weights;
float m_factor;

HaarFeatures.h:调用以上的两个头文件,继承features类,在里面定义了自己的 std::vector<HaarFeature> m_features; 同时还声明了自己的函数。

HistogramFeatures.h: 继承features类,定了了一个特征vector更新的向量。

ImageRep.h :定了class ImageRep,里面是一些图片表示的数据变量。

Kernels.h :定义了SMO需要用到的一些的核函数:包括:线性核函数,高斯核,多核等等。

LaRank.h: 定义了和支持向量相关的一些操作函数(详见后面)。


其余的几个也不是很困难,我将在CPP文件中详细的解释。

备注:

代码里面需要一些eigen 的基础,这个包挺好的有了它就可以像在MATLAB里面一样操作矩阵等等了!教程如下(改天自己写一个哈哈):http://eigen.tuxfamily.org/dox-2.0/TutorialCore.html


目标跟踪学习系列九:Struck:Structured Output Tracking with Kernels头文件代码框架

标签:源代码   tracking   svm   

原文地址:http://blog.csdn.net/ikerpeng/article/details/39545709

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!