⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 meanshift.m

📁 mean shift tracker mean shift tracker mean shift tracker mean shift tracker mean shift tracker
💻 M
字号:
function [newPoint] = MeanShift(candidate,target)

sizeRegX = size(candidate.qgradX);
sizeRegY = size(candidate.qgradY);

wh = min([sizeRegX(1) sizeRegX(2)]);
ww =  min([sizeRegX(2) sizeRegY(2)]);


height = candidate.h(2)*2;
width = candidate.h(1)*2;

startX = candidate.center(1)-candidate.h(1);
startY = candidate.center(2)-candidate.h(2);

diffX = 0;
diffY = 0;
wi(wh,ww) = 0;
numerator = [0 0];
denominator = 0;

sizeRegX = size(candidate.qgradX);
sizeRegY = size(candidate.qgradY);

maxheight = min([sizeRegX(1) sizeRegX(2)]);
maxwidth =  min([sizeRegX(2) sizeRegY(2)]);

for y=startY:startY + height-1
  for x=startX:startX + width-1;
    
    indexX = x;
    indexY = y;
    
	
    if(x < 1)
     indexX=1;
    end
    if(y < 1)
     indexY=1;
    end

    if(x>=maxwidth)
	indexX = maxwidth;
    end
    if(y>=maxheight)
        indexY = maxheight;
    end

    diffX = candidate.qgradX(indexY,indexX);
    diffY = candidate.qgradY(indexY,indexX);
   
    if(candidate.modelDist(diffX,diffY) == 0)
	  significance = 0;	
    end
   
    if(candidate.modelDist(diffX,diffY) ~= 0)
	significance = target(diffX,diffY)/candidate.modelDist(diffX,diffY);
    end
    
    wi(indexX,indexY) = candidate.gradTable(diffX,diffY)*significance;
    parameter = (candidate.center-[x y])./candidate.h;
    numerator = numerator + ([x y]*wi(indexX,indexY)*uniformK(parameter));
    denominator = denominator + wi(indexX,indexY)*uniformK(parameter);
  end
end

newPoint = numerator/denominator;
newPoint = round(newPoint);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -