matlab練習程序(積分圖)


計算Haar特征時有用到這個。

wiki介紹的非常好,我可恥的轉了:

積分圖的每一點(xy)的值是原圖中對應位置的左上角區域的所有值得和:

而且,積分圖可以只遍歷一次圖像即可有效的計算出來,因為積分圖每一點的(xy)值是:

一旦積分圖計算完畢,對任意矩形區域的和的計算就可以在常數時間內完成。如下圖中,陰影矩形區域的值:

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就要看情況了

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM