tldProcessFrame函数研究

该函数处理tld中的每一帧。

用到的函数:tldtrcaking

function tld = tldProcessFrame(tld,i)

I = tld.source.idx(i); % get current index

获取当前的索引咯
tld.img{I} = img_get(tld.source,I); % grab frame from camera / load image

读取数据

% TRACKER ----------------------------------------------------------------

[tBB tConf tValid tld] = tldTracking(tld,tld.bb(:,I-1),I-1,I); % frame-to-frame tracking (MedianFlow)

第一个函数:tldtrcaking 中值光流法 获得的输出有:tBB-》可能是tracking获得的目标框,tConf->这种方法的相似度,tValid-》这种方法的有效性,tld->临时变量,值得深究。

输入很奇怪,两次tld 未搞清他们都是什么

% DETECTOR ----------------------------------------------------------------

[dBB dConf tld] = tldDetection(tld,I); % detect appearances by cascaded detector (variance filter -> ensemble classifier -> nearest neightbour)

第二个函数:检测器tldDetection 三个过滤器

获得的输出: dBB dConf tld 类同于tracking

% INTEGRATOR --------------------------------------------------------------

DT = 1; if isempty(dBB), DT = 0; end % is detector defined?
TR = 1; if isempty(tBB), TR = 0; end % is tracker defined?

DT-》detector 是否存在

TR-》tracking是否存在 1为存在。

if TR % if tracker is defined

% copy tracker‘s result
tld.bb(:,I) = tBB;
tld.conf(I) = tConf;
tld.size(I) = 1;
tld.valid(I) = tValid;

if DT % if detections are also defined//这里考虑的是tracking和detector都存在的情况

[cBB,cConf,cSize] = bb_cluster_confidence(dBB,dConf); % cluster detections
id = bb_overlap(tld.bb(:,I),cBB) < 0.5 & cConf > tld.conf(I); % get indexes of all clusters that are far from tracker and are more confident then the tracker

if sum(id) == 1 % if there is ONE such a cluster, re-initialize the tracker

tld.bb(:,I) = cBB(:,id);
tld.conf(I) = cConf(:,id);
tld.size(I) = cSize(:,id);
tld.valid(I) = 0;

else % othervide adjust the tracker‘s trajectory

idTr = bb_overlap(tBB,tld.dt{I}.bb) > 0.7; % get indexes of close detections
tld.bb(:,I) = mean([repmat(tBB,1,10) tld.dt{I}.bb(:,idTr)],2); % weighted average trackers trajectory with the close detections

end
end

else % if tracker is not defined
if DT % and detector is defined

[cBB,cConf,cSize] = bb_cluster_confidence(dBB,dConf); % cluster detections

if length(cConf) == 1 % and if there is just a single cluster, re-initalize the tracker
tld.bb(:,I) = cBB;
tld.conf(I) = cConf;
tld.size(I) = cSize;
tld.valid(I) = 0;
end
end
end

% LEARNING ----------------------------------------------------------------

if tld.control.update_detector && tld.valid(I) == 1
tld = tldLearning(tld,I);
end

% display drawing: get center of bounding box and save it to a drawn line
if ~isnan(tld.bb(1,I))
tld.draw(:,end+1) = bb_center(tld.bb(:,I));
if tld.plot.draw == 0, tld.draw(:,end) = nan; end
else
tld.draw = zeros(2,0);
end

if tld.control.drop_img && I > 2, tld.img{I-1} = {}; end % forget previous image

时间: 2024-11-04 11:25:43

tldProcessFrame函数研究的相关文章

jquery的匿名函数研究

jQuery片段: ? 1 2 3 ( function (){ //这里忽略jQuery所有实现 })(); 半年前初次接触jQuery的时候,我也像其他人一样很兴奋地想看看源码是什么样的.然而,在看到源码的第一眼,我就迷糊了.为什么只有一个匿 名函数又没看到运行(当然是运行了……),就能有jQuery这么个函数库了?于是,我抱着疑问来到CSDN.结果相信现在很多人都很清楚了(因为在我之 后也不乏来者,呵呵~).当一个匿名函数被括起来,然后再在后面加一个括号,这个匿名函数就能立即运行起来!真神

数据库中的函数研究

数据库中的函数研究 1)SQL 拥有很多可用于计数和计算的内建函数 2)常用函数: 3)avg() 返回数值列的平均值 语法:select avg(列名)from table_name 示例: select avg(price) as priceAverage from table_name select ProductName, Price from table_name where Price > (select AVG(Price) from Products) #选择价格高于平均价格的

