Adaboost特征值计算

来源:互联网 发布:cf手游刷枪软件注册码 编辑:程序博客网 时间:2024/05/18 17:43


本文仅对如上的特征结构进行计算

请注意下述函数中的A为样本的积分图结果,为简化计算A第一行和第一列为0值,关于积分图的计算方法参见前文。

haar结构前两个数据为haar特征(s, t)

function F = AdaBoost_f(haar, A)
% haar特征值计算
% haar: haar(s, t, x_lu, y_lu, x_rd, y_rd)
% A:样本积分图
% F: haar特征值

if haar(1) == 1 && haar(2) == 2
    %(1,2)矩形模板
    % 1 ____ 2
    % 3|_黑_|4
    %  |_白_|
    % 5      6
    % (1, 2)的特征值f=(4-2-3+1)-(6-4-5+3)  
    x_lu = haar(3); y_lu = haar(4); %(1, 2)矩形模板左上角坐标
    x_rd = haar(5); y_rd = haar(6); %(1, 2)矩形模板右下角坐标
    x1 = x_lu; y1 = y_lu; % 位置坐标1
    x6 = x_rd+1; y6 = y_rd+1; % 位置坐标6
    x3 = x1; y3 = (y1 + y6)/2; % 位置坐标3
    x5 = x1; y5 = y6; % 位置坐标5
    x2 = x6; y2 = y1; % 位置坐标2
    x4 = x6; y4 = y3; % 位置坐标4
    f = (A(y4,x4,:)-A(y2,x2,:)-A(y3,x3,:)+A(y1,x1,:))-... % 特征值计算
        (A(y6,x6,:)- A(y4,x4,:)-A(y5,x5,:)+A(y3,x3,:));
   
elseif haar(1) == 2 && haar(2) == 1
    %(2, 1)矩形模板
    % 1 ____2____3
    %  |_白_|_黑_|
    % 4     5    6
    % (2, 1)的特征值f=(6-3-5+2)-(5-2-4+1)
    x_lu = haar(3); y_lu = haar(4);%(2, 1)矩形模板左上角坐标
    x_rd = haar(5); y_rd = haar(6);%(2, 1)矩形模板右下角坐标
    x1 = x_lu; y1 = y_lu; % 位置坐标1
    x6 = x_rd+1; y6 = y_rd+1; % 位置坐标6
    x2 = (x1+x6)/2; y2 = y1; % 位置坐标2
    x3 = x6; y3 = y1; % 位置坐标3
    x4 = x1; y4 = y6; % 位置坐标4
    x5 = x2; y5 = y6; % 位置坐标5
    f = (A(y6,x6,:)-A(y3,x3,:)-A(y5,x5,:)+A(y2,x2,:))-...% 特征值计算
        (A(y5,x5,:)-A(y2,x2,:)-A(y4,x4,:)+A(y1,x1,:));
   
elseif haar(1) == 1 && haar(2) == 3
    %(1, 3)矩形模板
    % 1 ____ 2
    %  |_白_|
    % 3 ____ 4
    %  |_黑_|
    % 5 ____ 6
    %  |_白_|
    % 7      8
    % (1, 3)的特征值f=(6-4-5+3)-(4-2-3+1)-(8-6-7+5)
    x_lu = haar(3); y_lu = haar(4);%(1, 3)矩形模板左上角坐标
    x_rd = haar(5); y_rd = haar(6);%(1, 3)矩形模板右下角坐标
    x1 = x_lu; y1 = y_lu; % 位置坐标1
    x8 = x_rd+1; y8 = y_rd+1; % 位置坐标8
    x2 = x8; y2 = y1; % 位置坐标2
    x3 = x1; y3 = y1+(y8-y1)/3; % 位置坐标3
    x4 = x8; y4 = y3; % 位置坐标4
    x5 = x1; y5 = y1+(y8-y1)*2/3; % 位置坐标5
    x6 = x8; y6 = y5; % 位置坐标6
    x7 = x1; y7 = y8; % 位置坐标7
    f = (A(y6,x6,:)-A(y4,x4,:)-A(y5,x5,:)+A(y3,x3,:))-... % 特征值计算
        (A(y4,x4,:)-A(y2,x2,:)-A(y3,x3,:)+A(y1,x1,:))-...
        (A(y8,x8,:)-A(y6,x6,:)-A(y7,x7,:)+A(y5,x5,:));
   
elseif haar(1) == 3 && haar(2) == 1
    %(3, 1)矩形模板
    % 1 ____2____3____4
    %  |_白_|_黑_|_白_|
    % 5     6    7    8
    % (3,1)的特征值f=(7-3-6+2)-(6-2-5+1)-(8-4-7+3)
    x_lu = haar(3); y_lu = haar(4);%(3, 1)矩形模板左上角坐标
    x_rd = haar(5); y_rd = haar(6);%(3, 1)矩形模板右下角坐标
    x1 = x_lu; y1 = y_lu; % 位置坐标1
    x8 = x_rd+1; y8 = y_rd+1; % 位置坐标8
    x2 = x1+(x8-x1)/3; y2 = y1; % 位置坐标2
    x3 = x1+(x8-x1)*2/3; y3 = y1; % 位置坐标3
    x4 = x8; y4 = y1; % 位置坐标4
    x5 = x1; y5 = y8; % 位置坐标5
    x6 = x2; y6 = y8; % 位置坐标6
    x7 = x3; y7 = y8; % 位置坐标7
    f = (A(y7,x7,:)-A(y3,x3,:)-A(y6,x6,:)+A(y2,x2,:))-... % 特征值计算
        (A(y6,x6,:)-A(y2,x2,:)-A(y5,x5,:)+A(y1,x1,:))-...
        (A(y8,x8,:)-A(y4,x4,:)-A(y7,x7,:)+A(y3,x3,:));
   
elseif haar(1) == 2 && haar(2) == 2
    %(2,2)矩形模板
    % 1 ____2____3
    %  |_白_|_黑_|
    % 4     5    6
    %  |_黑_|_白_|
    % 7     8    9
    % (2, 2)的特征值f=(6-3-5+2)+(8-5-7+4)-(5-2-4+1)-(9-6-8+5)
    x_lu = haar(3); y_lu = haar(4); %(2, 2)矩形模板左上角坐标
    x_rd = haar(5); y_rd = haar(6); %(2, 2)矩形模板右下角坐标
    x1 = x_lu; y1 = y_lu; % 位置坐标1
    x9 = x_rd+1; y9 = y_rd+1; % 位置坐标9
    x2 = (x1+x9)/2; y2 = y1; % 位置坐标2
    x3 = x9; y3 = y1; % 位置坐标3
    x4 = x1; y4 = (y1+y9)/2; % 位置坐标4
    x5 = x2; y5 = y4; % 位置坐标5
    x6 = x9; y6 = y4; % 位置坐标6
    x7 = x1; y7 = y9; % 位置坐标7
    x8 = x2; y8 = y9; % 位置坐标8
    f = (A(y6,x6,:)-A(y3,x3,:)-A(y5,x5,:)+A(y2,x2,:))+... % 特征值计算
        (A(y8,x8,:)-A(y5,x5,:)-A(y7,x7,:)+A(y4,x4,:))-...
        (A(y5,x5,:)-A(y2,x2,:)-A(y4,x4,:)+A(y1,x1,:))-...
        (A(y9,x9,:)-A(y6,x6,:)-A(y8,x8,:)+A(y5,x5,:));
end

F(:, 1) = f(1, 1, :); % 特征值由3维数组转换为2维数组


0 0
原创粉丝点击