eigen跟踪MILTracker代码分析
【摘要】 调用跟踪方法再Main.cpp中:
while (vot_io.getNextImage(frameOrig) == 1){
resize(frameOrig, frame, Size(conf.frameWidth, conf.frameHeight));
tracker.Track(frame); 跟踪方法:
Tracker.cpp
void Tracker:...
调用跟踪方法再Main.cpp中:
while (vot_io.getNextImage(frameOrig) == 1){
resize(frameOrig, frame, Size(conf.frameWidth, conf.frameHeight));
tracker.Track(frame); 跟踪方法:
Tracker.cpp
void Tracker::Track(const cv::Mat& frame)
{
耗时操作:
m_pLearner->Eval(sample, scores);
Eval 中fvs.size()有时为2850,循环估计,耗时
void LaRank::Eval(const MultiSample& sample, std::vector<double>& results)
{
const FloatRect& centre(sample.GetRects()[0]);
vector<VectorXd> fvs;
double tt = (double)cvGetTickCount();
const_cast<Features&>(m_features).Eval(sample, fvs);
results.resize(fvs.size());
// 算法过程
tt = (double)cvGetTickCount() - tt;
printf( "run time1 = %fms fvs.size:%d\n", tt/(cvGetTickFrequency()*1000),fvs.size() );
for (int i = 0; i < (int)fvs.size(); ++i)
{
// express y in coord frame of centre sample
FloatRect y(sample.GetRects()[i]);
y.Translate(-centre.XMin(), -centre.YMin());
results[i] = Evaluate(fvs[i], y);
if(i%200==0){
tt = (double)cvGetTickCount() - tt;
printf( "run time%d = %fms\n",i, tt/(cvGetTickFrequency()*1000) );
}
}
// 算法过程
// tt = (double)cvGetTickCount() - tt;
// printf( "run time2 = %fms\n", tt/(cvGetTickFrequency()*1000) );
}
文章来源: blog.csdn.net,作者:网奇,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/jacke121/article/details/60469407
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)