TLD源码解析-tldGenerateFeatures

本文为tldGenerateFeatures.m的代码附上注释


function f = tldGenerateFeatures(nTREES, nFEAT, show)%产生pixel comparison并显示

SHI = 1/5;
SCA = 1;
OFF = SHI;

x = repmat(ntuples(0:SHI:1,0:SHI:1),2,1);  %x:4x36的数组
x = [x x + SHI/2];  %x:4x72
k = size(x,2);   %k=72
r = x; r(3,:) = r(3,:) + (SCA*rand(1,k)+OFF);  %r:4x72第三行加随机量
l = x; l(3,:) = l(3,:) - (SCA*rand(1,k)+OFF); %l:4x72第三行减随机量
t = x; t(4,:) = t(4,:) - (SCA*rand(1,k)+OFF); %类似
b = x; b(4,:) = b(4,:) + (SCA*rand(1,k)+OFF);%类似

x = [r l t b];  %x:4x288 

idx = all(x([1 2],:) < 1 & x([1 2],:) > 0,1);  %取出所有1,2行小于1大于0.1的列,相应idx[i]=1
x = x(:,idx); %取出所有idx[i]=1的列组成新的x
x(x > 1) = 1;  %大于1的赋1
x(x < 0) = 0;

numF = size(x,2);  %计算新x的列数 164

x = x(:,randperm(numF)); %随机排列这16列
x = x(:,1:nFEAT*nTREES); %取特征对数*随机树数个列13*10=130列 4*130
x = reshape(x,4*nFEAT,nTREES); %变为52*10并输出  1、2行为一个坐标 3、4行为一个坐标,两个坐标行成一个特征对,论文里称为pixel comparisons

f.x = x;                 %输出f.x中为
f.type = 'forest';

% show
if nargin == 3    %只有当第三输入参量赋值且不为0时才输出显示这些特征点,并且在每一对之间连线
if show
    for i = 1:nTREES
        F = 1+99*reshape(f.x(:,i),4,[]);  %f.x的每一列为一个tree里的特征对,这里取出一列重排为4*13 并*99+1保证不出现0
        img = zeros(100,100);
        imshow(img);
        
        line(F([1 3],:),F([2 4],:),'linewidth',1,'color','w');
        pause(.05);
    end
end
end


其中ntuples方法的理解,使用一个小例子就明白了。

例如:ntuples([1 2],[1,2,3]),输出如下。
ans = 
     1     1     1     2     2     2
     1     2     3     1     2     3


参考文献:

  1. TLD取经之路(4)-- 始于足下--tldInit.m中涉及到的相关函数

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值