zoukankan      html  css  js  c++  java
  • 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就要看情况了
  • 相关阅读:
    3.21上午
    3.17下午
    2017.4.14-morning
    2017.4.13-afternoon
    2017.4.13-morning
    2017.4.12-afternoon
    2017.4.12-morning
    2017.4.11-afternoon
    2017.4.11-morning
    2017.4.10-afternoon
  • 原文地址:https://www.cnblogs.com/tiandsp/p/3016402.html
Copyright © 2011-2022 走看看