計算Haar特征時有用到這個。
wiki介紹的非常好,我可恥的轉了:
積分圖的每一點(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 %積分圖像第一行 I(i,j)=I(i,j-1)+img(i,j); elseif i~=1 && j==1 %積分圖像第一列 I(i,j)=I(i-1,j)+img(i,j); else %積分圖像其它像素 I(i,j)=img(i,j)+I(i-1,j)+I(i,j-1)-I(i-1,j-1); end end end %如何使用I就要看情況了