积分图像
来源:http://blog.sina.com.cn/s/blog_5562b0440102wgxs.html
以灰度图像为例子进行讲解,一个图像内矩形区域的积分是指该区域内所有灰度值的和,即:
所选定区域的积分为:
如图以3x6图像为例,左侧是原始图像,右侧是其积分图像,其中(2,4)位置的积分为16:
很显然,如果只是针对小区域的话,这样的加减倒也不是很复杂,如果这个区域包含成千上万的像素,那计算起来就比较复杂了。所以随着计算区域的增大,时间复杂度增长也很快。
那有没有一种比较简单的方法,可以无论需要计算的区域有多大,它的时间复杂度都不变呢,或者变化很小。这就是积分图像最初的考虑策略,尽量减少后续的计算以达到实时的效果。
区域1 : = sum(A);
区域2 : = sum(A + B);
区域3 : = sum(A + C);
区域4 : = sum(A + B + C + D);
所以,如果需要计算D区域中的灰度和,则
sum(D) = 区域4 - 区域2 - 区域3 + 区域1 (都是灰度值)。
很明显,这里仅仅只需要通过查表得到 1、2、3、4点的积分图像的值即可得到。由此计算任意点积分方法可以化为:
其中integral(i,j)表示(i,j)点积分值,而image(i,j)表示的是该点图像灰度值,由此可以知道计算一个图像积分的运算量与这个图像的大小差不多。
这其实就是积分图像最妙的地方,通过简单的预计算处理,存储整幅图像的积分图像,通过4次快速查表,便可以得到一个矩形框中的灰度和。
积分直方图
一个图像矩形区域内的积分直方图指该区域中所有灰度值出现的频数,如图所示:
本图是一个灰度级为[0,9]的图像,H(4,5)表示的是(0,0)到(4,5)所有像素所有灰度级出现的频数,即后面的数字[2 1 4 3 2 2 2 1 2 1]表示灰度级[0 1 2 3 4 5 6 7 8 9]在区域里出现的频数。如同积分图的计算方法,积分直方图也可以用类似的方法进行。
公式为:
疑问
1.积分图像如何进行预处理?
2.积分图像和积分直方图的具体应用