matlab integralimage,积分图像(Integral image)

1 问题起源

给定一幅灰度图像,其灰度值如下图所示,

e8c7b09d31567c344db54b54d32b96f3.png

要计算图中深色区域的所有像素点的灰度值之和。

最直接,简单的方法就是将这9个像素值直接相加。

如果深色区域扩大,里面包含成千上万个像素,这种算法的时间复杂度也会呈线性增加。

积分图像的提出正好解决了这个问题。

2 积分图像

积分图像顾名思义,就是求和,完整的意思是每一个像素点的灰度值等于在该像素点之前

所有像素点灰度值之和。

4840a8901d262c157a57e22cf86e7a90.png

从上方图中抽取4个像素:

29ef15045eaa790e40a7d3bcd561dec3.png

这4个像素点对应的在积分图像中的值为:

9e09fa3b6dd4ebf68451d2ec4edfe398.png

其关系为:

0850787c0910880f09824b85e4ecab93.png

将1中的图像转换为积分图像,如下图所示:

6f7ff2f16b9d446ddfee443cbed8817a.png

深色区域的灰度值之和就是:

120-42-21+6=63

其计算原理如下:

69f1a195b8178311941349377166418c.png

上图为一张原始图像,其标示了四个区域:A, B , C ,D

1 处像素点对应的在积分图像中的值为:sum(A);

2 处像素点对应的在积分图像中的值为:sum(A+B);

3 处像素点对应的在积分图像中的值为:sum(A+C);

4 处像素点对应的在积分图像中的值为:sum(A+B+C+D);

则:

区域D所有的像素点灰度值之和为:

sum(A+B+C+D) - sum(A+C) - sum(A+B) + sum(A)

承接Matlab、Python和C++的编程,机器学习、计算机视觉的理论实现及辅导,本科和硕士的均可,咸鱼交易,专业回答请走知乎,详谈请联系QQ号757160542,非诚勿扰。

本文同步分享在 博客“于小勇”(CSDN)。

如有侵权,请联系 support@oschina.cn 删除。

本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值