OpenCV 积分图(Integral Image)原理、计算方法、使用场景
OpenCV 积分图(Integral Image)原理、计算方法、使用场景一、积分图核心原理1. 定义积分图sum(x,y):坐标(x,y)左上角所有像素灰度累加和。 设原图灰度为 \(I(i,j)\),积分图公式:\(\text{sum}(x,y) = \sum_{i=0}^x\sum_{j=0}^y I(i,j)\)递推快速计算(避免双重循环累加):\(\text{sum}(x,y) = I(x,y) + \text{sum}(x-1,y) + \text{sum}(x,y-1) - \text{sum}(x-1,y-1)\)2. 矩形区域快速求和(积分图最大优势)任意矩形区域(x1,y1) ~ (x2,y2)像素总和,只需要 4 次查表加减法,不需要遍历窗口所有像素:\(S = \text{sum}(x2,y2) - \text{sum}(x1-1,y2) - \text{sum}(x2,y1-1) + \text{sum}(x1-1,y1-1)\)普通滑动窗口:窗口越大,耗时线性暴涨;积分图:无论窗口多大,求区域和都是O (1) 常数时间。3. 两种积分图(OpenCV integral 支持)普通积分图(sum):灰度像素和,用于均值、阈值、特征计算;平方积分图(sqsum):像素灰度平方累加,用于计算区域方差、自适应阈值;倾斜积分图(tilted):45° 斜矩形求和,Haar 特征专用。二、OpenCV 使用方法1. API 函数cpp