积分图的每一点(x, y)的值是原图中对应位置的左上角区域的所有值得和:
而且,积分图可以只遍历一次图像即可有效的计算出来,因为积分图每一点的(x, y)值是:
一旦积分图计算完毕,对任意矩形区域的和的计算就可以在常数时间内完成。如下图中,阴影矩形区域的值:
%构建积分图的代码
clear all;
close all;
clc;
img=double(imread('lena.jpg'));
[m n]=size(img);
%计算积分图
I=zeros(m,n);
for i=1:m
for j=1:n
if i==1 && j==1 %积分图像左上角
I(i,j)=img(i,j);
elseif i==1 && j~=1