黑马程序员-利用swap函数研究C的指针

设计3个函数,分别实现已下功能: 交换两个整数 交换两个整形指针 交换任意两个同类型的变量 1 #include <stdio.h> 2 #include <string.h> 3 #include <stdlib.h> 4 void swap_int(int* pa, int* qa) //交换两个整数 5 { 6 int temp = *pa; 7 *pa = *qa; 8 *qa = temp; 9 } 10 11 12 void swap_intpur(int*

php函数研究

<?php //$number = range(0,50,10); //print_r ($number); //生成一个自增的数组 header("Content-type:text/html;charset=utf-8"); /* * * 类/对象 * __autoload — 尝试加载未定义的类 call_user_method_array — 调用一个用户方法,同时传递参数数组(已废弃) call_user_method — 对特定对象调用用户方法(已废弃) class_

iOS工程中的info.plist文件的完整研究

原地址:http://blog.sina.com.cn/s/blog_947c4a9f0100zf41.html 们建立一个工程后,会在Supporting files下面看到一个"工程名-Info.plist"的文件,这个是对工程做一些运行期配置的文件,很重要,不能删除. 如果你在网上下载的工程中的这个文件名只是Info.plist,那么恭喜你,这个工程太老了,是用包含SDK2.0以前的Xcode生成的,不过没关系,不影响使用. 如果你使用文本编辑器打开这个文件,你会发现这是一个XM

UIApplication深入研究

很多时候,我们不需要关心这个类,我们很少继承这个类,偶尔会调用这个类的api来实现一些功能,但是不可否认,这个类是iOS编程中很重要的一个概念,所以我这里写这个文章来总结以下这个类的信息,如果写的不对的地方,请留言,多谢. UIApplication的核心作用是提供了iOS程序运行期间的控制和协作工作. 每一个程序在运行期必须有且仅有一个UIApplication(或则其子类)的一个实例.回想一下我在前面的文章"main函数研究"的文章中提到的main函数的代码,可以看出,在程序开始运

哈希函数和哈希表综述 (转)

哈希表及哈希函数研究综述 摘要 随着信息化水平的不断提高,数据已经取代计算成为了信息计算的中心,对存储的需求不断提高信息量呈现爆炸式增长趋势,存储已经成为急需提高的瓶颈.哈希表作为海量信息存储的有效方式,本文详细介绍了哈希表的设计.冲突解决方案以及动态哈希表.另外针对哈希函数在相似性匹配.图片检索.分布式缓存和密码学等领域的应用做了简短得介绍 哈希经过这么多年的发展,出现了大量高性能的哈希函数和哈希表.本文通过介绍各种不同的哈希函数的设计原理以及不同的哈希表实现,旨在帮助读者在实际应用中,根据问

PHP很有用的一个函数ignore_user_abort ()

PHP很有用的一个函数ignore_user_abort () 2013-01-16 14:21:31|  分类: PHP |  标签:php  函数  |举报|字号 订阅 ignore_user_abort 设置与客户机断开是否会终止脚本的执行. 本函数返回 user-abort 设置的之前的值(一个布尔值). int ignore_user_abort ([ string $value ] ) 参数 描述 setting 可选.如果设置为 true,则忽略与用户的断开,如果设置为 false

PHP 函数 ignore_user_abort()

ignore_user_abort 设置与客户机断开是否会终止脚本的执行. 本函数返回 user-abort 设置的之前的值(一个布尔值). int ignore_user_abort ([ string $value ] ) 参数 描述 setting 可选.如果设置为 true,则忽略与用户的断开,如果设置为 false,会导致脚本停止运行. 如果未设置该参数,会返回当前的设置. 注释:PHP 不会检测到用户是否已断开连接,直到尝试向客户机发送信息为止.简单地使用 echo 语句无法确保信息