(转载请注明作者和出处:http://blog.csdn.net/xiaowei_cqu 未经允许请勿用于商业用途)
Haar特征/矩形特征
Haar特征本身并不复杂,就是用图中黑色矩形所有像素值的和减去白色矩形所有像素值的和。
Haar特征个数计算
Rainer Lienhart计算Haar特征个数的公式:
其中,为图片大小,
为矩形特征大小,
表示矩形特征在水平和垂直方向的能放大的最大比例系数。
对于45°的rotated特征(如1(c)和1(d)),w,h表示如下图所示:
其计算公式为:
最直接的快速计算方法是利用以计算积分求当前位置的积分,其思想正如快速计算Haar特征的方法。
即,Integral(i,j) = Integral(i,j-1) + Integral(i-1,j) - Integral(i-1,j-1) + Image(i,j);
于是,对一张W*H的图像直接求取积分图,需要:
(W-1)+(H-1)+3*(W-1)*(H-1)
解释:
将图像转化成积分图
function pic=IntegralImage_IntegralImage(I)
% This function IntegralImage_IntegralImage will ..
%
% J = IntegralImage_IntegralImage( I )
%
% inputs,
% I : An 2D image color or greyscale
%
% outputs,
% J : The integral image
%
% Function is written by D.Kroon University of Twente (July 2010)
% Convert Image to double
switch(class(I));
case 'uint8'
I=double(I)/255;
case 'uint16'
I=double(I)/65535;
case 'int8'
I=(double(I)+128)/255;
case 'int16'
I=(double(I)+32768)/65535;
otherwise
I=double(I);
end
% Convert Image to greyscale
if(size(I,3)==3)
cR = .2989; cG = .5870; cB = .1140;
I=I(:,:,1)*cR+I(:,:,2)*cG+I(:,:,3)*cB;
end
% Make the integral image
pic = cumsum(cumsum(I,1),2);