struck(结构化SVM用于视觉跟踪)--源代码详解--tracker.cpp

作者算法的功能都是在tracker类中实现的,下面分析其头文件和cpp文件,头文件:#ifndef TRACKER_H#define TRACKER_H#include "Rect.h"#include #include #include class Config;class Features;class Kernel;class LaRank;class Ima
摘要由CSDN通过智能技术生成

作者算法的功能都是在tracker类中实现的,下面分析其头文件和cpp文件,头文件:

#ifndef TRACKER_H
#define TRACKER_H

#include "Rect.h"

#include <vector>
#include <Eigen/Core>
#include <opencv/cv.h>

class Config;
class Features;
class Kernel;
class LaRank;
class ImageRep;

class Tracker
{
public:
	Tracker(const Config& conf);
	~Tracker();
	
	void Initialise(const cv::Mat& frame, FloatRect bb);//初始化
	void Reset();//复位
	void Track(const cv::Mat& frame);//跟踪
	void Debug();//用于显示跟踪的效果框图,便于调试
	
	inline const FloatRect& GetBB() const { return m_bb; }
	inline bool IsInitialised() const { return m_initialised; }
	
private:
	const Config& m_config;//这个指向常量的引用,用来绑定构造器传入的conf
	bool m_initialised;//标志这个track是否初始化了
	std::vector<Features*> m_features;//存放特征指针
	std::vector<Kernel*> m_kernels;
	LaRank* m_pLearner;
	FloatRect m_bb;//一个矩形框
	cv::Mat m_debugImage;//调试时用于显示的图片
	bool m_needsIntegralImage;//是否需要积分图,为了方便计算haar特征,当使用haar特征的时候,需要先计算积分图
	bool m_needsIntegralHist;//是否需要积分颜色直方图
	
	void UpdateLearner(const ImageRep& image);//更新学习器,也就是更新结构化SVM
	void UpdateDebugImage(const std::vector<FloatRect>& samples, const FloatRect& centre, const std::vector<double>& scores);//更新用于调试的显示图片
};

#endif


源文件:

#include "Tracker.h"
#include "Config.h"
#include "ImageRep.h"
#include "Sampler.h"
#include "Sample.h"
#include "GraphUtils.h"

#include "HaarFeatures.h"
#include "RawFeatures.h"
#include "HistogramFeatures.h"
#include "MultiFeatures.h"

#incl
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值