简介
积分图的出现使得Haar特征的计算更为高效,这是一种动态规划算法,以减少重复计算缩减算法时间。它可以使复杂度为O(MN)的求和,求方差等运算降低到O(4)的复杂度,而BoxFilter可以降到O(1),不过BoxFilter不支持多尺度。
积分图的缺陷
因为一直在累加,所以,当原图很大的话,会出现溢出的情况,所以,不建议使用int64等类型。
积分图讲解:
积分图中任意位置的值是由原图中该位置和其左上角所有位置值的和。
每一点I(x,y)的计算公式为:
I(x,y)=i(x,y)+I(x−1,y)+I(x,y−1)−I(x−1,y−1)
当得到积分图之后,阴影区域的和即可计算得到。该阴影矩形可以是任意形状。
A(y)<y′≤C(y)A(x)<x′≤C(x)∑i(x′,y′)=I(Cright_bottom)+I(Aright_bottom)−I(Bright_bottom)−I(Dright_bottom)
比如计算原图中间红色区域的和:
Sum=Integral(3,3)+Integral(0,0)−Integral(3,0)−Integral(0,3)=54+1−8−9